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