Stm32. программирование. ide для stm32

Orwell Dev-C++ 5.7.1 TDM-GCC x64 4.8.1 [2014, Среда разработки, программирование]

Год выпуска: 2014Жанр: Среда разработки, программированиеРазработчик: OrwellСайт разработчика: http://orwelldevcpp.blogspot.com/Язык интерфейса: Мультиязычный (русский присутствует)Тип сборки: StandardРазрядность: 32/64-bitОперационная система: Windows XP, Vista, 7, 8, 8.1 Описание: Dev-C++ — это интегрированная среда для программирования на языках С и C++, работающая под управлением операционной системы Windows. Среда Dev-C++ распространяется свободно с исходными кодами (на Delphi) по лицензии GPL. Достоинства оболочки Dev-C++Графический интерфейс. Русскоязычное меню. Встроенный отла …

Классическое меню пуск в Windows 7,8 3.5.1 [2012, Изменения интерфейса Windows 7, 8]

Год выпуска: 2012Жанр: Изменения интерфейса Windows 7/8Разработчик: Classic ShellСайт разработчика: http://classicshell.sourceforge.net/features.htmlЯзык интерфейса: Мультиязычный (русский присутствует)Разрядность: 32/64-bitОперационная система: Windows 7, 8Формат: exeОписание: Эта программа предназначена для включения классического стиля меню «Пуск» и функций проводника Windows 7/ Windows 8. Классическое меню «Пуск» это клон оригинального меню «Пуск», которое можно найти во всех версиях Windows от 95 до Vista. Оно имеет целый ряд дополнительных возможностей: *Перетаскивание, для орган …

Установка окружающей среды :

Эрик уже сделал введение платы STM32F4 Discovery, так что я собираюсь вернуться в гущу событий непосредственно.

Вам потребуется получить следующие программные продукты :

  • CooIDE, свободная среда разработки, скачать ЗДЕСЬ
  • Sourcery Codebench Lite для ARM EABI Наставника, скачать ЗДЕСЬ
  • Программное обеспечение STLink, который содержит драйверы для USB-интерфейса, скачать ЗДЕСЬ
  • Исправление для программного обеспечения STLink, потому что он не работает с картами, в которых маска процессора, обзор Z, скачать ЗДЕСЬ
  • Архив прошивки демо-карты : ЗДЕСЬ

Сначала установить CooIDE (c:\CooCox\CooIDE), а затем создать каталог c:\CooCox\CooIDE\gcc и установить Sourery codebench указав, что каталог назначения является тот, который вы создали.

При первом запуске CooIDE, он понадобится здесь находится компилятора, чтобы знать, c:\CooCox\CooIDE\gcc.

Далее вам потребуется нажать кнопку

Чем уникальна Azure RTOS

Исследование показывает, что данная ОС является одной из наиболее часто применяемых (более 6 миллионов инсталляций). В основном она используется в специализированном оборудовании, таком, как устройства беспроводной связи, принтеры, модемы, устройства хранения данных, медицинские устройства, интеллектуальные датчики.

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

  • Малый размер. Минимальная система занимает 2 КБ ROM. Размер увеличивается автоматически по мере использования возможностей ОС.
  • Поддерживаются различные методы реализации многопоточности, как вытесняющая, так и кооперативная многопоточность.
  • Детерминированное время переключения контекста (меньше 100 циклов), быстрая загрузка (меньше 120 циклов), опциональная проверка ошибок, пикоядро без «слоев».
  • Поддержка большого количества микроконтоллеров и IDE для разработки.
  • Порог вытеснения (Preemption threshold) — порог вытеснения N означает, что данный поток может быть вытеснен только потоками с приоритетом выше N, т.е. от 0 до (N — 1) включительно, а потоки с приоритетом ниже N (т.е. больше N включительно) не могут вытеснять данный поток. Правильное использование данной возможности уменьшает количество переключений контекста, а также уменьшает время реакции на внешние события. Подробную информацию можно найти в статье.
  • Сцепление событий (Event chaining) — позволяет объединить несколько событий в единый сигнал синхронизации для потока, что позволяет синхронизироваться сразу по нескольким событиям, причем в разных комбинациях (И, ИЛИ).
  • Наследование приоритета (Priority inheritance) — позволяет избежать негативных последствий ситуации инверсии приоритетов. Описание ситуации инверсии приоритетов — тема для целой статьи, отдельно с данной проблемой многозадачных систем можно ознакомиться здесь.
  • Оптимизированная обработка прерываний от аппаратных таймеров;
  • Модули (Modules). ThreadX позволяет «обернуть» один или несколько потоков приложения в «модуль», который может быть динамически загружен и запущен на целевом устройстве. Модули позволяют производить обновление «в полях» с целью исправления ошибок. Также при помощи модулей можно разбить микропрограмму на сегменты и динамически определять набор выполняемых потоков, чтобы сэкономить память.
  • Встроенная трассировка событий и аналитика стека. Подбор размера стека потока является одной из самых важных задач при разработке с использованием ОС для микроконтроллера. Нельзя сделать слишком маленький стек, т.к. в отсутствие защиты памяти при переполнении стека — произойдет порча областей памяти других задач. Слишком большой стек также недопустим, т.к. приведет к излишнему расходованию памяти, а она ограничена.

Также рекомендуем интересное сравнение ThreadX с FreeRTOS от инженера, работающего с обеими ОС, а также .

Первая программа

CooCox

Выполняем пункт меню Project -> New

Указываем имя проекта:

Выбираем Чип:

В репозитории выбираем какие именно модули мы будем использовать:

Открываем main.c і набираем следующий код программы:

Компилируем (Project->Build)

При первой компиляции IDE может запросить указать местонахождение компилятора.

Надо корректно указать место, куда был установлен GCC.

После удачной компиляции заливаем программу в микроконтроллер. Эта программа будет мигать светодиодом на плате. Как залить программу в микроконтроллер мы рассматривали в предыдущей статье.

Если Вы будете заливать прошивку через UART с помощью UART-USB переходника, файл для заливки найдете в директории:
C:\CooCox\CoIDE\workspace\Example_GPIO\Example_GPIO\Debug\bin\Example_GPIO.bin

Если у Вас есть установленный ST-Link программатор, программу в микроконтроллер можно залить прямо с IDE (Flash -> Program Download).

Если при этом возникла ошибка «Error: Flash driver function execute error» Рекомендуется:

  1. Запустить STM32 ST-LINK Utility и выполнить Frimware update.
  2. Скопировать файл STLinkUSBDriver.dll из папки
    C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility
    в папку
    C:\CooCox\CoIDE\bin
    после чего перезапустить CooCox IDE

ADVANCED Codecs for Windows 7 and 8 4.2.8+ x64 Components [2013, Кодек] 32/64 bit

Год выпуска: 2013Жанр: КодекРазработчик: Shark007Сайт разработчика: http://shark007.net/win7codecs.htmlЯзык интерфейса: АнглийскийТип сборки: StandardРазрядность: 32/64 bitОперационная система: Windows 7,8Описание: ADVANCED Codecs for Windows 7 and 8 — это свежая версия программы, которая представляет из себя полное автоматизированное средство, предназначенное для установки основных для вашей системы Windows кодеков и декодеров. Этот пакет не имеет никаких дополнительных плееров и не изменяет системные ассоциации файлов которые установлены по умолчанию. Кроме того, при установке он авт …

addelectronics › Блог › Изучаем STM32. Урок 1. Создание проекта в CubeMX и Coocox IDE (ч2)

В прошлой части мы закончили с настройкой параметров экспорта в программе Cube MX.Ну собственно теперь нам осталось дать имя проекту и сделать экспорт. По окончанию экспорта, выскочит сообщение в котором мы можем открыть папку с нашим сгенерированным проектом.

На этом с CubeMX закончили. Переходим к среде разработки Coocox (Кокос в простонародии)))

далее вверху выбираем — создать новый проект — Create New Project

Далее выбираем CHIP (ведь мы будем работать с процессором)

Далее в списке выбираем нужный нам процессор. В моём случает это STM2F407VG6T

После этого ствавим галчку напртив CMSIS BOOT. Вместе с ней установится галочка и напротив M4 CMSIS Core — вот её нам нужно снять.

Далее в левой части, нам нужно удалить два файла которые начинаются на system и также после этого удаляем файл main.c (он нам не нужен)

После этого, нам нужно скопировать папки сгенерированные нашим CubeMX в папку с проектом Кокоса. Копируем три папки.

И далее выделяем эти три папки и перетягиваем их в Кокос (добавляем в проект). Стрелочкой указано куда.

Получаем вот такой вид файлов нашего проекта

Далее начинаем раскрывать наш список файлов в папкеDriver->CMSIS->Device->ST->STM32f4xx->Source->Templates-gccи удаляем файл startup_.

далее сворачиваем пару папок и переходим вот по такому путиDriver->CMSIS->Device->ST->STM32f4xx->Include и открываем файл отмеченный на картике указателем мыши. В нашем основном окне этот файл откроется. Листаем вниз и ищем наш процессор, и выделяем его как на картинке и нажимаем копировать — это нужно чтобы добавить это название в конфигурацию проекта

Далее, нажимаем на корневой файл проекта правой кнопкой мыши и выбираем Configuration

У нас откроется вот такое окно

Нажимаем в правой части ADD и добавляем скопированое значение в поле как на картинке

Комментарии 13

Здравствуйте. CoIDE 1.7.8, не хочет запускаться отладка. Ошибки по gdbserver.exe и tasklist.exe. Перепробовал массу вариантов описанных в инете — ничего не помогает. Может сталкивались с подобным ?

Давно использую Keil Uvision 5й

Понял. Да я тоже на Keil 5 перешел, но ради спортивного интереса хотел разобраться с отладкой в кокосе.Не получилось, значит в утиль его)Пользуясь случаем, хотел поблагодорить Вас за ваши уроки.

Три дня плотно бился, никак диодик не моргал. Делал по видосам, статьям, образцам кода, запискам на салфетках, всё без толку. Проект компиляется, прошивка загружается, светодиодик не светится. Наткнулся на эту статью, заметил, что надо удалить два файла в папке Startup. Удалил-всё взлетело и моргает на ура.Вроде бы победа, и можно дальше двигаться, но не тут то было. Что за файлы, откуда взялись, почему именно они и за что их удалили-инфы ноль, как и в любой статье по STM. Потому и нет никаких достойных проектов на STM (за некоторыми редкими исключениями), что никто так и не догоняет, что в итоге происходит, только Blink друг у друга передирают и на этом всё.

Пишите на KEIL создавая проекты в кубе и будет вам переносимость когда и проекты запускаемые

Крайне актуально, а то у IAR не ломанного 32к кода, как-то маловато)

Проблема в верии оказалвсь в 1.7.8 такой нету

Не знаете почему конфигурация не открывается нормально. Версия 1.7.7Скрин: cloud.mail.ru/public/NpQd/LMGHPi1Ke

Теперь с офсайта кокса качается Version: 2.0.3, у тебя 1.7.8. Потому все иначе. Если выбрать STM2F407VGT6, то там появляется выбор создания нового проекта и подключения различных библиотек.Т.е., начиная с 3-й картинки, всё иначе. И в новой версии ни черта не настроить, либо я не знаю где это.

Всё проще — у них висит и старая версия . Под кнопкой download — ссылка на 1.7.8 версию. — www.coocox.org/software/coide.php

Точно.А я тыкал все время на список изменений :))

Всё проще — у них висит и старая версия . Под кнопкой download — ссылка на 1.7.8 версию. — www.coocox.org/software/coide.php

Усё пучком, продолжаю тыкаться

Не знаю кто как а я сохраняю страницы полностью ))

источник

Сравнение STM32 с Arduino

Сравнение STM32 с Arduino

По техническим характеристикам Ардуино проигрывает STM32. Тактовая частота микроконтроллеров Ардуино ниже – 16 МГц против 72 МГц STM32. Количество выводов GRIO у STM32 больше. Объем памяти у STM32 также выше. Нельзя не отметить pin-to-pin совместимость STM32 – для замены одного изделия на другое не нужно менять плату. Но полностью заменить ардуино конкуренты не могут. В первую очередь это связано с высоким порогом вхождения – для работы с STM32 нужно иметь базис. Платы Ардуино более распространены, и, если у пользователя возникает проблема, найти решение можно на форумах. Также для Ардуино созданы различные шилды и модули, расширяющие функционал. Несмотря на преимущества, по соотношению цена/качество выигрывает STM32.

Семейство микроконтроллеров STM32 отличается от своих конкурентов отличным поведением при температурах от -40С до +80 С. Высокая производительность не уменьшается, в отличие от Ардуино. Также можно найти изделия, работающие при температурах до 105С.

BleachBit 0.8.7-3.1 [2011, Очистка операционной системы] 32/64-bit

Год выпуска: 2011Жанр: Очистка системыРазработчик: Andrew ZiemСайт разработчика: http://bleachbit.sourceforge.net/Язык интерфейса: MLАрхитектура: 32/64Платформа: Ubuntu,Fedora,Mandriva,OpenSUSEФормат файла: .deb, .rpmСистемные требования: МинимальныеОписание: Это программное обеспечение, которое позволяет легко и быстро очистить Вашу операционную систему от скопившегося «мусора». Такого рода программное обеспечение, в первую очередь, необходимо для любителей устанавливать и удалять много различного программного обеспечения. Во время работы каждого пользователя накапливается много разл …

Импорт библиотек

Несколько библиотек для работы с демо-Аудио. Он будет égalemement потребоваться перетащить и дети, и в ide, но для облегчения чтения мы будем сначала создать каталог STM32, в котором мы будем все это.

  • Создание каталога STM32 в корневом каталоге проекта
  • Копирование через drag and drop в Coocox следующие каталоги

    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32_USB_HOST_Library
    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32_USB_OTG_Driver
    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32F4xx_StdPeriph_Driver
    • STM32F4-Discovery_FW_V1.1.0\Utilities\STM32F4-Discovery
    • STM32F4-Discovery_FW_V1.1.0\Utilities\Third_Party\fat_fs

Настройки проекта

Несколько элементов должны быть заданы в проекте. Для этого надо щелкнуть правой кнопкой мыши на корень дерева проекта и выберите « Настройки ».

В « Include Path », добавить следующие пути с помощью кнопок « Add » и « Workspace »:

  • inc
  • STM32F4-Discovery
  • STM32/STM32F4xx_StdPeriph_Driver/inc
  • STM32/STM32_USB_HOST_Library/Class/MSC/inc
  • STM32/STM32_USB_HOST_Library/Core/inc
  • STM32/STM32_USB_OTG_Driver/inc
  • STM32/fat_fs/inc

В « Defined Symbols », добавить следующие Символы :

  • USE_STDPERIPH_DRIVER
  • STM32F4XX
  • USE_USB_OTG_FS
  • MEDIA_USB_KEY

Придется тогда запретить компиляцию из некоторых источников, поскольку они не являются необходимыми для проекта. Чтобы сделать это, выберите файл или папку с правой кнопкой мыши и выбрать пункт « Exclude from Build ». Это должно быть сделано для следующих файлов :

  • STM32/fat_fs/src/option
  • STM32/fat_fs/src/diskio.c
  • STM32/STM32_USB_HOST_Library/Class/HID
  • STM32/STM32_USB_OTG_Driver/src/usb_bsp_template.c
  • STM32/STM32_USB_OTG_Driver/src/usb_dcd_int.c
  • STM32/STM32_USB_OTG_Driver/src/usb_dcd.c
  • STM32/STM32_USB_OTG_Driver/src/usb_otg.c

Наконец, последний пункт-это ОЧЕНЬ ВАЖНО!!!. Придется изменить файл загрузки, чтобы он требует инициализации тактирвания

Я не знаю, если это просчет (ошибка) в CooCox, потому что рутина есть, но только не называется…

Это делается путем редактирования /cmsis_boot/startup/startup_stm32f4xx.c :

Строка 144: раскомментировать строку

 extern void SystemInit(void); /*!< Setup the microcontroller system(CMSIS) */

Строка 291, добавить просто перед вызовом main():

 SystemInit();

Car pack 2013 для Windows 7, 8 / Themes for Windows 7, 8 [2013, Темы]

Год выпуска: 2013Жанр: ТемыРазрешение: 1600×1200, 2560×1600Формат: JPG, exeЯзык интерфейса: Мультиязычный (русский присутствует)Разрядность: 32/64-bitОписание: Car pack 2013 v.1 содержит разнообразные темы с автомобилями. Пак был создан для фанатов и просто ценителей автомобилей, в нем есть темы как с темными тонами, так и светлыми. Приятный на вид рабочий стол и интерфейс, хорошо просматриваемое меню пуск, удобные системные окна, которые не будут вас всматриваться «что там написано», а позволит спокойно и с комфортом заниматься своими делами за компьютером.Доп. информация: Данный пак п …

Xilisoft Video Converter Ultimate 7.8.8.20150402 RePack by elchupakabra [2015, Видео конвертер]

Год выпуска: 2015Жанр: Видео конвертерРазработчик: Xilisoft CorporationСайт разработчика: http://www.xilisoft.com/Язык интерфейса: Русский + АнглийскийТип сборки: RePackРазрядность: 32/64-bitОперационная система: Windows XP, Vista, 7, 8 Описание: Xilisoft Video Converter — это простая, удобная и быстрая программа со множеством функций. Она позволяет конвертировать видео всех популярных форматов, таких, как AVI, MPEG, WMV, DivX, MP4, H.264/AVC, AVCHD, MKV, RM, MOV, XviD, 3GP, а также аудио MP3, WMA, WAV, RA, M4A, AAC, AC3, OGG. Теперь вы можете конвертировать видео, аудио и анимированны …

Некоторые настройки IDE и параметры компилятора

Repository

View -> Repository

Здесь мы выбираем библиотеки, которые необходимы для нашего проекта. При этом IDE копирует в папку stm_lib вашего проекта нужные файлы.

Закладка Compile

в этой закладке устанавливаются ключи компилятора

Мы сюда еще будем возвращаться, а пока обратим внимание на поле Optimization. Это поле задает параметр оптимизации для компилятора

Об оптимизации будет отдельный разговор, пока Вам нужно усвоить, что оптимизация Optimizate Size (-Os) максимально уменьшает объем скомпилированных программ. Но при этом компилятор может выбросить (оптимизировать) некоторые операции, и программа может работать не так, как Вам бы хотелось. Поэтому, на первых этапах, я не рекомендую использовать этот метод оптимизации. Установите Optimizate (-O1).

Закладка Link

В этой закладке пока нас интересует только поле Library и Linked Libraries. Если Вы будете использовать стандартные библиотеки С, например библиотеку математических функций math Вам нужно будет выбрать «Use base C Library». Если этого не сделать, то компилятор выдаст ошибку.

Здесь указываются куда складывать скомпилированные файлы и в каких форматах.

Пока в ней мы ничего делать не будем.

Закладка Debugger

В этой закладке устанавливаются параметры дебаггера. Поскольку мы будем использовать ST-Link, здесь ничего менять не придется.

Программирование STM32. Настройка Coocox IDE + STM32CubeMX

Всем привет, сегодня расскажу, как настроить среду разработки coocox ide и программу для инициализации различной периферии микроконтроллера STM32CubeMX для совместной работы.

Перед началом работы необходимо установить:

Давайте приступим к настройке. Первым делом создадим пустой проект в CoIDE

Выбираем нужный микроконтроллер

Далее нужно указать папку,в которой будет создан проект. Желательно, чтобы в пути к файлам проекта не было русских символов. Иначе могут возникнуть различные проблемы при работе с проектом, например, проект не будет компилироваться не выдавая при этом никаких ошибок.

В результате получим пустой проект, в котором будет один только файл main.c

На самом деле файл main.c нам не нужен, его нам создаст STM32CubeMX, так что текущий файл просто удаляем из проекта.

Теперь временно свернем окно Coocox IDE и запустим программу STM32CubeMX. Нажмем New Project

Теперь создаём нужную конфигурацию проекта. Для начала помигаем встроенным светодиодом. Для этого устанавливаем PC13 как OUTPUT и на вкладке Pinout в разделе SYS включаем отладку Debug -> Serial Wire

Перейдём на страницу настроек Project->Setting s. Зададим имя проекта такое же, как мы задали в Coocox IDE. И в Project Location зададим папку, в которой находится проект

Toolchain/ IDE выбираем SW4STM32. Нажимаем Ok

Теперь нажимаем Project->Generat e code. Проект генерируется некоторое время. По окончании нажимаем Open Folder. Как видим, к нашему проекту добавились папки Drivers, Inc, Src.

Их необходимо добавить к проекту CoocoxIDE простым перетаскиванием

Теперь если попробовать скомпилировать проект, то мы получим ошибку

D:\workspace\Bli nkProject\Driver s\CMSIS\Device\S T\STM32F1xx\Incl ude/stm32f1xx.h: 159:3: error: #error «Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)»

Эта ошибка говорит нам о том, что не выбран тип микроконтроллера в файле stm32f1xx.h.

Откроем его и посмотрим содержимое

Для нашего микроконтроллера необходимо выбрать STM32F103xB

Откроем конфигурацию проекта View->Configuration и в поле Defined Symbols добавим нашу константу STM32F103xB. Нажимаем Add

Теперь при попытке собрать проект получаем следующую ошибку

collect2.exe: error: ld returned 1 exit status

Это ошибка линкера, так что переходим View->Configuration->Linker и выключаем флажок Use Memory Layout from Memory Window

Внизу страницы выбираем Scatter файл, который уже создан в папке нашего проекта. Workspace/BlinkProject/STM32F103C8Tx_FLASH.ld

Теперь при нажатии кнопки Build наш проект успешно компилируется и собирается.

Попробуем записать наш файл в микроконтроллер. Нажимаем Download code to Flash. У меня выскакивает ошибка

Error: Failed to open flash driver file

Переходим на вкладку View->Configuration->Download и видим, что в поле Programming Algoritm путь к файлу содержит русские символы

Я просто перенесу нужный файл в другую папку и добавлю новый путь к этому файлу.

Теперь прошивка заливается в микроконтроллер.

Давайте добавим код для моргания светодиодом в главный цикл while программы

Теперь светодиод моргает с интервалом в 100мс.

WebcamMax 7.8.7.6 RePack [2014, Работа с веб-камерой]

Год выпуска: 2014Жанр: Работа с веб-камеройРазработчик: COOLWAREMAXСайт разработчика: http://www.webcammax.com/Язык интерфейса: Мультиязычный (русский присутствует)Тип сборки: RePack by KpoJIuKРазрядность: 32/64-bitОперационная система: Windows 2000, XP, Vista, 7, 8, 8.1 Системные требования: Веб-камера ИнтернетОписание: WebcamMax — продвинутая утилита для работы с веб-камерой. Программа, добавляющая изумительные видеоэффекты на все вебкамеры, даже без реальной камеры. Программу можно использовать по умолчанию в таких приложениях, как ICQ, AIM, MSN, Camfrog, Skype, Paltalk, Yahoo, ANY …

Что есть у Microsoft?

Microsoft традиционно занимается «большими» ОС, среди которых тоже есть специализированные решения в виде Windows 10 IoT Enterprise LTSC, значительно дешевле настольных систем и со специальными возможностями встраивания. Windows 10 IoT Enterprise требует практически полноценного (хоть и промышленного и малогабаритного) компьютера для запуска. Впрочем, есть редакция Windows 10 IoT Core, ориентированная только на приложения UWP, где требования к системе ниже: она успешно запускается на Raspberry Pi 2.

Здесь же нельзя не упомянуть класс операционных систем Windows Embedded Compact, которые могут работать на системах, по вычислительным возможностям находящимся где-то между полноценными компьютерами и микроконтроллерами. Compact – отдельный класс ОС, не совместимых с «настольной» Windows, требующих особых средств разработки. Последний выпуск датируется 2013-м годом, далее ОС развития не получила, но все еще продается и поддерживается, как и несколько предыдущих версий.

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

На данный момент доступны и сторонние реализации среды выполнения для C#: https://www.nanoframework.net/, https://www.wildernesslabs.co/. Отметим, что последняя аппаратная платформа вполне подходит и для запуска ucLinux, так что к выбору ОС следует относиться, как к выбору инструмента для решения задачи: что удобнее, то и применяем.

В 2019 году Microsoft поглощает Express Logic, и среди решений для микроконтроллеров от Microsoft появляется Azure RTOS, которая раньше называлась X-WARE IoT Platform. В Azure RTOS входит ядро ThreadX вместе с дополнительными компонентами, а также добавлены средства подключения к Azure IoT Hub и Azure IoT Central. Само название Azure RTOS подчеркивает применение совместно с сервисами Azure для устройств Интернета вещей.

В состав Azure RTOS входят:

  • сама ОС ThreadX, а именно, ядро, планировщик, реализующий многозадачность и синхронизацию задач;
  • стек TCP/IP NetX/NetX Duo;
  • стек FAT FileX;
  • стек USB Host/Device/OTG USBX;
  • реализация графического интерфейса GUI: GUIX и инструмент разработки (GUIX Studio);
  • реализация равномерного износа флеш-памяти для FileX: LevelX;
  • система трассировки событий TraceX;
  • SDK для Azure IoT поверх NetX Duo – готовые средства для подключения устройства к службам Azure.

Нельзя не отметить одно из специализированных решений высокой готовности: Azure Sphere. Это — безопасная платформа для приложений интернета вещей со встроенными механизмами коммуникаций и безопасности. Она представляет собой микроконтроллер (скорее даже SoC) с установленным ядром Linux, а также готовыми облачными сервисом для доставки обновлений безопасности.