ОС как библиотека

Иногда внезапно возникает необходимость сделать какую-то работу в коде программы в синхронном режиме — то есть, не конечным автоматом, а просто дожидаясь результата каких-то действий. Например, скачать http-страничку, или, того хуже, https-страничку.

Но и тормозить основной цикл тоже как-то не очень хорошо. На этот случай есть известное решение — ОС.

Но если требуется допилить уже существующий проект с минимальным вмешательством в остальной код?
Вот мне стало интересно сделать мини-ОС, которая подключается к проекту как библиотека. То есть, делаем вызов какой-нибудь функции os_Init() и получаем возможность создавать потоки, не вмешиваясь в работу основного цикла. Он продолжает работать, как будто никакой ОС и нет, просто иногда управление передаётся дополнительным потокам.



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

Algorithm builder

джокерВ этом топике хочу рассказать о Алгоритм Буилдере (дальше по тексту АБ), плюсы, минусы пример программы.
Все ниже изложенное это мое мнение… надеюсь объективное.Споров вокруг АБ наверно не меньше, чем дискуссий о том какому микроконтроллеру отдать предпочтение AVR или PIC.
И так о бо всем по порядку…

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

STM32 и Дзен. Компиляция и запуск отдельных программ.

По просьбам трудящихся решил поделиться своими наработками.



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

Суть в следующем.
Имеется плата, на которой стоит микроконтроллер STM32 и, например, SD-карточка. Идеальный вариант, если есть SRAM, подключенный по FSMC, но не обязательно. Внутренней памяти, на первое время, хватит.

Что нужно: компилить в Keil (или, возможно, другой среде) программу, заливать ее на SD-карточку и запускать на контроллере.

Как будем запускать?
Сразу на ум приходят два очевидных варианта:
1) Если программа небольшая, в несколько килобайт — заливаем ее в RAM и оттуда запускаем.
2) Если программа побольше — предварительно ее переписываем во внутренний флеш и запускаем из него.

Ну а если программа занимает больше, чем свободно во внутреннем флеше, единственный выход — внешний RAM по FSMC.

В этой статье остановлюсь на первом варианте.

Этап первый. SD и FAT.


Подробно описывать не буду. На эту тему много всего написано как в инете, так и в этом сообществе.
SD-карточку можно подключить по SPI, можно по SDIO (если контроллер F103). И то и то есть в примерах стандартной периферийной библиотеки от ST.
Файловую систему легко поднять с помощью библиотеки FatFs. О ней, вроде, тоже были статьи.
И вообще, можно и без файловой системы обойтись, главное, чтобы можно было откуда-нибудь считать предварительно откомпиленную программу.

Этап второй. Подготовка проекта с программой.




Читать дальше
  • +8
  • 02 октября 2011, 18:42
  • Ezhik
  • 1

RTOS: распространенные заблуждения

Шесть распространенных заблуждений о применении RTOS в малоресурсных МК

(18.03.2011 изменил название статьи: "… при проектировании встраиваемых приложений" -> "… в малоресурсных МК")

Среди опасений, являющихся препятствием к освоению RTOS, встречаются и малообоснованные, которые, тем не менее, зачастую являются решающим фактором выбора не в пользу RTOS. С другой стороны существуют и противоположные заблуждения, сильно преувеличивающие возможности RTOS и выгоды ее применения. Некоторые довольно часто встречающиеся заблуждения довольно легко развеиваются.

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

Заметка о разумном использовании ОС


Впервые о том, что на микроконтроллерах могут работать операционные системы я услышал от Дихалта. До этого я относительно успешно писал для МК на Си и ассемблере и, как ребенок, радовался каждому сэкономленному байту. Но сейчас я хочу поделиться мыслью, которую, возможно, большая часть (куда хотите ударение ставьте) читателей-писателей этого сайта сочтет крамольной. И мысль эта заключается в следующем:
Время разработчика дороже чем память.



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