Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Тут можно читать онлайн Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «ДМК-пресс», год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «ДМК-пресс»
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-9706-0034-2
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С краткое содержание

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - описание и краткое содержание, автор Стивен Барретт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.

Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.

Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Алгоритм программы на UML для реализации этой функции представлен на рис. 8.24.

Рис 824Алгоритм UML для функции updatetaskstatus - фото 320

Рис. 8.24.Алгоритм UML для функции update_task_status

//******************************************************************

//имя файла: realtime.с

//авторы: Steve Barrett and Daniel Pack

//разработан: 1 июля, 2004

//последняя редакция: 1 июля, 2004

//******************************************************************

//включенные файлы ****************************************

#include <912b32.h>

//функции-прототипы****************************************

void initialize_ports(void); //инициализация портов

void initialize_LCD(void); //инициализация ЖКД

void putchars(unsigned char); //функция поддержки ЖКД - ввести символ

void putcommands(unsigned char); // функция поддержки ЖКД - ввести команду

void delay_5ms(void); //задержка на 5 мс

void delay_100us(void); //задержка на 100 мкс

void update_task_status(unsigned char task, char task_status);

//изменить состояние задачи

//глобальные переменные************************************************

//главная программа****************************************************

void main(void) {

asm(" .area vectors(abs)\n" //inline assembly statement

" .org 0xFFF8\n" //initialize 68HC12 B32 reset vector

" .word 0x8000, 0x8000, 0x8000, 0x8000\n"

" .text");

initialize_ports(); //инициализировать порты

initialize_LCD(); // инициализировать ЖКД

update_task_status(0x00, 'R') ; //изменить состояние задачи

}

//******************************************************************

//initialize_ports: provides initial configuration for I/O ports

//******************************************************************

void initialize_ports(void) {

DDRA = 0xFF; //установить PORTA как выходной - управляющие линии

// демультиплексора

DDRT = 0xFF; // установить PORTT как выходной - состояние задачи

DDRB = 0xFF; // установить PORTB как выходной - порт данных для ЖКД

CTDRDLC = 0xFF; // установить PORT DLC как выходной - сигналы

//управления для ЖКД

DDRP = 0x0F; // установить PORTP[3:0] как выходной, PORT[7:4] как

//входной - для клавиатуры

PORTA = 0xFF; //установить для PORTA все линии декодера высокоомными (Hi-Z)

}

/****************************************************************/

/****************************************************************/

/*update_task_status: изменить состояние конкретной задачи */

/*в соответствии с допустимым переходом (рис. 8.14) */

/****************************************************************/

void update_task_status(unsigned char task, char task_status) {

//установить состояние задачи на выходе порта T

switch(task_status) {

case 'D': //бездействие (D)

PORTT = 0x01;

break;

case 'R': //готовность (R)

PORTT = 0x02;

break;

case 'A': //активность (A)

PORTT = 0x04;

break;

case'W': //ожидание (W)

PORTT = 0x08;

break;

case 'S': // приостановка(S)

PORTT = 0x10;

break;

case 'X': //восстановление (X)

PORTT = 0x20;

break;

}

PORTA = task & 0x7F; /*выбор задачи, активизируйте декодер */

PORTA = 0xFF /*Высокоомный выход (Hi-Z) декодера */

}

/****************************************************************/

/****************************************************************/

8.11.Заключение по главе 8

В этой главе мы познакомили вас с концепциями операционных систем реального времени. Мы не хотели выбирать конкретные ОСРВ и затем рассматривать их работу. Вместо этого, мы сосредоточились на концепциях, связанных с самими ОСРВ и на ключевых вопросах их применения. Мы рассмотрели терминологию ОСРВ, структуры данных, алгоритмы планирования и затруднения, встречающиеся при разработке этих систем.

8.12. Что еще почитать?

1. Barrett S. F, D. J. Pack, С Straley, L. Sircin, and G. Janack. «Real-Time Operating Systems: A Visual Simulator.» Paper presented at the annual meeting of the American Society for Engineering Educations, June 2004.

2. Ganssle, J. «Writing a Real-Time Operating System-Part I: A Multitasking Event Scheduler for the HD64180.» Circuit Cellar Ink (January/February 1989): 41–51.

3. Ganssle, J. «Writing a Real-Time Operating System-Part II: Memory Management and Applications for the HD64180.» Circuit Cellar Ink (March/April 1989): 30–33.

4. Ganssle, J. «An OS in a CAN.» Embedded Systems Programming (January 1994): 1–6. ImageCraft Creations, Inc. «ICC12, ImageCraft С Compiler and Development Environment for Motorola HC12.» 2001.

5. Korsch, J. F., and L. J. Garrett. Data Structures, Algorithms, and Program Style Using С. Boston: PWS-Kent Publishing Company, 1988.

6. Labrosse, J. J. Micro C/OS-II The Real-Time Kernel, 2nd ed. Lawrence, KS: CMP Books, 2002.

7. Lafore, R. The Waite Group's Microsoft С Programming for the PC, 2nd ed. Carmel, IN, Howard W. Sams and Company, 1990.

8. Laplante, P. Real-Time Systems Design and Analysis: An Engineer's Handbook. New York: IEEE Computer Society Press, 1993.

9. Miller, G. H. Microcomputer Engineering, 2nd ed. Englewood Cliffs, NJ: Pearson Education, 1998.

10. Moore, R. How to Use a Real-time Multitasking Kernels in Embedded Systems, Costa Mesa, CA: Micro Digital Associates, 2001.

11. Motorola Inc. «68HC12 M68EVB912B32 Evaluation Board User's Manual.» Motorola Document 68EVB912B32 UM/D, 1997.

12. Motorola Inc. «HC12 M68HC12B Family Advance Information.» Motorola Document M68HC12B/D, 2000.

13. Pack, D. J., and S. F. Barrett. 68HC12 Microcontroller: Theory and Applications. Upper Saddle River, NJ: Prentice Hall, 2002.

8.13. Вопросы и задания

Основные

1. Что такое — ОСРВ?

2. Что называется задачей в системах реального времени?

3. Что такое контекст задачи? Приведите конкретные примеры содержимого контекста задачи.

4. Опишите действия, которые ОСРВ должен выполнить относительно задачи.

5. Что такое — ядро ОСРВ? Какими основными свойствами оно должно обладать?

6. Каковы различия между глобальной и локальной переменной?

7. Что понимается под динамическим распределением памяти?

8. Какая память (RAM, ROM, и т.д.) используется при динамическом распределении памяти? Объясните почему.

9. Опишите следующие структуры данных. Где они обычно используются:

• Структура/запись;

• Список с указателями;

• Очередь;

• Круговая очередь;

• Стек.

Более сложные

1. Объясните различие между жесткой, твердой, и мягкой системами в режиме реального времени. Приведите пример для каждой из них.

2. Сравните динамическую память со стеком. Где они обычно размещаются в системе памяти? Почему?

3. Каких методов программирования нужно избегать, чтобы сохранить память RAM? Почему?

4. Определите каждое из различных состояний, в которых может находиться задача. Во скольких состояниях задача может находиться одновременно?

5. Что такое — управляющий блок задачи (TCB)? Из чего он должен состоять? Какая структура данных была бы хорошим выбором для TCB? Почему?

6. Какова функция диспетчера/планировщика в ядре ОСРВ? Определите каждый из различных алгоритмов планирования и их свойственные им преимущества и недостатки.

7. Что такое конкуренция? Как это происходит? Как этого избежать?

8. Что такое повторная входимость? Как это происходит? Как это предотвратить?

9. Что понимается под отказоустойчивой работой ОСРВ? Почему — это проблема является критичной при разработке ОСРВ?

10. Управляемая прерыванием ОСРВ должна быть выполнена на 68HC12. Вы решили, что система всегда должна отвечать на прерывания с более высоким приоритетом, когда они происходят. Как это может быть выполнено? Вспомните, что 68HC12 автоматически отключает систему прерывания при ответе на прерывание, Подсказка: Посмотрите описание команд CLI и SEI ассемблера 68HC12.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Барретт читать все книги автора по порядку

Стивен Барретт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С отзывы


Отзывы читателей о книге Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С, автор: Стивен Барретт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x