AVR - obecně
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

AVR - obecněAVR - obecně

 

AVR - obecně

Google       Google       17. 6. 2006       39 997×

V dnešním díle se podíváme na zoubek samotné architektuře procesoru. Je to věc často opomíjená, zvláště těmi, kteří programují procesory v jazyce C. Musím však upozornit, že pro zvládnutí jakéhokoliv typu procesoru, jsou tyto znalosti nesmírně důležité.

Procesory AVR mají tzv. Hardwardskou architekturu. To znamená, že mají oddělené paměťové prostory (a sběrnice) pro data i program. My se často setkáváme s druhým typem – tzv. von Neumannova architektura – například v běžném PC (data i program máme v jedné RAM, na jednom disku…

Jak je vidět na obrázku, AVR obsahují celkem tři druhy pamětí:

  • paměť programu FLASH
  • paměť dat (přechodných) RAM (SRAM)
  • paměť dat EEPROM

Pamě't RAM slouží k uchovávání přechodných dat. Je rozdělena na několik desítek registrů (bajtů). Tato data mohou být pouze pracovní a nebo také řídící – většina registrů ovládá periferie a nebo samotný chod procesoru. Jiné zase informují o stavu, v jakém se procesor nachází.

Paměť programu, jak už název napovídá, slouží k uložení programu a nebo konstant, které v programu využíváme. (Například při převodu z BIN->7 segment.) Tato data se ukládají pouze za použití programátoru.

Paměť EEPROM slouží pro uchování dat, o která nechceme po vypnutí napájení přijít &ndash jako tomu je například u RAM. Příkladem mohou být konfigurační data anebo například kód v případě kódového zámku.

To, co vidíte na obrázku, je CPU, tato část řídí celý procesor. Zpracovává veškeré instrukce, které do ní vcházejí jako 16 bitové číslo, označující instrukci a případné operandy. Jak vidíte, je propojena sběrnicí se všeni částmi integrovaného obvodu. I tato část má ale určeno paměťové místo, kam ukládá výsledky svých aktivit, a tím je SREG &ndash STATUS REGISTER (umístění v paměti RAM)

Vysvětlíme si, co jednotlivé bity znamenají:

  • I &ndash Global Interrupt Enable – globální povolení přerušení
  • T – Bit Copy Storage – místo pro ukládání bitu
  • H – Half Carry Flag – nastaví se při přenosu ze 3 na 4 bit
  • S – SIGN BIT = S XOR N
  • V – Two’s Complement Overflow Flag – příznak přeplnění čísla v druhém doplňku
  • N – Negative Flag – příznak negativního výsledku
  • Z – Zero Flag – příznak nulového výsledku
  • C – Carry Flag – příznak přetečení

Existuje i mnoho dalších jiných důležitých registrů, ale o těch si řekneme později. Dnes si ještě povíme něco o rozdělení paměti dat RAM a tím i o programátorském modelu.

Na obrázku nahoře můžete vidět rozložení registrů pro obecné použití. S těmito registry budete realizovat většinu operací. Některé operace ale pracují pouze s druhými šestnácti, které to jsou, si povíme později. Posledních 6 registrů 26 – 32 je možné využít také pro nepřímé adresování, což je většinou jediná možnost, jak „dosáhnout“ na data v celé 1k (S)RAM.

Na tomto obrázku již vidíte zařazení registrů R0 – R31 v rámci celé (S)RAM a pod nimi (vyšší adresy) umístěny vstupně-výstupní registry, jež ovládají periferie i samotný procesor. Od adresy 60H již máte celou zbylou (S)RAM pro sebe…

První krůčky

V minulém díle jsem uvedl odkaz na soubor s instrukční sadou pro procesory AVR. Doufám, že většina z vás si ji pozorně prostudovala, protože už dnes si napíšeme první program. Předpokládám, že již máte nainstalováno AVR studio.

Po spuštění AVR studia se vám zobrazí následující dialog, kde zvolte New Project:

Nastavte projekt podle obou obrazků:


Přepište následující kód:


		.NOLIST
		.INCLUDE "m16def.inc"
		.LIST
		
		// --> nastaveni zasobniku 
		LDI		R16,LOW(RAMEND)		
		OUT		SPL,R16
		LDI		R16,HIGH(RAMEND)
		OUT		SPH,R16
		// <-- konec nastaveni

		CLR		R2   ; vynuluje R2
		CLR		R3   ; vynuluje R3
		CLR		R19 ; vynuluje R19

zacatek:

		RCALL	zpozdi	; zavola "zpozdi"
		
		RJMP	zacatek ; skoci na "zacatek"


// ************** funkce *************
zpozdi:												
		INC		R2           ; inkrementuje R2
		LDI		R19,125      ; naplni R19 cislem 125
		CP		R2,R19       ; je-li R2 mensi nez 125 >>
		BRLO	        pryc          ; >> jde pryc

                CLR		R2
		INC		R3
		LDI		R19,25		
		CP		R3,R19
		BRLO	        pryc	     ; pozdrzi 25x, celkem tedy 3125x
	        CLR		R3
		; tady budem dal neco delat...
pryc:	        NOP
RET

Program zkompilujte stisknutím F7 a spusťte debugger (Shift + Alt + Ctrl + F5). Pomocí klávesy F11 si můžete program krokovat a zjistit, co dělá. Podívejte se hlavě na to, co se děje s registry R2 a R3. To je váš úkol pro příště, kdy si také program detailně popíšeme.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Ondřej KarasAutor se věnuje vývoji řídících a komunikačních systémů a tvorbě podpůrných aplikací.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Reklama autora

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý