Хотел бы написать небольшой цикл статей посвященных тому, как я написал свою RTOS с какими трудностями столкнулся и зачем вообще писать свою RTOS если уже есть FreeRTOS, RTX, embOS и т.д. список достаточно большой.
Рубрика «осрв»
Что необходимо знать, чтобы написать свою Embedded RTOS (часть 1)
2021-12-29 в 23:05, admin, рубрики: C, em_task, open source, rtos, осрвКак реверс-инжиниринг чужой инерциальной навигационной системы перерос в свою собственную разработку
2021-03-19 в 6:16, admin, рубрики: MEMS, Блог компании Миландр, БПЛА, дрон, инерциальная навигация, инженерные системы, ИНС, испытания, коптер, математическое моделирование, осрв, Производство и разработка электроники, реверс-инжиниринг, схемотехника, цифровой сигнальный процессорСегодня, благодаря MEMS-датчикам, инженеры начинают использовать инерциальные навигационные системы везде, где есть движение. В зависимости от требуемой точности как по углу, так и по координатам, применяют МЕМS-датчики разного уровня цены и интегрированности: от "все датчики в одной микросхеме" до "один датчик - одна микросхема". А сама инерциальная навигация, как часть инженерных систем, впервые появилась в торпедах, кораблях, ракетах и самолетах.
Linux в режиме реального времени
2020-11-23 в 9:34, admin, рубрики: linux, ruvds_статьи, Блог компании RUVDS.com, Настройка Linux, осрв, Разработка под Linux, реальное время, системное администрированиеОперационная система реального времени необходима, когда к работе процессора или потоку данных предъявляются жесткие временные требования. Таким образом она часто выполняет роль блока управления в специальных устройствах. Проведение научных экспериментов, приложения визуализации в медицине, промышленные устройства управления являются системами реального времени. Механизмы впрыска топлива автомобильных двигателей, контроллеры бытовой и военной техники также являются системами реального времени.
При этом разные события имеют различные временные требования. Например, требование к задержке для антиблокировочной тормозной системы может составлять от 3-5 миллисекунд. То есть с момента, когда колесо впервые обнаруживает, что оно скользит, у системы, управляющей антиблокировочными тормозами, есть от 3-5 миллисекунд, чтобы отреагировать и исправить ситуацию.
Возможности ядра в реальном времени существует уже более десяти лет в экосистеме программ с открытым исходным кодом. Столько же времени доступна поддержка Red Hat Enterprise Linux (RHEL) для ядра реального времени. Тем не менее многие системные администраторы неверно истолковывают его основные концепции и фактическое рабочее поведение. В этой статье я опишу некоторые из его основных функций, отличия от стандартного ядра и шаги по установке.Читать полностью »
Нерушимая память, нерушимые процессы
2020-02-24 в 14:19, admin, рубрики: C, Анализ и проектирование систем, космос, осрв, системное программирование, транзакции
Прочитав недавно (1, 2, 3) с каким трудом даются “космические” процессоры, невольно задался мыслью, раз “цена” за устойчивое железо настолько высока, может быть стоит сделать шаг и с другой стороны — сделать устойчивый к спецфакторам “софт”? Но не прикладной софт, а скорее среду его выполнения: компилятор, ОС. Можно ли сделать так, чтобы выполнение программы в любой момент можно было оборвать, перезагрузить систему и продолжить с того же (или почти с того же) места. Существует же в конце концов гибернация.
Читать полностью »
Динамическая память в системах жёсткого реального времени
2020-02-02 в 14:43, admin, рубрики: C, github, half-fit, heap, malloc, MIT, o(1), open source, safety critical, tlsf, Алгоритмы, аллокатор, буква ё, встраиваемые системы, детерминизм, динамическая память, ё моё, куда делась вся память, куча, микроконтроллеры, осрв, программирование микроконтроллеров, реальное время, системное программирование, худший случай, хуже уже не будет доказаноСуществует класс приложений реального времени, для которых тяжело предсказать потребности в распределении памяти во время выполнения статически. В этот класс входят, например, встраиваемые реализации стеков некоторых коммуникационных протоколов, где поведение и распределение ресурсов определяется отчасти активностью других агентов в сети. Классический подход в таких случаях заключается в использовании блочных менеджеров памяти, выделяющих фрагменты фиксированного размера (как это сделано, например, в LwIP). Этот подход накладывает нежелательные функциональные и качественные ограничения на реализацию. В этой заметке я предлагаю точку зрения, что традиционные (не блочные) аллокаторы незаслуженно обделены вниманием разработчиков систем реального времени, делюсь соображениями по релевантным вопросам, жалуюсь на жизнь, и предлагаю улучшить положение дел.
(КДПВ – см. аннотацию к диаграмме в конце)
Вся правда об ОСРВ. Статья #28. Программные таймеры
2019-06-13 в 9:15, admin, рубрики: api, rtos, микроконтроллеры, осрв, программирование микроконтроллеров, программные таймеры, системное программирование, служебные вызовыИдея программных таймеров была введена в одной из предыдущих статей. Они являются объектами ядра, предоставляющими задачам простой способ запуска событий по времени, или, чаще всего, способ выполнять действия на регулярной основе. Все детали функционала, связанного со временем (точность, обработка прерываний и т.д.) в Nucleus SE были рассмотрены в предыдущей статье.
Вся правда об ОСРВ. Статья #23. Очереди: введение и базовые службы
2018-12-10 в 8:10, admin, рубрики: api, rtos, взаимодействие задач, микроконтроллеры, осрв, очереди, программирование микроконтроллеров, служебные вызовы
Очереди были упомянуты в одной из предыдущих статей (#5). Они предоставляют более гибкий способ передачи простых сообщений между задачами по сравнению с почтовыми ящиками.
Читать полностью »
Вся правда об ОСРВ. Статья #19. Семафоры: введение и базовые службы
2018-11-09 в 12:37, admin, рубрики: api, rtos, взаимодействие задач, микроконтроллеры, осрв, программирование микроконтроллеров, семафоры, служебные вызовы
Семафоры были упомянуты в одной из предыдущих статей (#5). Их основная задача – управление доступом к ресурсам.
Читать полностью »
Вся правда об ОСРВ. Статья #18. Группы флагов событий: вспомогательные службы и структуры данных
2018-11-06 в 10:07, admin, рубрики: api, rtos, взаимодействие задач, группы флагов событий, микроконтроллеры, осрв, программирование микроконтроллеров, служебные вызовы, флаги событий
Эта статья продолжает описывать группы флагов событий.
Предыдущие статьи серии:
Статья #17. Группы флагов событий: введение и базовые службы
Статья #16. Сигналы
Статья #15. Разделы памяти: службы и структуры данных
Статья #14. Разделы памяти: введение и базовые службы
Статья #13. Структуры данных задач и неподдерживаемые вызовы API
Статья #12. Службы для работы с задачами
Статья #11. Задачи: конфигурация и введение в API
Статья #10. Планировщик: дополнительные возможности и сохранение контекста
Статья #9. Планировщик: реализация
Статья #8. Nucleus SE: внутреннее устройство и развертывание
Статья #7. Nucleus SE: введение
Статья #6. Другие сервисы ОСРВ
Статья #5. Взаимодействие между задачами и синхронизация
Статья #4. Задачи, переключение контекста и прерывания
Статья #3. Задачи и планирование
Статья #2. ОСРВ: Структура и режим реального времени
Статья #1. ОСРВ: введение.
Читать полностью »