|
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.
c slouží proměná tlacitko.h takto:
void kbd_handler (void) __attribute__ ((interrupt("IRQ")));
V samotné funkci pro obsluhu přerušení pak třeba provést následující kroky:
1. našem případě se
označení provede prototypu funkce souboru kbd_drv.c kbd_drv. Dalším
krokem vytvořením samotné ISR funkce.
Nastavení tohoto ukazatele provede takto:
install_irq(EINT0_INT,(void *)kbd_handler,LOWEST_PRIORITY);
Přičemž argument (void *)kbd_handler odpovída adrese funkce ISR.
.
V případě obě úlohy začly zapisovat LCD zároveň dojde chybě výstup na
LCD nebu korektní. Fronta umožňuje mezi procesy předávat bloky dat. Pro
možnost propojení modulu main.82
registrů. Jelikož jde ISR funkci třeba speciálně označit.
Systém FreeRTOS poskytuje celkem nástrojů pro komunikaci mezi procesy. Systemy RTOS pro tyto účely zavádí meziprocesovou komunikaci. Údaje pro jejich nastavení lze zjístit katalogového listu MCU.c.
Posledním krokem dokončení celé aplikace realizace úlohy stopky. Otestování
ovladače lze provést druhém procesu následujícím kódem:
void task_stopky( void *pvParameters )
{
while(1)
{
bar_led(tlacitko);
}
}
V tomto případě dojde při stisku tlačítka rozsvícení nebo zhasnutí všech LED
diod.
Po dokončení ovladače kbd pro tlačítko jej lze otestovat hlavním modulu main.
Fronta:
Je určena pro realizaci vstupních bufferru procesů.
Tento ukazatel třeba předat VIC, který jej předá případě přerušení jádra. Jde funkci, která již připravena
kbd_handler. Ukončit ISR
Toto provedení může vypadat takto:
EXTINT 0x00000001; //vynulovani IRQ
tlacitko 0xFF; //invertovani promene tlacitko
VICVectAddr 0x00000000; //ukonceni ISR
V tomto případě využita deklarována proměná tlacitko, jejiž stav znegován. Jelikož obě
úlohy budou přistupovat LCD třeba zavést mechanizmus pro hlídání přístupu. Provést obsluhu
3. Posledním
krokem inicializaci nastavení ukazatele funkci ISR (Interupt Service Routine). Vynulovat požadavek IRQ
2. Jde
o Mutex, Rekurzivní mutex, Binární semafor, čítací semafor Frontu. Její velikost lze při vytváření
zvolit