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 83 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
Hlavní smyčka programu bude velmi jednoduchá: /* inicializace */ led_init(); lcd_init(); timer_init(TIME_INTERVAL_ms(10)); lcd_clrscr(); lcd_puts("MPOA: 04"); /* nekonecna smycka */ while(1) { task_kbd(); task_led(); } Funkce pro realizaci úlohy „běžícího světla“ může vypadat např. static void Timer0Handler (void) { T0IR clear interrupt flag */ timer_counter++; VICVectAddr Acknowledge Interrupt */ } Čtení systémového času provádí funkcí unsigned int sys_time(); Každá úloha bude představovat samostatnou funkci.76 Inicializace provádí pomocí funkce timer_init(TIME_INTERVAL_ms(10)); kde TIMER_INTERVAL_ms(10) symbolická číselná konstanta udávající počet cyklů časovače odpovídající intervalu 10ms, jehož uplynutí vyvolá přerušení. Obsluha přerušení inkrementuje proměnnou timer_counter, která udává „lokální čas“. task_kbd, task_led atd. takto: void task_led(void) { static unsigned long time; static unsigned char led 1; if((sys_time() time) 10) { Led led<<1; if(led led 1; bar_led(led); time sys_time(); } } . Např