Technické vývojové prostředky Budeme-li realizovat mikroový 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í mikroové 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 em 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ý (se všemi časovými parametry)- obvodový debuger integrovaný v u s rozhraním JTAG Zadání vývoje /mikrořadiče Návrh programu Návrh hardware Ladění programu (simulace programu) Test obvodů Programování paměti Funkční test Oprava SW +SW chyby? +HW Oprava HW - Konec vývoje
emulační zásuvka patice EPROM emulační kabel RS232C nebo CENTRONICS budiče k počítači s vývojovým prostředím a dvouportová Simulátor EPROM RS232C Terminál/PC Myšlenka propojení počítače PC s mikroový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é y ř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 u 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í u 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í.
emulační zásuvka emulační kabel patice EPROM budiče Obvodový EMULÁTOR sledovací emulátoru vazební řídící emulační RS232C nebo CENTRONICS Relativně překotný vývoj nových ů a snaha výrobců integrovat do vlastních ů 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é y rozhraním JTAG (IEEE 1149.1), které je primárně určeno k testování stavu jednotlivých vývodů u. 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 ů logiku podporující ladění programu při plné rychlosti u bez ovlivnění jeho činnosti. Na u 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é mikroy vhodné či nikoliv. Nevhodnost me-tody závisí na architektuře u (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 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 ů č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 multiovém systému, ale i obsluha stisknutého tlačítka nebo vysílání sekvence do em ří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ů u 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 knihovní relativní moduly *.LIB relativní přemístitelný soubor *.OBJ Spojovací program L51.EXE Výpis informací o spojení *.M51 Absolutní cílový program *.ABS Transformace do formátu HEX OHS.EXE Strojový kód *.HEX Obvodový EMULÁTOR PROGRAMÁTOR CPU, EPROM SIMULÁTOR SIM51.EXE