|
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.
Samozřejmě, veškeré aplikace této práci mají
makefile napsaný přesně odpovídající jejím souborům.
.
Na základě této vlastnosti třeba zkontrolovat, zda soubor skutečně definován
správně.
Na základě těchto zjištění lze jednoznačně určit, chyba zdrojových kódech
v jazyce Jako další krok bylo otestováno nastavení různých úrovní pinech MCU. Tato úloha velice jednoduchá její účel
není tvorbě jednoduchého kódu, ale seznámení vývojovým prostředím prací
v tomto prostředí.
Poznámka makefile jsou dvě sekce zdrojových kódu: ARM THUMB. Zdálo se, jakoby někdy došlo zápisu do
příslušného registru jindy ne. konzultaci několika studenty bylo zjištěno, tato část značně
matoucí. Avšak případě, student
rozhodne nějaký soubor přidat, třeba příslušně upravit soubor makefile.s.
Zde došlo dalšímu průlomu, při změně zdrojovém kodu došlo občas vygenerování
výstupního souboru, který pracoval správně. Respektive při linkování dojde
k změně hodnot výsledný kód chybný.
3.
Poznámka Úpravování seznamování souborem makefile bylo nakonec
vypuštěno. delší době bylo zjištěno, že
problém byl zápisu souboru lpc23xx.
Jedná jednoduchý driver pro LED diody. Tato kontrola byla provedena přidaný soubor projektu již plně odpovídá
tomuto požadavku GCC. Tyto
sekce určují, jaka instrukční sada bude použita při překladu.1 B.16
Tento kód již fungoval byla tedy úspěšně ověřena správnost části řetězce, která je
zodpovědná programování MCU. Důležité však je, tyto stavy
naprosto nezávisí žádných okolních jevech (Reset, Teplota, Napětí Ucc).h deklaraci adres registrů.4.
Po detailní analýze bylo zjištěno, tato teorie správná. Pro ilustraci zde
uveden příklad:
(*(volatile unsigned long 0x3FFFF050 0x000000FF; /*správně*/
(*(unsigned long 0x3FFFF050 0x000000FF; /*špatně*/
Oba zápisy měly uložit adresu 0x3FFFF050 hodnotu 0x000000FF. některé vygenerované
kódy neuloží zadané hodnoty zadaných registrů. Přesný vznik této chyby nebyl zjištěn je
možné, odstranění chyby lze provést změnou nastavení GCC.c nebo *.2) principem souboru makefile.2 Aplikace driver LED
Další aplikací byla již první úloha podle oficiálních zadání úloh předmětu MPOA. Druhý
zápis však někdy překladač GCC přeloží špatně. Důvodem proč třeba pochopit
alespoň některé úseky souboru makefile nutnost modifikovat jej každým přidaným
zdrojovým kódem *. Bylo
jednoznačně určeno, jde nedostatek překladu.
V tomto případě jedná seznámení organizací adresářů souborů
(příloha B