Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2754
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Запуск FreeRTOS

665

задачи, и это может быть полезно, если мы хотим получить информацию о конкретном потоке.

Наконец, FreeRTOS предоставляет несколько удобных процедур для автоматического форматирования необработанных данных статистики в удобочитаемый (ASCII) формат. Например, vTaskGetRunTimeStats() форматирует необработанные данные, сгенерированные uxTaskGetSystemState(), в удобочитаемую (ASCII) таблицу, показывающую количество времени, которое каждая задача провела в состоянии «выполняется» (сколько времени ЦПУ затрачивается каждой задачей). Для получения дополнительной информации обратитесь к этой странице44 онлайн документации FreeRTOS.

23.10. Альтернативы FreeRTOS

Как указано во введении к данной главе, на рынке существует несколько хороших альтернатив FreeRTOS. Здесь вы найдете несколько слов о других хороших ОСРВ, доступных для платформы STM32.

23.10.1. ChibiOS

Если вы не новичок в платформе STM32, возможно, вы уже знаете о ChibiOS45. ChibiOS – это независимый проект с открытым исходным кодом, начатый инженером STMicroelectronics Джованни Ди Сирио (Giovanni Di Sirio), который работает на площадке ST в Неаполе (Италия). ChibiOS довольно популярна в сообществе STM32 благодаря тому, что Джованни обладает глубокими знаниями о платформе STM32, и это позволило ему создать, вероятно, одно из наиболее оптимизированных решений для микроконтроллеров STM32. Тем не менее, помимо STM32, ChibiOS предназначена для работы на любой архитектуре микроконтроллеров.

ChibiOS по существу состоит из двух уровней: ядра (названного ChibiOS/RT или ChibiOS/NIL) и полноценного HAL (названного Chibios/HAL), который позволяет абстрагироваться от основных аппаратных особенностей. Хотя вполне возможно смешать официальный CubeHAL от ST с ядрами ChibiOS/RT/NIL, вероятно, ChibiOS/HAL является более простым решением для программирования устройств STM32, по крайней мере для поддерживаемых периферийных устройств. Несмотря на то что у автора книги нет непосредственного опыта с ней, ChibiOS имеет действительно хорошую репутацию среди множества его знакомых и читателей данной книги. Кроме того, вы можете найти в сети46 несколько проектов и хороших руководств на основе этой ОСРВ и связанного с ней HAL. В отличие от текущей рабочей версии FreeRTOS, Chibios использует модель полного статического выделения памяти, что позволяет использовать ее в тех областях применения, где динамическое выделение запрещено. Наконец, Джованни также предоставляет предварительно настроенную версию Eclipse с названием ChibiStudio, которая поставляет уже предварительно настроенные все необходимые инструменты (инструментарий GCC, OpenOCD и т. д.). К сожалению, на момент написания данной главы она работает только в ОС Windows.

ChibiOS использует модель смешанного лицензирования. Ядра ChibiOS RT и NIL распространяются под лицензией GPL 3, HAL распространяется под более снисходительной лицензией Apache 2.0. GPL 3 запрещает использование программного обеспечения, если

44http://www.freertos.org/rtos-run-time-stats.html

45http://www.chibios.org/

46http://www.playembedded.org/

Запуск FreeRTOS

666

вы продаете электронные устройства без публичного выпуска исходного кода микропрограммы. Существует «бесплатная коммерческая лицензия», которая удаляет GPL 3 для коммерческих пользователей. Эта лицензия требует процесса регистрации и действительна для 500 ядер микроконтроллеров. Бесплатная лицензия может быть продлена на неопределенный срок, просто повторно отправив форму запроса на дополнительные 500 ядер.

23.10.2. ОС Contiki

Contiki47 – это еще одна ОСРВ с открытым исходным кодом, которая делает сильный акцент на беспроводных датчиках с пониженным энергопотреблением и устройствах IoT. Это проект, начатый Адамом Данкелсом (Adam Dunkels) в 2003 году, но в настоящее время его поддерживают несколько крупных компаний, включая Texas Instruments и Atmel. Она довольно популярна среди устройств CC2xxx от TI. Она основана на планировщике ядра и независимом стеке TCP/IP, предназначенном для устройств с малым количеством ресурсов, обеспечивающих сетевое соединение IPv4, стек uIPv6 и стек Rime, который представляет собой набор пользовательских облегченных сетевых протоколов, предназначенных для беспроводных сетей с пониженным энергопотреблением. Стек IPv6 был предоставлен Cisco и, когда он был выпущен, стал самым легковесным стеком IPv6, получившим сертификат IPv6 Ready. Стек IPv6 также содержит протокол маршрутизации для сетей с пониженным энергопотреблением и с потерями (Routing Protocol for Low power and Lossy Networks, RPL) для сетей IPv6 с пониженным энергопотребле-

нием и с потерями и уровнем сжатия и адаптации заголовков 6LoWPAN для каналов

IEEE 802.15.4.

ST предоставляет руководство по применению UM200048, в котором описывается, как начать работу с ОС Contiki на ее микроконтроллерах в сочетании с приемопередатчиком SPIRIT для проектирования беспроводных устройств с частотой менее 1 ГГц.

Contiki распространяется с лицензией в стиле BSD, которая позволяет использовать ее исходный код в коммерческих приложениях без каких-либо ограничений.

23.10.3. OpenRTOS

OPENRTOS – это коммерческая версия FreeRTOS, описанной в данной главе и официально поддерживаемой ST. OPENRTOS и FreeRTOS используют одну и ту же кодовую базу. Дополнительной ценностью, предлагаемой OPENRTOS, является «коммерческая и юридическая оболочка (commercial and legal wrapper)» для пользователей FreeRTOS.

Разработчики переходят на лицензию OPENRTOS по двум основным причинам: возможность продавать свои устройства и/или поставлять производный код без его публикации и специализированная поддержка при разработке пользовательских решений на основе OPENRTOS. Для крупных компаний возможность получить платную поддержку действительно важна.

47http://www.contiki-os.org/

48http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00255309.pdf