Králičí polovodič - Rabbit Semiconductor
![]() | tento článek potřebuje další citace pro ověření.Říjen 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Průmysl | mikrokontroléry |
---|---|
Založený | 1983 |
Hlavní sídlo | , |
Majitel | Digi International |
webová stránka | www |
Králičí polovodič je americká společnost, která navrhuje a prodává Králičí rodina mikrokontroléry a moduly mikrokontroléru. Pro vývoj poskytuje Dynamický C., nestandardní dialekt C s proprietárními strukturami pro multitasking.
Společnost Rabbit Semiconductor koupila v roce 2006 společnost Digi International.[1] Před nákupem byla společnost Rabbit Semiconductor divizí společnosti Z-World, Inc. Společnost Z-World vyvinula a vyrobila produkty vestavěných řadičů i prostředí pro vývoj vestavěného softwaru.
Architektura mikrokontroléru
Rodina procesorů Rabbit sdílí mnoho funkcí s Zilog Z80 / Z180 procesory. Například registry králíka 2000 Procesor / 3000 je téměř stejný jako registry procesorů Z80 / Z180. Procesor Rabbit 4000 se rozšiřuje o použití 32bitových registrů. The instrukční sada procesorů Rabbit také velmi připomíná instrukční sadu rodiny Z80 / Z180. Zatímco operační kódy mnoha instrukcí jsou mezi procesory Rabbit 2000/3000 a procesory Z80 / Z180 stejné, tyto dvě rodiny procesorů nejsou binárně kompatibilní. Stejně jako u rodiny Z80 / Z180 jsou procesory Rabbit CISC procesory.
Rodina procesorů Rabbit má jedinečné vlastnosti. Například rodina Z80 / Z180 se deaktivuje přerušení jakmile je přerušení obsluhováno rutinou servisní služby přerušení. Procesory Rabbit však umožňují přerušení přerušit servisní rutiny podle priorit (celkem 4).
Rabbit Semiconductor tvrdí, že instrukční sada procesorů Rabbit je optimalizována pro C kód.[2].
Dynamický C.
Snad nejpozoruhodnější vlastností mikrokontroléru Rabbit je jeho vývojové prostředí. Dynamic C, produkt společnosti Rabbit Semiconductor, má ve srovnání se standardem ANSI-C doplňky, delece a nekonzistence.
- Poznámka
- (Odkaz: Přenos programu na dynamický C-Rabbit Semiconductor)
Dynamic C se řídí normou ISO / ANSI C, pokud je to proveditelné a žádoucí. Protože standard nebere v úvahu speciální potřeby vestavěných systémů, je nutné se v některých oblastech od standardu odchýlit a v jiných je žádoucí. Standard nebere v úvahu důležité problémy vestavěných systémů, jako je paměť pouze pro čtení a jazyk vestavěného sestavení. Z tohoto důvodu praktické kompilátory určené pro vestavěné systémy zcela neodpovídají normě, ale používají ji jako vodítko.
Jako příklad přidání má Dynamic C a řetězení mechanismus řetězení fragmentů kódu z různých podprogramů na libovolný počet řetězců. Toto rozšíření umožňuje použití nejen inicializovaných proměnných, ale libovolného kódu, který se má provést před spuštěním programu v hlavní funkci.
Jako příklad odstranění, od verze 10.23 Dynamic C nepodporuje blokový rozsah proměnné nebo bitová pole. Vývojový nástrojový řetězec neobsahuje samostatný preprocesor a linker, což může komplikovat proces portování existujících programů na kompilátor. Od verze 10.64 je podporován obor bloků pro proměnné.
Jako příklad nekonzistence Dynamic C implicitně zachází se všemi inicializovanými globálními proměnnými, jako by byly deklarovány pomocí konst
kvalifikátor. Navíc všichni konst
proměnné jsou uloženy v paměti flash. Dřívější verze Dynamic C nekontrolovaly použití konst
klíčové slovo v parametrech - bylo možné předat a konst
proměnná jako parametr funkce, která to neočekávala, což může potenciálně vést k pokusům o zápis do paměti flash. Od nejnovější verze Dynamic C bude kompilátor produkovat chybu, když se uživatel pokusí upravit konst
proměnná přímo a vygeneruje varování, pokud uživatel zahodí konst
kvalifikátor při předávání parametru funkci.
Multitaskingové konstrukce
Jedním z pozoruhodných rysů Dynamic C je jeho zahrnutí jazykových konstrukcí pro zjednodušení multitaskingu. Tyto konstrukty, nákladný
prohlášení a plátek
prohlášení, implementovat formu kooperativního a preventivního multitaskingu. Jako příklad zvažte následující program, který bliká dvěma LED diodami s různými frekvencemi:
prázdnota hlavní(){ zatímco (1) { // Vytvořte 2 costatementy, které přepnou naše LED. nákladný { led1on(); čekat na(DelayMs(100)); led1off(); čekat na(DelayMs(50)); } nákladný { led2on(); čekat na(DelayMs(200)); led2off(); čekat na(DelayMs(50)); } }}
Když je tento kód spuštěn, provede se první součtování a rozsvítí se první LED. Costatement se poté přenese na druhý příkaz, zatímco čeká 100 milisekund. Druhá souběžnost se provede podobným způsobem. Zatímco obě soupisy čekají na vypršení času, smyčka while ano zaneprázdněn, ale tuto čekací dobu lze potenciálně využít k provedení dalších úkolů. Další informace viz Uživatelská příručka Dynamic C..
Viz také
Reference
externí odkazy
- Králičí polovodič na Knihovna Kongresu Webové archivy (archivovány 14. 9. 2002)
- Dynamic C 9 Uživatelská příručka
- Digi International
- Přenos programu na Dynamic C.
- Referenční příručka k rodině Rabbit 4000 na Wayback Machine (archivováno 2011-12-26)
- Králík 4000
- Digi Systems na čipu
- Otevřený zdroj BACnet Stack pro Rabbit Family