. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Použití FreeRTOS na STM32
22. září 2016 - 5:31 | Pandatron | Použití FreeRTOS na STM32 | Komentářů: 0  

Použití FreeRTOS na STM32

Vývoj aplikací pod operačním systémem FreeRTOS na obvodech řady STM32. Součástí článku je popis dostupné vývojové desky a řada ukázkových příkladů.

Vysoký výkon mikrokontrolérů řady STM32 od ST umožňuje implementaci celé řady rozsáhlých funkcí a uživatelských programů. Ovšem každá nová funkce zvyšuje složitost celého programu a stěžuje optimalizace aplikace. Obvyklé řečení s jednou hlavní smyčkou bývá v takových případech problematické, především co se týká zpracování časově náročných úkolů.

Častým řešením bývá použití některého z dostupných operačních systémů pracujících v reálném čase – RTOS. Jedná se o ideální řešení v případě požadavku na zajištění velkého množství paralelně běžících úkolů. Tedy paralelních smyček, které nejsou nikdy dokončeny a běží neustále. Integrovaný plánovač úkolů pak zajišťuje vyvážené dělení strojového času. V současné době existuje na trhu skutečně celá řada skvělých RTOS a mnohé z nich jsou navíc zdarma a opensource.


Obr. 1: EWARM IDE s FreeRTOS plug-in Tasks

FreeRTOS
FreeRTOS™ je otevřený projekt volně dostupného real-time operačního systému, který je v současné době oficiálně dostupný pro 29 architektur a každý rok zaznamená více než 77.500 stažení. Na trhu se řadí mezi robustní real-time operační systémy pro embedded aplikace a v podobě open-source se volně ke stažení. Výhodou je rovněž skutečnost, že FreeRTOS lze na rozdíl od některých jiných systémů použít i v komerčních aplikacích, bez nutnosti zveřejnění celého zdrojového kódu.


Obr. 2: Struktura jednoho úkolu v systému FreeRTOS

S rostoucí popularitou se FreeRTOS dále vyvíjí a v současné době jsou pro něj dostupné například i TCP/IP, knihovny, souborový systém či plnohodnotná podpora USB rozraní. Každá oficiální port obsahuje předem nakonfigurované ukázkové aplikace, které se snaží demonstrovat vlastnosti jádra, zjednodušit vývoj a umožnit tzv. vývoj „z krabice“.

Přesto že FreeRTOS má za sebou již poměrně dlouhou historii a je dostatečně flexibilní, aby mohl být použit na libovolném typu hardwaru, existuje na trhu i celá řada podobných projektů. Z těch známějších a oblíbenějších RTOS je možné jmenovat především ChibiOS a BeRTOS. Na našich stránkách jsme se v minulosti systémům RTOS věnovali například články Femto OS: RTOS pro malé MCU, QNX RTOS pro kritické aplikace, Freescale zvyšuje bezpečnost systému MQX atd. Hlavní výhodou FreeRTOS je však velké rozšíření, poměrně jednoduché a rychlé použití a rovněž dostupnost prakticky všech funkcí, které bychom u RTOS hledali. Mezi klíčové funkce je možné zahrnout například preventivní, kooperativní a hybridní plánovač úloh, podporu vyjímek, front, semaforů a tzv. mutexů, které mají za úkol zajištění synchronizace a komunikace. Pro bližší seznámení je k tomuto tématu dostupné velké množství ukázkových aplikací a portů.

STM32 - 32-bit ARM Cortex MCU
STM32 je řada 32-bitových mikrokontrolérů s jádrem ARM Cortex™-M společnosti STMicroelectronics. Obvody obsahují programovou paměť typu Flash a jsou navrženy speciálně tak, aby byly vývojářům schopné nabídnout nové stupně volnosti. Vysoký výkon 32-bitového jádra podporuje provoz aplikací v reálném čase či zpracování digitálního signálu a je podporován nízkou vlastní spotřebou s nízkým napájecím napětím, při zachování plné integrace a jednoduchosti vývoje.

Zájemcům o vývoj aplikací s širokou řadou mikrokontrolérů STM32 je dnes k dispozici velký výběr různých nástrojů a softwaru, což z těchto obvodů tvoří ideální volbu jak pro malé projekty, tak i řídicí aplikace a aplikace pro zpracování signálu.


Obr. 3: STM32 - 32-bit ARM Cortex MCU

Vývojová deska STM32F103ZET6 s 3,2” dotykovým TFT LCD displejem
Například na aukčním serveru eBay je k dispozici vývojová deska STMicroelectronics STM32F103ZET6 ARM Cortex - M3 MCU s 3,2" dotykovým LCD displejem. Obvody STM32F103ZET6 patří do třídy velmi výkonných 32-bitových MCU s 512K interní paměti Flash a 64K RAM. Obvody jsou rovněž vybavené celou řadou integrovaných periferií, jako je USB, CAB, 11 časovačů, 3 A/D převodníky a celou řadu standardních komunikačních rozhraní. Vysoký výkon i velká kapacita integrované paměťové kapacity umožňuje použití ve spojení s operačním systémem.

Základní vlastnosti:

  • 512K SRAM module
  • 2M NOR Flash
  • 128M NAND FLASH
  • 2M sériové Flash
  • 2K 24LC02 EEPROM
  • 2x SD paměťový slot (na desce a LCD)


Obr. 4: Vývojová deska STM32F103ZET6 s 3,2” dotykovým TFT LCD displejem

Na webu ScienceProg se počátkem týdne objevil přehled několika základních ukázkových aplikací s uvedenou deskou a operačním systémem FreeRTOS. Jedná se především o ukázku použití základní periferií, jako jsou diody LED, tlačítka, sériové porty USART a samozřejmě barevný LCD displej.


Obr. 5: Vývojová deska STM32F103ZET6 s 3,2” dotykovým TFT LCD displejem v provozu

V první řadě je samozřejmě nutné vytvořit základní šablonu projektu, která bude obsahovat zdrojové soubory FreeRTOS. Jejich import vypadá přibližně jako na následujícím obrázku.


Obr. 6: Import zdrojových souborů systému FreeRTOS do nového projektu

V dalším korku je nutné přidat do projektu soubor FreeRTOSConfig.h, ve kterém jsou uvedeny veškeré konfigurace systému RTOS. Poté je třeba upravit rutiny pro obsluhu přerušení jako jsou služby systick, SVC a PendSV. V konfiguračním souboru se definuje typ procesoru, taktovací frekvence 72 MHz a samozřejmě i časovač, který řídí hlavní plánovač úloh s periodou 1ms.

Po dokončení konfigurace je možné přejít ke psaní samotného programového kódu. Pokud již máte nějaké zkušenosti s RTOS, pak jistě víte, že programy určené pro RTOS jsou organizované jako soubor nezávislých úloh. Každá taková úloha pak nesmí spoléhat na jiné úkoly a musí být provozována v rámci svého kontextu. Praktickým příkladem je například oddělený pracovních zásobník registrů. Pokud je pak v aplikaci více úloh, plánovač se podle stanovených priorit stará o přepínání mezi jednotlivými úkoly, kdy úkol samotný představuje vždy nekonečnou smyčku funkce, která nikdy nekončí.

  void vATaskFunction( void *pvParameters ) {
    for( ;; ) {
                  -- Task application code here --
    }
  }


Obr. 7: Demo systému FreeRTOS

Více informací k tématu vývoje aplikací v operačním systému FreeRTOS pro procesory řady STM32, včetně několika ukázkových příkladů, je k dispozici na webové stránce autora: FreeRTOS on STM32.

Odkazy & Download:
Domovská stránka autora
Domovská stránka FreeRTOS

FreeRTOS on STM32
Femto OS: RTOS pro malé MCU
QNX RTOS pro kritické aplikace
Freescale zvyšuje bezpečnost systému MQX







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře:
Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
SDR-5+ HF receiver - All Mode Softwarový přijímač
Digitální softwarový přijímače SDR-5+ je již pátou generací špičkových produktů naší společnosti. Jedná se o All Mode Receiver s integrovaným generátorem, dvěma anténními vstupy a VCO vstupem s frekvenčním rozsahem 0 až 100 MHz.
Skladem od 2550 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007