Операционные системы микроконтроллеров. На примере операционной системы реального времени FreeRTOS [Владимир Мединцев] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

ОПЕРАЦИОННЫЕ СИСТЕМЫ
МИКРОКОНТРОЛЛЕРОВ
Владимир Мединцев

На примере операционной системы реального времени FreeRTOS

© 2023, Владимир В. Мединцев. «Операционные системы
микроконтроллеров». Все права защищены. Ни одна часть этого
документа не может быть воспроизведена или передана каким-либо
образом, электронным, механическим, методом фотокопирования,
записи или как-то ещё без письменного разрешения автора.

УДК 004
ББК 32.973
М42

М42

Мединцев Владимир
Операционные системы микроконтроллеров : На примере
операционной системы реального времени FreeRTOS / Владимир
Мединцев. — [б. м.] : Издательские решения, 2023. — 228 с.
ISBN 978-5-0060-0974-5
УДК 004
ББК 32.973

12+ В соответствии с ФЗ от 29.12.2010 №436-ФЗ

ISBN 978-5-0060-0974-5

Оглавление
Оглавление.................................................................. 3

Введение ...................................................................... 7

Глава 1. Суперцикл .............................................. 10
FreeRTOS™ ................................................................................................. 13
Терминология .............................................................................................. 17

Глава 2. Структура FreeRTOS ......................... 19
Файлы FreeRTOS ........................................................................................ 23
Типы данных и стиль ................................................................................. 28
Имена переменных ..................................................................................... 28
Имена функций........................................................................................... 29
Форматирование ......................................................................................... 29
Макросы ...................................................................................................... 29

Глава 3. Управление памятью ......................... 31
Схема Heap_1 ............................................................................................. 33
Схема Heap_2 ............................................................................................. 35
Схема Heap_3 ............................................................................................. 37
Схема Heap_4 ............................................................................................. 37
Схема Heap_5 ............................................................................................. 40
Функции работы с кучей ........................................................................... 42

Глава 4. Управление задачами ........................ 44
Приоритеты задач .................................................................................... 47
Квантование времени ................................................................................ 48
Реализация задачи ...................................................................................... 50
Создание задачи ......................................................................................... 51
Блокировка задачи ...................................................................................... 52
Блокирующие и не блокирующие задачи .................................................. 55
Задача простоя .......................................................................................... 56
Практические эксперименты ................................................................... 59
Квант времени ............................................................................................ 61
3

Функции управления приоритетами ........................................................ 68
Удаление задач ........................................................................................... 69
Планировщик .............................................................................................. 69
Приоритетное упреждающее планирование ............................................ 70
Упреждающее планирование с приоритетом .......................................... 72
Кооперативная многозадачность .............................................................. 73

Глава 5. Управление очередями ..................... 74
Создание очереди ....................................................................................... 77
Отправка данных в очередь ...................................................................... 77
Получение данных ...................................................................................... 79
Блокировка задач ........................................................................................ 80
Получение из нескольких источников ....................................................... 85
Данные переменной длины......................................................................... 87
Проблема использования очередей ........................................................... 91

Глава 6. Обработка прерываний ..................... 95
Функции API и обработчики прерываний ................................................ 96
Макросы portYIELD_FROM_ISR() и portEND_SWITCHING_ISR() ..... 99
Отложенная обработка прерываний .................................................... 100
Бинарный семафор ................................................................................... 103
Создание бинарного семафора ................................................................ 105
«Взять» семафор xSemaphoreTake() ....................................................... 105
«ДАТЬ» семафор xSemaphoreGiveFromISR() ........................................ 106
Синхронизация прерывания и задачи...................................................... 107
Счетный семафор .................................................................................... 110
Создание счетного семафора .................................................................. 111
Практический пример.............................................................................. 112
Эффективность дизайна ........................................................................ 114
Вложенность прерываний....................................................................... 115

Глава 7. Программные таймеры ...................117
Контекст программного таймера ......................................................... 120
Очередь команд таймера ........................................................................ 121
Создание и запуск программного таймера ............................................ 122
Идентификатор таймера ...................................................................... 125
Изменение периода таймера................................................................... 128
Практическое использование .................................................................. 130
Обработка