uRTOS в режиме кооперативной ОС

uRTOS

В предыдущей статье была рассмотрена работа ОС uRTOS в вытесняющем режиме. С тех пор кое-что в системе изменилось, исходник был тщательно перелопачен, перекомпонован, дополнен комментариями. Также в ОС была добавлена возможность работы в кооперативном режиме. Остановимся на этом чуток подробнее.

Читать дальше
  • +12
  • 13 апреля 2013, 01:03
  • uRTOS
  • 1

Спасаем стек

Продолжим тему о микроконтроллерах с малым объёмом памяти. Я обычно подразумеваю под таковыми те, у которых ОЗУ 512-1К. Есть, конечно и со 128, и 256 байтами, но там уже не до СИ. При использовании ОС, которая умеет в переключение нитей, возникает проблема памяти для стека, тем более, что у каждой нити он свой. Стек расходуется в основном на две вещи (помимо контекста при переключении нитей): сохранение регистров и выделение фрейма при вызове функций. Соответственно, чем глубже вложенность вызовов, тем больше расходуется стек. Неприятные сюрпризы могут вылезти при использовании библиотечных функций, таких как printf (лол, никогда не знаешь, что там внутри, хотя, можно и посмотреть для интереса).


Читать дальше

ещё одна OS (для STM8S003)

Я люблю писать прошивки, которые не содержат всяких циклов ожидания и при случае используют переход в ждущий или спящий режим, чтоб продолжиться дальше после прихода прерывания. Но в последнее время, когда понадобилось написать прошивку с пользовательским диалогом через терминал, я понял, что начиная с некоторого объёма, машину состояний запрограммировать не так-то просто (хотя я это сделал-таки).


Читать дальше

Портируем scmRTOS на MCU 8051

Только хардкор
В конце концов меня задолбала OSAL. Основной проблемой стала не ее кривость а сам принцип кооперативных систем. По факту кооперативка это более развитая форма конечного автомата. А это означает, что при разрастании системы увеличивается количество состояний. Причем эта зависимость ни хрена не линейная. В конце концов, в большом проекте, вы получите дохренилион глобальных состояний, локальных состояний, еще более локальны состояний и еще… При этом названия у этих состояний будут самые безумные, в определенный момент вы просто задолбаетесь выдумывать новые имена.

Было решено использовать ртос. Погуглив я ничего не нашел (кроме FreeRTOS, uC, и т.п. систем). По непонятным причинам я не стал их использовать, уже не помню почему я от них отказался. В итоге захотелось портировать уже обкатанную систему scmRTOS.


Читать дальше
  • +11
  • 20 ноября 2012, 03:24
  • a9d

SCM-RTOS

SCM RTOS — жесткая реальность реальной оси.


В сообществе уже было несколько статей по SCM rtos, начиная с приделки к AVR студии и кончая межпроцессным взаимодействием, остался неосвещенным очень существенный вопрос — в чем же собственно ее реальтаймность и как это посмотреть. На нескольких примерах я попытаюсь это проиллюстрировать.

Читать дальше
  • -3
  • 09 октября 2012, 16:07
  • basil

ОСРВ OSA первоначальное знакомство

Разведение ОС в домашних условиях


Во-первых по OSA есть хороший учебник на самом же сайте осы www.pic24.ru/doku.php/osa/ref/download/intro и отличный chm дается прямо с ней, во-вторых на сайте навалом хороших примеров. Приводимые простые примеры только дополняют примеры автора осы. Это чисто практический опыт первоначального знакомства, вообще же это дело серьезное и требует внимания и серьезного отношения. Пятьсот раз я был уверен что это глюк операционной системы и в конечном итоге оказывалось что я всегда ошибался.

Читать дальше

Sleep для RTOS

Хочу написать о достаточно полезной вещи(на мой взгляд) — функции sleep для RTOS.
Что это такое и зачем это надо? Допустим вам необходимо вывести что нибудь на LCD дисплей, а контроллер который там установлен не такой быстрый как наш stm32 и нам приходитбся делать паузы чтобы он успешно обработал наши запросы. Но если мы будем использовать обычный for для реализации паузы — то это будет напрасная трата ресурсов процессора, пока мы ждем мы могли бы выполнить еще что нибудь полезное.

update: Задача решена в любом RTOS, а это только доработка планировщика задач от DI. Рекомендуется использовать полноценные RTOS


Читать дальше

Способ отладки механизмов вытесняющих RTOS на ПК топик-ссылка

Большая часть кода программ для МК может быть с успехом отлажена и протестирована на ПК. Зачем это нужно? Это удобно и сильно экономит время. Гораздо быстрее запустить программу на компьютере, посмотреть её вывод, походить по шагам, чем мучаться с железными отладчиками или мигать светодиодом. Плюс появляется удобная возможность писать авто-тесты. Автор заметки предлагает интересный способ имитации среды с прерываниями, в том числе позволяющий отлаживать внутренние механизмы вытесняющих RTOS.

Операционная система реального времени Chibios/RT (Введение)

chibios
Автора давно интересовала тема применения операционных систем реального времени в микроконтроллерах. Недавно начал освоение stm32, закупив все Discovery до которых дотянулись жадные руки — stm32vl-discovery, stm32l-discovery, stm32F4-discovery. Начал изучать соответствующие семейства микроконтроллеров — stm32F100, stm32L152, stm32F407 — сразу наступил на грабли — библиотеки периферии у них разные… То есть Standard Peripherals Library для каждого контроллера часто по-разному называет регистры, таймеры, шины, и прочую периферию… Получается, что с каждым контроллером придется разбираться отдельно. Сама идея CMSIS оказалась опошлена — хотя ядро и общее, но работать программисту приходится в основном с периферией! А она отличается в разных семействах STM32 (я молчу про других производителей ARM-CM3). Хочется отвлечься от деталей реализации и сразу попробовать процессор «в бою».


Читать дальше