Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
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.
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.
1. Разработайте стек и связанные с ним функции, использовав список с указателями для динамического распределения памяти.
2. Разработайте приоритетную часть системы фонового опроса с передним планом, для защиты от перегрева транзисторов, описанной в применениях раздела 8.9.
На рис. 8.25 (совпадающим с рис. 8.21 и повторенном здесь для удобства) показана система защиты от транзистора от перегрева. Температура транзистора постоянно контролируется датчиком температуры LM34 (в пластмассовое корпусе) приклеенным к металлическому корпусу мощного транзистора K-220. Напряжение на на выходе датчика линейно связано с его температурой (коэффициент 10 мВ/°С). Выход LM34 подан на один из входов аналогового компаратора, построенного на ОУ. На другой вход подается опорное напряжение, задающее порог температуры. Когда температура мощного транзистора достигает этого порога, на входе системы прерывания микроконтроллера появляется активный сигнал низкого уровня формирующий запрос на прерывание IRQ.
Рис. 8.25. Система защиты транзистора от перегрева
3. Разработайте и проверьте функцию, позволяющую модифицировать состояние задачи.
4. Выполните управляющий блок задачи (TCB) при помощи соответствующей структуры данных. Обеспечьте функции поддержки, чтобы обращаться к различным информационным полям TCB и модифицировать их.
5. Опишите различные методы выполнения межзадачной связи в ОСРВ.
6. Напишите короткую статью на две страницы, рассмотрев все за и против для двух вариантов: создание собственной ОСРВ и приобретение готовой системы.