Programování pro torrent pro stahování stavitelů algoritmů. Assembler program v softwarovém prostředí Algorithm Builder

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

Tvůrce algoritmu je výkonný nástroj, který umožňuje provádět celý cyklus vytváření a kontroly programového kódu. Prostředí zahrnuje: grafický editor, simulátor mikročipů pro ladění algoritmů, kompilátor a obvodový programátor načíst kód do krystalu. Program je domácí protějšek Assembler a je vhodný jak pro zkušené vývojáře, tak pro ty, kteří teprve začínají s ovládáním firmwaru zařízení.

Vytváření algoritmů může probíhat na úrovni assembleru nebo na úrovni makra na základě provozu vícebajtových hodnot s přihlédnutím k znaménku. Makro operátory navíc obsahují nejběžnější sady příkazů.

Všechny vyvinuté programy jsou prezentovány ve formě větvících se stromových blokových diagramů, přechodové sítě jsou zobrazeny graficky ve vektorové podobě. Pokud je podle podmínky nutné přejít na libovolné místo v kódu programu, stačí tam nakreslit vektor. Tím se software osvobodí od několika názvů značek. V případě, že je pobočka příliš dlouhá, je vždy možné adresovat větev na název štítku. Jasnost takové logické struktury, podle ujištění vývojářů, výrazně snižuje čas pro psaní kódu a snižuje počet chyb.

Hlavní okno umožňuje umístit potřebné objekty a měnit je, vkládat, přesouvat atd., Stejně jako v jakémkoli grafickém editoru. V samostatné části obrazovky ve formě tabulky se vytvoří okno se seznamem všech konstant a proměnných, čímž se algoritmus uvolní z dalších položek. Ke konfiguraci parametrů periferních zařízení (UART, SPI, ADC, časovače) je k dispozici speciální prvek s rozhraním rozevíracího okna. Sada instrukcí poskytujících vybrané parametry provozu zařízení je generována nezávisle kompilátorem. Kromě toho je podporováno automatické překódování kódů ANSI systému Windows do alfanumerických kódů LCD v ruštině. Tento program podporuje širokou škálu rodin mikrokontrolérů: ATtiny, ATmega, AT90.

Simulátor zobrazuje všechny změny, které probíhají 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í či nikoli), až do bodu zlomu nebo do vybrané oblasti.
Aby programátor v obvodu fungoval, musíte samostatně sestavit nejjednodušší adaptér, přes který je mikrokontrolér připojen k portu COM počítače. Kromě toho je možné se 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 k softwaru) umožňuje sledovat vnitřní stav skutečného krystalu v libovolném bodě zlomu. Pro komunikaci mezi řadičem a počítačem je podle volby uživatele přidělen pouze jeden pin. Debugging On Chip debug platí pro jakýkoli typ čipu, který má SRAM.

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

Autoři programu Algorithm Builder jsou skupina ruských programátorů pod vedením řemeslníka Gennadije Leonidoviče Gromova z Nižního Novgorodu. Program se vyvíjí dodnes, přidávají se nové funkce, na webových stránkách autora se objevil malý výběr knihoven.

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

Software je funkční v 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 doporučuji jako nejlepší volba začít pracovat s elektronikou obecně a zvláště s mikrokontroléry, pak je tento program jen mojí osobní preferencí a upřímně řečeno, nebudete ho potřebovat k opakování návrhů z tohoto zdroje. Nemohu však nezmínit program, který je ve všech ohledech příjemný.

Co tedy má Algorithm Builder ve svém arzenálu?
Celý vývojový cyklus. Algorithm Builder je navržen tak, aby produkoval celý vývojový cyklus od vstupu algoritmu, včetně ladění, až po programování čipů.

Tvůrce algoritmu poněkud netradiční program z hlediska programovacího jazyka. Autor je trochu nezdvořilý a volá program Algorithm Builder. Ve skutečnosti neexistuje žádný algoritmus v obvyklém slova smyslu. K dispozici je assembler zabalený v pěkném vizuálním programovacím obalu. Bylo by správnější nazývat program vizuálním assemblerem nebo builderem assembleru. A protože se jedná o assembler, na výstupu získáte nejefektivnější kód.


Práce s proměnnými
a konstanty skvěle organizovaný. Inicializace se provádí v samostatném okně ve formě tabulky - osvobození algoritmu od zbytečných záznamů. V doslovném smyslu slova je vše rozloženo na policích. Je vhodné mít kdykoli po ruce seznam všech proměnných a konstant.

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


Přechody
jsou v programu prováděny velmi jasně - ve vektoru. Pokud potřebujete přejít podle podmínek do libovolného bodu v programu, jednoduše přetáhněte vektor do tohoto bodu. Tím se program osvobodí od nesčetných jmen značek, které jsou v klasickém assembleru nevyhnutelným předřadníkem. Je také možná navigace podle pojmenovaných štítků.

Programování krystalů v obvodu. Při použití programátoru zapojeného do obvodu je mikrokontrolér připojen k portu COM 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í krystalů a počítadlo ukládá přímo do krystalu. Proces programování krystalů je velmi jednoduchý - ve dvou „pokích“.

Ladění monitoru na čipu. Nástroj Algorithm Builder poskytuje ladění On Chip, které vám umožňuje sledovat obsah skutečného čipu v daném bodě zlomu. V takovém případě se pro komunikaci mikrokontroléru s počítačem použije pouze jeden výstup, a to podle volby uživatele. Ladění monitoru lze použít na jakýkoli typ čipu, který má SRAM. Toto je softwarová verze debugWIRE. Prostě si nedokážu představit ladění programů bez této věci.

Tak proč dobrý program tak málo známo?
Prvním důvodem je, že program byl placen do roku 2010. Bezplatná ukázka měla plnou funkčnost, ale omezila kompilovaný programový kód na 2 kilobajty. V roce 2010 vytvořil autor programu novoroční dárek - verze 5.43 byla vydána bez omezení.
Druhým důvodem je nedostatečná podpora programu. Nenájdete žádnou aplikaci výrobce, která používá Builder. Internetové zdroje věnované tomuto programu lze spočítat na jedné straně.
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 vroucí vodou, protože budou mít stejný assembler, ale jeho správa bude mnohem snazší a přehlednější. Jedna věc je špatná - musíte se rozloučit se starými knihovnami a napsat nové.
Sishniki se rozhodně nebudou líbit Builderovi, protože budou muset jít dolů na úroveň assembleru a který sishnik by se rád obtěžoval s registry.
Pravděpodobně nejlepší cílovou skupinou jsou začátečníci mikrokontrolérů. Program je jednoduchý, a proto bude snadné se ho naučit programovat.
Obecně byly samozřejmě závěry nejednoznačné. Mysli na sebe ... 🙂

Program má příručku napsanou ve formě výukového článku. V příručce je vytvoření jednoduchého projektu - voltmetr, jsou uvedena schémata programátorů COM a USB. Zde si můžete stáhnout neomezenou verzi

Vizuální programovací prostředí


Kdo by měl zájem nahlédnout do manuálu, ale instalace programu je líná - zde ho zveřejňuji samostatně


Program se aktivně vyvíjí, takže nejnovější verze najdete na webových stránkách programu www.algrom.net. Kromě toho existuje také malý výběr knihoven.

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

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

Provozovatelé algoritmu jsou rozděleni do dvou skupin.

První skupinu tvoří základní operátory, které implementují jednu základní instrukci mikrokontroléru. Programování pomocí těchto příkazů umožňuje vývoj programu na úrovni sestavení. V algoritmu jsou tyto operátory zobrazeny běžným (nikoli tučným) písmem.

Druhou skupinu tvoří makroprocesory, které se při kompilaci transformují do sady nezbytných základních pokynů pro mikrokontrolér. Makro operátoři umožňují pohodlná forma provádět složitější transformace, včetně vícebajtových.

Algoritmové operátory jsou psány hlavně v objektech „Field“, podmíněné skoky jsou implementovány prostřednictvím objektu „Condition“ a bezpodmínečný skok - přes „

JMP Vector “. Formát psaní operátora se výrazně liší od klasického assembleru. Je postaven na vizuálně-funkčním principu a obsahuje obraz provedené akce. Operátory musí být napsány vzorem akceptovaným kompilátorem.

Níže v tabulce jsou šablony všech možných základních operátorů pro mikrokontroléry AVR. Je třeba mít na paměti, že některé jednoduché typy mikrokontrolérů neobsahují celou sadu.

Symbol „#“ ve vzorci 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átory jsou uvedeny v tabulce.

Komentář operandu

R Pracovní registr, standardní nebo deklarovaný v části Pracovní registry: (...)

# Konstantní (...)

Proměnná proměnné SRAM deklarovaná v sekci SRAM: (...)

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

[#] Buňka SRAM adresována 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 následný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 následným přírůstkem

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

[Z] SRAM buňka 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 následným přírůstkem

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

P I / O registr (...)

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

Operandy označené (...) mohou být deklarovány jako vícebajtové. Nahrazování operandů různých formátů je povoleno. V tomto případě, pokud je operand přijímající výsledek operace kratší než ten druhý, pak bude rozměr operace omezen 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 dojít k poškození záporného čísla. 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 musí být odeslán jejich formát. Chcete-li to provést, přidejte do záznamu dvojtečku a deklaraci formátu, například:

# hAB3E -\u003e [Y]: Slovo

takový operátor makra bude transformován do následující posloupnosti operátorů:

V operátorech makra s více bajty, s výjimkou posunů doprava, akce začínají od nejméně významného bajtu (u operátorů posunu doprava od nejvýznamnějších). S ohledem na tuto skutečnost existují omezení schopnosti vytvářet nepřímo adresované operace maker:

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

U operací, které začínají nejvýznamnějším bajtem (posuny doprava), není možné použít operandy s přírůstkem, například :: Int24 \u003e\u003e

Kromě toho není možné vytvořit operátor makra vícebajtového s operandem [X], protože v sadě instrukcí AVR neexistuje žádné nepřímé adresování offsetu pro registr X (

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

Pokud se ukáže, že je nemožné vytvořit operaci makra, kompilátor vydá zprávu:

Takovou makrooperaci nelze vytvořit “.

Makro operátory jsou zapsány výhradně do objektů „Field“. Šablony možných makro operátorů jsou uvedeny v tabulce:

Komentář šablony

* -\u003e * Kopírovat

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

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

* & * Bitové operace AND

*! * Bitové operace NEBO

* ^ * Bitové exkluzivní NEBO

* Reset (zápis nuly)

* ++ Přírůstek

* - Snížení

- * - Bitová inverze

* \u003e\u003e Logický posun doprava

\u003e * \u003e\u003e Logický posun doprava s carry

± * \u003e\u003e Aritmetický pravý posun

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

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

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

Při kompilaci se operátoři maker převádějí na sadu základních instrukcí mikrokontroléru. V tomto případě se k implementaci takové sady zpravidla používají zprostředkující registry r16 a r17. Proto při použití operátorů maker, aby se předešlo nedorozuměním, se tyto registry nedoporučují používat a je vhodné ukládat jejich obsah do zásobníku v rutinách zpracování přerušení.

Pokud se má v operátoru makra předpokládat operace s okamžitou konstantou, je v tomto případě výhodnější použít pracovní registry deklarované v horní polovině. Jinak budou použity mezilehlé pokyny pro načtení částí konstanty do registru r16. To může vést ke zvýšení velikosti kódu, až ke zdvojnásobení, i když takový záznam nebude chybný.

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

K implementaci smyček je vhodné použít makro podmínku: „R--“. Zahrnuje dekrementaci jednobajtového registru a větvení, pokud výsledek není nula.

Objekt "Štítek" - (štítek)

Je to svislý tah umístěný v bloku příkazu a volitelný název nalevo nebo napravo od tahu. Štítek je určen k označení míst v algoritmu, kde jsou možné podmíněné a bezpodmínečné skoky. Chcete-li jej zadat, musíte buď vybrat položku nabídky „Objekt \\ Štítek“, nebo stisknout klávesy „Alt + L“ nebo stisknout tlačítko s písmenem L na panelu nástrojů. V případě potřeby lze štítku přiřadit konkrétní adresu programu; k tomu je před jménem (pokud existuje) nutné 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 snazší programování podporuje Algorithm Builder speciální typ štítků - štítky přerušení služby. Pro obsluhu přerušení obvyklým způsobem je nutné umístit bezpodmínečný skokový kód do příslušného podprogramu na adresu vektoru přerušení. Při použití speciálního druhu štítků to kompilátor provede automaticky. Chcete-li to provést, musíte pojmenovat štítek (vrchol) standardním názvem přerušení a označit jej jako formaci makra stisknutím klávesy „F2“, zatímco název bude zobrazen tučně. Stejného výsledku lze dosáhnout snadněji výběrem položky nabídky „Objekty \\ Přerušit vektory \\…“.

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

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

Svým zobrazením a účelem je zcela identický se štítkem, ale na rozdíl od něj nastavuje umístění bloku v pracovní rovině a je vždy jeho začátkem. Chcete-li vytvořit vrchol, vyberte položku nabídky „Object \\ Vertex“ nebo stiskněte klávesy „Alt + V“ nebo stiskněte tlačítko s písmenem V na panelu nástrojů nebo použijte myš stisknutím levého tlačítka na požadovaném místě v poli v kombinace kláves “

Alt + Ctl + Shift “.

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

Strukturálně nejsložitější. Objekt je určen k realizaci podmíněných skoků. Jedná se o oválný obrys, uvnitř kterého je vepsána podmínka přechodu a možný vektor ve formě přerušované čáry se šipkou na konci, poblíž kterého je možný volitelný název vektoru. Aby byl vektor správně adresován, jeho konec musí končit buď na štítku, nebo na vrcholu, nebo na úseku jiného vektoru, nebo musí mít název adresovaného štítku.

Úpravy vektoru se provádějí 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 následnou změnu jeho umístění na opačnou, stiskněte klávesu „Tab“. Chcete-li zadat nový objekt, vyberte položku nabídky „Objekt \\ Podmínka“ nebo stiskněte klávesy „Alt + C“ nebo stiskněte tlačítko s písmenem C na panelu nástrojů.

Podmíněné operátory přeskočení pro dalšího operátora.

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] -\u003e r2“ bude přeskočeno, pokud je splněna podmínka „r1 \u003d r2“.

„[X] -\u003e r2“

2. Je zapsána inverzní podmínka, chybí vektor a jako název vektoru je zadána instrukce, která má být přeskočena. V tomto případě bude objekt interpretován jako: provést příkaz, pokud je podmínka splněna. Následující příklady jsou zcela identické.

„[X] -\u003e r2“

3. Pokud je následující instrukcí krátký bezpodmínečný skok (RJMP), je povolena inverzní podmínka a vektor této podmínky bude interpretován jako následný bezpodmínečný skok, takže objekt bude interpretován jako: provést krátký bezpodmínečný skok, pokud je podmínka splněna. Následuje tři zcela identické příklady.

R1 \u003d R2 šipka na řádek, kam chcete jít

Ladicí prostředí AVR STUDIO.

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

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

Ladicí prostředí podporuje provádění programů jak ve formě textu sestavy, tak ve formě zdrojového textu jazyka 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 atmel's in-circuit (In Circuit Emulators)

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

Ladicí prostředí AVR STUDIO umožňuje ladit aplikace pomocí integrovaného softwarového simulátoru nebo externího emulátoru v obvodu. 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í systém ladění. Pokud není k dispozici žádný emulátor, ladění se provádí na integrovaném softwarovém simulátoru AVR.

Emulátor v obvodu 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 zobrazí na stavovém řádku AVR STUDIO

V programu AVR STUDIO pro ladění programů existují dva příkazy krokového režimu Step Over a Trace into. Rozdíl mezi nimi spočívá v tom, že příkaz Step Over nefunguje v podprogramech.

K monitorování fungování programu je k dispozici režim otevírání více oken; okna se otevírají pomocí nabídky Zobrazit nebo tlačítek 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 vývojové sady na zakázku
  • obvodové programátory
  • obvodové emulátory

Během ladění můžete inicializovat interní RAM a EEPROM (v překladovém souboru ve formátu .EEP) nebo uložit jejich obsah ve formátu .HEX K tomu použijte položku Nahoru / Stáhnout paměť v nabídce Soubor

V nabídce Soubor můžete otevřít firmware vytvořený jinými uživateli Otevřít; tisknout psané programy Tisk; kontrolovat stav zařízení připojených k sériový port Nastavení portu COM.

Nabídka Nástroje obsahuje příkazy pro spuštění řídicích programů

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

  • umístění programových pamětí
  • okno datové paměti Data
  • Pole EEPROM Eeprom
  • i / O port registruje nové IO okno
  • okno průběhu programu Paměť
  • kontrola nad změnami proměnných Sledování
  • 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í doby provádění programu hodinové frekvence jádra mikrokontroléru okno procesoru
  • prohlížení stavu registrů registrů (Pokud se během provádění programu v dalším cyklu změní hodnota jakéhokoli registru, bude tento registr zvýrazněn červeně. Pokud v dalším cyklu zůstane hodnota registru stejná, barevné zvýraznění bude odstraněno. Podobná kontrola nad změnami je použita v oknech výstup paměti a proměnné.)
  • ovládání stavu I / O okna periferních zařízení

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 anglický jazyk

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

Nabídka ladění umožňuje debuggeru

zarážka upravuje výběr zarážek

Trasování a spouští 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 zobrazeném okně pro vytvoření nového projektu zadejte název projektu do řádku názvu projektu. Stejný název bude automaticky zkopírován do okna počátečního souboru

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

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

Aktivujeme tedy okno assembleru s projektem

Symbol ". "Směrnice Assembler."

„;“ komentáře, které nemají vliv na program

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

Ctrl + F2 nastavuje značky debuggeru

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

F11 ladí otevřený pracovní prostor

Shift + F5 - Resetovat resetovat

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

F9 - Nastavit štítek zarážky

F5 - Provedení programu do bodu zlomu

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

Vysílání a kontrola pravopisu.

Projekt à Sestavení Výstup projektu Toto okno obsahuje informace o počtu slov kódu a údaje o přítomnosti chyb a další informace. Chcete-li lokalizovat chyby, umístěte kurzor myši na zprávu a poklepejte na levé tlačítko myši. Ve výsledku bude kurzor umístěn na řádku, který způsobil chybové hlášení, a tento řádek bude zvýrazněn. Pokud text zdrojového assembleru obsahoval segment energeticky nezávislých dat, bude během překladu vytvořen 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

Pro ladění je vyžadován soubor objektu

Debugger je spuštěn pomocí procedury

Vytvářejte a spusťte ovládací panel

Na začátku se provede překlad vstupního souboru sestavy, ve kterém se vygeneruje soubor objektu a poté se soubor objektu umístí do debuggeru.

U starších verzí je k dispozici možnost překladu souboru objektu; s touto možností nemůžete upravit zdrojový soubor programu přímo v debuggeru

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

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

Během ladění lze program spustit

Plně odlaďte àavto krok

Krok za krokem debug àtrace

Trasováním funkčních bloků debugujte více kroků

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

Breakpoints à toggle Breakpoint

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

Ster Over (nefunguje v programech) a sledujte do

Program lze prohlížet v nabídce Zobrazit, 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 navržen pro práci 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án).

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

U MultiProg zapněte skříň programovacího zařízení

výživa. Zelená LED by se měla rozsvítit a indikovat

napájení programátoru.

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

pomocí dodaného komunikačního kabelu

programátor.

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

· Nastavte požadovaný typ mikroobvodu v softwarové podpoře.

Nainstalujte mikroobvod do patice programátoru (mikroobvody

jsou instalovány v zásuvce podle obrázku na těle

programátor).

· Proveďte nezbytné akce s mikroobvodem. Pokud v

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

na obrazovce počítače se zobrazí LED „ALARM“ a varovná zpráva.

zpráva o činnosti proudového ochranného obvodu, 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 programátor.

· 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žňovalo komutaci mezi programátorem a počítačem 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 programové podpoře programátoru. Vyrovnávací paměť je mezičlánkem mezi souborem a mikroobvodem:

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

Vyrovnávací paměti jsou jedním z hlavních prvků programátoru. Vyrovnávací paměť je objekt pro ukládání dat. 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ý počet aktivních vyrovnávacích pamětí.

Pouze absence volného času

paměť v systému.

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

podvrstvy. Každá podvrstva je spojena s konkrétním adresním prostorem

nainstalovaný mikroobvod.

Například,

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

dva podvrstvy: podvrstva kódové paměti a podvrstva kódovací tabulky

(šifrovací tabulka);

- pro mikroobvod Microchip PIC16F84 má každá vyrovnávací paměť vlastní

složený ze tří podvrstev: podvrstva kódové paměti, podvrstva datové paměti

EEPROM, podvrstva ID uživatele.

Můžete mít neomezený počet výřezů

obsah každého pufru.

Tato flexibilní implementace systému vyrovnávací paměti umožňuje uživateli velmi snadno manipulovat s několika různými soubory dat jejich umístěním do různých vyrovnávacích pamětí. Všechny operace se souborem (načítání / ukládání souboru) interagují pouze s vyrovnávací pamětí. Ty. můžete načíst soubor do vyrovnávací paměti a také uložit obsah vyrovnávací paměti do souboru. Interakce s mikroobvodem je postavena podobným způsobem. Všechny manipulace s mikroobvodem (například čtení, zápis, porovnání) používají pouze vyrovnávací paměť. Můžete tedy 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 testů provozuschopnosti, který umožňuje detekovat selhání hardwaru již ve fázi inicializace, a tím zabránit možnému selhání mikroobvodů uživatele.

Zkušební 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 programátorského hardwaru. Zahrnuje úplné testování veškerého programátorského hardwaru. Začíná to okamžitě po skončení první skupiny testů. Při provádění úplného testu se na testovacím DIP bloku programátoru objeví různé testovací signály, které mohou poškodit mikroobvody v něm nainstalované. Proto bude uživatel před aktivací testu upozorněn na nutnost odebrání mikroobvodu z bloku.

Pokud testovací systém zjistí závadu hardwaru, bude uživatel upozorněn na to, co se stalo, a další spolupráce s programátorem nebude možná.

Myslím, že v naší době neexistuje žádný radioamatér, který by se s mikrokontroléry nikdy nesetkal. Dříve nebo později se to stane. Když jsem poprvé viděl obvod s mikrokontrolérem, okamžitě jsem zavřel stránku prohlížeče s myšlenkou: „Ach, stále to nemohu dát dohromady.“ Ale jak čas plynul, s mikrokontroléry bylo stále více obvodů, a přesto jsem se rozhodl začít. Ve skutečnosti se ukázalo, že všechno není tak komplikované, jak jsem si myslel.

Nejprve na to přijdeme: co je to obecně mikrokontrolér (MC)? Ve skutečnosti je to miniaturní počítač navržený k provádění nejjednodušších úkolů. Vše potřebné pro provoz mikrokontroléru je přiloženo v jednom případě. 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 (paměť programu), EEPROM (energeticky nezávislá paměť).

Hlavní rozdíl mezi mikrokontrolérem a konvenčním mikroobvodem spočívá v tom, že mikrokontrolér nefunguje podle přísné logiky nastavené ve výrobě, ale je naprogramován. Program je klasicky napsán ve speciálním prostředí na počítači v jednom z programovacích jazyků, poté je přeložen do strojového jazyka (zkompilován) a zapsán do paměti řadiče. V tomto kurzu bude vše trochu jiné - program nebude psán, ale doslova vykreslen ve formě vývojového diagramu. Díky tomuto přístupu vypadá program vizuálněji a čas na vývoj programu se ve srovnání s klasickými programovacími technikami zkrátí o 3-5krát.

Algorithm Builder - programovací prostředí

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

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

Hlavní menu

  • Soubor. Slouží k otevírání, ukládání, uzavírání projektů a jednotlivých algoritmů i ukončení programu.
  • Upravit. Akce úpravy algoritmu: vyjmutí, kopírování, výběr 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 čerpán ze speciálních prvků: Text, Vrchol, Pole, Štítek, Podmínka, Použitý (bezpodmínečný) přechodový vektor, Seřizovač.Se všemi se seznámíme v procesu učení. Nabídka obsahuje několik dalších důležitých položek: Deaktivovat, Makro, Přerušení. Deaktivovat - tato součást nebude kompilována. Makro - vytvářet makra. Přerušení - obsahuje seznam jmen všech přerušení mikrokontroléru. O této funkci se dozvíte v příštích lekcích, zatím jen řeknu, že je to pro práci nesmírně důležitá a nezbytná věc.
  • Program. Akce související 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 Algoritmu Builder a nápověda.

Panel nástrojů

Nepotřebuje žádné vysvětlení. Když podržíte ukazatel myši nad prvky panelu, vyskočí popisky.

Otevřený projekt

Je tu jedna zvláštnost. Nelze 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ínat ji můžete klávesou F12, buď prostřednictvím nabídky, nebo klávesou na panelu nástrojů). Samotný algoritmus je tedy osvobozen od zbytečných záznamů.

Obrovské množství štítků, díky nimž je možné přeskakovat z jedné části programu do druhé, značně nepořádek v kódu a ztrácí se jasnost programu. V Algorithm Builderu jsou přechody mnohem jednodušší - pomocí šipky (vektor)... Je ale také možná navigace podle pojmenovaných štítků.

Simulace programu

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

Ladění

Algorithm Builder má systém ladění 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 připojení mikrokontroléru k počítači použije pouze jedna noha mikrokontroléru, a to podle volby uživatele. Ladění monitoru lze použít téměř na jakýkoli mikrokontrolér. to možnost softwaru debugWIRE protokol.

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

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

První věc, kterou potřebujete, je páječka... Hlavní nástroj radioamatéra. Síla páječky by měla 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 stopy desky a použité součásti. A není pro ně tak pohodlné pájet - taková páječka je mnohem větší a těžší.

Abyste mohli program načíst do mikrokontroléru, potřebujete programátor - v nejjednodušší verzi se skládá pouze z několika odporů a diod (pro port LPT a COM). 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 až 6 USD). O výběru a sestavení programátoru budu psát v další lekci.

Grafický assembler

Software je mízou mikrokontroléru nebo systému založeného na mikroprocesoru. Jeho vývoj je ústředním bodem celého procesu návrhu. Hlavním nástrojem pro profesionální vývoj programů je assembler, který zahrnuje podrobnosti na úrovni pokynů mikrokontroléru nebo mikroprocesoru. Pouze on umožňuje maximální využití zdrojů krystalu. Práce v assembleru však není příliš pohodlná. Významnou bariérou mezi programátorem a předmětem programování je textový editor s omezenými schopnostmi.

V této publikaci jsem chtěl mluvit o technologii grafický design software pro mikroprocesory a mikroprocesory. Tato technologie osvobozuje programátora od řady nepříjemností spojených s klasickým assemblerem a zahrnuje také výrazné zjednodušení práce při zachování úrovně jeho detailů. Za příklad uvedu 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 mnemotechnice. Mnemotechnická pomůcka je krátká sada písmen latinské abecedy, která jednoznačně identifikuje odpovídající operaci v jádru mikroprocesoru. Vývojáři se samozřejmě pokusili 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ů uspěli celkem dobře, například MOV, CALL, ADD, JMP atd. Ale takových situací je málo. A pozdější týmy SBI, XTHL, BRBC, ADIW, XCHD a další začínají soutěžit s čínským písmem. Samozřejmě si je můžete zkusit zapamatovat, ale bez toho je dost problémů.

Ti, kdo se zabývali různými mikroprocesory, si samozřejmě všimli, že běžnost mnemotechniky jejich asemblerů není větší než třetina. Mezi těmi, kteří jsou přítomni 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“ zapsána jako XOR, v ostatních případech 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 existuje mnoho takových příkladů. Ale málokdy se někdo podaří použít pouze jeden assembler. Ve skutečném životě je třeba „koně“ změnit a vy se s takovou nežádoucí rozmanitostí nevyhnutelně setkáte.

Vezmeme-li v úvahu toto vše, v prostředí „Algor ithm Builder“ je reprezentace operací mikrokontroléru postavena odlišně - podle vizuálního funkčního principu. Záznam o činnosti obsahuje obrázek prováděné činnosti. Například:

místo „MOV R0, R1“ se píše

místo „LDI R16.63“ - „63-\u003e R16“,

místo „ST X, R2“ - „R2 -\u003e [X]“,

místo „LSR r7“ - „r7 \u003e\u003e“,

místo „SBI PortB, 3“ - „1-\u003e PortB.3“ atd.

Výsledkem je, že doba zvládnutí systému velení je snížena na minimum a význam operací je jasný i nepřipravené osobě. Prostředí navíc poskytuje rychlé volání prostřednictvím nabídky tabulky šablon všech dostupných operátorů, což usnadňuje nalezení požadovaného.

Jednou z hlavních nepříjemností assembleru (a nejen to) je, že program je napsán a zobrazen v editoru jako jediný souvislý svislý pruh. Logickou strukturu určitých fragmentů lze vytvořit 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 načte programátorovi 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í čistě kreativního procesu. Pozorujeme prvky těchto technologií v programovacích jazycích, jako jsou Visual Basic, C-Builder, Delphi a další. Ale tam je tento proces omezen hlavně na konstrukci obsahu okna. A s úplným zdůvodněním může tato kategorie možná zahrnovat prostředí jako PCAD, OrCAD a další. Samozřejmě je možné, elektrický obvod popsat v textový editorzadáním seznamu připojení, ale je mnohem pohodlnější to provést ve specializovaném grafickém editoru.

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

Například níže uvedený podprogram obsahuje tři takové bloky:


SubName: LDI XL, 96

Label0: LD R16, X

Label1: SBI PortA, 0

Label2: SBI PortA, 2


První blok začíná příkazem „LDI XL, $ 20“ se štítkem „SubName“ a končí bezpodmínečným příkazem „RJMP“, další dva začínají výrazem „SBI“ se štítky „Label1“ a „Label2“ a končí s „RET“.

Vizuální oddělení takových bloků v rovině je jedním z principů grafických metod. Dalším principem je schopnost graficky zobrazit programový algoritmus. Díky tomu je možné zadat program v rovině ve dvou rozměrech ve formě algoritmu se stromovou strukturou s vizuálním zobrazením směru podmíněných a bezpodmínečných přechodů. Ve výsledku je celá logická struktura na první pohled.

Na obr. 1 ukazuje zobrazení výše uvedeného programu v grafické prostředí "Tvůrce algoritmů".

Postava: 1. Zobrazení programu v prostředí „Algorithm Builder“

Jelikož se většina podmíněných a bezpodmínečných skoků zadává a zobrazuje graficky, program je osvobozen od nespočetných jmen štítků, které jsou v assembleru nevyhnutelným předřadníkem, který přeplňuje text programu. Potřeba názvů štítků zůstává pouze pro položky podprogramu.

Technologie grafického assembleru v prostředí „Algorithm Builder“ je implementována pomocí několika základních objektů, ze kterých je sestavena konstrukce algoritmu. Mezi nimi:


  • "Popisek" - zobrazí se jako svislá čára umístěná na ose bloku výpisu. Štítek může mít volitelný název, který se zobrazí nalevo nebo napravo od tahu. Štítky jsou určeny k podávání konců přechodových vektorů;

  • „Vrchol“ (vrchol) se používá jako začátek bloku a jeho zobrazení a účel je podobný štítku;

  • „Pole“ (pole) je určeno pro záznam operátorů algoritmu a je to středová čára v bloku;

  • „Podmínka“ je určena k označení podmíněných příkazů skoku. Strukturálně nejsložitější. Graficky představuje obrys umístěný uprostřed bloku, uvnitř kterého je napsán text s přechodovou podmínkou a možným přechodovým vektorem ve formě přerušované čáry vycházející z jedné z okrajů obrysu, se šipkou na konci, která musí končit na štítku nebo vrcholu. Akce je interpretována jako větev, pokud je vepsaná podmínka splněna;

  • "JMP Vector" je navržen tak, aby představoval bezpodmínečný skok. Je to graficky znázorněno křivkou vycházející uprostřed bloku příkazů, podobně jako vektor objektu „Podmínka“.
Editor prostředí umožňuje volně přidávat všechny potřebné objekty do pracovního pole, upravovat je, vkládat atd. Principy úprav jsou podobné těm, které se používají v jiných grafických editorech.
Pro větší pohodlí je povoleno zastavit konec vektoru větvení na segmentu jiného vektoru, pokud má samozřejmě společnou adresu. Ale s velkou nechutí nakreslit větvící vektor, nebo pokud je tato větev příliš dlouhá, vždy zůstává možné adresovat přechod klasickým způsobem, na název štítku.

Postava: 2. Hlavní okno editoru

Postava: 3. Okno programátoru

Obvykle vzhledem ke středu programování je samostatný systém. Obsahuje kompilátor algoritmů, simulátor mikrokontroléru a programátor v obvodu, který načte kompilovaný algoritmus do krystalu. Kromě toho je k dispozici režim ladění monitoru, ve kterém je do zkompilovaného kódu programu přidán skrytý kód, který poskytuje výstup celého vnitřního stavu skutečného mikrokontroléru v určených zarážkách v příslušných oknech, jako při práci v simulátoru. Když ladicí program monitoru a programátor fungují, je mikrokontrolér přímo připojen k paralelnímu portu LPT v několika obvodech.

Postava: 4. Okno pro nastavení časovačů

V seznamu další příležitostinesouvisí přímo s grafickými technologiemi, můžete pojmenovat štítky standardním názvem přerušení. Po splnění takového označení kompilátor automaticky vloží kód nezbytného bezpodmínečného skoku na místo programu odpovídající vektoru přerušení. Název těchto štítků lze vybrat pomocí odpovídající položky nabídky. Bylo také implementováno pohodlné rozhraní pro nastavení časovačů, které eliminuje potřebu pamatovat si účel každého bitu řídicího registru a řadu dalších funkcí služby.

Postava: 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 komplexní příklad fragment programu. Vlevo - v klasickém assembleru a vpravo - jeho úplná kopie v prostředí „Algor ithm Builder“.

Postava: 6. Assembler: klasika a grafika

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

V blízké budoucnosti bude prostředí „Algor ithm Builder“ upraveno pro jiné typy architektur mikroprocesorů.

Přechod k používání takového prostředí je psychologicky obtížný. Mnohým v hlavách proletí myšlenka: „možná assembler tyto schopnosti nemá, ale jsem na to velmi zvyklý a cítím se s nimi dobře“. Je to něco podobného 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ž u klasického assembleru. V každém případě ti, kteří ji již používají, nehledají cestu zpět.

Tvůrce algoritmů pro AVR, Začínáme

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