Questo è il comando avarice che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
avarice - Fornisce un'interfaccia da avr-gdb alla scatola JTAGICE di Atmel.
SINOSSI
avarizia [VERSIONI]... [[NOME HOST]:PORT]
DESCRIZIONE
AVARICE funziona su una macchina POSIX e si connette a gdb tramite un socket TCP e comunica tramite
"protocollo di debug seriale" di gdb. Questo protocollo consente a gdb di inviare comandi come "set/remove
punto di interruzione" e "memoria di lettura/scrittura".
AVARICE traduce questi comandi nel protocollo Atmel utilizzato per controllare l'AVR JTAG
GHIACCIO. La connessione all'AVR JTAG ICE avviene tramite una porta seriale sulla macchina POSIX.
Poiché la connessione GDB <---> AVARICE avviene tramite un socket TCP, i due programmi non hanno bisogno
per funzionare sulla stessa macchina. In un ambiente d'ufficio, questo consente a uno sviluppatore di eseguire il debug di un
bersaglio in laboratorio comodamente dal loro cubo (o ancora meglio, dalla loro casa!)
NOTA: Anche se puoi correre avarizia e a avr-gdb su sistemi diversi, non lo è
consigliato a causa del rischio per la sicurezza coinvolto. avarizia non è stato progettato per essere un
server sicuro. Non viene eseguita alcuna autenticazione quando un client si connette a
avarizia quando è in esecuzione in modalità server gdb.
Supporto dispositivi
avarizia attualmente supporta i seguenti dispositivi:
a90can128
alle90can32 (o)
alle90can64 (o)
a90pwm2 (o) (+)
a90pwm216 (o) (+)
at90pwm2b (o) (+)
a90pwm3 (o) (+)
a90pwm316 (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 - Supportato solo dal dispositivo JTAG ICE mkII e AVR Dragon.
* - Dispositivo Xmega, richiede la versione firmware di almeno 7.x (come fornita con AVR Studio 5)
+ - debugWire, vedi sotto
Supporto Compila il formati
avarizia usa libbfd per leggere i file di input. In quanto tale, può gestire qualsiasi formato di file che
libbfd è a conoscenza. Ciò include i formati Intel Hex, Motorola SRecord ed ELF, tra
altri. Se lo dici avarizia per leggere un file ELF, gestirà automaticamente la programmazione
tutte le sezioni contenute nel file (es. flash, eeprom, ecc.).
VERSIONI
-h, --Aiuto
Stampa questo messaggio.
-1, --mkI
Connettiti a JTAG ICE mkI (predefinito).
-2, --mkII
Connettiti a JTAG ICE mkII.
-3, --jtag3
Connettiti a JTAGICE3.
-B, --jtag-bitrate
Imposta il bitrate che la scatola JTAG comunica con il dispositivo di destinazione AVR. Questo
deve essere inferiore a 1/4 della frequenza del bersaglio. I valori validi sono 1 MHz, 500
kHz, 250 kHz o 125 kHz per JTAG ICE mkI, qualsiasi cosa tra 22 kHz e
circa 6400 kHz per il JTAG ICE mkII. (predefinito: 250kHz)
-C, --catturare
Cattura il programma in esecuzione.
Nota: il debug deve essere stato abilitato prima di avviare il programma. (ad esempio, da
correre l'avarizia prima)
-c, --ghirlanda di margherite
Imposta le informazioni sul collegamento a margherita JTAG.
È necessario fornire quattro parametri separati da virgole, corrispondenti a unità prima,
unità dopo, bit prima e bit dopo.
-D, --stacca
Scollega una volta sincronizzato con JTAG ICE
-d, - debug
Abilita la stampa delle informazioni di debug.
-e, --cancellare
Cancella bersaglio. Non possibile in modalità debugWire.
-E, --evento
Elenco degli eventi che non si interrompono. Solo JTAG ICE mkII e AVR Dragon. Predefinito
è "nessuno,esegui,target_power_on,target_sleep,target_wakeup"
-f, --file
Specificare un file da utilizzare con le opzioni --program e --verify. Se viene passato --file
e non vengono forniti né --program né --verify, quindi --program è implicito. NOTA:
funzione deprecata, deve essere abilitata utilizzando --enable-target-programming
opzione di configurazione.
-g, --Drago
Connettiti a un AVR Dragon. Questa opzione implica il -2 opzione.
-I, --ignore-intra
Supera automaticamente gli interrupt.
-j, --jtag
Porta collegata alla casella JTAG (impostazione predefinita: /dev/avrjtag). Se l'ambiente JTAG_DEV
variabile è impostata, l'avarizia la utilizzerà invece come impostazione predefinita.
If avarizia è stato configurato con il supporto libusb, il JTAG ICE mkII può essere
collegato tramite USB. In tal caso, la stringa usb è usato come il nome del
dispositivo. Se ci sono più dispositivi JTAG ICE mkII collegati al sistema
tramite USB, questa stringa può essere seguita dalla (parte finale del) seriale di ICE
numero, delimitato da usb da due punti.
L'AVR Dragon e JTAGICE3 possono essere collegati solo tramite USB, quindi questa opzione
il valore predefinito è "usb" in quel caso.
-k, --dispositivi-conosciuti
Stampa un elenco di dispositivi noti.
-L, --write-lockbits
Scrivi bit di blocco. I dati del byte di blocco devono essere forniti in formato esadecimale a due cifre
con imbottitura zero se necessario.
-l, --read-lockbit
Leggere i bit di blocco dal bersaglio. I singoli bit vengono visualizzati anche con
nomi.
-P, --parte
Nome del dispositivo di destinazione (es. atmega16). Normalmente, avarizia rileva automaticamente il dispositivo tramite
JTAG o debugWIRE. Se questa opzione è fornita, sovrascrive il risultato di
rilevamento automatico.
-p, --programma
Programma il bersaglio. Il nome del file binario deve essere specificato con l'opzione --file. NOTA:
funzione deprecata, deve essere abilitata utilizzando --enable-target-programming
opzione di configurazione.
-R, --reset-primo
Applicare il segnale nSRST (reset esterno) durante la connessione. Questo può sovrascrivere
applicazioni che impostano il bit JTD.
-r, --read-fusibili
Legge i byte dei fusibili.
-V, --versione
Stampa le informazioni sulla versione.
-v, --verificare
Verifica il programma nel dispositivo rispetto al file specificato con l'opzione --file. NOTA:
funzione deprecata, deve essere abilitata utilizzando --enable-target-programming
opzione di configurazione.
-w, --debugwire
Connettiti a JTAG ICE mkII, JTAGICE3 o AVR Dragon, parlando del protocollo debugWire a
il bersaglio. Questa opzione implica il -2 opzione. Vedere la sezione DEBUGWIRE di seguito.
-W, --write-fusibili
Scrivi i byte dei fusibili. ee è il byte del fusibile esteso, hh è il byte del fusibile alto e ll is
il byte del fusibile basso. I dati del byte del fusibile devono essere forniti in formato esadecimale a due cifre
con imbottitura zero se necessario. Al momento devono essere forniti tutti e tre i byte.
NOTA: Corrente, se il dispositivo di destinazione non ha un byte fusibile esteso (es
atmega16), dovresti impostare ee==ll quando scrivi i byte del fuse.
-x, --xmega
Il dispositivo di destinazione è una parte ATxmega, che utilizza il trasporto JTAG. Poiché l'ATxmega utilizza
una comunicazione JTAG diversa rispetto ad altri AVR, il normale rilevamento automatico del dispositivo
basato sull'ID JTAG non funziona. Se il dispositivo è stato selezionato esplicitamente
tramite l'opzione -P, non è necessario specificare anche l'opzione -x.
-X, --pdi
Il dispositivo di destinazione è una parte ATxmega, che utilizza il trasporto PDI.
NOME HOST il valore predefinito è 0.0.0.0 (ascolta su qualsiasi interfaccia) se non viene fornito.
:PORT è necessario per mettere l'avarizia in modalità server gdb.
ESEMPIO USO
avarizia --erase --program --file test.bin --jtag /dev/ttyS0 :4242
Programma il file prova.bin nel JTAG ICE (mkI) connesso a /dev/ttyS0 dopo la cancellazione
il dispositivo, quindi ascoltare in modalità GDB sulla porta locale 4242. Questa funzionalità è
deprecato e non più configurato per impostazione predefinita. Usa invece il comando "load" di GDB.
avarizia --jtag usb:1234 --mkII :4242
Connettiti al JTAG ICE mkII collegato all'USB con cui termina il numero di serie 1234, e ascolta
in modalità GDB sulla porta locale 4242.
DEBUG CON AVARIZIA
L'ambiente di debug JTAG ICE presenta alcune restrizioni e modifiche:
· Nessun breakpoint "soft" e solo tre breakpoint hardware. Il comando break imposta
punti di interruzione hardware. Il modo più semplice per affrontare questa restrizione è abilitare e
disabilitare i breakpoint secondo necessità.
· Due watchpoint hardware da 1 byte (ma ogni watchpoint hardware toglie un hardware
punto di rottura). Se imposti un punto di controllo su una variabile che occupa più di un byte,
l'esecuzione sarà abissalmente lenta. Invece è meglio fare quanto segue:
guarda *(char *)&myvariable
che controlla il byte meno significativo di miavariabile.
· I processori Atmel AVR hanno un'architettura Harvard (codice separato e bus dati).
Per distinguere l'indirizzo dati 0 dall'indirizzo codice 0, avr-gdb aggiunge 0x800000 a tutti i dati
indirizzi. Tienilo a mente quando esamini i puntatori stampati o quando passi assoluti
indirizzi ai comandi gdb.
DEBUGWIRE
Le debugWire protocol è un protocollo proprietario introdotto da Atmel per consentire il debug
piccoli controller AVR che non offrono abbastanza pin (e abbastanza risorse di chip) per
implementare JTAG completo. La comunicazione avviene nel corso del / RIPRISTINA pin che deve essere
trasformato in un pin di connessione debugWire programmando il DWEN fusibile (abilitazione debugWire),
utilizzando una normale connessione a un programmatore (programmazione interna al sistema, programmazione ad alta tensione).
Si noti che abilitando questo fusibile, la funzionalità di ripristino standard di quel pin sarà
perso, quindi qualsiasi programmazione nel sistema cesserà di funzionare in quanto richiede un funzionale / RIPRISTINA
spillo. Così dovrebbe essere fatto assolutamente sicuro ci is a modo precedente, come un dispositivo (come il
STK500, per esempio) in grado di gestire la programmazione ad alta tensione dell'AVR. Attualmente,
avarizia non offre alcuna opzione per spegnere il fusibile DWEN. Però, avrdude offre la possibilità di
disattivarlo tramite la programmazione ad alta tensione o utilizzando il JTAG ICE mkII per
prima trasforma il target in una modalità compatibile con ISP, quindi usando i normali comandi ISP per
modificare le impostazioni del fusibile.
Si noti che l'ambiente debugWire è ulteriormente limitato, rispetto a JTAG. Non è così
offrono punti di interruzione hardware, quindi tutti i punti di interruzione devono essere implementati come software
breakpoint riscrivendo le pagine flash usando ROTTURA Istruzioni. Alcuni spazi di memoria (fusibile
e bit di blocco) non sono accessibili tramite il protocollo debugWire.
Usa l'avarizia online usando i servizi onworks.net