Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Мы продолжаем изучение FreeRTOS — операционной системы для микроконтроллеров. В пятой части статьи основное внимание сфокусировано на очередях — безопасном механизме взаимодействия задач друг с другом. Будут показаны опасности организации взаимодействия между задачами «напрямую» и обосновано применение очередей, а также рассказано об основных принципах, заложенных в функционирование очередей. Читатель узнает о том, как создать очередь, как записать данные в очередь и прочитать их оттуда. Будут освещены вопросы целесообразного выбора типа данных, хранящихся в очереди, и назначения приоритетов задачам, которые записывают и считывают данные из очереди. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
В этой статье будет продолжено изучение FreeRTOS — операционной системы для микроконтроллеров. Здесь описан процесс принудительного изменения приоритета задач в ходе их выполнения, показано, как динамически создавать и уничтожать задачи. Рассмотрен вопрос о том, как расходуется память при создании задач. Подведен итог по вытесняющей многозадачности во FreeRTOS и рассказано о стратегии назначения приоритетов задачам под названием Rate Monotonic Scheduling. Далее мы обсудим тему кооперативной многозадачности, ее преимущества и недостатки и приведем пример программы, использующей кооперативную многозадачность во FreeRTOS. Автор уделил внимание и альтернативным схемам планирования: гибридной многозадачности и вытесняющей многозадачности без разделения времени. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ Продолжать подробное рассмотрение и демонстрацию возможностей FreeRTOS на платформе реального МК не всегда удобно. Гораздo удобнее использовать в качестве платформы любой х86 совместимый настольный компьютер, используя соответствующий порт FreeRTOS. Все последующие примеры будут приведены для порта для х86 совместимых процессоров, работающих в реальном режиме. Мы используем бесплатный пакет Open Watcom, включающий Си-компилятор и среду разработки, об особенностях установки которого будет сказано ниже. Получаемые в результате компиляции и сборки исполнимые (ехе) файлы могут быть выполнены из интерпретатора команд Windows (cmd.exe). В качестве альтернативы можно использовать бесплатный эмулятор ОС DOS под названием DOSBox, который позволит выполнять примеры не только из-под Windows, но и из-под UNIX-подобных (FreeBSD, Fedora, Gentoo Linux) и некоторых других ОС. Читать полностью »
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Прежде чем говорить об особенностях FreeRTOS, следует остановиться на основных принципах работы любой ОСРВ и пояснить значение терминов, которые будут применяться в дальнейшем. Эта часть статьи будет особенно полезна читателям, которые не знакомы с принципами, заложенными в ОСРВ.
Основой ОСРВ является ядро (Kernel) операционной системы. Ядро реализует основополагающие функции любой ОС. В ОС общего назначения, таких как Windows и Linux, ядро позволяет нескольким пользователям выполнять множество программ на одном компьютере одновременно.
Каждая выполняющаяся программа представляет собой задачу (Task). Если ОС позволяет одновременно выполнять множество задач, она является мультизадачной (Multitasking). Читать полностью »
Я разработал немногим более 10 электронных устройств и вполне обходился в их низкоруровневой работе без операционной системы. Ситуация поменялась, когда функционал следующего девайса резко расширился. Кроме того, появилась необходимость в задаче, которая вызывается через заданные интервалы времени, причем точность вызова влияет на результат. Также стало понятно, что написать все ПО за выделенное время не получится, и оно будет создано позже. После недолгих размышлений я понял, что в проект необходимо включить операционную систему реального времени (ОСРВ или RTOS). Читать полностью »
При разработке навигационной системы мобильного робота нам были необходимы беспроводные радио модули. Сначала мы попробовали радио модули tr24. Но оказалось, что они передают на слишком малое расстояние. Следующими радио модулями, которые мы попробовали стали rfm12. Для работы с ними существует бесплатная библиотека для AVR. В этой статье я опишу как использовать эти радио модули и опишу наш опыт их использования. Читать полностью »
В нашей предыдущей статье, посвященной устройству Arduino, мы обсуждали работу бутлодера. Напомню, что обмен данными ведется согласно протоколу STK500V2. В отличие от своего предшественника 1й версии он позволяет прошивать контроллеры с объемом памяти более 128К (актуально для новых Mega2560). Кроме того, работает на увеличенной скорости 115200 бод.
Исходный код бутлодера позволяет использовать его в различных контроллерах AVR: ATmega8, ATmega16, ATmega32, ATmega8515, ATmega8535, ATmega162, ATmega128, ATmega1280, ATmega2560, AVR_ATmega2561 без каких-либо доработок.
Одна из главных идей проекта Arduino – создать дешевое и простое электронное устройство, для которого можно создать модули расширения (shield) и написать код. По замыслу разработчиков это позволит использовать плату в различных проектах. Но на практике возникает необходимость для каждой задачи в отдельности создать свое электронное устройство. Библиотеки, среда разработки и бутлодер в совокупности могут серьезно облегчить этот процесс. Читать полностью »
При создании навигационной системы робота для участия в Eurobot 2011 мы решили использовать радио модули tr24. Но при работе с ними выяснилась одна проблема: иногда они теряют передаваемые пакеты. В нашей системе планировалось по радиоканалу передавать управляющие команду, поэтому потеря данных была просто недопустима. В связи с этим мне пришлось разработать протокол общения радио модулей tr24, гарантирующий доставку пакета.
Сначала в вкратце опишу, что собой представляла система. Имелось три периферийных маяка, которые должны были по радиоканалу принимать команды и выполнять некоторый набор действий. Имелся локатор на роботе противника, который должен был по радиоканалу обмениваться данными с локатором на нашем роботе. Оба локатора должны были по очереди слать команды маякам и друг другу. Аппаратно все пять устройств были выполнены идентично. Про схему подключения радио модулей tr24 в этих устройствах можете посмотреть здесь. Подробнее про навигационную систему робота - здесь.