Доброе время суток!
Продолжаем говорить об операционных системах реального времени и на повестке дня у нас mbed os.
mbed – это платформа и операционная система для подключенных к Интернету, устройств на базе 32-разрядных ARM Cortex-M микроконтроллеров. Такие устройства также известны как, устройства “Интернет вещей”. Проект совместно разработанный с компанией ARM и с ее технологическими партнерами.
Разработка программного обеспечения.
Приложения могут быть разработаны только для mbed платформы (http://mbed.org/). Для разработки используется онлайн IDE среда для написания и компиляции кода. Код пишется и составляется в браузере, и храниться на облаке, с помощью С++ компилятора ARMCC C/C++ компилируется код. Mbed IDE предоставляет рабочее пространство с возможностью импорта и обмена кодом с распределенным управлением версией программы, и генерации документации на программу.
Для разработчика предоставленный огромный инструментарий для создания и написания прошивок для микроконтроллера. С mbed можно работать на смарт-устройствах. Он состоит из основных библиотек, предоставляющих для микроконтроллера драйвера периферийных устройств, ethernet, RTOS и среды выполнения, инструменты для сборки и сценарии тестирования, и отладки.
БД содержит библиотеки драйверов для устройств, которые могут быть подключены к микроконтроллерам для создания конечного продукта.
Mbed HDK предназначен для OEM-производителей, а также предоставляет информацию для формирования специализированного оборудования для поддержки mbed SDK. Он состоит из Firmware Interface и схем, которые могут быть легко использованы для создания макетных(печатных) плат, модулей OEM и перепрограммируемых продуктов, применимых для производства.
Разработка проекта
Проект разработан ARM в сочетании с другими крупными технологическими компаниями и mbed сообщества разработчиков.
Ядро платформы, разработанные в рамках лицензии Apache License 2.0. Mbed работает с HAL от производителей микроконтроллеров.
В этой статье создадим три проекта для поднятия mbed os и запустим их. Проекты я буду создавать для stm32f429i-disco.
Пример 1. Мигание светодиодов.
#include "mbed.h" DigitalOut myled(LED1); int main() { while(1) { myled = 1; wait(0.2); myled = 0; wait(0.2); } }
Пример 2. Эхо на UART.
#include "mbed.h" #include "test_env.h" #define TXPIN USBTX #define RXPIN USBRX namespace { const int BUFFER_SIZE = 48; char buffer[BUFFER_SIZE] = {0}; } int main() { MBED_HOSTTEST_TIMEOUT(20); MBED_HOSTTEST_SELECT(echo); MBED_HOSTTEST_DESCRIPTION(Serial Echo at 9600); MBED_HOSTTEST_START("MBED_A9"); Serial pc(TXPIN, RXPIN); pc.baud(115200); while (1) { pc.gets(buffer, BUFFER_SIZE - 1); pc.printf("%s", buffer); } }
Пример 3. AT на BT(BT_BOARD V1.05).
#include "mbed.h" #include "test_env.h" #define TXPIN USBTX #define RXPIN USBRX namespace { const int BUFFER_SIZE = 48; char buffer[BUFFER_SIZE] = {0}; } int main() { MBED_HOSTTEST_TIMEOUT(20); MBED_HOSTTEST_SELECT(echo); MBED_HOSTTEST_DESCRIPTION(Serial Echo at 9600); MBED_HOSTTEST_START("MBED_A9"); Serial pc(TXPIN, RXPIN); pc.baud(9600); while (1) { pc.printf("AT"); pc.gets(buffer, BUFFER_SIZE - 1); } }
Проект для Keil собран для stm32f429i-disco.
Вопросы и пожелания по mbed os оставляйте в комментариях.