Autore: marco.beardo@italsoft-mi.it

  • Segger emRun

    Panoramica

    La maggior parte delle toolchain che utilizzano GCC o LLVM si appoggia a newlib, newlib-nano o glibc.

    Sfortunatamente, queste librerie presentano svantaggi significativi rispetto alle librerie di runtime professionali per sistemi embedded.

    È qui che entra in gioco emRun. Può essere utilizzato con GCC, LLVM e altre toolchain per fornire una libreria di runtime progettata e ingegnerizzata specificamente per il mondo embedded. Scritta da zero, emRun consente un elevato grado di ottimizzazione con requisiti minimi.

    emRun è una libreria di runtime C completa che trasforma qualsiasi toolchain basata su GCC/LLVM in una scelta di sviluppo professionale. Viene utilizzata nell’IDE Embedded Studio di SEGGER e ha dimostrato il suo valore per anni.

    • Funzioni altamente ottimizzate: Evitano l’inclusione di funzioni di supporto non necessarie (es. printf).
    • I/O personalizzabile: Le funzioni di input e output formattate sono configurabili (da I/O di base a completo), riducendo l’impronta del codice finale.
    • Supporto localizzazione: Il supporto per UTF-8 e codepage viene collegato (link) solo se effettivamente utilizzato.

    In molti casi, il risparmio di memoria ROM garantito da emRun consente l’uso di microcontrollori più piccoli ed economici, portando a una riduzione dei costi significativa nella produzione di massa.

    Caratteristiche principali

    • Alte prestazioni: Routine critiche scritte in linguaggio assembly.
    • Riduzione drastica del codice: Configurabile per massima velocità o dimensioni ridotte.
    • emFloat inclusa: Include la libreria ottimizzata di SEGGER per i calcoli in virgola mobile.
    • Compatibilità: Funzioni compatibili EABI e progettate per varie toolchain.
    • Efficienza RAM: Utilizzo minimo di RAM e nessun requisito di heap.
    • Licenza chiara: Nessuna licenza “virale”, nessuna clausola di attribuzione obbligatoria.

    Licenze e Disponibilità

    emRun può essere concesso in licenza come codice sorgente a singole aziende o incluso come libreria dai fornitori di toolchain. Il codice sorgente permette di eseguire il debug passo-passo (step-through) all’interno delle funzioni della libreria.

    Architetture supportate:

    • Arm (Cortex-M e Cortex-A 32-bit)
    • RISC-V (RV32M, RV32IMAC, RV64)
    • Varianti generiche in codice “C” per qualsiasi altro sistema.

    Opzione “Buyout” per produttori di silicio

    SEGGER offre ai produttori (Silicon Vendors) l’opzione di licenziare emRun per ridistribuirlo ai propri clienti secondo i propri termini. Aziende come SiFive, Microchip, Nuclei e Haawking hanno già adottato questa soluzione.


    Ottimizzazione delle prestazioni: Velocità e Dimensioni

    La scelta della libreria di runtime può avere un impatto enorme sulla velocità dell’applicazione. Anche cercando di evitare funzioni come sprintf() o memcpy(), il compilatore genererà chiamate a funzioni di libreria per operazioni “invisibili” come divisioni, moltiplicazioni a 64-bit o calcoli in virgola mobile.

    emRun utilizza implementazioni di basso livello avanzate che possono essere calibrate per privilegiare la velocità o lo spazio occupato, sfruttando al massimo il potenziale della piattaforma target.


    Requisiti di memoria (Benchmark)

    emRun offre un risparmio significativo di memoria Flash perché riduce al minimo le dipendenze interne (ad esempio, l’I/O su file non viene collegato automaticamente con printf()).

    Esempio di Benchmark (Progetto “Hello World” con printf):

    Ambiente di TestUtilizzo ROMUtilizzo RAM
    MCUXpresso, Newlib31.888 byte2.864 byte
    MCUXpresso, Newlib-nano9.552 byte416 byte
    MCUXpresso, SEGGER emRun4.392 byte184 byte
    Embedded Studio, emRun + SEGGER Linker1.868 byte0 byte

    Verifica della libreria

    Per garantire l’affidabilità, emRun viene sottoposta a una suite di test rigorosa:

    • Oltre 450 test diversi con milioni di casi studio.
    • Verifica completa di tutte le funzioni della libreria e della virgola mobile (IEEE-754).
    • La Runtime Library Verification Test Suite è disponibile separatamente per chi desidera verificare le proprie librerie.

    emFloat: Virgola mobile ottimizzata

    Un componente chiave di emRun è emFloat, una libreria per calcoli in virgola mobile conforme a IEEE 754. Progettata per essere velocissima e compatta, offre prestazioni simili a una FPU (Floating Point Unit) hardware anche in puro software. Se una FPU è presente, emFloat ne potenzia le prestazioni per le funzioni matematiche complesse.

  • Segger emBoot Secure

    Panoramica

    emBoot-Secure è la soluzione di SEGGER conforme al Cyber Resilience Act (CRA) per aggiornamenti firmware sicuri e verificabili su dispositivi embedded. Questo approccio end-to-end protegge i dispositivi da modifiche non autorizzate del firmware, furto di proprietà intellettuale e clonazione. Garantisce che venga installato solo firmware autentico e approvato dal produttore, utilizzando un’architettura crittografica a chiave pubblica che mantiene la chiave privata sempre protetta.

    Nel contesto del Cyber Resilience Act (CRA) dell’UE, la possibilità di effettuare aggiornamenti sicuri è un requisito fondamentale per i moderni sistemi embedded. emBoot-Secure fornisce una base robusta per soddisfare queste richieste normative, proteggendo i dispositivi durante l’intero ciclo di vita, dalla produzione all’operatività a lungo termine sul campo.

    Caratteristiche principali

    • Autenticità del firmware tramite firme digitali: Tutti gli aggiornamenti sono firmati digitalmente con moderni algoritmi crittografici. I dispositivi verificano la firma prima dell’installazione, garantendo l’integrità del firmware e rilevando manipolazioni.
    • Pacchetti di aggiornamento protetti, compressi e cifrati: I pacchetti vengono compressi per ridurre le dimensioni del trasferimento e crittografati per impedirne l’ispezione o il reverse engineering durante la distribuzione.
    • Integrazione fluida nei workflow di produzione: emBoot-Secure si integra nei processi di build esistenti. Il Signature Server funge da componente hardware dedicato per la firma, custodendo la chiave privata senza interrompere i flussi di sviluppo.

    Casi d’uso

    Aggiornamenti firmware sicuri per dispositivi consumer

    emBoot-Secure utilizza algoritmi crittograficamente sicuri anziché semplici checksum. Il bootloader verifica l’integrità del firmware prima dell’esecuzione e non avvia software modificato. Opzionalmente, è possibile installare automaticamente un firmware di ripristino (recovery) se viene rilevata una manipolazione.

    Aggiornamenti firmware sicuri in ambienti industriali

    Ideale per dispositivi con connettività limitata o assente. Gli aggiornamenti possono essere distribuiti tramite metodi che richiedono accesso fisico, come chiavi USB o schede SD, garantendo che solo il firmware autenticato venga installato nel rispetto delle rigorose politiche di sicurezza industriali.


    Come funziona emBoot-Secure

    1. Generazione delle chiavi

    Viene creata una coppia di chiavi pubblica-privata durante la configurazione iniziale.

    • SEGGER Signature Server (consigliato): La chiave privata viene generata e conservata nel server. Non abbandona mai questo ambiente protetto.
    • SEGGER KeyGen: La coppia di chiavi viene generata su un PC locale. La chiave privata può essere successivamente importata nel Signature Server o conservata in una cassaforte fisica (es. in banca).

    2. Firma e creazione del pacchetto (Firmware Packager)

    Il Firmware Packager prepara l’aggiornamento in un unico passaggio controllato: calcola l’hash crittografico del firmware e lo invia al Signature Server, che genera la firma digitale. Il Packager crea quindi il file finale, opzionalmente comprimendolo e cifrandolo.

    3. Trasferimento del firmware

    Il pacchetto viene consegnato al dispositivo tramite qualsiasi canale (Wi-Fi, Bluetooth, Ethernet, USB, SD card o CAN). L’applicazione lo memorizza nella memoria non volatile fino al riavvio successivo.

    4. Processo di aggiornamento

    Il bootloader emBoot-Secure gestisce l’intero processo al riavvio:

    • Se è presente un aggiornamento: Il bootloader lo decifra, lo decomprime, verifica firma e versione, quindi procede all’installazione.
    • Se non è presente un aggiornamento: Il bootloader verifica la firma del firmware esistente prima di avviarlo o ripristina un’immagine di recovery se necessario.

    Algoritmi supportati

    FunzioneAlgoritmi
    FirmaRSA fino a 8192 bit, ECDSA fino a 521 bit (secp521r1)
    HashSHA 1/256/384/512
    CifraturaAES-128 .. 256
    CompressioneSMASH-2, LZMA
  • IAR Embedded Workbench

    Introduzione a IAR Embedded Workbench: Il Gold Standard per lo Sviluppo Embedded

    Nel panorama dello sviluppo di sistemi embedded, IAR Embedded Workbench è considerato da decenni uno dei toolchain più affidabili e performanti disponibili sul mercato. Sviluppato dall’azienda svedese IAR Systems, si tratta di un ambiente di sviluppo integrato (IDE) completo che permette di scrivere, compilare e sottoporre a debug il codice per un’ampia gamma di microcontrollori.


    Che cos’è IAR Embedded Workbench?

    È una suite di strumenti software “tutto in uno” progettata specificamente per massimizzare l’efficienza dei sistemi con risorse limitate. A differenza di molti IDE basati su piattaforme generiche, IAR è costruito da zero per ottimizzare ogni singolo byte di memoria e ogni ciclo di clock del processore.

    Componenti Principali

    • Editor di Testo Avanzato: Un ambiente di scrittura ottimizzato per il linguaggio C e C++.
    • IAR C/C++ Compiler: Celebre per la sua capacità di generare il codice più compatto e veloce del settore, fondamentale quando si lavora con memorie Flash o RAM ridotte.
    • C-SPY Debugger: Un debugger estremamente potente che offre simulazione istruzioni, controllo del consumo energetico e supporto per sonde hardware avanzate.
    • Analisi Statica e Dinamica: Strumenti come C-STAT e C-RUN permettono di individuare bug e vulnerabilità del codice già durante la fase di scrittura.

    Perché sceglierlo? I Vantaggi Competitivi

    1. Supporto Multi-Architettura: Supporta oltre 15.000 dispositivi diversi, tra cui le architetture ARM, RISC-V, AVR, MSP430 e molte altre. Questo permette agli sviluppatori di cambiare microcontrollore senza dover imparare un nuovo software.
    2. Ottimizzazione del Codice: Gli algoritmi di ottimizzazione di IAR riducono drasticamente le dimensioni del binario finale, permettendo spesso di utilizzare chip più economici con meno memoria.
    3. Sicurezza Funzionale (Functional Safety): IAR offre edizioni certificate (es. IEC 61508, ISO 26262) essenziali per i settori automobilistico, medico e industriale, dove l’affidabilità del software è una questione di sicurezza vitale.

    Conclusione

    IAR Embedded Workbench non è solo un compilatore, ma un ecosistema che accompagna lo sviluppatore dall’idea iniziale al prodotto finito certificato. Sebbene sia una soluzione commerciale (a pagamento), il ritorno sull’investimento si riflette nella velocità di esecuzione del codice e nella riduzione del time-to-market.

  • Segger emCrypt

    Panoramica

    Progettato pensando sia all’efficienza che alla sicurezza, emCrypt funge da toolkit di crittografia affidabile, offrendo tutti i componenti chiave necessari per i protocolli sicuri odierni. In un mondo pieno di dispositivi connessi, mantenere i dati al sicuro è fondamentale. Con emCrypt, gli utenti possono confidare nella protezione dei propri dispositivi embedded contro le potenziali minacce.

    Caratteristiche principali

    emCrypt include varie funzionalità progettate per soddisfare le moderne esigenze di sicurezza, fornendo soluzioni crittografiche ad alte prestazioni con un focus su un codice pulito e sicuro.Standard crittografici moderni: emCrypt aderisce ai più recenti standard crittografici, garantendo meccanismi di sicurezza robusti e aggiornati per proteggere i dati sensibili.

    Codice sicuro, veloce e pulito: La libreria è focalizzata su prestazioni ed efficienza. Le soluzioni di crittografia sono affidabili e scritte con un codice facile da mantenere.API intuitiva: emCrypt include un supporto completo per operazioni crittografiche avanzate come la derivazione, il wrapping e l’incapsulamento delle chiavi.

    Casi d’uso

    emCrypt offre soluzioni versatili per la protezione dei dati in vari scenari:

    Sicurezza dei dati in trasmissione: emCrypt garantisce la protezione dei dati durante il trasferimento. Soluzioni come emSSL ed emSSH utilizzano i potenti algoritmi di emCrypt per proteggere le comunicazioni via Internet, prevenendo accessi non autorizzati.

    Sicurezza dei dati a riposo (at rest): Protegge le informazioni memorizzate sui dispositivi. Grazie alla tecnologia di crittografia XTS-AES, i dati rimangono protetti anche in caso di compromissione fisica del dispositivo.

    Integrità dei dati: Utilizza firme digitali (RSA, ECDSA, EdDSA) per verificare che i dati provengano da una fonte fidata e non siano stati manomessi.

    Come funziona emCrypt

    emCrypt offre una vasta gamma di capacità crittografiche che costituiscono la base di molti protocolli di sicurezza. Può essere configurato per il minimo ingombro di memoria nei dispositivi limitati, ma può anche scalare per prestazioni più elevate su sistemi con più risorse. È la base su cui sono costruiti emSSL, emSSH ed emSecure.

    Caratteristiche avanzate:

    Manuale completo di 2.000 pagine che copre tutte le funzioni API.Implementazione modulare: vengono collegati (link) solo i componenti necessari.

    Crittografia a chiave pubblica: RSA, DSA, ECDSA e EdDSA.Cifrari sintonizzabili, algoritmi hash e codici di autenticazione dei messaggi (MAC).

    Scritto in ANSI C: indipendente dal compilatore e dal target (PC o sistemi embedded).

    Prodotti collegati in uso presso SEGGER

    emSSL: Consente la creazione di connessioni sicure tra client e server.

    emSSH: Progettato per garantire l’accesso remoto sicuro (login) in un sistema embedded.

    emSecure-RSA: La versione predefinita di emSecure basata su crittografia asimmetrica RSA.

    emSecure-ECDSA: Offre firme digitali basate sulle moderne curve ellittiche.

    Informazioni sull’acquisto e Pacchetti

    emCrypt viene fornito come codice sorgente, garantendo trasparenza e possibilità di ispezione. È esente da licenze open source che richiedono l’attribuzione, permettendo l’integrazione in prodotti commerciali senza l’obbligo di rilasciare il codice combinato.

    Pacchetto, contenuti Principali

    emCrypt-BASE

    AES (128/192/256), DES, 3DES, MD5, RIPEMD-160, Famiglia SHA-1 e SHA-2.em

    Crypt-PRO

    Tutti i cifrari (inclusi XTS-AES, Blowfish, Twofish), tutti gli algoritmi Hash (SHA-3, SM3), MAC, protocolli di accordo chiavi (ECDH, X25519), firme digitali e test automatici.

    Licenze

    Tutte le licenze prevedono un pagamento unico, sono royalty-free e non basate su abbonamento. Includono 6 mesi di supporto e aggiornamenti.

    SEGGER’s Friendly License: emCrypt è disponibile gratuitamente per scopi non commerciali, di valutazione e didattici, senza limitazioni tecniche.

  • Segger emFile

    Panoramica
    emFile è un file system che consente alle applicazioni e ai sistemi embedded di archiviare dati in modo sicuro e affidabile su ogni tipo di dispositivo di memoria. Essendo indipendente rispetto all’hardware, può essere eseguito su qualsiasi target a 16, 32 o 64 bit per il quale sia disponibile un compilatore; inoltre, è supportata la maggior parte dei target a 8 bit.

    Sono disponibili driver pronti all’uso per flash NAND e NOR, schede SD, SDHC, SDXC e MMC, dispositivi di archiviazione e.MMC e chiavette USB. emFile include il supporto per i file system exFAT, FAT12, 16 e 32, oltre a BigFat e al sistema proprietario EFS (Embedded File System) di SEGGER, progettato specificamente per soddisfare i requisiti delle moderne applicazioni embedded.

    Caratteristiche principali
    La libreria emFile è il risultato di quasi trent’anni di sviluppo continuo. Distribuita su centinaia di milioni di dispositivi in tutto il mondo, offre funzionalità avanzate su cui gli sviluppatori possono fare pieno affidamento:

    Protezione Fail-safe: emFile è un sistema robusto che rende quasi impossibile la corruzione del file system. I dati godono della massima protezione in caso di interruzione imprevista dell’alimentazione o guasto del dispositivo.

    Sicurezza dei dati: Supporta la crittografia per i singoli file o per l’intero dispositivo di memoria. È essenziale per proteggere le informazioni su memorie NAND, NOR e schede SD/MMC.

    Flessibilità di archiviazione: Lo strato di astrazione di emFile trasforma operazioni complesse in accessi alla memoria semplici e affidabili. Supporta configurazioni RAID 1 e RAID 5 direttamente sul livello di storage.

    Casi d’uso e Struttura Software
    emFile è organizzato in 5 livelli (API, File-system, Storage, Device e Hardware) ed è progettato pensando alla sicurezza. Tutte le operazioni di accesso sono atomiche, garantendo la coerenza dei dati anche in caso di interruzioni per guasto.

    Componenti avanzati
    Journaling: Un componente aggiuntivo che registra tutte le modifiche prima che vengano confermate nel file system principale, garantendo la coerenza dei dati scritti di recente.

    RAID 1 e 5: Massima integrità dei dati tramite mirroring (RAID 1) o distribuzione con parità (RAID 5) per proteggere il sistema da difetti fisici dei dispositivi di memoria.

    Driver Flash ottimizzati: Include driver specifici per NAND (SLC e universali) e NOR (mappatura a blocchi o a settori) per una gestione efficiente della vita dei supporti flash.

    Funzionalità aggiuntive
    exFAT®: Implementazione specializzata di Microsoft exFAT ottimizzata per sistemi embedded.

    BigFAT: Consente l’archiviazione di file di dimensioni pari o superiori a 4 GB su unità formattate FAT, mantenendo la piena compatibilità con lo standard.

    Image Creator per la produzione

    Strumenti (Storage Image Creator FAT, NAND/NOR Image Creator) per convertire la struttura dei file del PC in un file binario pronto per la scrittura di massa tramite programmatori come la serie SEGGER Flasher, riducendo errori e passaggi ripetitivi in produzione.

    Prestazioni e Risorse
    Benchmark: emFile include codice di benchmark per misurare le prestazioni effettive sui target degli utenti (velocità di lettura/scrittura).

    Utilizzo risorse: Progettato specificamente per dispositivi con risorse limitate; le funzionalità possono essere incluse o escluse dalla compilazione per adattare il sistema ai requisiti di memoria e design.

    Licenze
    Modello Commerciale: Disponibile tramite pagamento unico (una tantum), royalty-free e senza abbonamenti. La licenza include sei mesi di aggiornamenti e supporto prioritario.

    Friendly License (SFL): emFile è disponibile gratuitamente per scopi non commerciali, di valutazione e didattici. In questa modalità, il prodotto è completamente funzionale e privo di limitazioni tecniche.

  • Segger embOS


    Panoramica

    embOS è una famiglia di sistemi operativi in tempo reale (RTOS) progettata come base per lo sviluppo di applicazioni embedded. Giunto al suo quarto decennio di utilizzo e perfezionamento continuo, embOS offre l’affidabilità e le prestazioni che sostengono il firmware di ogni SEGGER Flasher, J-Link e J-Trace. Distribuito in miliardi di dispositivi in un’ampia gamma di settori, embOS è un RTOS versatile disponibile per tutti i core, i compilatori e gli strumenti di sviluppo più diffusi.

    La famiglia embOS è progettata per soddisfare le esigenze specifiche di ogni progetto e include diverse edizioni: embOS-Classic, l’avanguardistico embOS-Ultra, oltre alle estensioni per la sicurezza embOS-Safe ed embOS-MPU.

    Mentre la maggior parte degli RTOS lega la temporizzazione a un timer hardware periodico (system tick), embOS-Ultra offre un approccio innovativo allo scheduling. La temporizzazione può essere specificata in ms, µs o persino cicli di clock. Internamente, embOS-Ultra utilizza i cicli per rendere il timing il più accurato possibile, consentendo timeout brevi nel range dei microsecondi, impossibili con gli RTOS tradizionali. Questa precisione apre la strada a nuovi campi di applicazione per un RTOS realmente deterministico.

    embOS-Classic offre piena compatibilità API con embOS-Ultra, offrendo agli sviluppatori la possibilità di passare alla risoluzione basata sui cicli ogni volta che è richiesta una maggiore precisione.


    Caratteristiche principali

    • Affidabilità: Con oltre trent’anni di storia e miliardi di dispositivi che lo utilizzano, embOS è sinonimo di stabilità. È disponibile un’edizione certificata per la sicurezza funzionale secondo le norme IEC 61508 SIL 3, IEC 62304 Classe C e ISO 26262 ASIL D.
    • Efficienza: È un RTOS estremamente leggero, ottimizzato per ridurre al minimo il consumo di memoria (RAM e ROM) e massimizzare velocità e versatilità.
    • Disponibilità: Supporta virtualmente ogni core e compilatore, con oltre 100 porting e più di 500 pacchetti di supporto scheda (BSP) pronti all’uso.

    Casi d’uso

    • Dispositivi alimentati a batteria: Grazie al supporto per RTOS “tickless”, riduce significativamente il consumo energetico, ideale per dispositivi portatili e microcontrollori minimali.
    • Networking e IoT: Gestisce in modo sicuro task multipli e connettività, garantendo un funzionamento affidabile anche in condizioni avverse.
    • Dispositivi critici per la sicurezza: L’edizione embOS-Safe fornisce la documentazione necessaria per la certificazione in ambito medico, industriale e automotive.
    • Sistemi di controllo precisi: Ideale per robotica e sistemi a circuito chiuso dove il determinismo e l’assenza di jitter sono fondamentali.

    Edizioni di embOS

    • embOS-Ultra: Il RTOS di nuova generazione. Offre la massima precisione e risoluzione temporale sul mercato, riducendo il consumo di CPU ed energia.
    • embOS-Safe: Versione certificata per la sicurezza funzionale. Viene fornita con un kit di certificazione che include tutti i documenti necessari e il manuale di sicurezza.
    • embOS-MPU: Utilizza l’unità di protezione della memoria (MPU) per isolare i task, migliorando drasticamente la stabilità e la sicurezza dei dispositivi IoT critici.
    • embOS-Classic: Il leader collaudato. Con un ingombro di memoria ridottissimo, rappresenta la solida base su cui poggiano tutte le altre versioni.

    Licenze e Supporto

    embOS è disponibile con vari modelli di licenza (codice oggetto o sorgente), pensati per soddisfare requisiti tecnici e commerciali:

    • Pagamento unico: Le licenze si acquistano una sola volta. embOS è royalty-free e non richiede abbonamenti, mantenendo i costi di produzione statici.
    • Supporto esperto: Include sei mesi di aggiornamenti e supporto diretto dal team di sviluppo SEGGER.
    • Friendly License (SFL): I pacchetti in codice oggetto sono disponibili gratuitamente per scopi di valutazione e uso non commerciale.
  • Segger J-Link


    Panoramica

    I probe di debug J-Link sono la scelta più popolare per ottimizzare l’esperienza di debug e programmazione flash. Offrono caricamenti flash da record, velocità di download in RAM fino a 4 MB/s e la possibilità di impostare un numero illimitato di breakpoint nella memoria flash dei microcontrollori (MCU).

    J-Link supporta inoltre un’ampia gamma di CPU e architetture: dal singolo 8051 ai Cortex-M, fino ai core di fascia alta come Cortex-A (a 32 e 64 bit).

    J-Link supporta l’interfacciamento diretto con le memorie flash SPI, senza necessità di una CPU intermedia (comunicando direttamente tramite protocollo SPI). J-Link è inoltre supportato da tutti i principali IDE, inclusi SEGGER Embedded Studio e Visual Studio Code.


    Caratteristiche principali

    • Velocità di download elevate: J-Link Pro offre velocità fino a 4 MB/s, garantendo uno sviluppo fluido e tempi di attesa minimi.
    • Real Time Transfer (RTT): Fornisce un percorso semplificato per il passaggio di informazioni mentre l’applicazione è in esecuzione, permettendo di monitorare i cambiamenti operativi in tempo reale.
    • Ampio supporto CPU e IDE: Compatibile con una vasta gamma di microcontrollori e ambienti di sviluppo integrati, permettendo di utilizzare l’hardware scelto con l’IDE preferito.

    Modelli J-Link

    • J-Link Pro PoE: Il probe di fascia alta specializzato per le “test farm”. Può essere alimentato tramite Ethernet (PoE) e fornisce alimentazione al target tramite l’interfaccia di debug o un connettore USB A.
    • J-Link Pro: Il probe di debug universale, versatile, con interfacce USB ed Ethernet.
    • J-Link Ultra+: La sonda ultra-veloce per JTAG/SWD, compatibile al 100% con J-Link PLUS ma con prestazioni superiori.
    • J-Link PLUS: Disponibile in formato Classic o Compact, basato su CPU RISC a 32 bit per comunicazioni ad alta velocità.
    • J-Link WiFi: Probe con interfaccia WLAN/WiFi per il debug senza fili (fino a 15 MHz).
    • J-Link BASE: La versione base della famiglia di probe leader di mercato.
    • J-Link OB (On-board): Sonda integrata direttamente sulle schede di valutazione per renderle kit completi “pronti all’uso”.
    • J-Link EDU Mini: Versione in formato ridotto progettata e riservata per scopi educativi, studenti e hobbisti.

    Porta COM virtuale integrata

    I modelli Pro, Ultra, WiFi, PLUS, BASE e OB includono la funzionalità di porta COM virtuale (VCOM). Oltre alle normali funzioni di debug, il J-Link appare come una porta COM nel gestore dispositivi del sistema operativo. Questo elimina la necessità di adattatori USB-UART separati per la diagnostica e il logging, poiché il J-Link gestisce entrambi i compiti contemporaneamente.

    Nota: La funzione VCOM non è disponibile per il modello EDU Mini o quando si utilizza l’interfaccia JTAG tradizionale a 4 fili (poiché il pin 5 è necessario per il TDI).


    Software incluso

    Il pacchetto software J-Link include strumenti multi-piattaforma (Windows, Linux, macOS) che estendono le capacità del dispositivo:

    • Ozone: Il debugger avanzato che sfrutta al massimo le prestazioni di J-Link.
    • SystemView: Strumento di registrazione e visualizzazione in tempo reale per analizzare il comportamento runtime reale dell’applicazione.
    • Embedded Studio: Soluzione completa “all-in-one” per la gestione, compilazione e distribuzione di applicazioni embedded.

    Ecosistema e Compatibilità

    J-Link si integra perfettamente con strumenti di terze parti:

    • Supporto GDB: Include il J-Link GDB Server per l’integrazione con toolchain GNU.
    • Supporto LLDB: Compatibile con i flussi di lavoro basati su Clang/LLDB.
    • OpenOCD: Può essere utilizzato con OpenOCD, sebbene l’uso di software di terze parti possa limitare alcune funzioni avanzate come i breakpoint flash illimitati e la massima velocità di download.

    Tabella Comparativa (Sintesi)

    CaratteristicaJ-Link Pro / UltraJ-Link PLUS / BASEJ-Link EDU Mini
    Velocità Download RAM4.0 MB/s1.0 MB/s200 KB/s
    Velocità Interfaccia Target50 MHz15 MHz4 MHz
    AlimentazioneUSB / EthernetUSBUSB
    VCOMSì (fino a 10 MBd)Sì (115200 Bd)No
    Breakpoint Flash illimitati
  • Segger emApps


    emApps è un pacchetto software rivoluzionario che porta nel mondo dei sistemi embedded la flessibilità tipica degli smartphone. Come alternativa al firmware statico, emApps introduce un livello applicativo che consente di aggiungere nuove funzionalità in qualsiasi momento, senza toccare il nucleo del sistema già validato.

    Per ottenere questo risultato, emApps permette di creare app: piccoli programmi che possono essere caricati dinamicamente ed eseguiti in un ambiente protetto noto come sandbox. Ogni app opera nel proprio spazio di memoria isolato dal firmware e dalle altre applicazioni.

    Queste app consentono all’utente di aggiungere nuove capacità, funzioni o miglioramenti ai dispositivi embedded mantenendo il firmware compatto e garantendo stabilità e sicurezza del sistema. Inoltre, permettono ai produttori di eseguire test sui sistemi embedded utilizzando app dedicate.

    Poiché le app vengono caricate dinamicamente, non aumentano le dimensioni del firmware. Di conseguenza, è possibile scrivere ed eseguire un numero illimitato di test, inclusi test di funzionalità e di prestazioni.

    Le capacità delle app sono definite da una tabella API nel firmware, che offre allo sviluppatore il pieno controllo sulle funzionalità esatte messe a disposizione. È persino possibile concedere diritti diversi (tabelle API differenti) a diverse app in esecuzione nel sistema.


    Caratteristiche principali

    • Dimensioni ridotte del firmware: emApps richiede solo un minuscolo esecutore e un loader all’interno del firmware, con un ingombro di circa 2,5 KB nella memoria flash e nessun dato statico richiesto.
    • Dimensioni ridotte delle app: Le app, caricate ed eseguite in RAM, sono molto piccole (a partire da meno di 100 byte). Non esiste un limite superiore alla complessità, rendendo emApps adatto anche a MCU compatte con soli 64 KB di flash.
    • Alte prestazioni: Le app girano su una CPU virtuale progettata da SEGGER. L’alta densità del codice (spesso più compatto del codice ARM Thumb-2 o RISC-V) e la pianificazione efficiente delle istruzioni garantiscono prestazioni elevate.
    • Sandboxing: Ogni app è isolata. Qualsiasi operazione illegale (come l’accesso fuori dallo spazio di memoria assegnato) viene rilevata, restituendo immediatamente il controllo al sistema host.
    • Integrazione semplice: Il codice host è scritto in C. È disponibile anche un esecutore ottimizzato in assembly per core Arm.

    Casi d’uso

    Le app possono essere utilizzate per estendere dinamicamente le capacità di un host o per consentire la personalizzazione da parte di produttori, OEM e clienti finali.

    • Sistemi di produzione e Flasher: Implementazione di routine di programmazione flash o protocolli di comunicazione personalizzati senza modificare il firmware del dispositivo.
    • Sviluppo di app di terze parti: Fornitura di kit di sviluppo a partner esterni per creare app in modo indipendente e sicuro.
    • Ambienti critici per la sicurezza: Funzioni non essenziali (come la logica della GUI) possono essere isolate come app ed escluse dall’ambito della certificazione.
    • Personalizzazione dinamica del prodotto: Espansione delle funzioni sul campo (nuove lingue, algoritmi o standard di connettività).

    Come funziona emApps

    emApps aggiunge un motore di runtime minimo — l’esecutore — nel firmware. Questo componente (~1 KB) agisce come una CPU virtuale che gestisce l’interazione con il sistema. Le app possono essere collegate staticamente o dinamicamente.

    Il firmware assegna memoria all’app solo per la durata dell’esecuzione. Qualsiasi tentativo di accesso esterno viene intercettato dall’esecutore, preservando la stabilità del sistema. A differenza delle soluzioni basate su RTOS o MPU standard, che possono essere complesse da configurare, emApps offre un modello integrato che abilita modularità e aggiornamenti dinamici in un’unica struttura pronta all’uso.


    Funzionalità aggiuntive

    Introspezione

    emApps supporta applicazioni portatili che possono sfruttare API accelerate rilevate tramite introspezione. Questo permette all’applicazione di adattarsi all’hardware su cui gira, rilevando le funzioni disponibili a runtime.

    Modello di esecuzione

    Più app possono girare sotto il controllo di un RTOS, anche in parallelo.

    Prestazioni e densità del codice

    Il set di istruzioni virtuali è estremamente efficiente. L’esecutore emApps ha un rapporto di circa 18 istruzioni host (o cicli di clock) per ogni istruzione virtuale S32 (CPI). Spesso, la densità del codice S32 è superiore a quella del sistema host, migliorando ulteriormente l’efficienza complessiva.


    Valutazione e Licenze

    • Valutazione: È disponibile una versione di prova per PC con app pre-integrate e codice sorgente. È disponibile anche un compilatore S32 online.
    • Licenze: emApps fa parte dell’ecosistema di licenze SEGGER, con opzioni per uso commerciale che includono supporto e aggiornamenti da parte degli esperti SEGGER.

    Desideri che approfondisca un aspetto tecnico specifico, come i dettagli dell’architettura della CPU virtuale S32 o le modalità di integrazione con un RTOS specifico?