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 70 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
2012 * Purpose: simple EMAC driver for MCB2300 * Version: 1.2 Ovladač EMAC ver.1.2 */ #ifndef _EMAC_H_ #define _EMAC_H_ void init_emac (void); unsigned long get_data_emac (char *data); void send_data_emac (void *header, void *data, unsigned long length); #endif _EMAC_H_ */ C.5.1 * Compiler: GCC 4.h /* Created on: 30.3 Kódy funkcí pro zapnutí vypnutí přerušení inline void enable_irq() { long b; __asm__ __volatile__ "MRS %0, CPSR \n\t" "BIC %0, %0, #0xC0 \n\t" "MSR CPSR_c, "=r" (b)); } inline void disable_irq() { long b; __asm__ __volatile__ "MRS %0, CPSR \n\t" "ORR %0, %0, #0xC0 \n\t" "MSR CPSR_c,%0 "=r" (b)); } //prototypy extern inline void disable_irq (void) __attribute__((always_inline)); extern inline void enable_irq (void) __attribute__((always_inline)); C.3.1 soubor emac.4 Ukázka kódu realizující výpis bitu LED diody x (unsigned long 0xFFFFF110; out (unsigned char) (*x&0x000000FF) ); bar_led(out); for(y=0; y<100000;y=y+1); out ~out; bar_led(out); while( !(((FIO2PIN (1U<<10))==0))); out (unsigned char) (*x&0x0000ff00) ); bar_led(out); for(y=0; y<100000;y=y+1); .63 } MAC_RXCONSUMEINDEX index; } return length; } C