Старт ARM. mbed os. часть 1-ая.

Доброе время суток!
Продолжаем говорить об операционных системах реального времени и на повестке дня у нас 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

Вопросы и пожелания по mbed os оставляйте в комментариях.