Technické vývojové prostředky Budeme-li realizovat mikroprocesorový systém včetně programového vybave-ní, budeme v závěrečné fázi stát před problémem oživení jak obvodového zapojení (hadrware), tak jeho programového vybavení (software). V této fázi musíme detekovat a odstranit (odladit) případné chyby v návrhu i realizaci obou částí realizace v obvodovém zapojení i programovém vybavení. Oživování mikroprocesorové aplikace je možné provádět: Bez podpůrných technických prostředků - nejjednodušší přístup je v literatuře označován jako metoda "Burn and Crash", což můžeme volně přeložit "vypal a sleduj rachot" nebo "nahraj a spusť“. Vyskytnou-li se v návrhu obtížně zjistitelné chyby, může být vývoj zdlouhavý a únavný. S podpůrnými technickými prostředky: - simulátor programové paměti (simulátor EPROM) vhodný pro systémy s programem ve vnější paměti. - systém s MONITOREM a komunikačním kanálem- vývojový systém - s daným procesorem a vývojovým prostředím - s vývojovým prostředím simulující nahrazující chování mP - obvodový emulátor nahrazující daný procesor (se všemi časovými parametry)obvodový debuger integrovaný v procesoru s rozhraním JTAG
Zadání vývoje mikropočítače/mikrořadiče
Návrh programu
Návrh hardware
Ladění programu (simulace programu)
Test obvodů mikropočítače
Programování paměti mikropočítače
Funkční test mikropočítače +SW Oprava SW
+HW chyby? Konec vývoje mikropočítače
Oprava HW
Navrhovaný systém
sběrnice
V/V obvody
Procesor
patice EPROM
emulační zásuvka
Reset
emulační kabel
RS232C nebo CENTRONICS k počítači s vývojovým prostředím
budiče
procesor a paměť
dvouportová paměť
V/V obvody
sběrnice
Simulátor EPROM
sběrnice
Navrhovaný systém
V/V obvody Reset
Procesor
paměť
RS232C
Terminál/PC
Myšlenka propojení počítače PC s mikroprocesorovým systémem vybaveným MONITOREM nebo vývojovým prostředím vyústila ve výrobu tzv. vývojových modulů, které vyrábí pro své procesory řada výrobců i firem s nimi spojených. Úkolem těchto modulů je obvykle přinést návrháři systém s novým typem procesoru a umožnit mu tak rychlé ověření jeho vlastností pro danou aplikaci. Tyto systémy umožňují aplikační program testovat od metody „Nahraj a spusť“ až po krokování programu s možností výpisu stavu všech registrů a obsahu pamětí. Výhodou modulů je obvykle relativně nízká cena, rychlost ověření vlastností procesoru a úprav jeho vstupů před vlastním návrhem aplikačního modulu. Mezi hlavní nevýhody modulů i předcházejících metod je obvykle špatná možnost odhalení chyb vyplývajících ze souběhu dvou nebo více událostí.
sběrnice
Navrhovaný systém
V/V obvody
Procesor
patice EPROM
emulační zásuvka
Reset
emulační kabel Obvodový EMULÁTOR
vazební obvody
procesor emulační
řídící procesor
V/V obvody
sledovací paměť sběrnice
paměť emulátoru
RS232C nebo CENTRONICS
budiče
Relativně překotný vývoj nových procesorů a snaha výrobců integrovat do vlastních procesorů testovací, krokovací a emulační rozhraní, způsobila pos-tupný odklon od výroby obvodových emulátorů. Místo toho řada výrobců doplňuje své procesory rozhraním JTAG (IEEE 1149.1), které je primárně určeno k testování stavu jednotlivých vývodů procesoru. Možnosti nastavení a zjištění stavu na vývodech se využívá k elektronickému testování vyrobeného zařízení. Výrobci současně s tím integrují do procesorů logiku podporující ladění programu při plné rychlosti procesoru bez ovlivnění jeho činnosti. Na procesoru integrované ladící prostředky tak umožňují přes rozhraní JTAG vyvinout a odladit koncovou aplikaci.
V závislosti na typu aplikace můžeme používat různé programovací metody, které jsou pro jednočipové mikroprocesory vhodné či nikoliv. Nevhodnost me-tody závisí na architektuře procesoru (multitasking) nebo jen jeho nedostateč-ném výkonu. Programovací metody můžeme rozdělit podle způsobu zpracová-ní dat na: jednoprůchodové, víceprůchodové nebo rekurzivní. Častější je dělení podle reakce na vnější události: - programování v reálném čase procesor musí zpracovat veškeré údaje za periodu vzorkování vstupních dat (zpracování signálu). Program musí splňovat požadovanou přesnost zpracovat potřebný datový tok. Jednočipové mP až na výjimky vyhovují vzorkovací kmitočty do jednotek kilohertzů (0¸2kHz). - událostní programování je u jednočipových procesorů často využívané a program nebo jeho části si předávají data ke zpracování. Zařízení nebo mP aplikace vysílají a přijímají data (události). Událostí může být komunikace s měřícími senzory, mP v multiprocesorovém systému, ale i obsluha stisknutého tlačítka nebo vysílání sekvence do procesorem řízeného displeje. - stavové programování vede na program, jehož část a zpracování dat podobá chování stavového automatu (sekvenčního obvodu). Program provádí zpra-cování daného stavu (testuje vstupy, data) a na jejich základě realizuje přechod do stavů následujících. -Stavové programování může být nahrazeno jednoduchým multitaskingem. , přepínání různých částí programu v závislosti na stavu některých proměnných
Modulární programování přináší výhody v jednodušším a hlavně přehledněj-ším vytváření rozsáhlých programů, nezbytným v případě týmového vytváření programů. Umožňuje snazší ladění a úpravy vytvářených podprogramů, včet-ně možnosti jejich násobného použití a snadného začleňování do programových knihoven. Důležitou podmínkou je správné definování vstupů a výstupů pod-programů a předávání parametrů mezi moduly, kde modul je jeden nebo něko-lik spojených segmentů. Programátor pak může snadno jednotlivé moduly odladit a ověřené moduly spojit do výsledného i velmi rozsáhlého programu nebo začlenit do knihoven. Pokud se ve výsledném programu vyskytnou chyby, opravy je možné opět provádět v jednotlivých modulech nebo podprogramech. Na stejném principu se vytváří programy v jazyce C, kde jednotlivé operandy jsou z paměti přeneseny do registrů procesoru a následně jsou volány stan-dardní knihovní moduly. Proměnné do podprogramů se předávají pomocí registrů (char - R7, int - R6, R7, long nebo float - R4, R5, R6, R7, apod.). Při předávání více parametrů je použití registrů modifikováno a zbývající para-metry se přenáší přes zásobník. Při modulární tvorbě programu je třeba počí-tat s většími nároky na velikost zásobníku, protože je postupně voláno velké množství podprogramů. Díky tomu, že zásobník leží ve vnitřní paměti proce-soru, může nás tento postup při velkém členění dostat do potíží.
EDITOR
zdrojový soubor *.C
zdrojový soubor *.ASM
PŘEKLADAČ C51.EXE
PŘEKLADAČ A51.EXE
protokol o překladu *.LST
relativní přemístitelný soubor *.OBJ knihovní relativní moduly *.LIB
Spojovací program L51.EXE
Absolutní cílový program *.ABS
Transformace do formátu HEX OHS.EXE
Výpis informací o spojení *.M51
Strojový kód *.HEX Obvodový EMULÁTOR
PROGRAMÁTOR CPU, EPROM
SIMULÁTOR SIM51.EXE