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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Владимир Мединцев
Publisher: Издательские решения
Year: 2023

Language: Russian
Pages: 228

Оглавление
Введение
Глава 1. Суперцикл
FreeRTOS™
Терминология
Глава 2. Структура FreeRTOS
Файлы FreeRTOS
Типы данных и стиль
Имена переменных
Имена функций
Форматирование
Макросы
Глава 3. Управление памятью
Схема Heap_1
Схема Heap_2
Схема Heap_3
Схема Heap_4
Схема Heap_5
Функции работы с кучей
Глава 4. Управление задачами
Приоритеты задач
Квантование времени
Реализация задачи
Создание задачи
Блокировка задачи
Блокирующие и не блокирующие задачи
Задача простоя
Практические эксперименты
Квант времени
Функции управления приоритетами
Удаление задач
Планировщик
Приоритетное упреждающее планирование
Упреждающее планирование с приоритетом
Кооперативная многозадачность
Глава 5. Управление очередями
Создание очереди
Отправка данных в очередь
Получение данных
Блокировка задач
Получение из нескольких источников
Данные переменной длины
Проблема использования очередей
Глава 6. Обработка прерываний
Функции API и обработчики прерываний
Макросы portYIELD_FROM_ISR() и portEND_SWITCHING_ISR()
Отложенная обработка прерываний
Бинарный семафор
Создание бинарного семафора
«Взять» семафор xSemaphoreTake()
«ДАТЬ» семафор xSemaphoreGiveFromISR()
Синхронизация прерывания и задачи
Счетный семафор
Создание счетного семафора
Практический пример
Эффективность дизайна
Вложенность прерываний
Глава 7. Программные таймеры
Контекст программного таймера
Очередь команд таймера
Создание и запуск программного таймера
Идентификатор таймера
Изменение периода таймера
Практическое использование
Обработка прерываний в задаче – демоне
Централизация
Практическое использование демона
Глава 8. Потокобезопасность
Критические секции кода
Приостановка планировщика
Глава 9. Снижение энергопотребления
Макрос portSUPPRESS_TICKS_AND_SLEEP()
TickLess Idle на практике
Корректировка времени
Глава 10. Мьютексы
Создание мьютекса
Проблемы использования мьютексов
Инверсия приоритета
Наследование приоритетов
Пат
Рекурсивные мьютексы
Планирование задач
Задача привратник
Глава 11. Группы событий
Группы, флаги, биты
Создание группы событий
Установка событий
Ожидание событий
Практика
Проблемы точки синхронизации
Создание точки синхронизации
Глава 12. Уведомления
Использование уведомлений
Отправка уведомлений
Получение уведомлений
Уведомления как семафоры
Уведомления
Ожидание уведомлений
Еще один пример
Глава 13. Отладка и трассировка
Стороннее Программное обеспечение
Генератор кода
Мониторинг и отладка
Средства операционной системы
Статистика времени выполнения задачи
Величина стека
Функции обратного вызова
Переполнение стека
Глава 14. Макросы
Задачи
Очереди
Таймера
Группы событий
Куча
Заключение
Об авторе