Jste zde

x51 - RAM Edit

Cílem tohoto článku je seznámit čtenáře s vývojovým zařízením, které umožňuje v PC editovat paměť

procesoru x51 na desce zapojené podle doporučeného zapojení. Program pro PC pod Windows umožňuje disassemblovat

obsah paměti, takže lze hledat konkrétní instrukci atd, což je užitečná funkce.

Hardware pro dále popsaný software

Paměť je pomocí hradel adresována do MOVC i MOVX adresního prostoru. Do vnitřní FLASH procesoru je nahrný "monitor" který se zavádí přepnutím na vnitřní paměť a resetem.

Popis zařízení
Při vývoji programů pro procesory je nejlépe, aby člověk měl zařízení, do něhož program vyvíjí, při ruce a program v něm mohl rovnou zkoušet tak, jak postupuje vývoj. Protože je však cena profesionálních hardwarových simulátorů příliš vysoká, můžeme simulátor nahradit (určitě alespoň pro jednodušší případy) popisovaným obvodem. Jedná se o docela elementární zapojení procesoru, ke kterému je připojena paměť programu a dat, spojená zde v jeden celek. Ve schématu je vynechán například notoricky známý obvod rozhranní RS 232 a mnoho dalšího, protože uvedený hardware představuje pouze základní zapojení, se kterým je popisované programové vybavení funkční.

Používání je velice jednoduché. Přepínač přepneme do polohy "vnitřní paměť" a stiskneme tlačítko reset. Tím začne pracovat ovládací program pro mikroprocesor uložený v interní paměti programu (viz. níže), který používá RAM jako paměť dat.. Potom pomocí jednoho z programů pro PC zavedeme do paměti žádaný soubor a při stisknutém tlačítku reset přepneme přepínač do polohy "vnější paměť". Po uvolnění tlačítka reset začne pracovat zavedený program, neboť procesor nyní užívá RAM jako paměť programu (ale i dat - na to pozor při psaní programů, jinak si přepíšeme běžící program daty).

Ovládací program pro mikroprocesor - "monitor"
Program zajišťuje komunikaci mezi PC a x51 deskou. Zdrojovy kód je uveden vbalíku, který je k dispozici v sekci download. Ovládací program (monitor) je nutno uložit do pevné (interní) paměti procesoru (tj. u Atmelů do FlashEEPROM). Program umožňuje zapsat a přečíst bajt z určité adresy a přečíst a zapsat skupinu bajtů. Reaguje také na "T" odpovědí "F", což slouží pro test, ale v dále popisovaných programech to není využito. Na chybný příkaz od PC reaguje "E" jako error a konečně po hardwarovém resetu pošle "R" jako reset. Přenosová rychlost je 9600 bitů za sekundu.

Ovládací program pro PC - verze MS-DOS
Umožňuje do paměti zavádět soubory, a modifikovat ji ručně. Při spuštění určíme číslo sériového portu (lze za běhu programu měnit, po změně se program přepojí na nově určený port) a jméno souboru (jméno se nekontroluje ihned po zadání, lze ho rovněž za běhu programu měnit - pokud nechceme pracovat se souborem, prostě zadáme cokoli), s nímž chceme pracovat. Klávesou Ins lze změnit přenosouvou rychlost, standartně nastavenou na 9600 bitů za sekundu, program se po změně připojí znova s novým nastavením. Ostatní funkce jsou, domnívám se, zřejmé z obrazovky, adresy a hodnoty bajtů se zadávají pouze hexadecimálně bez označení "h" na konci a počty bajtů přirozeně dekadicky. 

Pozor, funkce zapiš blok dat očekává ruční zadávání bajt po bajtu. Program umožňuje zadat jméno souboru a číslo portu přímo na příkazový řádek, například takto : "ovlram51.exe pokus.bin -1" . Program potom odešle soubor pokus.bin na port COM1. 
Soubor musí být v binárním tvaru. Je užitečné si řádek podobný tomuto: "ovlram51 %1.bin -1" napsat do dávkového souboru, pomocí kterého kompilujeme programy v assembleru x51, pak se nám v případě připojení zařízení program ihned zavede do paměti.

Ovládací program pro PC - OS Windows 95/98
Jedná se o program, který maximálně využívá grafické uživatelské rozhranní operačního systému Windows. Umožňuje jednoduše a přehledně zobrazit celou paměť (max. 32 kB) formou tabulky, provádět složitější modifikaci paměti, hledat v paměti bajty nebo instrukce a konečně (pro ty, kteří ještě nečtou instrukce rovnou v hexadecimálním tvaru :-) ), disassemblovat paměť a v přehledné tabulce modifikovat argumenty instrukcí.

Po spuštění se program ihned pokusí připojit na port, který přečte ze souboru RAMEdit.ini. Není-li úspěšný, vypíše do stavového řádku chybová hlášení. V takovám případě se stiskem klávesy F11 dostaneme do okna nastavení, zde vybereme správný port a stiskneme tlačítko Akceptovat. Poté se program pokusí připojit k nově zvolenému portu. Standardní port je COM1 a přenosová rychlost 9600 bitů za sekundu. Připojí-li se program úspěšně, na stavovém řádku dole se objeví nápis "Připojeno". Pro seznámení s program je určena jeho nápověda, která obsahuje i jeho popis.

Závěr
Program byl vyvinut s cílem usnadnit programátorovi modifikaci programů a hledání chyb v nich, přehledně zobrazit obsah paměti programu s možností přímé modifikace a poskytnout možnost rychle se podívat, co vlastně bajty, které vidíme, představují.

DOWNLOAD


Hodnocení článku: