embOS je malý, přesto výkonný a efektivní real-time kernel (operační systém), kompletně napsaný v ANSI C. Díky tomu může být použit na jakékoliv architektuře, pro niž je k dispozici překladač jazyka C. embOS podporuje většinu 8,16 a 32bitových CPU a stal se nejpopulárnějším real-time jádrem používaným gigantem Renesas. Daří se mu neustále zvyšovat svůj podíl na trhu. Paměťová náročnost, nebo spíše „nenáročnost“, je velice nízká, díku čemuž se perfektně hodí do jedno-procesorových aplikací. K embOS je dodáván prohlížeč, který umožňuje nahlížení do procesů systému pomocí PC (včetně profilování úloh).
Stručně z historie embOS:
Připomínám, že společnost SEGGER nevyvýjí pouze systém embOS, ale spousty jiných softwarových a hardwarových produktů. V následující tabulce je proto pouze stručný historický vývoj embOS:
Operační systém embOS:
Popis:
embOS je prioritně řízený real-time operační systém navržený jako základ pro vývoj real-time embedded aplikací (aplikace zpracovávající časově kritické procesy). Pro tento účel se používá tzv. nulového zpoždění přerušení, tzn. okamžitá reakce na přerušení programu danou událostí, přičemž přerušení s vysokou prioritou systém embOS nikdy nevypíná.
Limity prostředků jednotlivých podporovaných obvodů byly po celou dobu vývoje embOS vedeny v patrnosti. Z tohoto důvodu byla vnitřní struktura OS optimalizovaná pro široké množství aplikací tak, aby vyhovovala nárokům v nejrůznějším prostředí. embOS je vysoce modulární systém, díky tomu umožňuje vývojářům zahrnout pouze ty funkce či knihovny, které budou v konkrétní aplikaci skutečně potřeba, to výrazně snižuje celkové nároky na paměť ROM.
Typické aplikace pro embOS
embOS může být použit od jednoduchých bateriově napájených aplikací, přes jedno čipové produkty, až pro systémy, které vyžadují velmi rychlou odezvu, flexibilitu a multitasking. Typické aplikace jsou:
- Průmyslové vybavení
- Testovací a měřící vybavení
- Telekomunikace
- Zdravotní zařízení
- Spotřební elektronika všeho druhu
- Atd.
Vlastnosti embOS
- Neomezené množství úloh.*
- Neomezené množství signalizací.*
- Neomezené množství mailboxů.*
- Neomezené množství softwarových časovačů.*
- Preventivní plánování: zaručuje, že se všechny úlohy nacházejí ve stavu READY, kdy se provádějí ty s nejvyšší prioritou vyjma situace inverze priorit (kde se prohodí úroveň priorit mezi procesy).
- Plánování Round-robin pro úlohy se stejnou úrovní proirity.
- Přednosti mohou být zablokovány pro všechny úlohy či pro konkrétní část programu.
- Až 255 úrovní priorit: Každá úloha může mít jinou, přičemž její odezva může být přesně nadefinována pro konkrétní účel aplikace.
- Velikost časového kroku (tick resolution) lze libovolně nastavit (standardně je 1ms).
- Vysokorychlostní měření (rychlejší než tick).
- Správa napájení: Procesor se automaticky přepíná do Halt módu pokud neprobíhá žádná úloha.
- Plná podpora přerušení: Většina API funkcí může být použita uvnitř tzv. ISR (the Interrupt Service Routines).
- Nulové zpoždění odezvy na přerušení.
- Vnořená přerušení jsou dovolena
- Vysoká přesnost při profilování dané úlohy.
- Real time kernel prohlížeč - embOSView.
- Velmi rychlý a efektivní, přesto malý kód.
- Minimální zatížení paměti RAM.
- Jádro systému je napsáno v asembleru.
- Všechny funkce API mohou být volané z C/C++/asembleru.
- Periferie mikrokontroléru jsou inicializovány jako prostředky procesoru.
* Limitováno pouze velikostí dostupné paměti.
Technické specifikace:
- Velikost jádra (v paměti ROM) 1100 – 1600B.*
- Využití paměti RAM: 18 – 25B.*
- Využití procesoru M16C (10MHz) při přerušením každou 1ms: méně jak 3%
- Využití paměti RAM pro mailbox: 9 – 15B.*
- Využití paměti RAM pro účely signalizace: 3 – 5B.*
- Využití paměti RAM pro časovače: 9 – 11B.*
- Základní časová jednotka: Jeden Tick (defaultně 1 ms) může být uživatelsky definována, min. 100 µs (M16C@10MHz)
- Doba aktivace úlohy závisí na jejich počtu (typ. 12us M16C@10MHz)
- Nulové zpoždění při přerušení
* Záleží na typu CPU, kompilátoru a použitých knihovnách.
Zátěž CPU
Následující diagram znázorňuje typické zatížení procesoru způsobené během systému embOS na třech platformách: Renesas CPUs M7700 (low end 16 bit), M16C/60 (medium 16 bit), M16C/80 (high end 16 bit). Data jsou založena na typických taktovacích frekvencích pro tyto konkrétní typy MCU a systémový Tick je nastaven na 1ms (1000 systémových přerušení každou sekundu).
Knihovny a zdrojové kódy:
Operační systém embOS je dostupný buď jako knihovní modul či přímo zdrojový kód.; verze zdrojových kódů obsahuje i knihovny a zároveň jejich zdrojové kódy. Obě verze jsou dostupné s RTG projekty (Ready-To-Go, pouze zkompilovat a nahrát), BSP a embOSView. Pro různé fáze vývoje aplikace jsou dostupné různé druhy knihoven. Pro více informací se podívejte na stránku SEGGERu.
Podporované CPU
embOS byl naportován na velké množství mikroprocesorů a vývojových prostředí. Výrobce neustále zvyšuje počet podporovaných obvodů. Pokud váš mikrokontrolér zatím není podporován prosím napiště na info@segger.com.
Vývojové prostředky:
embOSView
embOSView je velice užitečný nástroj pro analýzu běžící aplikace v reálném čase. Zobrazuje stav běžící aplikace používající embOS. Veškerá komunikace probíhá skrze rutiny přerušení vyvolané komunikací (minimální dopad na běh aplikací s připojeným embOSView a žádný dopad bez připojení). V procesu profilování sbírá embOSView přesné časové informace pro každou úlohu zvlášť, což nám umožňuje přesně stanovit zatížení procesoru.
embOS Plug-in pro IAR Embedded Workbench
embOS plug-in pro IAR Embedded Workbench ™ poskytuje informace o činnosti systému embOS během procesu ladění aplikace. Prohlédnuty mohou být objekty, jako jsou: úlohy, prostředky signalizace, poštovní schránka, časovače a jiné.
Závěr:
RTOS systém embOS je velice malý a přitom flexibilní a výkonný operační systém. Jeho nároky (či spíše nenároky) na hostitelský systém jsou natolik nízké, že najde uplatnění již v těch nejjednodušších jedno-čipových aplikacích (8/16bitové MCU), zároveň jeho modulární design umožňuje řídit velmi precizně náročné úkoly v mnohem složitějších systémech. Toto je však jen špička ledovce, neuvěřitelně široké portfólio produktů, které společnost SEGGER nabízí zahrnuje jak softwarove vývojové prostředky, ale i hardwarové produkty. Jejich sinergický efekt je přitom více než značný.
Odkazy & Download:
- Domovská stránka vírobce - http://www.segger.com
- Seznam podporovonaných obvodů a kompilátorů v současné době - http://www.segger.com/emboscpus.html
- Trial verze embOS Simulation - http://www.segger.com/pub/embos_simulation/embos_simulation.zip