Jste již uživatelem rodiny mikrokontrolérů STM32 [1] od firmy STMicroelectronics? Nebo tak v blízké době uvažujete učinit? V obou případech pro vás bude určitě zajímavá novinka na poli dostupných prostředků pro práci s STM32. Konkrétně se jedná o integraci operačního systému a knihoven Azure RTOS [2] od společnosti Microsoft do vývojové platformy pro STM32, známou pod hlavičkou STM32Cube [3].
Vývojové prostředky a knihovny pro práci s mikrokontroléry pro „vestavěné“ systémy se obecně staly jednoznačnou a velmi důležitou součástí nabídky samotných mikrokontrolérů. Pro spousty vývojářů jsou takové prostředky stejně důležité jako vlastnosti a cena používaných mikrokontrolérů.
Stejně tak tomu je u populární rodiny mikrokontrolérů STM32, které se objevily na trhu v roce 2007. Od začátku byl záměr STMicroelectronics dodávat mikrokontroléry pro širokou veřejnost vývojářů, bastlířů a studentů. A k tomu je samozřejmě zapotřebí propracovaných a volně dostupných prostředků pro vývoj (jako např. editor kódu, překladače z jazyka C, programový debugér, ...), dále pak knihoven, příkladů, vývojových desek atd. Ti, kteří si prošli s STM32 vývoj od jejich začátků v roce 2008, vědí, že nabídka a dostupnost všech těchto položek nebyla tak pestrá a dostupná, jak je tomu dnes.
I přesto firma STMicroelectronics dále investuje do rozšíření této pro vývojáře důležité nabídky. Důkazem toho je zahájení spolupráce s firmou Microsoft v roce 2020, která přináší velice zajímavý soubor „real-time“ operačního systému (RTOS) a knihoven pod názvem Azure RTOS. Jednoduše řečeno, spolupráce Microsoftu s STMicroelectonics zajišťuje, že Azure RTOS bude efektivně využívat výhod mikrokontrolérů STM32, zatímco vývojáři mohou rychle začít pracovat na svých projektech s použitím ThreadX RTOS a mnoha dalších komponent z Azure RTOS (USBX, NETX Duo, FileX, LevelX). STM32 zjevně zůstane platformou otevřenou ostatním RTOS, což znamená, že uživatelé, kteří chtějí používat FreeRTOS, Zephyr, Mbed nebo jakýkoli jiný RTOS pro „vestavěné“ systémy, tak budou moci činit i nadále. Spolupráce se společností Microsoft však vylepšuje aktuální řešení a nabízí komplexní sadu softwarových komponent, které vývojářům umožní rychle vytvořit určité funkce jejich systémů a hlavně pak splnit různé certifikace.
Azure RTOS je jediný bezplatný operační systém pro vestavěné systémy, který je dodáván s mnoha certifikacemi, a to jak pro bezpečnost (IEC 61508 SIL 4, ISO 26262 ASIL D, IEC 62304 Medical Class C), tak pro zabezpečení (EAL4 +, FIPS 140-2). Uživatelé, kteří chtějí proniknout mimo jiné na průmyslový, automobilový nebo zdravotní trh, se tak mohou obrátit na společnost Microsoft, člena programu ST Partner Program [4], aby z těchto standardů mohli těžit a svým zákazníkům nabídnout větší záruky. STMicroelectronics bude nadále spolupracovat s Microsoftem, aby zajistili, že Azure RTOS bude nejlépe využívat klíčové zdroje přítomné v STM32 mikrokontrolérech, jako je např. hardwarové krypto jádro.
Další věc, kterou je třeba vzít v úvahu, je, že přechod od konceptu k finálnímu produktu může být složitým úkolem. Aby se zkrátila doba uvedení na trh, získají všechny mikrokontroléry STM32 bezplatné používání a produkční licenci Azure RTOS. Díky spolupráci STMicroelectronics s Microsoftem mohou vývojáři upravovat zdrojový kód založený na Azure RTOS a distribuovat ho dále ve svých systémech. Kromě toho bude STMicroelectronics také aktualizovat a vydávat nové integrované softwarové balíčky a nástroje vývojové platformy STM32Cube tak, aby využily výhod prostředí Azure RTOS.
V jádru Azure RTOS najdeme ThreadX RTOS, který mimo jiné vyniká svými výkonnými možnostmi plánování. V článku o Preemption-Threshold Scheduling[5] Microsoft vysvětluje, jak RTOS tradičně umožňuje preference kteréhokoli vlákna s vyšší prioritou, což znamená převzetí aktuálně běžícího vlákna s nižší prioritou. ThreadX poskytuje mnohem větší granularitu a umožňuje vývojářům nastavit prahové hodnoty tak, aby se snížilo přepínání kontextu, čímž se výrazně optimalizuje výkon. Podobně také nabízí řetězení událostí, které umožňuje konkrétní akci, když dojde k události. V důsledku toho se vlákna čekající na událost mohou spustit automaticky, což usnadňuje vývoj a snižuje potřebné zdroje.
Nabídka Azure RTOS jako součást STM32Cube znamená, že uživatelé mohou snáze těžit z výhod Azure RTOS, zatímco si budou stále užívat to nejlepší, co vývojová platforma STM32Cube nabízí. Azure RTOS dále přichází s FileX, souborovým systémem, který nabízí pokročilé funkce pamětí NAND a NOR Flash, jako je odolnost proti chybám nebo vyrovnání opotřebení. NetX a NetX Duo jsou komunikační stacky, které nabízejí TCP / IP, IPv4 a IPv6 a také mnoho protokolů vyšší úrovně používaných v IoT, jako je MQTT nebo COAP. K dispozici je také USBX, které usnadňuje použití rozhraní USB, ať už jako Host, nebo Device implementace, s kompletní sadou podporovaných tříd USB. První balíček je již nyní dostupný pro řadu STM32H7: X-CUBE-AZRTOS-H7 [6] a balíčky pro další STM32 řady budou následovat během 2021 a 2022.
Co zůstane stejné?
Technická podpora zákazníkům ze strany STMicroelectronics při používání STM32, STM32Cube a stejně tak Azure RTOS. Dále, jelikož již dlouhodobě firma STMicroelectronics poskytuje platformu TouchGFX [7] pro implementaci grafických rozhraní, která je na velmi vysoké úrovni, nebude komponenta GUIX Azure RTOS přímo podporována v STM32Cube. Zákazníci mají jistotu, že investice STMicroelectronics do stávajících nástrojů a řešení pro STM32 budou i dále pokračovat. Podobně bude STMicroelectronics i nadále podporovat, používat a pracovat na monitorovacím prostředku STM32CubeMonitor, který lze používat namísto TraceX nástroje od Microsoftu.
Tento krok společností STMicroelectronics a Microsoft je dozajista velmi přínosný pro všechny vývojáře, inženýry a vedoucí pracovníky v oblasti vývoje vestavěných systémů, kteří tímto získávají více možností pro implementace požadovaných funkcí bez ztráty nástrojů a prostředí, na které jsou zvyklí.
[2] https://azure.microsoft.com/en-us/services/rtos/
[3] https://www.st.com/stm32cube
[4] https://www.st.com/partner-program
[6] https://www.st.com/en/embedded-software/x-cubeazrtos-h7.html