- Не пытайтесь повысить быстродействие уже существующих RTOS
путем доработки их исходного кода. Код RTOS обычно небольшой
по размеру, но требует тщательной проверки на десятках разнообразных
задач. Не хватает быстродействия - тщательней конструируйте проект
( число и назначение задач, их приоритет, размер блоков для передачи
данных между задачами, etc.)
- Не пытайтесь придумывать свои синхронизационные примитивы. На практике
все задачи синхронизации можно успешно решить уже существующими
семафорами, очередями, etc.
- Не используйте malloc(), используйте fixed-sized blocks memory allocators.
Очень мало аппликаций, где malloc() действительно нужен (GUI).
- Тщательно планируйте число задач и их приоритеты, избегайте sharing
ресурсов между задачами самого высокого и самого низкого приоритетов.
- При обмене данными между задачами через очереди для повышения
быстродействия пересылайте данные блоками, а не байтами. Элементом
очереди при этом будет указатель на блок памяти, полученный от fixed-sized
blocks memory allocators.
- Избегайте использование синхронизационных функций RTOS с таймаутами.
Хорошо сконструированной системе очень редко нужны таймауты,
отличные от INFINITE. Длинные временные задержки можно получать вызовом
системных функций типа Sleep().
- Уменьшайте,насколько возможно, число прерываний в системе.