 
Aceasta este comanda avariție care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
avarice - Oferă o interfață de la avr-gdb la caseta JTAGICE de la Atmel.
REZUMAT
avariţia [OPŢIUNI]... [[HOST_NAME]:PORT]
DESCRIERE
AVaRICE rulează pe o mașină POSIX și se conectează la gdb printr-un socket TCP și comunică prin
„protocolul serial de depanare” al gdb. Acest protocol permite gdb să trimită comenzi precum „set/remove
punct de întrerupere” și „memorie de citire/scriere”.
AVaRICE traduce aceste comenzi în protocolul Atmel folosit pentru a controla JTAG-ul AVR
GHEAŢĂ. Conexiunea la AVR JTAG ICE se face printr-un port serial pe mașina POSIX.
Deoarece conexiunea GDB <---> AVaRICE se face printr-un socket TCP, cele două programe nu au nevoie de
să ruleze pe aceeași mașină. Într-un mediu de birou, acest lucru permite unui dezvoltator să depaneze un
țintă în laborator din confortul cubului lor (sau și mai bine, acasă!)
NOTĂ: Chiar dacă poți fugi avariţia și avr-gdb pe diferite sisteme, nu este
recomandat din cauza riscului de securitate implicat. avariţia nu a fost conceput pentru a fi a
server securizat. Nu există autentificare efectuată atunci când un client se conectează la
avariţia când rulează în modul server gdb.
Suportat Dispozitive
avariţia în prezent are suport pentru următoarele dispozitive:
la90can128
at90can32 (o)
at90can64 (o)
la 90pwm2 (o) (+)
la 90pwm216 (o) (+)
at90pwm2b (o) (+)
la 90pwm3 (o) (+)
la 90pwm316 (o) (+)
at90pwm3b (o) (+)
at90usb1287 (o)
at90usb162 (o) (+)
at90usb646 (o)
at90usb647 (o)
atmega128
atmega1280 (o)
atmega1281 (o)
atmega1284p (o)
atmega128rfa1 (o)
atmega16
atmega162
atmega164p (o)
atmega165 (o)
atmega165p (o)
atmega168 (o) (+)
atmega168p (o) (+)
atmega169
atmega16hva (o)
atmega16m1 (o) (+)
atmega2560 (o)
atmega2561 (o)
atmega32
atmega323
atmega324p (o)
atmega325 (o)
atmega3250 (o)
atmega3250p (o)
atmega325p (o)
atmega328p (o) (+)
atmega329 (o)
atmega3290 (o)
atmega3290p (o)
atmega329p (o)
atmega32c1 (o) (+)
atmega32hvb (o) (+)
atmega32m1 (o) (+)
atmega32u4 (o)
atmega406 (o)
atmega48 (o) (+)
atmega48p (o) (+)
atmega64
atmega640 (o)
atmega644 (o)
atmega644p (o)
atmega645 (o)
atmega6450 (o)
atmega649 (o)
atmega6490 (o)
atmega64c1 (o) (+)
atmega64m1 (o) (+)
atmega88 (o) (+)
atmega88p (o) (+)
attiny13 (o) (+)
attiny167 (o) (+)
attiny2313 (o) (+)
attiny24 (o) (+)
attiny25 (o) (+)
attiny261 (o) (+)
attiny4313 (o) (+)
attiny43u (o) (+)
attiny44 (o) (+)
attiny45 (o) (+)
attiny461 (o) (+)
attiny48 (o) (+)
attiny84 (o) (+)
attiny85 (o) (+)
attiny861 (o) (+)
attiny88 (o) (+)
atxmega128a1 (o) (*)
atxmega128a1revd (o) (*)
atxmega128a3 (o) (*)
atxmega32a4 (o) (*)
atxmega16d4 (o) (*)
atxmega128b1 (o) (*)
atxmega128b3 (o) (*)
atxmega64b1 (o) (*)
atxmega64b3 (o) (*)
o - Acceptat numai de dispozitivele JTAG ICE mkII și AVR Dragon.
* - Dispozitiv Xmega, necesită versiunea firmware de cel puțin 7.x (așa cum este livrat cu AVR Studio 5)
+ - debugWire, vezi mai jos
Suportat Fișier Formate
avariţia folosește libbfd pentru citirea fișierelor de intrare. Ca atare, poate gestiona orice format de fișier care
libbfd stie despre. Printre acestea se numără și formatele Intel Hex, Motorola SRecord și ELF
alții. Dacă spui avariţia pentru a citi un fișier ELF, acesta se va ocupa automat de programare
toate secțiunile conținute în fișier (de exemplu, flash, eeprom etc.).
OPŢIUNI
-h, --Ajutor
Tipăriți acest mesaj.
-1, --mkI
Conectați-vă la JTAG ICE mkI (implicit).
-2, --mkII
Conectați-vă la JTAG ICE mkII.
-3, --jtag3
Conectați-vă la JTAGICE3.
-B, --jtag-bitrate
Setați rata de biți pe care caseta JTAG o comunică cu dispozitivul țintă AVR. Acest
trebuie să fie mai mică de 1/4 din frecvența țintei. Valorile valide sunt 1 MHz, 500
kHz, 250 kHz sau 125 kHz pentru JTAG ICE mkI, orice între 22 kHz și
aproximativ 6400 kHz pentru JTAG ICE mkII. (implicit: 250 kHz)
-C, --captură
Captură programul care rulează.
Notă: depanarea trebuie să fi fost activată înainte de a începe programul. (de exemplu, de către
alergând cu avariția mai devreme)
-c, --daisy-chain
Configurați informațiile în lanț JTAG.
Trebuie furnizați patru parametri separați prin virgulă, corespunzători de unităţi înainte,
de unităţi după, biţi înainte și biţi după.
-D, --desprinde
Detașează odată sincronizat cu JTAG ICE
-d, --depanare
Activați imprimarea informațiilor de depanare.
-e, --şterge
Ștergeți ținta. Nu este posibil în modul debugWire.
-E, --eveniment
Lista evenimentelor care nu întrerup. Doar JTAG ICE mkII și AVR Dragon. Mod implicit
este „none,run,target_power_on,target_sleep,target_wakeup”
-f, --fişier
Specificați un fișier pentru a fi utilizat cu opțiunile --program și --verify. Dacă --file este transmis
și nici --program sau --verify nu sunt date, atunci --program este implicat. NOTĂ:
caracteristică depreciată, trebuie să fie activată utilizând --enable-target-programming
opțiune de configurare.
-g, --balaur
Conectați-vă la un AVR Dragon. Această opțiune implică -2 opțiune.
-I, --ignore-intr
Treceți automat peste întreruperi.
-j, --jtag
Port atașat casetei JTAG (implicit: /dev/avrjtag). Dacă JTAG_DEV mediu
variabila este setată, avariția o va folosi ca implicită.
If avariţia a fost configurat cu suport libusb, JTAG ICE mkII poate fi
conectat prin USB. În acest caz, șirul USB este folosit ca nume al
dispozitiv. Dacă există mai multe dispozitive JTAG ICE mkII conectate la sistem
prin USB, acest șir poate fi urmat de (partea de sfârșit a) serialului ICE
număr, delimitat de USB de un colon.
AVR Dragon și JTAGICE3 pot fi conectate doar prin USB, deci această opțiune
implicit la „usb” în acest caz.
-k, --dispozitive-cunoscute
Tipăriți o listă de dispozitive cunoscute.
-L, --write-lockbits
Scrieți biți de blocare. Datele octetului de blocare trebuie să fie date în format hexizecimal de două cifre
cu umplutură zero dacă este necesar.
-l, --read-lockbits
Citiți biții de blocare de la țintă. Biții individuali sunt, de asemenea, afișați cu
nume.
-P, --parte
Numele dispozitivului țintă (de ex. atmega16). În mod normal, avariţia detectează automat dispozitivul prin
JTAG sau debugWIRE. Dacă această opțiune este furnizată, ea înlocuiește rezultatul din
autodetecție.
-p, --program
Programați ținta. Numele binar al fișierului trebuie specificat cu opțiunea --file. NOTĂ:
caracteristică depreciată, trebuie să fie activată utilizând --enable-target-programming
opțiune de configurare.
-R, --reset-srst
Aplicați semnalul nSRST (resetare externă) când vă conectați. Acest lucru poate trece peste
aplicații care setează bitul JTD.
-r, --citeste-sigurante
Citiți octeții siguranțelor.
-V, --versiune
Informații despre versiunea tipărită.
-v, --verifica
Verificați programul din dispozitiv față de fișierul specificat cu opțiunea --file. NOTĂ:
caracteristică depreciată, trebuie să fie activată utilizând --enable-target-programming
opțiune de configurare.
-w, --debugwire
Conectați-vă la JTAG ICE mkII, JTAGICE3 sau AVR Dragon, vorbind cu protocolul debugWire
ținta. Această opțiune implică -2 opțiune. Consultați secțiunea DEBUGWIRE de mai jos.
-W, --scrie-sigurante
Scrieți siguranțe de octeți. ee este octetul de siguranță extins, hh este octetul de siguranță mare și ll is
octetul siguranței scăzute. Datele de octet al siguranței trebuie să fie date în format hexizecimal de două cifre
cu umplutură zero dacă este necesar. În prezent, toți cei trei octeți trebuie dați.
NOTĂ: Curent, dacă dispozitivul țintă nu are un octet de siguranță extins (de ex
atmega16), ar trebui să setați ee==ll când scrieți octeții siguranței.
-x, --xmega
Dispozitivul țintă este o parte ATxmega, folosind transportul JTAG. Deoarece ATxmega folosește
o comunicare JTAG diferită de alte AVR-uri, autodetecția normală a dispozitivului
pe baza ID-ului JTAG nu funcționează. Dacă dispozitivul a fost selectat în mod explicit
prin optiunea -P nu este necesar sa se specifice si optiunea -x.
-X, --pdi
Dispozitivul țintă este o parte ATxmega, care utilizează transportul PDI.
HOST_NAME implicit la 0.0.0.0 (ascultați pe orice interfață) dacă nu este dat.
:PORT este necesar pentru a pune avariția în modul server gdb.
EXEMPLU UTILIZARE
avariție --erase --program --file test.bin --jtag /dev/ttyS0 :4242
Programați fișierul test.bin în JTAG ICE (mkI) conectat la /dev/ttyS0 după ștergere
dispozitiv, apoi ascultați în modul GDB pe portul local 4242. Această funcționalitate este
depreciat și nu mai este configurat implicit. În schimb, utilizați comanda „încărcare” a lui GDB.
avariția --jtag usb:1234 --mkII :4242
Conectați-vă la JTAG ICE mkII atașat la USB, în care se termină numărul de serie 1234, și ascultă
în modul GDB pe portul local 4242.
DEBUGARE CU AVARICE
Mediul de depanare JTAG ICE are câteva restricții și modificări:
· Fără puncte de întrerupere „soft” și doar trei puncte de întrerupere hardware. Comanda break se setează
puncte de întrerupere hardware. Cel mai simplu mod de a face față acestei restricții este activarea și
dezactivați punctele de întrerupere după cum este necesar.
· Două puncte de urmărire hardware de 1 octet (dar fiecare punct de urmărire hardware ia câte un hardware
punct de întrerupere). Dacă setați un punct de supraveghere pe o variabilă care are mai mult de un octet,
execuția va fi abisal de lentă. În schimb, este mai bine să faceți următoarele:
ceas *(car *)&variabila mea
care urmărește octetul cel mai puțin semnificativ al variabila mea.
· Procesoarele Atmel AVR au o arhitectură Harvard (cod și magistrale de date separate).
Pentru a distinge adresa de date 0 de adresa de cod 0, avr-gdb adaugă 0x800000 la toate datele
adrese. Țineți cont de acest lucru atunci când examinați indicatoarele tipărite sau când treceți absolut
adrese la comenzile gdb.
DEBUGWIRE
debugWire protocolul este un protocol proprietar introdus de Atmel pentru a permite depanarea
controlere AVR mici care nu oferă suficienți pini (și suficiente resurse de cip) pentru
implementați JTAG complet. Comunicarea are loc peste /RESETARE pin care trebuie să fie
transformat într-un pin de conexiune debugWire prin programarea DWEN siguranță (activare debugWire),
folosind o conexiune normală de programator (programare în sistem, programare de înaltă tensiune).
Rețineți că, prin activarea acestei siguranțe, funcționalitatea standard de resetare a acelui pin va fi
pierdut, astfel încât orice programare în sistem va înceta să funcționeze, deoarece necesită o funcționalitate /RESETARE
pin. Asa ar trebui facuta absolut sigur acolo is a mod înapoi, ca un dispozitiv (ca
STK500, de exemplu) care poate gestiona programarea de înaltă tensiune a AVR. În prezent,
avariţia nu oferă nicio opțiune de a opri siguranța DWEN. In orice caz, avrdude oferă opțiunea de a
opriți-l fie prin programare de înaltă tensiune, fie folosind JTAG ICE mkII pentru
mai întâi transformați ținta într-un mod compatibil cu ISP și apoi folosind comenzi ISP normale pentru
modificați setările siguranțelor.
Rețineți că mediul debugWire este și mai limitat, în comparație cu JTAG. Aceasta nu
oferă puncte de întrerupere hardware, astfel încât toate punctele de întrerupere trebuie implementate ca software
puncte de întrerupere prin rescrierea paginilor flash folosind BREAK instrucțiuni. Unele spații de memorie (siguranță
și biți de blocare) nu sunt accesibile prin protocolul debugWire.
Folosiți avariția online folosind serviciile onworks.net
 














