Sunteți pe pagina 1din 30

Arhitecturi de sisteme

incorporate
Microcontrolere si sisteme
integrate
Microchip AVR 8 biți

Medii integrate de dezvoltare a aplicațiilor software (IDE),


freeware/open source si comerciale

Metode si mijloace de programare a memoriilor interne


FLASH si EEPROM precum si de depanare (debugging)
software: exemple interfețe hardware si software 1
AVR Studio 4 (Atmel)
• AVR Studio 4 este un IDE freeware
pentru familia de microcontrolere AVR
8 biți dar care, nativ, nu include un
compilator C, el nu are decât un
asamblor, un editor de legături si un
simulator/depanator (care are
integrată si o interfață de programare)
• Este un produs matur, a cărui
dezvoltare s-a finalizat la versiunea
4.18, SP3 sau versiunea finala 4.19
– Din 2014 nu mai exista suport pentru
versiuni mai noi de microcontrolere AVR 8
biți +
• AVR Studio 4 împreună cu
compilatorul C open-source
WinAVR (care este portarea lui Gnu
C pentru AVR 8 biți) reprezinta un
IDE complet
• O să-l utilizați eventual la laborator
sau teme de casă si proiect!

2 2
Atmel Studio 6
• Atmel Studio 6 este un mediu integrat de dezvoltare a aplicațiilor software
produs de Atmel, din categoria freeware
• El a inlocuit in primul rând AVR Studio 5 (pe care este de recomandat să-l
evitați!) constituind o platformă unică de dezvoltare pentru microcontrolerele
AVR de 8 biți si 32 de biți precum si pentru familiile de microcontrolere de 32 de biți
Atmel ARM Cortex-M (familia SAM), cu avantajele dar si dezavantajele de rigoare!
• Are integrate propriile compilatoare de C, AVR GNU C Compiler (GCC) – din
familia compilatoarelor Gnu C, astfel că nu mai este nevoie de instalarea/utilizarea
unui alt compilator (ca la AVR Studio 4)
• Este un mediu de dezvoltare care suportă 3 arhitecturi de calcul diferite!
• Include editor, simulator, depanator, aplicații de programare care suportă o
gamă largă de mijloace hardware de programare si depanare
• Poate importa explicit proiectele mai vechi create cu AVR Studio 4 (AVR 8 biți)
• Este bazat pe tehnologiile Microsoft Visual Studio si .NET, kitul de instalare este
mare, are nevoie de o mașină gazdă puternică, cu multe resurse, dar oricum va
fi relativ lent!
• Utilizarea lui Atmel Studio 6 pentru AVR 8 biți nu se justifică decât dacă trebuie
utilizată o platformă hardware nouă care nu este suportată si nici nu va fi de
AVR Studio 4
• Observație Începând cu 2015 a fost lansat Atmel Studio 7. Ultima versiune
este (a rămas) Atmel Studio 6.22 3
– El este descris ca un mediu de dezvoltare de productivitate maxima pentru toate procesoarele
produse de Atmel (achizitionat intre timp de Microchip)
Microchip Studio for AVR® and
SAM Devices
• Pentru AVR 8 biti este de fapt Microchip (Atmel) Studio 7 (versiunea 7.0)
care la rândul lui reprezintă o dezvoltare a lui Atmel Studio 6, fiind descris acum
ca un IDP (Integrated Development Platform) , adică o platformă integrată de
dezvoltare a aplicațiilor
• https://www.microchip.com/en-us/development-tools-tools-and-
software/microchip-studio-for-avr-and-sam-devices
– Este in continuare un produs freeware
• Este o platformă unică de dezvoltare pentru toate microcontrolerele AVR de 8
biți si AVR 32 de biți precum si pentru familiile de microcontrolere de 32 de biți
SAM (aka ARM Cortex-M), adică pentru peste 500 de variante AVR si SAM
• Se conectează direct cu toate sistemele de programare/depanare precum si cu
toate sistemele de dezvoltare Atmel/Microchip si nu numai
• Include si un (Atmel) Gallery un apps store online care permite extensia
mediului de dezvoltare cu multe module suplimentare (plug-ins) dezvoltate de
Atmel/Microchip sau terțe părți, multe din ele din categoria freeware
• Permite importul direct de programe/proiecte/schițe(sketches) Arduino ca
proiecte C++, asigurând o tranziție simpla de la Makerspace la Marketplace
• Este bazat pe tehnologia Microsoft Visual Studio Shell 2015
4
MPLAB X
• MPLAB este un IDE freeware, proprietate Microchip, in mod
tradițional utilizat pentru dezvoltarea aplicațiilor cu
microcontrolerele PIC si dsPIC
• Varianta clasică s-a oprit la MPLAB8.x fiind apoi urmată de actualul
MPLAB X, actualmente (2021) la varianta MPLAB X 5.50
– MPLAB X este un IDE cross platforma, existând variante si pentru MacOS sau
Linux
• In ciuda promisiunilor Microchip că va păstra si dezvolta in
continuare produsul bazat pe Atmel Studio 7 se pare că viitorul nu
arată chiar așa ..
– Oricum deja exista probleme de compatibilitate pentru codul AVR 8 biti generat
de MPLAB X (vezi simulator de sistem Proteus VSM..)
• Începând cu MPLAB X versiunea 5.05 beta (sfârșitul lui 2018)
acesta include si suport pentru majoritatea microcontrolerelor AVR
8 biți din fabricație curentă
• In compilatorul C standard XC8 (cel utilizat pentru aplicații PIC)
este adăugat acum si AVR MCU GNU Compiler Collection (GCC)
făcând posibilă dezvoltarea aplicațiilor si cu AVR 8 biți 5
– XC8 înglobeaza acum tot suportul pentru portarea GCC pentru AVR 8 biti
Ecosistemul AVR 8 biți Microchip cuprinde de fapt un
vast set de unelte software ! 6
Singura limită este curiozitatea voastră!
IAR Embedded Workbench
for Atmel AVR
• Este un mediu integrat complet, similar lui (AVR) Studio, care conține
cel puțin toate componentele acestuia, pentru toate familiile AVR 8 biți
• Este un IDE / compilator comercial (contracost)
• Compilatorul de C/C++ este unul de firmă (proprietar), oarecum diferit
de WinAVR (sintaxa specifică nu este identică, exista macroinstrucțiuni
si biblioteci diferite), dar este cel mai performant compilator C (ca
optimizare dimensiune cod - viteză de execuție) pentru AVR 8 biți
– Majoritatea exemplelor in C din notele de aplicații Atmel/Microchip AVR
folosesc sintaxa IAR Systems
– IAR Systems a lucrat împreuna cu ATMEL (in anii ‘90) la dezvoltarea
simultană a compilatorului de C odată cu unitatea centrală AVR 8 biți
• Foarte multe facilitați suplimentare, funcție si de costul plătit; de
exemplu verificare MISRA C, suport pentru diverse RTOS-uri, etc.
• Este disponibila o varianta de evaluare aproape integral funcțională,
pentru 30 de zile si o variantă freeware (Kickstart) cu limita maximă a
codului generat de 4kOcteti
• Actualmente (2021) este la versiunea 7.30
– https://www.iar.com/products/architectures/microchip/iar-embedded-
workbench-for-avr/ 7
Alte medii integrate de dezvoltare, alte
compilatoare – MikroElektronika
• Compania sârbă (da, este vorba de Republica
Serbia!) MikroElektronika produce o serie
întreagă de compilatoare (împreună cu IDE-urile
corespunzătoare) pentru limbajele C, Pascal si
Basic pentru microcontrolerele AVR 8 biți
• Compilatoarele respective sunt numite mikroC
(limbaj C), mikroPascal (limbaj Pascal) si
mikroBasic (limbaj Basic)
• Sunt compilatoare/IDE-uri performante dar din
categoria celor comerciale (contracost)
– https://www.mikroe.com/compilers/compilers-avr
– Compania mai produce si hardware AVR 8 biti:
programatoare, sisteme de dezvoltare
disponibile la marii distribuitori mondiali
(Mouser, DigiKey, Future, etc.)

8
Alte medii integrate de dezvoltare,
alte compilatoare si interpretere –
Arduino IDE
• Platforma Arduino IDE este o platformă de dezvoltare scrisă in Java,
este una din categoria open-source (la fel ca si hardware-ul utilizat) si
este derivată dintr-o serie de proiecte open-source mai vechi, cum ar fi
cele numite “Wiring” sau “Processing”
• Este destinată învățării programării de microcontrolere de către persoane
care nu sunt familiare cu dezvoltarea de aplicații software (nespecialiști!)
• Programele Arduino sunt scrise intr-un limbaj asemănător C/C++.
– Compilatorul este unul derivat din Gnu C/C++(gcc)
• Programarea efectiva a aplicației se face cu ajutorul unui bootloader
serial asincron sau USB
• Programele/proiectele Arduino, ca unități de cod, poartă denumirea de
“schițe”(sketches)
• Foarte important este că Arduino IDE are inclusă o bibliotecă extensiva
de funcții numită "Wiring" care facilitează in mod major operațiile de
intrare-ieșire (cu avantajele si dezavantajele de rigoare!)
– http://arduino.cc/
OBSERVATIE Nu toate platformele (plăcile) Arduino folosesc procesoare AVR de
8 biti! De exemplu Arduino Due folosește un procesor Atmel SAM3X8E un ARM
Cortex-M3, un procesor de 32 de biți din familia ARM! 9
AVR 8 biti - Programarea “in sistem”-
ISP
• In System Programming (ISP)
• Microcontrolere: majoritatea variantelor MEGA si TINY
• Exemple de programatoare (hardware): AVR ISP MKI/II, AVR JTAG ICE MKII,
STK500, STK600, Dragon, diverse clone AVRISP, programatoare AVR910 (un
protocol descris in nota de aplicații ATMEL AVR910), AVR ONE
– STK500, STK600, Dragon sunt sisteme de dezvoltare universale
– AVR JTAG MKII si AVR ONE (cel mai recent si cel mai complet) sunt unelte de
programare si depanare evoluate
• Este poate cea mai comună metodă de programare a memoriei FLASH,
EEPROM, a fuzibilelor (inclusiv a celor de zăvorâre - lock) pentru aproape toate
variantele de AVR, fiind varianta preferată de hobby-isti datorită informației
bogate existente pe Internet (scheme, cablaje, software, etc)
• Folosește interfața SPI si poate asigura programarea la viteze de ceas foarte
mari (daca ele sunt suportate de microcontroler si de programator)
• AVR ISP este un produs mai vechi, pentru care există multe clone sau produse
similare (de exemplu PonyProg), in variante care se pot conecta la mașina
gazdă (PC) la:
– Un port paralel (imprimanta) obsolete
– Un port serial (mai lente)
• Atenție: programarea ISP cere ca frecvența de ceas a microcontrolerului
programat sa fie de cel puțin 4 ori mai mare decât frecvența ceasului utilizat de
programatorul ISP
10
AVR ISP- Programarea se poate face cu ajutorul unor programatoare
dedicate sau cu ajutorul unor sisteme de dezvoltare
AVR Dragon

STK-500

AVR ISP

STK-600
AVR ONE!

STK-500 si STK-600
sunt de fapt niste sisteme de
dezvoltare multifuncționale cu AVR,
produse de ATMEL
Similar AVR Dragon este un sistem Cele 2 variante de pin-out (6 pini si 10 pini)11ale
de dezvoltare mai simplu conectorului standardizat
AVR 8 biți- Programarea cu ajutorul
interfeței JTAG
• JTAG(Joint Test Action Group)
• Microcontrolere: majoritatea variantelor MEGA si XMEGA (cu număr mai mare de pini)
• Exemple de programatoare (hardware): JTAG-ICE MKII, JTAG-ICE3, Dragon, diverse
clone JTAG-ICE, AVR ONE, STK600
• Tehnic vorbind JTAG este un sistem de depanare “in - sistem”, cu o interfață serială, nu
o metodă de a programa un AVR, dar acest sistem de interfață, intre alte funcții, permite
si programarea
– JTAG este un sistem care permite manipularea si examinarea stării unui microcontroler AVR (in
acest caz) in timpul execuției programului
– Interfața / sistemul de depanare JTAG permite oprirea execuției programului, examinarea
registrelor , a memoriilor si multe alt lucruri
• Programatorul JTAG-ICE MKII care a înlocuit mai vechiul JTAG-ICE, suportă majoritatea
variantelor de AVR care au interfața JTAG;
– in plus suportă si un nou protocol de depanare/programare numit DebugWire (pentru variante de
AVR cu număr mic de pini)
• Diversele “clone” neoficiale JTAG-ICE sunt disponibile si/sau realizabile pentru prețuri
mici (comparativ cu originalele) dar mai au probleme de compatibilitate cu toată seria de
AVR-uri cu interfață JTAG

12
JTAG ICE-3

Un clasic, JTAG ICE MkII

O “clona” JTAG ICE

O varianta de pin-out (10 pini) a unui


Conector JTAG standardizat

13
Sisteme (mai) moderne de dezvoltare din perioada Microchip si Atmel
pre-Microchip

Sistemele din perioada Microchip sunt de fapt sisteme cross-platformă disponibile


pentru AVR, PIC sau microcontrolere din familia SAM (ARM)

Platforma Curiosity Nano


• Prima cross-platformă din perioada
Microchip
• Există o serie diversificată de module
periferice

Sistemele Xplained
• Provin din perioada Atmel
• Mai sunt încă programabile si ISP..

14
Sisteme (mai) moderne de programare/testare din perioada Microchip

Sistemele din perioada Microchip sunt de fapt sisteme cross/multi-platformă


disponibile pentru AVR 8 biți, PIC sau microcontrolere din familia SAM (ARM )
Toate permit programarea si testarea (debugging) aplicațiilor

MPLAB® SNAP
ATMEL-ICE

POWER DEBUGGER
https://www.microchip.com/en-us/development-tools-
15
tools-and-software/programmers-and-debuggers
16
Programarea cu ajutorul interfeței
DebugWire
• DebugWire (dW) - o interfata ISP
• Microcontrolere: majoritatea variantelor MEGA si XMEGA cu număr mic de pini,
unele ATTiny (de exemplu ATtiny2313)
• Exemple de programatoare (hardware): AVR ISP Mk II, JTAG-ICE MKII, JTAG-
ICE3, Dragon, AVR ONE
• DebugWire este mai degrabă o interfață de depanare decât una de programare, dar
printre funcțiile sale este si una care permite programarea.
• Interfața dW folosește un singur pin, pinul /RESET, pentru a comunica cu
microcontrolerul AVR, făcând-o ideală pentru variantele cu un număr mic de pini
– Pinul /RESET (RST, NRST) se află oricum printre semnalele din conectorul programatoarelor
ISP si JTAG, așa că nu este nevoie de un conector special

OBSERVAȚIE
Utilizarea interfeței dW sau JTAG si a celei ISP
sunt exclusive (ori un ori alta), alegerea
făcându-se prin programarea unui fuzibil
numit SPI Enable.
Implicit este selectata interfața ISP, fuzibilul fiind
programat. 17
Programarea cu ajutorul unui programator paralel
(High Voltage - de înaltă tensiune)
• High Voltage Parallel Programming (HVPP)
• Microcontrolere: majoritatea variantelor MEGA si XMEGA cu număr
mare de pini
• Exemple de programatoare (hardware): STK500, STK600, Dragon,
AVRONE, diverse programatoare universale
• Este o metodă de programare mai rar utilizată, deoarece presupune
scoaterea microcontrolerului din sistem
• Este disponibilă doar la variantele cu număr mare de pini, pentru că se
folosesc magistrale externe de date, adrese plus semnale de control
pentru transferul paralel al informație către microcontroler
• Este utilizată si pentru a “învia” microcontrolerele AVR făcute
nefuncționale de o programare greșită a fuzibilelor (cu o altă metodă de
programare)
– Se numește de înaltă tensiune deoarece in acest proces pinul /RESET al
microcontrolerului este adus la tensiunea de +12 V (este înaltă fată de
+5V!)
– La microcontrolerele care suportă acest tip de programare, pinul /RESET
este singurul pin a cărui tensiune poate fi ridicată la tensiune de +12V, in
condiții de siguranță!

18
19
AVR 8 biti- Alte interfețe de
programare
• High Voltage Serial Programming (HVSP)
• Microcontrolere: multe variante de ATTiny cu număr mic de pini
• Exemple de programatoare (hardware): STK500, STK600, Dragon,
AVRONE, diverse diverse programatoare artizanale
• HVSP este similara HVPP, doar că datele sunt transferate serial, nu paralel,
făcând-o adecvată pentru variantele de AVR cu număr mic de pini (la care nu
putem avea o interfață externă paralelă)

• Program and Debug Interface (PDI)- ultima varianta de interfata ISP


• Microcontrolere: toate variantele XMEGA
• Exemple de programatoare (hardware): JTAG ICE MkII (după o anumita
data), JTAG ICE-3, STK600, AVRONE,
• PDI este o noua intrefață de programare, cu un număr redus de semnale,
utilizabilă doar pentru seria XMEGA, bazată pe protocolul lui debugWire

Conectorul are doar 4 fire (cu masă si


alimentare)
20
Alte interfețe de programare - 2
• Tiny Programming Interface (TPI)- tot o interfata ISP
• Microcontrolere: variantele de ATTiny cu 6 pini (ex. ATTINY10)
• Exemple de programatoare (hardware): STK600, Dragon,
JTAG-ICE3, Dragon, AVRISP MKII
• TPI este interfața de programare creata special pentru
variantele de AVR Tiny cu număr foarte mic de pini (6 pini)
• La fel ca la dW, TPI folosește pinul /RESET ca parte a interfeței
de comunicație, dar aici similitudinile se opresc
• Ea este doar o interfață de programare si nu si una de
depanare, care folosește doar 3 pini (linia de date DATA fiind
bidirecțională, ca la PDI).

21
AVR 8 biti- Programarea cu ajutorul unui
bootloader pre-programat
• Bootloaders
• Microcontrolere: toate variantele ATMEGA, XMEGA, doar unele din
ATTiny
• Exemple de programatoare (hardware): Nu sunt necesare, este
nevoie doar de “o sursă de date” cum ar fi tipic o conexiune serială
funcțională (RS-232, RS-485, CAN bus, I2C, etc. )
• Din punct de vedere tehnic nu este direct o metodă de programare
• Un bootloader este un mic program AVR rezident intr-o zonă specială
a memoriei de program FLASH, zona de bootloader (la variantele de
AVR care au o astfel de zonă! )
• Un program bootloader valorifică existența instrucțiunilor care permit
scrierea in memoria FLASH de program (de fapt in zona de aplicații a
ei) a informației care provine dintr-o sursa externă
• In mod tipic aceasta sursă este o conexiune serială funcțională (de ex.
RS-232), dar poate fi si un SD card sau un Data FLASH
• După programarea memoriei de program cu codul aplicație, tot
bootloaderul este responsabil cu lansarea ei in execuție
• Cu alte cuvinte un bootloader este un program mic care încarcă
(programează) si apoi lansează in execuție un program mare 22
Programarea cu ajutorul unui bootloader
(pre-programat) -2
• Principalele limitări ale unui bootloader sunt:
– dimensiunea relativ redusă a zonei bootloader din memoria FLASH
(deci el trebuie să fie foarte compact) trebuind ca spațiul cel mai
mare să fie rezervat aplicației propriu-zise
– in mod tipic, nu poate modifica/ programa si fuzibilele
• Un bootloader pune problema clasică a oului si găinii, in sensul
că, daca nu a fost deja programat la fabricant, totuși ne trebuie un
programator (din tipurile menționate anterior) pentru programarea
lui!
• Există multe exemple de bootloadere AVR pe Internet, freeware
sau contra cost, si nu la toate este disponibil codul sursă;
– Vă sunt necesare atât codul bootloaderului cat si o aplicație care să
ruleze pe o mașină gazdă (PC) si să transfere datele (codul care va
fi programat)
– Aveți nevoie si de un programator din categoria celor deja
mentionate pentru a programa bootloaderul
– De exemplu o pereche aplicație PC - bootloader găsiți aici:
http://www.chip45.com/avr_bootloader_atmega_xmega_chip45boot2
.php
• Evident sunt disponibile pe piata si AVR-uri cu un bootloader pre-
programat, vezi cazul sistemelor Arduino sau al placii AVR
Butterfly https://www.microchip.com/en-us/development-
tool/ATAVRBFLY
23
Programarea cu ajutorul unui bootloader pre-
programat - interfata USB
Actualmente (2021) avem următoarele variante AVR 8 biți cu interfață
USB integrata si bootloader USB:
• ATMEGA 8U2/ 16U2 / 32U2
• ATMEGA 16U4 / 32U4
• ATXMEGA A1U / A3U / A4U (familii)
• ATXMEGA C3U/C4U (familii)

•Device Firmware Upgrade


(DFU) este un mecanism, o
clasa USB, implementat
pentru a putea realiza
modificări ale firmware-ului
unui dispozitiv (programarea
lui)
• Un alt dispozitiv USB
Calculator gazda (host)
poate valorifica această
cu interfata USB
capabilitate (tipic asociat 24
unui calculator gazda)
Programarea cu ajutorul unui bootloader pre-
programat - interfata USB
• Pentru circuitele menționate anterior bootloaderul USB este pre-
programat “din fabrică”, in secțiunea “Bootloader Flash Section” a
memoriei FLASH de program
• Evident, dimensiunea secțiunii respective trebuie să fie mai mare sau
cel puțin egală cu dimensiunea codului mașină al bootloaderului
• Operațiile pe care le poate realiza bootloaderul USB:
– Ștergerea memoriei FLASH
– Ștergerea memoriei EEPROM
– Programarea/citirea memoriei FLASH
– Programarea/citirea memoriei EEPROM
• El NU poate realiza programarea fuzibilelor, care vor trebui eventual
programate cu un alt fel de programator
• Circuitele AVR cu bootloader USB sunt furnizate si cu fuzibilul
BOOTRST programat (BOOTRST=0) astfel ca vectorul de Reset va
indica prima instrucțiune in zona/ secțiunea Bootloader nu in cea de
Aplicații
• De exemplu, Arduino Leonardo utilizează bootloaderul USB al unui
ATMEGA32U4, iar un ATMEGA 16U2 este folosit pentru a implementa
un bootloader USB pentru un ATMEGA2560 in cazul Arduino
Mega2560.

25
AVRDUDE – o soluție de programare
AVR 8 biti open source

• AVRDUDE (AVR Downloader/UploaDEr) este o aplicație


PC open source care rulează sub Linux, FreeBSD,
Windows si Mac OS X, si care suportă o gamă largă de
mijloace de programare hardware/software : AVR ISP
mkII, Atmel JTAG ICE, diverse programatoare ISP (pe
portul paralel, serial sau USB) si bootloadere
• AVRDUDE este si un protocol de comunicație intre un
bootloader serial AVR 8 biti si o aplicație care rulează pe
un PC host
– Este protocolul utilizat de bootloaderul Arduino si de Arduino IDE
• Ca aplicație host este o aplicație in linie de comandă,
fără o interfață GUI nativă
– http://www.nongnu.org/avrdude/
– http://www.ladyada.net/learn/avr/avrdude.html
OBS. In absența unei interfețe grafice programarea fuzibilelor este
ceva mai dificila, ele fiind programate de fapt prin programarea
separata a celor 3 octeți speciali de memorie FLASH: high, low si
extended (vezi prezentarea despre fuzibile)
26
AVR USBasp – o soluție de programator
hardware “open source”

• Este cel mai ieftin programator AVR 8 biți, cu


conectivitate USB, care folosește protocolul AVRDUDE
• http://www.fischl.de/usbasp/
• https://www.youtube.com/watch?v=b9bazqLUysY
• http://www.ladyada.net/learn/avr/avrdude.html
• https://www.optimusdigital.ro/ro/programatoare/143-
programator-avr-
usbasp.html?gclid=EAIaIQobChMI29CAhI671wIVajPTC
h1WtwqtEAAYASAAEgIpCPD_BwE 27
In AVR Studio 4 platforma de programare si
depanare este aleasă la crearea proiectului

Ea poate fi accesibilă
prin intermediul meniului
Tools

Sau al meniului Debug, odată


cu lansarea depanării (Start Debugging), având loc
si încărcarea programului
28
Atmel Studio 6.2/7
Alegerea variantei de microcontroler
(Device family, Name) se face
la crearea proiectului

Alegerea metodei de programare si depanare


(din lista Supported Tools) nu se face tot la
crearea proiectului, ci doar mai tarziu:
Properties (in Solution Explorer), Tool

29
Programarea si depanarea
(debugging) aplicației
• La fel de importantă ca programarea (codului aplicației) este testarea si
depanarea aplicației in sine.
• După programarea aplicației, depanarea presupune cel puțin: posibilitatea
lansării in execuție si opririi aplicației, a definirii unuia sau mai multor
puncte de oprire (breakpoints), a execuției pas cu pas (instrucțiune cu
instrucțiune sau linie cu linie), a examinării si modificării stării unor resurse
(memorii, registre, etc.).
• Cel puțin in ce privește mediile IDE Atmel (AVR Studio 4 sau Studio 6/7
pentru AVR 8 biți) programarea codului si depanarea lui este extrem de
asemănătoare, ca interfețe utilizator, ca proceduri de lucru, ca informație
utilă, fie că folosim simulatorul (AVR Simulator), fie că folosim o platformă
hardware (emulator, sistem de dezvoltare) din categoria celor menționate.
• Cu alte cuvinte, din punct de vedere al utilizatorului, există puține diferențe
intre o sesiune de depanare realizată cu ajutorul simulatorului si una
realizată cu o platformă hardware dedicată: deci dacă știți să utilizați
simulatorul pentru depanare, veți ști, cu eforturi minimale, să utilizați si o
platformă hardware in același scop..

30

S-ar putea să vă placă și