J-Link

Pubblicato il Pubblicato in Emulatori

J-Link è il celebre emulatore per le architetture ARM e Renesas RX con porta USB2.0 e supporto per i pricipali ambienti di sviluppo (IAR Embedded Workbench, Keil MDK, Rowley CrossWorks, Atollic TrueStudio, Renesas HEW, Renesas e2studio, ecc.

Caratteristiche principali

Integrato con l’ambiente di sviluppo IAR Embedded Workbench per ARM
Alimentato tramite la porta USB
Può fornire 5V al target attraverso il pin 19. Nel caso in cui si utilizzi l’optoisolatore, questo pin sarà utilizzato per alimentarlo lato emulatore.

Modelli disponibili

Download Speed
into RAM
Download
Into Flash
GDB Server Unlimited Flash
Breakpoints
J-Flash RDI /
RDDI
Ethernet
J-Link PRO 3.0 MByte/sec  
 J-Link ULTRA+ 3.0 MByte/sec (-)
 J-Link PLUS 1.0 MByte/sec (-)
 J-Link BASE 1.0 MByte/sec (-) (-) (-) (-)
Emulatori con supporto per trace:
 J-Trace PRO Cortex-M 3.0 MByte/sec
J-Trace Cortex-M 3.0 MByte/sec (-)

(-) Non incluso

Breakpoint Illimitati in Flash

Chi lavora con un microcontrollore ARM7 o Cortex-M3 sa che la RAM generalmente limitata impone di eseguire il codice da Flash. L’esecuzione di codice in flash implica l’uso dei breakpoint di tipo hardware, presenti in numero limitato. Le CPU ARM7, ad esempio, supportano solamente 2 breakpoints hardware corrispondenti ad un massimo di 2 punti di interruzione sul codice. Con i Cortex-M la situazione è leggermente migliore, con in genere da 4 a 6 breakpoint hardware. In molti casi il debugger JTAG necessita di uno dei due breakpoint hardware per funzionare, limitando a uno solo i punti di interruzione del codice selezionabili. Le CPU ARM supportano anche i software breakpoint (“trappole”), ma questi sono utilizzabili solamente con il codice che gira in RAM. Segger ha recentemente risolto il problema con l’introduzione del tool Flash Breakpoint. Questa soluzione tecnica esclusiva offerta dal probe J-Link si basa sulla riprogrammazione di singoli settori di flash sostituendo l’istruzione che si vuole marcare con un breakpoint con un software breakpoint. La riprogrammazione della flash avviene in background e richiede un tempo impercettibile. Il meccanismo è trasparente rispetto al debugger: quest’ultimo non riporterà più un errore al tentativo di introdurre più breakpoints rispetto a quelli messi a disposizione dal core. Il sistema è ottimizzato per garantire la massima efficienza: l’instruction set simulator integrato limita il numero delle effettive riprogrammazioni dei settori di flash per stressare l’hardware il meno possibile.

GDB Server

GDB Server è un server remoto che consente l’uso di J-Link con GDB o qualsiasi toolchain che utilizzi GDB come interfaccia di debug. Gratuito! E’ sufficiente possedere un J-Link per utilizzarlo GDB Client (lato PC) e GDB Server (lato target)comunicano tra di loro attraverso una connessione TCP/IP usando il protocollo standard GDB. GDB supporta un set standard di comandi come aprire un file elf/bin, leggere e scrivere in memoria, ecc… GDB supporta anche comandi di monitor del target interpretati dal GDB Server e tradotti in comandi per il J-Link.

Optoisolatori per il J-Link

Per applicazioni che lo richiedano, sono disponibili tre tipi di optoisolatori:

  • Optoisolatore JTAG
  • Optoisolatore SWD
  • Optoisolatore per la porta USB del J-Link

L’optoisolatore JTAG e quello SWD non sono intercambiabili. Vanno scelti sulla base della porta di debug presente sulla scheda.

 J-Flash (utility software per il J-Link)

J-Flash è una utility software a pagamento per Windows (abbinabile a qualsiasi J-Link (non di tipo “Lite”) e abilitata in fabbrica per i J-Link modello Plus, Ultra-Plus e PRO e Flasher-ARM) che consente la programmazione della flash interne (NOR), esterne parallele (NOR) e esterne SPI dei microcontrollori con core ARM, RX. E’ un classico tool per la produzione che automatizza il processo di programmazione delle flash. E’ implementato sotto forma di interfaccia grafica, ma può operare anche in riga di comando ed è basato su una configurazione di progetto.

J-Trace

J-Trace è uno speciale emulatore della Segger che oltre al supporto JTAG/SWD,  acquisisce i segnali di trace generati dalla cella ETM (opzionale nei core Cortex-M). Con questo strumento è possibile catturare tutto il flusso delle istruzioni eseguite dal core del microcontrollore in tempo reale.

Esistono due modelli di J-Trace:  J-Trace e J-Trace-PRO