Využítí ARM GCC vývojového retezce

| Kategorie: Diplomové, bakalářské práce  | Tento dokument chci!

Předmětem této práce je studium stávajícího vývojového řetězce pro mikroprocesor LPC23xx v předmětu MPOA. Hlavním cílem je zkoumání možností realizace nového vývojového řetězce, postaveného na GCC. Výstupy této práce jsou ukázkové aplikace s mikroprocesorem LPC2378 a GCC. Součástí vysledků jsou i návody pro studenty, jak tyto ukázkové aplikace implementovat. Ukázky zahrnují základní aplikace, RTOS aEthernet.

Vydal: FEKT VUT Brno Autor: Jan Ledvina

Strana 31 z 93

Vámi hledaný text obsahuje tato stránku dokumentu který není autorem určen k veřejnému šíření.

Jak získat tento dokument?






Poznámky redaktora
Tímto však dojde tomu, všechny proměnné, včetně proměnných ovladače LCD, jsou dostupné pouze procesu, který volal inicializaci LCD. Přístup semaforu opět stylem „take“ „give“. Nejprve byly provedeny pokusy s ovladačem FreeRTOS. tímto ovladačem již těmto chybám nedocházelo. dokončení komunikace touto periferii musí proces mutex uvolnit, čímž možnost ostatním procesům ke komunikaci. Po tomto zjištění byl projektu zakomponován druhý ovladačů. tohoto důvodu inicializace provedena samotném procesu. Důležitým rozhodnutím zde byla volba ovladače pro LCD. druhé kategorii jsou celkem možnosti použití jednobitových zpráv. Mutexy. Pokud mutex volný, úloha jej dočasně přivlastní tím sděluje ostatním procesům, periferii obsazenou. tohoto důvodu v případě volání funkce pro zápis LCD jiného procesu dojde chybě vlivem nedostupnosti některých stavových proměnných LCD ovladače. Navíc zde však dispozici vnitřní čítač semaforu, který čítá podle toho, jak semafor ovládán. Po odstranění zpoždění již ovladač pracoval naprosto bez problému. V FreeRTOS existují celkem dvě základní kategorie meziprocesové komunikace: Semafory/Mutexy (Semaphore/Mutex) Fronta (Queue). Byl však zjištěn další nedostatek. napsání aplikace však docházelo „zamrzání“ anebo k různým nestandardním stavům.24 Důvodem, proč nutné této aplikaci použít meziprocesovou komunikaci, je sdílení jedné periferie oběma procesy. Pro správnou činnost pak třeba vždy zajistit, aby počet přivlastnění vrácení mutexu byl stejný. Pro takovéto účely existují tzv. prostudování zdrojového kódu tohoto ovladače byl zjištěn nejzákladnější rozdíl způsobu realizace zpoždění pro generování řídících signálu LCD. Bylo však podle katalogového listu HD44780 [17] ověřeno, že jediná funkce, která vyžaduje zpoždění při prací displejem, return home. Proto bylo toto zpoždění odstraněno. Postupně byly zredukovány možnosti, které mohly způsobovat toto chování. Mutexy jsou jednobitové informace, které umožnují řídit právě přístup ke sdíleným zdrojům. Rekurzivní mutex je pak pouze variace mutexu, která umožnuje opakovaně „brát“ stejný mutex. Mutexy binární semafor jsou podstatě stejné. Fronta podstatě libovolně nastavitelná velikost paměti, která sdílená více procesy. Jejím využitím můžou být třeba vstupní buffery procesů, které přebírají požadavky ostatních procesů. Poslední možností tzv. Funkce realizující zápis instrukce LCD zde používala zpoždění ms. Oficiální manuál [4] uvádí dvě možnosti využití tohoto nástroje: resource managment event counting. čítací semafor. . Jelikož tento ovladač volá funkce RTOS, lze jej inicializovat až startu jádra RTOS. Jde mutex, rekurzivní mutex, binární semafor čítací semafor. Přesný důvod použití tohoto zpoždění nebyl zjištěn. Díky tomuto zpoždění trvalo zapsání každého znaku celkový zápis 2x16 znaků pak trval ms. Použít přeportovaný ovladač Petera Fleuryho anebo použít ovladač, který byl součástí demoaplikace FreeRTOS. tomto konkrétním případě jedná LCD displej. Dle požadavku zadání byl vytvořen nový projekt, kterého byly přidány již existující potřebné moduly. Tato funkce však ovladači nebyla nalezena. Pokud chce úloha přistoupit sdílené periferii nejprve zkontroluje příslušný mutex. Jediným rozdílem možnost prioritního systemu mutexů. Z tohoto důvodu ovladač nestačil zpracovávat data. V tuto chvíli existovaly dvě možnosti. Obě úlohy potřebují měnit údaj příslušném čase