Torrent ke stažení programování pro tvůrce algoritmů. Program Assembler v softwarovém prostředí Algorithm Builder

Grafické programovací prostředí pro vývoj aplikací pro mikrokontroléry s architekturou AVR.

Algorithm Builder je Výkonný nástroj, který umožňuje provést celý cyklus vytváření a kontroly programového kódu. Prostředí obsahuje: grafický editor, mikročipový simulátor pro ladění algoritmů, kompilátor a obvodový programátor k načtení kódu do krystalu. Program je domácí analog Assembler a je vhodný jak pro zkušené vývojáře, tak pro ty, kteří s firmwarem zařízení teprve začínají.

Algoritmy mohou být vytvořeny na úrovni assembleru nebo na úrovni maker na základě operace s vícebajtovými hodnotami s přihlédnutím ke znaménku. Makrooperátory navíc zahrnují nejběžnější sady příkazů.

Všechny vyvíjené programy jsou prezentovány formou větvených stromových blokových diagramů, přechodové sítě jsou zobrazeny graficky ve vektorové podobě. Pokud je podle podmínky potřeba přejít na libovolné místo v kódu programu, tak tam stačí nakreslit vektor. To osvobozuje software od více názvů značek. V případě, že je větev příliš dlouhá, je vždy možné větev oslovit jménem tagu. Jasnost takové logické struktury podle ujištění vývojářů výrazně zkracuje dobu psaní kódu a snižuje počet chyb.

Hlavní okno umožňuje umisťovat potřebné objekty a měnit je, vkládat, přesouvat atd. jako v každém grafickém editoru. V samostatné části obrazovky se vytvoří okno ve formě tabulky se seznamem všech konstant a proměnných, čímž se algoritmus zbaví dalších vstupů. Chcete-li nakonfigurovat parametry příslušenství(UART, SPI, ADC, časovače) je k dispozici speciální prvek s rozhraním rozbalovacího okna. Sada instrukcí poskytujících zvolené parametry činnosti zařízení je nezávisle generována překladačem. Kromě toho je podporováno automatické překódování kódů Windows ANSI do ruských alfanumerických kódů LCD. Program podporuje široký rozsah rodiny mikrokontrolérů: ATtiny, ATmega, AT90.

Simulátor zobrazuje všechny změny probíhající v různých registrech, paměťových místech a časovačích. Simulaci lze provádět krok za krokem (se zadáním funkcí nebo bez nich), až do bodu přerušení nebo do vybrané oblasti.
Aby obvodový programátor fungoval, musíte samostatně sestavit nejjednodušší adaptér, přes který je mikrokontrolér připojen k portu COM počítače. Navíc je možné připojit přes USB konektor. Programátor spočítá počet přeprogramování jádra a uloží čítač do samotného krystalu.

Režim ladění monitoru v jádře pomocí dalšího adaptéru (všechny obvody jsou k dispozici v dokumentaci softwaru) vám umožňuje sledovat vnitřní stav skutečného krystalu v jakémkoli bodu zlomu. Pro komunikaci mezi ovladačem a počítačem je podle volby uživatele přidělen pouze jeden pin. Ladění na čipu ladění se vztahuje na jakýkoli typ čipu, který má SRAM.

Přes své zjevné přednosti je Algorithm Builder v amatérském rádiovém prostředí málo známý. Částečně je to způsobeno tím, že do roku 2010 bylo vizuální programovací prostředí placené, bezplatná demoverze omezovala kód na dva kilobajty. Dnes je software distribuován zcela zdarma. Složka s nainstalovaný program lze zkopírovat na jiná média a pracovat jako přenosné. Software je dodáván s uživatelskou příručkou. Článek pojednává o řadě nejjednodušších děl a ukazuje programátorské obvody pro USB a COM porty.

Autory programu Algorithm Builder je skupina ruských programátorů vedená řemeslníkem Gennadijem Leonidovičem Gromovem z Nižního Novgorodu. Program se vyvíjí dodnes, přibývají nové funkce, na webu autora se objevil malý výběr knihoven.

Rozhraní Algorithm Builder a uživatelská příručka jsou uvedeny v ruštině a angličtině.

Software je funkční na operačních systémech Microsoft Windows 95, 98, 2000, NT, ME, XP, Vista a 7.

Distribuce programu: volný, uvolnit

Pokud dva předchozí programy, které jsem doporučil jako nejlepší možnost Chcete-li začít pracovat s elektronikou obecně a mikrokontroléry konkrétně, pak je tento program pouze mou osobní preferencí a upřímně řečeno, nebudete jej potřebovat k opakování návrhů z tohoto zdroje. Nemohu ale nezmínit program, který je příjemný po všech stránkách.

Co má tedy Algorithm Builder ve svém arzenálu?
Celý vývojový cyklus. Algorithm Builder je určen pro produkci celého vývojového cyklu, počínaje zadáním algoritmu, včetně procesu ladění, a konče programováním čipu.

Tvůrce algoritmů dosti nekonvenční program z hlediska programovacího jazyka. Autor je trochu nedůvěřivý a program nazývá Algorithm Builder. Ve skutečnosti neexistuje žádný algoritmus v obvyklém slova smyslu. Je tam assembler zabalený do pěkného vizuálního programovacího obalu. Správnější by bylo pojmenovat program - visual assembler nebo assembler builder. A protože se jedná o assembler, získáte nejefektivnější kód na výstupu.


Práce s proměnnými
a konstanty organizována geniálně jednoduchým způsobem. Inicializace se provádí v samostatném okně ve formě tabulky - osvobození algoritmu od nepotřebných záznamů. V přeneseném slova smyslu je vše rozloženo na policích. Je vhodné mít seznam všech proměnných a konstant kdykoli po ruce.

Periferní seřizovač. Algorithm Builder má pohodlný periferní seřizovač (časovače, UART, ADC, SPI atd.), který vám umožní jednoduše vybrat požadované parametry zařízení v okně nastavení bez čtení datových listů. Ve stejném okně Builder poctivě ukáže sadu instrukcí, které tyto parametry poskytují.


Přechody
se v programu provádějí velmi přehledně - ve vektoru. Pokud potřebujete přejít podle podmínky do libovolného bodu v programu, stačí přetáhnout vektor do tohoto bodu. To osvobozuje program od bezpočtu názvů tagů, které jsou nevyhnutelným balastem v klasickém sestavení. Je také možná navigace podle pojmenovaných štítků.

Obvodové programování krystalu. Při použití in-circuit programátoru je mikrokontrolér připojen k COM portu počítače pomocí jednoduchého adaptéru (tři diody a několik rezistorů). USB připojení... Programátor sleduje počet přeprogramování čipu a ukládá počítadlo přímo do čipu. Proces programování krystalu je velmi jednoduchý – ve dvou „šťouchacích“.

Ladění monitoru na čipu. Algorithm Builder poskytuje ladění na čipu, které vám umožňuje sledovat obsah skutečného čipu v daném bodě přerušení. V tomto případě se používá pouze jeden výstup pro komunikaci mikrokontroléru s počítačem a podle volby uživatele. Ladění monitoru lze aplikovat na jakýkoli typ krystalu, který má SRAM. Toto je verze softwaru debugWIRE. Jednoduše si nedokážu představit ladění programů bez této věci.

Tak proč takový dobrý program tak málo známý?
Prvním důvodem je, že program byl placen až do roku 2010. Bezplatná ukázka měla plnou funkčnost, ale omezovala zkompilovaný programový kód na 2 kilobajty. V roce 2010 autor programu udělal novoroční dárek - verze 5.43 byla uvolněna bez omezení.
Druhým důvodem je nedostatečná podpora programu. Nenajdete žádnou aplikaci výrobce, ve které je Builder použit. Internetové zdroje věnované tomuto programu lze spočítat na jedné ruce.
Je to samozřejmě škoda – program je opravdu zajímavý.

Závěry:
Při přechodu na Algorithm Builder budou assemblery psát s vařící vodou, protože budou mít stejný assembler, ale jeho správa bude mnohem jednodušší a přehlednější. Jedna věc je špatná – musíte se rozloučit se starými knihovnami a psát nové.
Sishniki rozhodně nebudou mít rádi Builder, protože budou muset jít dolů na úroveň assembleru a který sishnik by se chtěl motat s registry.
Pravděpodobně nejlepší cílovou skupinou jsou začátečníci s mikrokontroléry. Program je jednoduchý, a proto bude snadné se naučit programovat.
Obecně se samozřejmě závěry ukázaly jako nejednoznačné. Zamyslete se sami... 🙂

Program má manuál napsaný ve formě výukového článku. V návodu je uvažováno vytvoření jednoduchého projektu - voltmetr, uvedena schémata programátorů COM a USB. Neomezenou verzi si můžete stáhnout zde

Vizuální programovací prostředí


Kdo má zájem podívat se do manuálu, ale instalace programu je líná - zde to posílám samostatně


Program se aktivně vyvíjí, proto se podívejte na nejnovější verze na webových stránkách programu www.algrom.net. Kromě toho je zde také malý výběr knihoven.

P.S. Program je přenosný. Po instalaci, tchán, pustíme složku s programem na USB flash disk a pracujeme z ní.

(Návštíveno 17 675 krát, z toho 18 návštěv dnes)

Operátoři algoritmu se dělí do dvou skupin.

První skupinu tvoří elementární operátory, které implementují jednu elementární instrukci mikrokontroléru. Programování pomocí takových příkazů vám umožní vyvinout váš program na úrovni jazyka symbolických instrukcí. V algoritmu jsou tyto operátory zobrazeny běžným (ne tučným) písmem.

Druhou skupinu tvoří makrooperátory, které se při sestavování transformují na sadu nezbytných elementárních instrukcí mikrokontroléru. Makrooperátory umožňují pohodlná forma provádět složitější transformace, včetně vícebajtových.

Algoritmické operátory jsou zapsány hlavně v objektech „Field“, podmíněné přechody jsou implementovány prostřednictvím objektu „Condition“ a nepodmíněné přechody jsou implementovány prostřednictvím objektu „

JMP Vector“. Formát pro zápis operátorů je výrazně odlišný od klasického assembleru. Je postaven na vizuálně-funkčním principu a obsahuje obraz prováděné akce. Operátory musí být napsány ve vzoru akceptovaném kompilátorem.

Níže v tabulce jsou šablony všech možných elementárních operátorů pro mikrokontroléry AVR. Je třeba si uvědomit, že některé jednoduché typy mikrokontrolérů neobsahují celou prezentovanou sestavu.

Symbol „#“ ve vzoru operátoru implikuje konstantu reprezentovanou buď přímo, nebo jako algebraický výraz, „Rd“ a „Rr“ jsou pracovní registry a „Pn“ je I/O registr.

Operátoři jsou prezentováni ve formě tabulky.

Komentář operandu

R Pracovní registr, standardní nebo deklarovaný v sekci Pracovní registry: (...)

# Konstantní (...)

SRAM Var Variable deklarovaná v sekci SRAM: (...)

Proměnná EEPROM deklarovaná v sekci EEPROM: (...)

[#] Buňka SRAM adresovaná přímo

[X] Buňka SRAM adresovaná nepřímo X

[--X] Buňka SRAM adresovaná nepřímo na X s předběžným snížením

Nepřímo adresovaná buňka SRAM v X s dodatečným přírůstkem

[Y] Buňka SRAM adresovaná nepřímo v Y

[--Y] Buňka SRAM adresovaná nepřímo v Y s předběžným snížením



Buňka SRAM adresovaná nepřímo v Y s dodatečným přírůstkem

Buňka SRAM adresovaná nepřímo v Y s offsetem adresy # bajtů

[Z] Buňka SRAM adresovaná nepřímo Z

[--Z] Buňka SRAM adresovaná nepřímo v Z s předběžným snížením

Buňka SRAM adresovaná nepřímo v Z s dodatečným přírůstkem

Buňka SRAM adresovaná nepřímo v Z s offsetem adresy # bajtů

P I/O registr (...)

EE [#] Buňka EEPROM adresovatelná přímo

Operandy označené (...) mohou být deklarovány jako vícebajtové. Náhrada operandů různých formátů je povolena. V tomto případě, pokud je operand přijímající výsledek operace kratší než druhý, pak bude dimenze operace omezena na nejmenší, jinak budou chybějící bajty vyplněny nulami. Je třeba mít na paměti, že oba operandy musí mít stejný formát pro správnost operace s hodnotami, které berou v úvahu znaménko, jinak může být poškozeno záporné číslo. Formát operandů v podmínkách makra by měl být pouze stejný.

Nepřímé operandy jsou jednobajtové operandy. U vícebajtových operací s nepřímým adresováním je nutné přetypovat jejich formát. Chcete-li to provést, přidejte do záznamu dvojtečku a deklaraci formátu, například:

# hAB3E -> [Y]: Slovo

takový makrooperátor bude transformován do následující sekvence operátorů:

Ve vícebajtových makrooperátorech, kromě pravých posunů, akce začínají nejméně významným bajtem (u operátorů pravého posunu nejvýznamnějším). S ohledem na tuto skutečnost existují omezení týkající se možnosti vytvářet nepřímo adresované operace maker:

Pro operace, které začínají nejméně významným bajtem, není možné použít operandy s předponou, například: [--X]: Word + 24000

Pro operace, které začínají nejvýznamnějším bytem (posuny doprava), nelze použít operandy s přírůstkem, například:: Int24 >>

Navíc není možné vytvořit vícebajtový makrooperátor s operandem [X], protože zde není offsetové nepřímé adresování (

). Použijte nebo [--X].

Pokud se ukáže, že nelze vytvořit operaci makra, kompilátor vydá zprávu: „

Takovou makrooperaci nelze vytvořit “.

Příkazy maker se zapisují výhradně do objektů Field. Šablony možných makrooperátorů jsou uvedeny v tabulce:

Komentář k šabloně

* -> * Kopírovat

* + * Aritmetické sčítání

* - * Aritmetické odčítání

* & * Bitově AND

*! * Bitová operace OR

* ^ * Exkluzivní bitové NEBO

* Resetovat (zapsat nulu)

* ++ Přírůstek

* - Snížit

- * - Bitová inverze

* >> Logický posun doprava

> * >> Logické řazení doprava s přenášením

± * >> Aritmetický pravý Shift

<< * Логический сдвиг влево

<< * < Логический сдвиг влево с переносом

Při použití operandů patřících do EEPROM kompilátor automaticky načte potřebný kód pro čtení a zápis do ní. Je třeba mít na paměti, že pokud je proveden zápis do EEPROM, pak kód zahrnuje čekání na konec zápisu. Spuštění bude trvat několik milisekund.

Při kompilaci jsou makrooperátory převedeny na sadu základních instrukcí mikrokontroléru. V tomto případě se pro implementaci takové množiny zpravidla používají zprostředkující registry r16 a r17. Proto se při použití makrooperátorů, aby se předešlo nedorozuměním, nedoporučuje tyto registry používat a je vhodné si jejich obsah předem uložit do zásobníku v rutinách pro obsluhu přerušení.

Pokud se v makrooperátoru předpokládá operace s okamžitou konstantou, pak je v tomto případě účelnější použít pracovní registry deklarované v horní polovině. V opačném případě se použijí přechodné instrukce pro načtení částí konstanty do registru r16. To může vést ke zvětšení velikosti kódu až na dvojnásobek, i když takový záznam nebude chybný.

Je třeba mít na paměti, že příznaky vyvolané makrooperacemi jsou nedostatečné pro analogické operace na úrovni elementárních operací mikrokontroléru a jejich použití pro přechodové podmínky bude nesprávné.

Pro implementaci smyček je vhodné použít makropodmínku: „R--“. Zahrnuje dekrementaci jednobajtového registru a větvení, pokud je výsledek nenulový.

Objekt "Label" - (štítek)

Je to svislý tah umístěný uvnitř bloku příkazů a volitelný název vlevo nebo vpravo od tahu. Štítek je určen k označení míst v algoritmu, kde je možná implementace podmíněných a nepodmíněných skoků. Chcete-li jej zadat, musíte buď vybrat položku nabídky "Object \ Label", nebo stisknout klávesy "Alt + L", nebo stisknout tlačítko s písmenem L na nástrojové liště. V případě potřeby lze návěští přiřadit konkrétní adresu programu, k tomu je třeba před jméno (pokud existuje) napsat konstantu nebo algebraický výraz, který tuto adresu definuje. Chcete-li změnit pozici názvu štítku, stiskněte klávesu Tab.

Přerušit servisní štítky.

Pro usnadnění programování podporuje Algorithm Builder speciální typ štítků – servisní štítky přerušení. Pro obsluhu přerušení běžným způsobem je nutné umístit kód nepodmíněného skoku do odpovídajícího podprogramu na adresu vektoru přerušení. Při použití speciálního druhu štítků to vše kompilátor dělá automaticky. Chcete-li to provést, musíte dát štítku (vertexu) standardní název přerušení a stisknutím klávesy „F2“ jej označit jako makroformaci, název se zobrazí tučně. Stejného výsledku lze snadněji dosáhnout výběrem položky nabídky „Objects \ Interrupt vectors \ ...“.

Když kompilátor narazí na alespoň jeden takový štítek, vyplní volné místo vektorů přerušení návratovým kódem z rutiny služby přerušení („RETI“) a umístí kód nepodmíněného skoku na tento štítek na odpovídající adresu přerušení.

Objekt "Vertex" - (horní část bloku)

Svým zobrazením a účelem je zcela shodný s popiskem, na rozdíl od něj však nastavuje umístění bloku na pracovní rovině a je vždy jeho začátkem. Chcete-li vytvořit vrchol, vyberte buď položku nabídky "Object \ Vertex", nebo stiskněte klávesy "Alt + V", nebo stiskněte tlačítko s písmenem V na nástrojové liště, nebo použijte myš stisknutím levého tlačítka na požadované místo pole v kombinacích kláves “

Alt + Ctl + Shift “.

Objekt "Podmínka" - (podmíněná větev)

Konstrukčně nejsložitější. Objekt je určen pro realizaci podmíněných skoků. Jedná se o oválný obrys, do kterého je vepsána přechodová podmínka a případný vektor ve formě přerušované čáry se šipkou na konci, v jehož blízkosti je možný volitelný název vektoru. Aby byl vektor správně adresován, musí jeho konec končit buď štítkem, vrcholem, nebo segmentem jiného vektoru, nebo musí mít název adresovaného štítku.

Editace vektoru se provádí buď pomocí směrových kláves v kombinaci s klávesou „Alt“, nebo pomocí myši se stisknutým levým tlačítkem, rovněž v kombinaci s klávesou „Alt“. Chcete-li přepnout z úpravy podmínky na úpravu názvu vektoru a poté změnit jeho umístění na opačné, stiskněte klávesu „Tab“. Chcete-li zadat nový objekt, vyberte buď položku nabídky „Object \ Condition“, nebo stiskněte klávesy „Alt + C“ nebo stiskněte tlačítko s písmenem C na panelu nástrojů.

Operátory podmíněného přeskočení dalšího operátoru.

Existují tři možné možnosti pro konstrukci objektu "Podmínka":

1. Vektor objektu chybí a název vektoru buď chybí, nebo obsahuje vyhrazené slovo „Přeskočit“. V následujících příkladech se operace provádí:

„[X] -> r2“ bude přeskočeno, pokud je splněna podmínka „r1 = r2“.

"[X] -> r2"

2. Zapíše se inverzní podmínka, chybí vektor a jako název vektoru se zadá instrukce, která se má přeskočit. V tomto případě bude objekt interpretován jako: proveďte příkaz, pokud je podmínka splněna. Následující příklady jsou zcela totožné.

"[X] -> r2"

3. Pokud je následná instrukce krátký nepodmíněný skok (RJMP), je povolena inverzní podmínka a vektor této podmínky bude interpretován jako následný nepodmíněný skok, tedy objekt bude interpretován jako: proveďte krátký nepodmíněný skok, pokud podmínka splněna. Následují tři zcela totožné příklady.

R1 = R2 šipka k linii, kam chcete jít

Ladicí prostředí AVR STUDIO.

Ladicí prostředí pro vývoj aplikací pro mikrokontroléry rodiny AVR obsahuje:

  • Assembler překladač (Atmel AVR macroassembler)
  • Debugger
  • Software nejvyšší úrovně pro podporu programování v systému (ISP)

Ladicí prostředí podporuje spouštění programů jak ve formě textu assembleru, tak ve formě zdrojový text jazyk C. Ladicí prostředí AVR podporuje všechny typy mikrokontrolérů AVR a má dva režimy provozu:

  • režim softwarové simulace
  • režim ovládání odlišné typy Emulátory obvodů Atmel

Uživatelské rozhraní se při výběru mezi režimy ladění nemění.

Ladicí prostředí AVR STUDIO umožňuje ladit aplikace pomocí vestavěného softwarového simulátoru nebo externího in-circuit emulátoru.Při spuštění automaticky detekuje přítomnost emulátoru na jednom ze sériových portů počítače. Když je nalezen emulátor, je vybrán základní ladicí systém, pokud žádný emulátor neexistuje, ladění se provádí na vestavěném softwarovém simulátoru AVR.

In-circuit emulátor umožňuje ladit aplikaci přímo na hotovém produktu. při práci v reálném čase je ladění na emulátoru rychlejší než v softwarovém simulátoru. informace o aktuálním režimu ladění se zobrazují ve stavovém řádku AVR STUDIA

V AVR STUDIO pro ladění programů existují dva příkazy v režimu krok za krokem Step Over a Trace into. Rozdíl mezi nimi je ten, že příkaz Step Over nefunguje v podprogramech.

Pro sledování činnosti programu je k dispozici režim otevírání více oken, okna se otevírají přes nabídku Zobrazit nebo tlačítka na panelu nástrojů.

ladicí prostředí nepodporuje následující režimy a uzly MK

  • analogově digitální převodník
  • analogový komparátor
  • hodiny reálného času
  • režim nízké spotřeby

Pro hardwarovou podporu AVR STUDIO použijte

  • startovací a vlastní vývojové sady
  • obvodové programátory
  • in-circuit emulátory

Během ladění lze inicializovat vnitřní RAM a EEPROM (v překladovém souboru formátu .EEP) nebo jejich obsah uložit ve formátu .HEX, k tomu slouží položka Up / Download Memory v menu File

Prostřednictvím nabídky Soubor můžete otevřít firmware vytvořený jinými uživateli Otevřít, vytisknout napsané programy Tisk, zkontrolovat stav zařízení připojených k sériový port Nastavení COM portu.

Nabídka Nástroj obsahuje příkazy pro spouštění řídicích programů.

nabídka Zobrazit obsahuje prohlížeče:

  • paměťové buňky Programy Program Paměť
  • okno datové paměti Data
  • EEPROM box Eeprom
  • I/O port registruje nové IO okno
  • okno průběhu programu Paměť
  • kontrola nad změnami proměnných Watch
  • zobrazení stavu programového čítače, ukazatele zásobníku obsahu stavového registru SREG a indexových registrů X, Y a Z aktuálního času provádění programu hodinové frekvence jádra mikrokontroléru Okno procesoru
  • prohlížení stavu registrů Registry (Pokud se během provádění programu v dalším cyklu změní hodnota některého registru, bude tento registr zvýrazněn červeně. Pokud v dalším cyklu zůstane hodnota registru stejná, barevné zvýraznění se být odstraněn. Podobná kontrola nad změnami je aplikována na vstupní výstup paměti systému Windows a proměnné.)
  • sledování stavu periferních zařízení I/O okno

Nabídka Úpravy je podobná standardnímu textovému editoru.

Nabídka Windows umožňuje upravit umístění otevíracích oken

Nápověda obsahuje informace nápovědy o anglický jazyk

project umožňuje otevírat a vytvářet nové projekty a ukládat jejich obsah

Nabídka ladění umožňuje ladicímu programu

breakpoint upravuje výběr bodů přerušení

Trace & triggers trasování

Možnost umožňuje simulaci nebo emulaci programu

Vytvoření programu

Otevřete AVR studio 3.56

Otevřete nabídku nový projekt v nabídce projektu v okně vytvořeného nového projektu, které se objeví, zadejte název projektu do řádku název projektu. Stejný název bude automaticky zkopírován do úvodního okna souboru

Chcete-li definovat složku, ve které bude projekt umístěn, klikněte na tlačítko…. Vpravo od okna umístění v okně pro výběr složky, které se otevře, napište do řádku aktuální složky název složky. Klikněte na vybrat a poté se vrátíte do okna vytvoření nového projektu

Poté vyberte typ projektu Atmel AVR Assembler à Další à vyberte platformu deug a zařízeníà debug platform à avr Simulator v okně zařízení typ mikrokontroléru, pokud je frekvence vyšší, zobrazí se zpráva

Tím aktivujeme okno assembleru s projektem

Symbol ". „Směrnice pro montážníka

";" komentáře, které nemají vliv na chod programu

F2 vyhledá značky příkazů v programu

Ctrl + F2 nastaví značky ladicího programu

F7 sestavení programu s uložením ve formátu. hex

F11 ladění otevřeného pracovního prostoru

Shift + F5 - Resetovat reset

Ctrl + F5 - Přerušte zpětné zastavení ladění

F9 - Nastavte značku bodu přerušení

F5 - Spusťte program do bodu přerušení

Ctrl + F10 přejde na provedení příkazu označeného kurzorem

Vysílání a kontrola pravopisu.

Project à Assembleà Project Output Toto okno obsahuje informace o počtu slov kódu a údaje o přítomnosti chyb a další informace. Chcete-li chyby lokalizovat, umístěte kurzor myši na zprávu a dvakrát klikněte levým tlačítkem myši. V důsledku toho bude kurzor umístěn na řádku, který způsobil chybovou zprávu, a tento řádek bude zvýrazněn. Pokud zdrojový text assembleru obsahoval segment energeticky nezávislých dat, pak se během překladu vytvoří soubor s rozlišením .er. Tento soubor obsahuje data pro interní EEPROM MK a má stejný formát jako výstupní soubor.

Výsledkem vysílání je výstupní soubor

Ladění projektu

Objektový soubor vyžadovaný pro ladění

Ladicí program se spouští pomocí procedury

Sestavujte a spouštějte v řídicím panelu

Na začátku je proveden překlad vstupního souboru assembleru, ve kterém je vygenerován objektový soubor a poté je objektový soubor umístěn do debuggeru.

U starších verzí je k dispozici možnost překladu objektového souboru, s touto možností nelze upravovat zdrojový soubor programu přímo v debuggeru

Chcete-li vygenerovat soubor objektu, musíte zadat formát výstupního souboru překladače

Při prvním spuštění ladicího programu vyberte v okně Option à Simulator Option typ zařízení mikrokontroléru a frekvenci frekvence jádra procesoru

Během ladění lze program spustit

Plně ladit àavto krok

Krok za krokem ladění àtrace

Pomocí trasování funkčních bloků ladění àmulti step

Do bodu označeného kurzorem ladění àSpustit kurzor

Breakpoints à přepnout Breakpoint

Chcete-li ladit v režimu krok za krokem, použijte příkazy

Ster Over (nefunguje v programech) a trasování do

Program je zobrazen v nabídce Zobrazit, registruje registry, periferní zařízení v okně I/O Windows

Přednáška 15 programátorů Programátor XXX prog

Programátor podporuje následující formáty souborů:

Standardní / rozšířený Intel HEX

Jsou pro programování:

paměťové čipy,

Interní EPROM mikrokontrolérů,

· Mikroobvody programovatelné logiky (pouze pro ChipProg +, MultiProg).

Programátor je určen pro společná práce s počítačem kompatibilním s IBM PC. Komunikace s počítačem probíhá přes standardní port tiskárny.

Jak pracovat s programátorem:

Vyjměte mikroobvod z bloku programátoru (pokud byl

nainstalováno).

Připojte programátor k síti střídavý proud 220V.

Pro MultiProg použijte k zapnutí vypínač na krytu programátoru

výživa. Zelená LED by se měla rozsvítit, což indikuje napájení

napájení programátoru.

Připojte programátor ke standardnímu portu tiskárny

počítače pomocí dodaného komunikačního kabelu

programátor.

· Spusťte softwarovou podporu xxxProg na počítači.

· V softwarové podpoře nastavte požadovaný typ mikroobvodu.

Nainstalujte mikroobvod do zásuvky programátoru (mikroobvody

jsou instalovány v zásuvce v souladu s výkresem na těle

programátor).

· Proveďte potřebné činnosti s mikroobvodem. Pokud v

proces práce s mikroobvodem na pouzdru programátoru se rozsvítí červeně

Na obrazovce počítače se objeví LED "ALARM" a varovná zpráva.

zpráva o činnosti obvodu proudové ochrany, to znamená, že

mikroobvod je vadný.

Před vypnutím programátoru nebo změnou typu mikroobvodu

je nutné vyjmout mikroobvod ze zásuvky.

· Vypněte napájení programátoru.

· Odpojte programátor od počítače.

Komunikační rozhraní programátoru s počítačem je navrženo tak, aby nejen minimalizovalo zatížení portu počítače, ale také umožnilo programátorovi přepínat na počítač v libovolném pořadí.

Software xxxProg z hlediska interakce s mikroobvody je postaven podle klasického schématu programátorů "soubor" - "vyrovnávací paměť" - "mikroobvod". Vyrovnávací paměti jsou implementovány v softwarové podpoře programátoru. Vyrovnávací paměť je mezičlánek mezi souborem a mikroobvodem:

Soubor<---->Buffer<---->Čip

Paměťové vyrovnávací paměti jsou jedním z hlavních prvků programátoru. Vyrovnávací paměť je objekt pro ukládání dat. Paměťová vyrovnávací paměť programátoru je mezičlánkem mezi souborem a mikroobvodem.

XxxProg implementuje flexibilní strukturu vyrovnávacích pamětí:

· Je povoleno vytvářet nekonečné množství aktivních vyrovnávacích pamětí.

Jediným omezením množství může být absence zdarma

paměti v systému.

Každý pufr ve svém složení má určité množství

podvrstvy. Každá podvrstva je spojena se specifickým adresním prostorem

nainstalovaný mikroobvod.

Například,

- u čipu Intel 87C51FA obsahuje každá vyrovnávací paměť

dvě podvrstvy: podvrstva paměti kódu a podvrstva kódovací tabulky

(šifrovací tabulka);

- pro mikroobvod Microchip PIC16F84 má každý buffer svůj vlastní

skládá se ze tří podvrstev: podvrstva paměti kódu, podvrstva paměti dat

EEPROM, podvrstva vlastních identifikátorů.

· Je povoleno mít neomezený počet zobrazovacích oken

obsah každého bufferu.

Tato flexibilní implementace systému vyrovnávací paměti umožňuje uživateli velmi snadno manipulovat s několika různými datovými sadami jejich umístěním do různých vyrovnávacích pamětí. Všechny operace se souborem (načtení / uložení souboru) interagují pouze s vyrovnávací pamětí. Tito. můžete načíst soubor do vyrovnávací paměti a můžete také uložit obsah vyrovnávací paměti do souboru. Interakce s mikroobvodem je postavena podobným způsobem. Veškeré manipulace s mikroobvodem (jako je čtení, zápis, porovnávání) využívají pouze vyrovnávací paměť. Můžete tak načíst mikroobvod do vyrovnávací paměti, zapsat obsah vyrovnávací paměti do mikroobvodu, porovnat obsah vyrovnávací paměti a mikroobvodu atd. Přímá interakce mezi souborem a mikroobvodem není povolena.

Programátor implementuje systém výkonnostních testů, který umožňuje identifikovat poruchy hardwaru již ve fázi inicializace a tím předejít případnému selhání mikroobvodů uživatele.

Testovací systém je rozdělen do dvou skupin:

· Testování kvality komunikace s hardwarem programátoru zahrnuje pouze testování kvality komunikace s hardwarem programátoru.

· Úplné testování veškerého hardwaru programátoru Zahrnuje úplné testování veškerého hardwaru programátoru. Začíná bezprostředně po skončení první skupiny testů. Při provádění úplného testu na testovacím DIP bloku programátoru se objevují různé testovací signály, které mohou poškodit mikroobvody v něm nainstalované. Proto před aktivací testu bude uživatel upozorněn na nutnost vyjmutí mikroobvodu z bloku.

Pokud testovací systém detekuje hardwarovou závadu, bude uživatel na incident upozorněn a další práce s programátorem nebude možná.

Myslím, že v naší době neexistuje radioamatér, který by se nikdy nesetkal s mikrokontroléry. Dříve nebo později se to stane. Když jsem poprvé uviděl obvod s mikrokontrolérem, okamžitě jsem zavřel stránku prohlížeče s myšlenkou: "Ach, pořád to nemůžu dát dohromady." Ale jak šel čas, obvodů využívajících mikrokontroléry přibývalo a já se přesto rozhodl začít. Ve skutečnosti se ukázalo, že vše není vůbec tak složité, jak jsem si myslel.

Nejprve si to ujasněme: co je to mikrokontrolér (MC) obecně? Ve skutečnosti jde o miniaturní počítač určený k provádění těch nejjednodušších úkolů. Vše potřebné pro provoz mikrokontroléru je uzavřeno v jednom pouzdře. Mikrokontrolér má různé periferie - I/O porty, časovače, komunikační rozhraní atd. Mikrokontrolér má tři typy paměti, to jsou RAM ( RAM), FlashROM (programová paměť), EEPROM (nezávislá paměť).

Hlavní rozdíl mezi mikrokontrolérem a běžným mikroobvodem je v tom, že mikrokontrolér nepracuje podle pevné logiky nastavené z výroby, ale je naprogramován. Program je klasicky napsán ve speciálním prostředí na počítači v některém z programovacích jazyků, poté je přeložen do strojového jazyka (zkompilován) a zapsán do paměti regulátoru. V tomto kurzu bude vše trochu jinak – program se nebude psát, ale doslova kreslit ve formě vývojového diagramu. Díky tomuto přístupu vypadá program vizuálněji a čas na vývoj programu se oproti klasickým programovacím technikám zkrátí 3-5x.

Algorithm Builder - programovací prostředí

Algorithm Builder provádí celý vývojový cyklus, počínaje vstupem do algoritmu, včetně procesu ladění, a končící zápisem programu do paměti.

Začněme s stručné shrnutí rozhraní programu

Hlavní menu

  • Soubor. Slouží pro otevírání, ukládání, zavírání projektů a jednotlivých algoritmů a také pro ukončení programu.
  • Upravit. Akce úpravy algoritmu: vyjmout, kopírovat, vybrat atd.
  • Zobrazit. Přepínací algoritmus / tabulka s proměnnými (o tom níže) + šablony operací a podmínek.
  • Vyhledávání. Zde není třeba vysvětlovat.
  • Elementy. Algoritmus je nakreslen ze speciálních prvků: Text, Vertex, Field, Label, Condition, Použitý (nepodmíněný) vektor přechodu, Adjuster. Se všemi se seznámíme v procesu učení. Nabídka obsahuje několik důležitých položek: Deaktivovat, Makro, Přerušení. Deaktivovat- tato komponenta se nezkompiluje. Makro- vytvářet makra. Přerušuje- obsahuje seznam názvů všech přerušení mikrokontroléru. O této funkci se dozvíte v dalších lekcích, zatím jen řeknu, že je to pro práci nesmírně důležitá a nezbytná věc.
  • Program. Akce spojené s programem - kompilace (překlad do strojového jazyka), simulace programu, čtení paměti řadiče (Flash a EEPROM) atd.
  • Možnosti. Nastavení projektu a prostředí.
  • ?. Informace o Algoritm Builder a nápovědě.

Panel nástrojů

Nepotřebuje žádná vysvětlení. Když umístíte kurzor na prvky panelu, zobrazí se nápověda.

Otevřete projekt

Je zde jedna zvláštnost. Nemůžete otevřít dva projekty současně. Chcete-li otevřít / vytvořit nový projekt, musíte zavřít starý. Po otevření projektu můžete otevřít / vytvořit pouze samostatný souborový algoritmus. Soubor projektu má příponu .alp a samostatný soubor algoritmu má příponu .alg

Práce s proměnnými a konstantami

Je organizována ve formě speciální tabulky (přepínáte ji klávesou F12, buď přes menu, nebo klávesou na nástrojové liště). Samotný algoritmus je tak zbaven zbytečných záznamů.

Obrovské množství štítků, díky kterým je možné přeskakovat z jedné části programu do druhé, značně zaneřádí kód a ztrácí se přehlednost programu. V Algorithm Builderu jsou přechody mnohem jednodušší - pomocí šipky (vektoru)... Ale navigace podle pojmenovaných štítků je také možná.

Simulace programu

Simulátor zobrazuje všechny změny probíhající uvnitř virtuálního mikrokontroléru. K otestování programu nemusíte ani kupovat mikrokontrolér! Simulaci lze provádět krok za krokem (se zadáním funkcí či bez), až do nastaveného bodu zlomu nebo do vybrané oblasti.

Ladění

Algorithm Builder má ladicí systém On Chip, který vám umožňuje sledovat obsah paměti skutečného mikrokontroléru v určených bodech. V tomto případě se k propojení mikrokontroléru s počítačem používá pouze jedna noha mikrokontroléru, a to dle volby uživatele. Ladění monitoru lze aplikovat na téměř jakýkoli mikrokontrolér. Toto je softwarová verze protokolu debugWIRE.

Proč je tedy Algorithm Builder mezi radioamatéry tak málo známý? Za prvé, do roku 2010 byl program placený. Dnes je software distribuován zcela zdarma. Za druhé, nedostatek oficiální podpory programu. Nenajdete žádnou aplikaci výrobce, ve které je Builder použit. Internetové zdroje věnované tomuto programu lze spočítat na jedné ruce.

Stojí za to o tom trochu mluvit potřebné materiály a nástroje

První věc, kterou potřebujete, je páječka... Hlavní nástroj radioamatéra. Výkon páječky by měl být v uličkách 30-60 wattů. proč ne víc? Výkonná páječka se více zahřívá a poškozuje dráhy PCB a použité díly. A není pro ně tak pohodlné pájet - taková páječka je mnohem větší a těžší.

Abyste mohli načíst program do mikrokontroléru, potřebujete programátor- v nejjednodušší verzi se skládá pouze z několika rezistorů a diod (pro LPT a COM port). Pokud váš počítač nemá port COM nebo LPT, USB programátor lze objednat na, DealExtreame nebo (vyhledávací dotaz "avr programátor"; stojí asi 4-6 $). O výběru a sestavení programátoru budu psát v příští lekci.

Grafický assembler

Software je mízou mikrokontroléru nebo systému založeného na mikroprocesoru. Jeho vývoj je ústředním prvkem celkového procesu návrhu. Hlavním nástrojem pro profesionální vývoj programů je assembler, který zahrnuje detailování na úrovni instrukcí mikrokontroléru nebo mikroprocesoru. Pouze on vám umožňuje maximálně využít zdroje krystalu. Práce v jazyce symbolických instrukcí však není příliš pohodlná. Významnou bariérou mezi programátorem a předmětem programování je textový editor se svými omezenými možnostmi.

V této publikaci jsem chtěl mluvit o technologii grafický design software pro mikrokontroléry a mikroprocesory. Tato technologie zbavuje programátora řady nepříjemností, které jsou klasickému assembleru vlastní, a přináší také výrazné zjednodušení práce při zachování úrovně jeho detailnosti. Jako příklad budu uvažovat téma s využitím vývojového prostředí "Algor ithm Builder", zejména přizpůsobeného pro mikrokontroléry ATMEL s architekturou AVR.

Nejprve něco o mnemotechnických pomůckách. Mnemotechnická pomůcka je krátká sada písmen latinské abecedy, která jednoznačně identifikuje odpovídající operaci v jádře mikroprocesoru. Vývojáři se samozřejmě snažili do této sady písmen vložit význam prováděné operace, aby programátorovi co nejvíce usnadnili život. A v řadě případů se jim to docela povedlo, například MOV, CALL, ADD, JMP a tak dále. Ale takových situací je málo. A týmy SBI, XTHL, BRBC, ADIW, XCHD a další, které se objevily později, začaly soupeřit s čínským písmem. Samozřejmě si je můžete zkusit zapamatovat, ale bez toho je problémů dost.

Navíc ti, kteří se zabývali různými mikroprocesory, si samozřejmě všimli, že běžnost mnemotechnických pomůcek jejich assemblerů není větší než třetinová. Mezi těmi, které jsou přítomny téměř ve všech assemblerech, můžete uvést MOV, ADD, SUB, CALL, AND, OR, INC, DEC, PUSH, POP a některé další. Většina pohledů je exkluzivní i pro řadu zcela identických operací. Například v jednom případě je operace „exclusive or“ zapsána jako XOR, v jiných je to EOR. V jednom případě je označení přechodových operací založeno na slově JUMP, ve druhém - na základě BRANCH. A takových příkladů je mnoho. Málokdy se ale někomu podaří použít pouze jeden assembler. V reálném životě se „koně“ musí měnit a nevyhnutelně narážíte na takovou nežádoucí pestrost.

S přihlédnutím k tomu všemu je v prostředí „Algor ithm Builder“ reprezentace operací mikrokontroléru strukturována odlišně – podle vizuálně-funkčního principu. Záznam o činnosti obsahuje obrázek právě prováděné činnosti. Například:

místo "MOV R0, R1" se píše

místo "LDI R16.63" - "63-> R16",

místo "ST X, R2" - "R2 -> [X]",

místo "LSR r7" - "r7 >>",

místo "SBI PortB, 3" - "1-> PortB.3" a tak dále.

Díky tomu se čas na zvládnutí systému velení zkracuje na minimum a smysl operací je jasný i nepřipravenému člověku. Prostředí navíc umožňuje rychlé volání přes nabídku šablony tabulky všech dostupných operátorů, což usnadňuje nalezení požadovaného.

Jednou z hlavních nepříjemností assembleru (a nejen jeho) je, že program je zapsán a zobrazen v editoru jako jeden souvislý svislý pruh. A logická struktura určitých fragmentů může být postavena pouze ve fantazii programátora. Ve zvláště obtížných případech musíte nejprve nakreslit požadovanou strukturu na papír. To navíc zatěžuje programátora zcela zbytečnou prací.

Hlavním účelem grafických prostředí je uvést vývojové rozhraní do souladu s povahou lidského vnímání a osvobodit uživatele od zbytečných rutinních akcí pro čistě kreativní proces. Prvky těchto technologií pozorujeme v programovacích jazycích jako např Visual Basic, C-Builder, Delphi a další. Ale tam je tento proces omezen hlavně na konstrukci obsahu okna. A s plným právem na tuto kategorii můžete možná zahrnout taková prostředí jako PCAD, OrCAD a další. Samozřejmě je možné, elektrický obvod popsat v textový editor zadáním seznamu spojů, ale mnohem pohodlnější je to udělat ve specializovaném grafickém editoru.

Jakýkoli program napsaný na úrovni jazyka symbolických instrukcí se skládá z řady úplných monotónních (nebo podmíněně monotónních) řetězců, ve kterých je jeho provádění možné bez větví. Takové fragmenty vždy začínají návěštím (pokud to není úplný začátek programu), ale končí buď příkazem nepodmíněného skoku, nebo příkazem return z podprogramu (RET nebo RETI), tedy operátorem, který přenáší spuštění programu do jiného fragmentu bez jakýchkoli podmínek. Takové části programu jsou primárními logickými úplnými bloky.

Například následující podprogram obsahuje tři takové bloky:


Subname: LDI XL, 96

Štítek 0: LD R16, X

Štítek 1: SBI PortA, 0

Label2: SBI PortA, 2


První blok začíná příkazem "LDI XL, $ 20" s označením "SubName" a končí příkazem nepodmíněného skoku "RJMP", další dva začínají příkazem "SBI" s "Label1" a "Label2". " a končí "RET".

Vizuální oddělení takových bloků na rovině je jedním z principů grafických metod. Dalším principem je možnost grafického zobrazení algoritmu programu. Díky tomu je možné zadávat program na rovině ve dvou rozměrech ve formě algoritmu se stromovou strukturou, s vizuálním zobrazením směru podmíněných a nepodmíněných přechodů. Výsledkem je, že celá logická struktura je na první pohled.

Na Obr. 1 ukazuje displej výše uvedeného programu v grafické prostředí"Algorithm Builder".

Rýže. 1. Zobrazení programu v prostředí "Algorithm Builder".

Protože většina podmíněných a nepodmíněných skoků je zadávána a zobrazována graficky, je program osvobozen od bezpočtu názvů štítků, které jsou v assembleru nevyhnutelným balastem zatěžujícím text programu. Potřeba jmen pro štítky zůstává pouze u položek podprogramů.

Grafická technologie assembleru v prostředí "Algorithm Builder" je implementována pomocí několika základních objektů, ze kterých je postavena konstrukce algoritmu. Mezi nimi:


  • "Štítek" - zobrazuje se jako svislý pruh umístěný na ose bloku příkazů. Štítek může mít volitelný název, který se zobrazí vlevo nebo vpravo od tahu. Štítky jsou určeny pro napájení konců přechodových vektorů;

  • "Vertex" (vertex) se používá jako začátek bloku a ve svém zobrazení a účelu je podobný štítku;

  • "Pole" (pole) je určeno pro záznam příkazů algoritmu a je středovou čarou v bloku;

  • "Podmínka" je určena k označení podmíněných příkazů větvení. Konstrukčně nejsložitější. Graficky představuje obrys umístěný uprostřed bloku, do kterého je vepsán text s přechodovou podmínkou a případným přechodovým vektorem ve formě přerušované čáry vycházející z jedné z obrysových hran, se šipkou na konci, která musí končí na štítku nebo vrcholu. Akce je interpretována jako větev, pokud je splněna zapsaná podmínka;

  • "JMP Vector" je navržen tak, aby představoval bezpodmínečný skok. Je graficky znázorněn křivkou vycházející ze středu bloku příkazů, podobně jako vektor objektu "Podmínka".
Editor prostředí umožňuje do pracovního pole libovolně přidávat libovolné potřebné objekty, upravovat je, vkládat atd. Principy úprav jsou podobné jako v jiných grafických editorech.
Pro pohodlí je povoleno zastavit konec větveného vektoru na segmentu jiného vektoru, pokud samozřejmě mají společnou adresu. Ale při velké neochotě kreslit vektor větvení nebo je-li tato větev příliš dlouhá, zůstává vždy možné řešit přechod klasickým způsobem, do názvu štítku.

Rýže. 2. Hlavní okno editoru

Rýže. 3. Okno programátora

Obvykle daná středa programování je samostatný systém. Obsahuje kompilátor algoritmů, simulátor mikrokontroléru a obvodový programátor, který nahraje zkompilovaný algoritmus do krystalu. Kromě toho je k dispozici režim ladění monitoru, ve kterém se do zkompilovaného programového kódu přidá následující skrytý kód, poskytující výstup celého vnitřního stavu skutečného mikrokontroléru v zadaných bodech přerušení v příslušných oknech, jako při práci v simulátoru. Když je spuštěn debugger a programátor monitoru, mikrokontrolér je přímo připojen k paralelnímu portu LPT v několika obvodech.

Rýže. 4. Okno pro nastavení časovačů

V seznamu další příležitosti nesouvisí přímo s grafickou technologií, můžete pojmenovat štítky se standardním názvem přerušení. Po splnění takového označení kompilátor automaticky vloží kód nutného nepodmíněného skoku na místo programu odpovídající vektoru přerušení. Název těchto štítků lze vybrat pomocí příslušné položky nabídky. Implementováno bylo také pohodlné rozhraní pro nastavení časovačů, které eliminuje potřebu pamatovat si účel každého bitu řídicího registru a řadu dalších servisních schopností.

Rýže. 5. Provoz simulátoru

Prostředí „Algor ithm Builder“ je určeno pro práci na operačním sále systém Windows 95/98.

Na Obr. 6 ukazuje více složitý příklad fragment programu. Vlevo - v klasickém assembleru a vpravo - jeho kompletní kopie v prostředí "Algor ithm Builder".

Rýže. 6. Assembler: klasika a grafika

Samozřejmě v rámci jednoho článku nelze dostatečně podrobně popsat všechny vlastnosti práce v grafickém prostředí.

V blízké budoucnosti bude prostředí „Algor ithm Builder“ přizpůsobeno pro další typy architektur mikroprocesorů.

Přechod na používání takového prostředí je psychicky náročný. Mnohým proklouzne hlavou myšlenka: "možná, že assembler nemá tyto schopnosti, ale já jsem na to velmi zvyklý a cítím se s ním dobře". Je to trochu podobné přechodu z příkazového prostředí (DOS) do grafického prostředí (Windows). Zvládnutí tohoto nástroje a následná práce s ním je však mnohem jednodušší než klasický assembler. Každopádně ti, co už to používají, cestu zpět nehledají.

Algorithm Builder pro AVR, Začínáme

Stáhněte a nainstalujte Algorithm Builder pro AVR http://algrom.net/russian.html
Pečlivě jsme četli Manual.pdf