Caratteristiche
J-Link è una famiglia di emulatori che supportano le architetture ARM (JTAG/SWD), Renesas RX (JTAG) e Microchip PIC32. J-Link è uno strumento polivalente, utilizzabile per il debug oppure per la produzione. E' alimentato tramite la porta USB e a sua volta 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. Tutti i modelli di J-Link sono integrati con l'ambiente di sviluppo IAR Embedded Workbench
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 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.
Produzione col 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.
Unlimited Flash Breakpoints
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.
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.
J-Trace PRO introduce l'acquisizione in streaming (per un tempo illimitato) dei dati di trace, l'unico limite è lo spazio su disco del PC