Autore: marco.beardo@italsoft-mi.it

  • Segger emWin

    Panoramica

    emWin è la libreria grafica per sistemi embedded di SEGGER. Fornisce strumenti e API per la creazione di interfacce grafiche (GUI) su piattaforme microcontrollore, consentendo anche a sistemi con risorse limitate di eseguire interfacce utente interattive di alta qualità. Supporta display sia semplici che complessi ad alta risoluzione, è progettata specificamente per il mondo embedded e può essere adattata a qualsiasi dimensione dello schermo, controller o CPU.


    Caratteristiche principali

    emWin semplifica il processo di creazione di interfacce visivamente accattivanti, riducendo tempi e sforzi di sviluppo. Offre un’API potente e intuitiva per attività come il disegno di forme, il rendering di immagini, la gestione degli input touch e dei buffer del display.

    • Grande portabilità e versatilità: Funziona su qualsiasi piattaforma, dai microcontrollori di fascia bassa ai processori ad alte prestazioni. Supporta qualsiasi controller di visualizzazione e consente funzionalità UI anche su dispositivi “headless” tramite VNC.
    • Operazioni di disegno di alta qualità: Progettata per il rendering preciso di linee, forme, gradienti e bitmap. Include funzioni di anti-aliasing e alpha blending per garantire bordi smussati e trasparenze fluide, anche per i font.
    • Basso consumo di memoria: Ottimizzata per operare entro i vincoli dei sistemi embedded, emWin minimizza il consumo di risorse mantenendo prestazioni fluide e reattive.

    Casi d’uso

    emWin è utilizzata in settori quali sistemi di controllo industriale, IoT, networking, elettronica di consumo, dispositivi medicali, automotive e avionica.

    • Elettrodomestici smart: Interfacce eleganti e intuitive con supporto per animazioni e multilingua.
    • Dashboard per consumer electronics: Visualizzazione dati in tempo reale, ad esempio per stazioni di ricarica di veicoli elettrici.
    • Pannelli operatore industriali: Monitoraggio di processi complessi in ambienti esigenti, garantendo affidabilità e reattività.

    “Uso emWin da pochi giorni e sono entusiasta di quanto sia veloce la libreria, di quanto funzioni bene e di quanto sia facile da integrare. Fantastico.” — Thomas Karer, ARRI Cine & Video Geräte, Vienna


    Come funziona emWin

    emWin è compatibile con ambienti single-task e multi-task (RTOS), supporta i principali IDE e toolchain, ed è ottimizzata per l’RTOS embOS di SEGGER. Grazie a strumenti WYSIWYG come AppWizard, gli sviluppatori possono progettare GUI senza scrivere codice. Gestisce automaticamente i sistemi touch capacitivi, inclusa la calibrazione del controller.

    AppWizard: il tool di design premiato

    AppWizard permette di creare GUI di alta qualità in modo semplicissimo, senza necessità di programmazione. Consente una creatività illimitata e include numerosi esempi pratici per iniziare subito.


    Set di strumenti (Toolkit)

    • emWin4Web: Esegue le GUI embedded direttamente nel browser web.
    • emWinView: Permette il debug dell’output del display e l’avanzamento passo-passo nelle simulazioni.
    • emWinSPY: Analisi a runtime dell’uso della RAM e dei contenuti del window manager direttamente dal target.
    • Bitmap Converter: Trasforma formati comuni (BMP, PNG, JPEG, GIF) in file C o C-stream ottimizzati.
    • Font Converter: Converte i font di sistema in formati compatibili con emWin.
    • MakeMovie: Converte quasi ogni file video in un formato riproducibile dalla libreria.

    Licenze

    emWin è disponibile in pacchetti di codice sorgente con diversi modelli di licenza. Le componenti hardware realizzate in proprio sono royalty-free, senza costi aggiuntivi o limiti di volume di produzione. Ogni licenza include 6 mesi di supporto e aggiornamenti.

    SEGGER Friendly License emWin è disponibile gratuitamente per scopi non commerciali, valutazione o uso didattico. Il prodotto è completamente funzionante e senza limitazioni tecniche.

  • Segger SystemView

    Panoramica

    SystemView è uno strumento di testing embedded progettato per analizzare e profilare il comportamento dei sistemi real-time. Offre approfondimenti dettagliati sul comportamento a runtime, superando le capacità dei debugger tradizionali. Ideale per sistemi complessi con thread multipli e interrupt, SystemView aiuta gli sviluppatori di software embedded a garantire che i propri sistemi funzionino come previsto, identificando inefficienze e scoprendo interazioni involontarie o conflitti di risorse.

    Registrando i dati di monitoraggio dal sistema embedded tramite l’interfaccia di debug, SystemView visualizza in dettaglio task, interrupt ed esecuzione dei timer software, documentandone frequenza, ordine e tempi di esecuzione. La registrazione può essere salvata in un file per analisi successive o per la documentazione del sistema.


    Caratteristiche principali

    SystemView offre funzionalità potenti con un’intrusività minima. È compatibile con qualsiasi CPU, RTOS o sistema bare-metal, garantendo elevata flessibilità per diversi progetti.

    • Supporto Multicore: Consente la registrazione e l’analisi sincronizzata per sistemi con più core CPU su un singolo microcontrollore, fornendo una visione unificata delle interazioni complesse.
    • Registrazione continua: Cattura task, interrupt, timer, risorse, chiamate API ed eventi utente in tempo reale con un impatto minimo sulle prestazioni.
    • Campionamento dati: Permette di registrare ed elaborare un numero illimitato di sorgenti di campionamento per la generazione di grafici, visualizzandoli in tempo reale durante l’esecuzione del sistema.

    Casi d’uso

    • Analisi di sistemi complessi: Rivela relazioni intricate e potenziali conflitti tra thread ed eventi che non sono visibili con i metodi di debug convenzionali.
    • Verifica del comportamento: Fornisce una timeline dettagliata degli eventi (task, API, interrupt) per assicurarsi che ogni parte del sistema funzioni secondo il design originale.
    • Ottimizzazione delle risorse: Evidenzia carichi eccessivi della CPU o una distribuzione inefficiente dei task, fornendo dati azionabili per migliorare la reattività del sistema.

    Come funziona SystemView

    SystemView integra un piccolo modulo software (contenente SystemView e RTT) nel sistema target. Questo modulo raccoglie i dati degli eventi, li formatta e li passa al modulo RTT, che li memorizza in un buffer locale.

    • Efficienza: Richiede meno di 2 KB di ROM e circa 600 byte di RAM.
    • Overhead minimo: L’impatto sul sistema è inferiore all’1% (su un sistema a 200 MHz con 10.000 eventi al secondo).
    • Precisione: I timestamp sono configurabili fino al singolo ciclo di CPU (5 ns su una CPU a 200 MHz).
    • Integrazione: L’aggiunta al progetto richiede pochi minuti e spesso solo un paio di righe di codice per interrupt.

    Funzionalità aggiuntive

    • Monitoraggio Heap: Traccia le allocazioni di memoria in tempo reale per identificare perdite (leak) e inefficienze.
    • Finestra DataPlot: Visualizza variabili e dati dei sensori in tempo reale accanto agli eventi registrati, come un oscilloscopio sincronizzato.
    • Analisi carico CPU: Identifica i colli di bottiglia per bilanciare i carichi di lavoro.
    • Timeline degli eventi: Traccia cronologicamente i cambi di contesto (task switch) e l’attività degli interrupt.
    • Output di Log: Messaggi simili a printf() visualizzati nella Terminal Window, con formattazione differita per risparmiare risorse sul target.

    Supporto RTOS

    SystemView è pronto all’uso con i principali sistemi operativi real-time:

    • embOS: Supportato nativamente dalla versione 4.12a.
    • FreeRTOS: Supportato nativamente dalla versione V11 (compatibile con V8, V9, V10).
    • ThreadX / Zephyr / NuttX: Integrato nativamente o tramite driver RTT.
    • uC/OS-II / III e Micrium OS: Integrazione nativa disponibile.

    Requisiti di sistema e Licenze

    • Sistemi Operativi: Windows (x64/Arm), macOS (Apple Silicon/Intel), Linux.
    • Hardware: CPU 2GHz, 4GB RAM, 2GB spazio su disco.
    • Licenze: Disponibile sotto SEGGER Friendly License (uso non commerciale gratuito) o licenza commerciale. Le licenze sono perpetue: nessun abbonamento annuale richiesto.
  • Segger emUSB-C PD

    Panoramica

    emUSB-C PD trasforma il cavo in una connessione intelligente, consentendo il rilevamento del tipo di dispositivo collegato, delle capacità di alimentazione, del software USB Host/Device e molto altro. Con la libreria emUSB-C PD di SEGGER, le applicazioni embedded possono gestire facilmente una porta USB-C su qualsiasi dispositivo dotato di un controller USB PD.

    emUSB-C PD è in grado di rilevare se un dispositivo collegato è una sorgente (source) o un utilizzatore (sink) di energia, e persino di identificare i ruoli dei dati USB (host/device). Per i dispositivi che utilizzano l’USB-C puramente come fonte di alimentazione o per la ricarica della batteria, supporta funzioni come il “dead battery signaling”, garantendo una gestione affidabile dell’energia anche in condizioni critiche.

    La libreria è altamente efficiente, scritta in codice sorgente ISO/ANSI C e dotata di un’API estremamente semplice per un’integrazione immediata. Gli sviluppatori possono configurarla per un footprint di memoria minimo, rendendola ideale per sistemi con risorse limitate. Inoltre, emUSB-C PD supporta l’uso di caricabatterie con tensione di alimentazione variabile, aumentando la flessibilità.

    emUSB-C PD può essere utilizzata in combinazione con emUSB-Host e/o emUSB-Device, oppure come soluzione stand-alone per dispositivi che sfruttano l’USB-C solo per l’alimentazione o la ricarica.


    Caratteristiche principali

    • Role Swap (Scambio di ruolo): Di default, l’host USB è sempre la sorgente di energia e il device è l’utilizzatore. Grazie al role swap, un host può diventare utilizzatore (sink) e un dispositivo USB collegato può diventare la sorgente (source).
    • Rilevamento connessione su connettori USB Type-C: La libreria rileva e identifica i dispositivi collegati alle porte USB-C, garantendo compatibilità e funzionalità ottimali.
    • Negoziazione dinamica dell’alimentazione fino a 20V 3A: emUSB-C PD consente alle applicazioni di negoziare dinamicamente l’erogazione di potenza, assicurando che i dispositivi ricevano la tensione e la corrente ideali per le proprie esigenze.

    Casi d’uso

    L’USB-C dispone di linee aggiuntive e può trasmettere molta più potenza rispetto alle precedenti connessioni USB. Questo aiuta gli sviluppatori a soddisfare i requisiti del mandato UE (Direttiva 2014/53/UE), che impone l’uso del cavo USB-C per tutte le apparecchiature elettroniche dotate di ricarica cablata.

    • Evitare perdite improvvise di alimentazione: Un dispositivo alimentato a batteria può chiedere al dispositivo collegato di fornire energia quando le proprie batterie iniziano a scaricarsi, evitando interruzioni improvvise della connessione.
    • Ricarica più rapida: Con l’USB tradizionale, la potenza è limitata a 5V e 500mA (1.5A nel migliore dei casi). Con l’USB-C PD, il protocollo interroga le capacità del cavo e richiede tensioni e correnti più elevate per ricariche rapide e affidabili.

    Come funziona emUSB-C PD

    La libreria si compone di due livelli: lo stack di protocollo indipendente dal dispositivo e un driver per gestire l’hardware specifico del target. Entrambi i livelli sono divisi in due moduli:

    1. Modulo Base: Fornisce l’API e gestisce il rilevamento statico dei pin CC.
    2. Modulo PD: Responsabile della comunicazione dei pacchetti Power Delivery.

    Funzioni dei Pin

    Il connettore USB-C ha 24 pin. emUSB-C PD viene utilizzato principalmente per controllare i pin aggiuntivi CC1 e CC2 (Channel Configuration), usati per determinare l’orientamento del cavo, la distribuzione dei ruoli e il controllo della porta.


    Utilizzo tipico delle risorse

    FunzioneCodice (Flash)RAM
    USB-C OTG (On-The-Go)1400 bytes220 bytes
    USB-C PD (Power Delivery)5100 bytes450 bytes
    USB-C PD (Solo Sink)3800 bytes450 bytes
    USB-C PD (Solo Source)3300 bytes450 bytes

    Licenze

    emUSB-C PD è disponibile sotto vari modelli di licenza per software embedded e viene fornito come pacchetto di codice sorgente. Tutte le licenze prevedono un pagamento una tantum, sono royalty-free e non basate su abbonamento.

  • Segger Ozone

    Ozone è un ambiente di debugg grafico stand-alone completo per applicazioni embedded. Con Ozone è possibile eseguire il debug di qualsiasi applicazione basata su Arm o RISC-V a livello di sorgente (C, C++ e Rust) e assembly.

    Ozone può caricare applicazioni create con quasi tutti i tipi di toolchain o ambienti di sviluppo integrati (IDE), oppure eseguire il debug di un’applicazione già residente sul target senza necessità del codice sorgente. Include tutti i principali controlli di debug e finestre informative. Sebbene Ozone offra le migliori prestazioni in combinazione con le sonde di debug e tracciamento J-Link e J-Trace, è compatibile anche con sonde di terze parti e simulatori.

    Più che un semplice debugger, Ozone fornisce strumenti completi per l’analisi delle prestazioni, inclusi il tracciamento delle istruzioni (instruction tracing), il code profiling e la code coverage. Ciò consente agli utenti di misurare i tempi di esecuzione, individuare colli di bottiglia, rintracciare inefficienze e bug, e analizzare il comportamento del sistema in caso di crash o altri problemi tecnici.

    Caratteristiche principali

    • Debug avanzato: Ozone è un debugger grafico intuitivo e completo. Fornisce tutti i comuni strumenti di debug, come finestre per il sorgente, la memoria e i registri, controllo dell’esecuzione e altro ancora. Aggiunge inoltre numerosi strumenti per la validazione e l’analisi delle prestazioni.
    • Analisi delle prestazioni: Ozone trasforma i dati grezzi di traccia in informazioni utili. Timeline visive, code profiling e report di copertura aiutano a identificare i colli di bottiglia, ottimizzare i percorsi di esecuzione e convalidare la completezza dei test, garantendo sistemi altamente affidabili.
    • Massima flessibilità: Ozone supporta qualsiasi toolchain, tra cui Embedded Studio, IDE basati su GCC, Clang/LLVM, IAR, Arm Compiler e altri. Ciò garantisce la massima flessibilità, poiché le applicazioni possono essere caricate dal proprio ambiente di build preferito o debuggate direttamente sul dispositivo senza necessità di ricompilare.
    • Test e automazione: L’interfaccia di automazione garantisce il pieno accesso alla finestra della console, consentendo all’utente di inviare comandi e monitorare l’output. Tutto ciò che può essere fatto manualmente può essere replicato in un ambiente automatizzato.

    Come funziona Ozone

    L’utilizzo di Ozone inizia con la creazione del firmware tramite la toolchain scelta dall’utente. Una volta avviato Ozone, l’utente seleziona l’immagine del firmware e il microcontrollore target per iniziare immediatamente il debug. Ozone stabilisce una connessione con la sonda di debug e fornisce il controllo totale sul sistema target. Se vengono apportate modifiche al firmware, Ozone rileva l’aggiornamento e suggerisce di utilizzare l’immagine modificata.


    Funzionalità integrate

    • Debug efficiente: Include evidenziazione della sintassi, finestre per simboli e dati, e visualizzazione di registri e memoria in un’interfaccia utente completamente integrata.
    • Controllo e comunicazione target: Permette di eseguire il codice passo-passo, utilizzare breakpoint e registrare l’output del firmware (logging).
    • Supporto RTOS e middleware: Include plug-in per RTOS e un’interfaccia SmartView per il middleware, offrendo una visione chiara del comportamento del sistema in contesti complessi.
    • Analisi del sistema e dei consumi: Raccoglie dati preziosi come tracce di istruzioni e profilazione della potenza (power profiling) per ottimizzare il sistema.

    Automazione dei test

    Per le attività di automazione, gli utenti di Ozone possono aggiungere script ai progetti o eseguirli direttamente nella console. Questi script possono automatizzare quasi tutte le azioni disponibili nell’interfaccia grafica, inclusa la configurazione della GUI e il workflow di debug. Sono disponibili anche gestori di eventi (event handlers) per creare trigger specifici legati a download, reset, arresti o breakpoint.


    Supporto sonde di debug e traccia

    FunzionalitàJ-TraceJ-LinkGDB-Server
    Vista sorgente / Syntax highlighting
    Controllo totale del target
    Supporto RTOS / SmartView
    Real Time Transfer (RTT)
    Tracciamento istruzioni
    Licenza Ozone inclusa[1]
    Profilazione potenza

    [1] Inclusa nei modelli J-Link PLUS, Ultra+ e PRO.


    Requisiti di sistema e Licenze

    • Sistemi Operativi: Windows (Arm/Intel), macOS (Apple/Intel), Linux.
    • Hardware: CPU 1GHz, 1GB RAM, 1GB spazio su disco.
    • Licenze: Ozone è gratuito per uso non commerciale (SEGGER Friendly License). Per l’uso commerciale è richiesta una licenza perpetua (nessun abbonamento annuale). I modelli J-Link PLUS, Ultra+, PRO e J-Trace PRO includono già la licenza commerciale.

  • Segger emSecure


    Panoramica

    emSecure è una suite di firme digitali per sistemi embedded progettata per proteggere prodotti e asset vitali, offrendo una protezione totale contro l’hacking. Basata su algoritmi di crittografia asimmetrica a doppia chiave, la suite garantisce che le firme non possano essere forgiate tramite il reverse engineering del firmware. Inoltre, emSecure può rendere impossibile la creazione di cloni di un dispositivo embedded tramite il semplice mirroring di hardware e firmware. Può fare molto di più, come proteggere gli aggiornamenti firmware distribuiti ai dispositivi e autenticare licenze, numeri di serie e dati sensibili.

    emSecure è un pacchetto completo che include strumenti pronti all’uso per la generazione di chiavi e firme. Il codice sorgente è stato scritto da zero per i sistemi embedded, garantendo massima portabilità, un footprint di memoria ridotto e prestazioni elevate. Non è soggetto a licenze open-source o obblighi di attribuzione: può essere integrato in qualsiasi prodotto commerciale senza l’obbligo di divulgare il codice sorgente combinato. È utilizzabile senza royalty (royalty-free) e l’integrazione in un prodotto esistente richiede meno di un giorno.

    Caratteristiche principali

    • Algoritmi asimmetrici: La doppia chiave (privata e pubblica) garantisce una sicurezza totale.
    • Indipendente dall’hardware: Funziona su qualsiasi CPU senza necessità di hardware extra.
    • Applicabile a prodotti nuovi ed esistenti.
    • Pacchetto completo: Generatore di chiavi e strumenti inclusi.
    • Codice sorgente completo disponibile.
    • Strumento gratuito Sign & Verify: Per la protezione di file personali.

    Gestione delle chiavi

    Le firme digitali — da non confondere con le firme elettroniche — sono un sistema crittografico che utilizza chiavi pubbliche e private. Una chiave privata sicura viene utilizzata per generare la firma digitale, mentre una seconda chiave pubblica viene usata per autenticare i dati. Non è possibile ricavare la chiave privata da quella pubblica, né generare una firma valida senza la chiave privata.

    Processo di verifica

    L’algoritmo emVerify decripta il file della firma e verifica se il file di dati corrispondente coincide. Il processo parte dai dati da verificare e dalla firma digitale creata dal file originale. Viene generato un hash per i dati non verificati; la chiave pubblica e l’algoritmo di decriptazione vengono usati per generare l’hash originale e confrontarlo: se corrispondono, i dati sono autentici.

    Operazione di firma

    L’algoritmo emSign cripta i dati e li trasforma in un file di firma. L’operazione inizia utilizzando un algoritmo di hash sicuro (es. SHA1, SHA256) per generare un hash dai dati originali. Quindi, utilizzando la chiave privata insieme all’hash, viene generata la firma digitale.


    Algoritmi di sicurezza

    emSecure supporta l’algoritmo RSA. Basato sullo schema standard RSA-PSS, la configurazione predefinita utilizza chiavi RSA a 2048 bit e SHA1. Tuttavia, sono supportati set moderni di algoritmi di digest e chiavi RSA da 1024 fino a 8192 bit (raccomandati almeno 2048 bit).

    • emPrintKey: Esporta chiavi e firme in formato sorgente C per includerle direttamente nell’applicazione.
    • emKeyGen: Genera la coppia di chiavi partendo da un numero casuale elevato.

    Casi d’uso

    emSecure può essere utilizzato per due approcci di sicurezza: Anti-hacking (autenticazione del firmware) e Anti-cloning (autenticazione dell’hardware).

    Anti-hacking: Firma del firmware e verifica del bootloader

    Per garantire che solo immagini firmware autorizzate vengano eseguite, l’immagine viene firmata con la chiave privata durante la produzione. La firma viene memorizzata nel prodotto insieme al firmware. La chiave pubblica viene inserita nel bootloader, che verifica la firma a ogni avvio o aggiornamento. Se non corrispondono, il bootloader impedisce l’esecuzione o cancella il firmware non autorizzato.

    Anti-cloning: Firma dell’hardware e verifica del firmware

    Per impedire la riproduzione non autorizzata dell’hardware, emSecure firma ogni unità genuina. Durante la produzione, vengono letti dati univoci e fissi del chip (es. l’ID univoco del microcontrollore). Questi dati vengono firmati e la firma viene scritta in un’area OTP (One-Time Programmable). Il firmware include la chiave pubblica: all’avvio legge l’ID univoco e lo verifica con la firma. Se il firmware viene copiato su un hardware contraffatto con un ID diverso, la firma fallirà e il software si rifiuterà di girare.


    Progetto di esempio

    emSecure include un progetto per SEGGER Embedded Studio che dimostra la verifica di un messaggio. L’applicazione è semplice: include un file di testo e la sua firma convertiti in buffer C. Se il messaggio o la firma vengono modificati anche solo di un bit, la funzione SECURE_Verify restituirà un errore.

    void main(void) {
      int Status;
      // ...
      printf("Verifica del messaggio in corso...");
      Status = SECURE_Verify(&PublicKey, 0, 0, message_file, sizeof(message_file), _S, sizeof(_S));
      if (Status > 0) {
        printf(" OK\nProva a modificare il messaggio per vedere cosa succede.\n");
      } else {
        printf("FALLITO! La firma non corrisponde al messaggio.\n");
      }
    }

  • Segger Flasher ATE (gang)


    Panoramica

    A differenza della programmazione di singoli dispositivi, la programmazione gang è un metodo altamente efficiente utilizzato nella produzione elettronica per programmare più dispositivi simultaneamente. Questo approccio è particolarmente vantaggioso in contesti in cui grandi quantità di microcontrollori o altri dispositivi programmabili devono essere configurati in modo rapido e accurato. Riducendo significativamente il tempo totale di programmazione e aumentando la produttività, la programmazione gang garantisce processi di produzione ottimizzati.

    SEGGER fornisce soluzioni avanzate di programmazione gang progettate specificamente per soddisfare le richieste di produzione ad alto volume. Il modello Flasher Compact, combinato con Flasher Hub-12 o Flasher Hub-4, e il programmatore gang a scheda singola Flasher ATE2 (8 canali), supportano il controllo automatizzato tramite Ethernet, USB, RS232 o interfaccia web. Possono essere gestiti completamente tramite strumenti a riga di comando o script personalizzati e sono compatibili con un’ampia gamma di microcontrollori e tipi di memoria.


    Caratteristiche principali

    • Scalabilità impressionante: I programmatori gang di SEGGER consentono la programmazione parallela fino a 24 unità, dove ogni unità funge da canale individuale. Collegando un Flasher Hub-12 a un USB Hub-13, è possibile gestire fino a 24 Flasher Compact. Ogni Flasher può essere configurato singolarmente per programmare target diversi con firmware differenti.
    • Programmazione ad alta velocità: Progettati per raggiungere velocità di punta vicine al minimo teorico dell’hardware target. In molti casi si supera il 95% della velocità massima possibile, ovvero oltre 1 MB/s.
    • Configurabilità completa del sistema: I sistemi possono essere controllati e configurati tramite un server web integrato. Grazie a un’interfaccia utente intuitiva, tutte le informazioni necessarie per l’intero sistema di programmazione sono disponibili a colpo d’occhio.

    Casi d’uso

    Produzione di massa

    In ambienti ad alto volume non c’è spazio per l’errore. Processi inefficienti portano a costi elevati e ritardi. L’adozione di una soluzione SEGGER (Flasher Compact + Hub) garantisce tempi ridotti, maggiore efficienza e risultati affidabili e costanti.

    Produzione ad alto volume con ATE

    Per le linee semi-automatiche con spazio limitato, il Flasher ATE2 (8 canali) offre una soluzione ad alta densità progettata per l’integrazione in apparecchiature di test automatizzate (ATE). Il funzionamento stand-alone riduce la dipendenza dal PC, mentre la gestione integrata dell’alimentazione del target semplifica il cablaggio.


    Confronto delle soluzioni

    SoluzioneMax canaliCaratteristiche
    Flasher Hub-4 + Compacts4Server Web/FTP integrato, setup modulare, Flex Mode.
    Flasher Hub-12 + Compacts12Ideale per medie densità, espandibile fino a 24 con USB Hub-13.
    Hub-4/12 + USB Hub-1324Massima scalabilità per linee di produzione massive.
    Flasher ATE2 (8 canali)8Setup integrato, alimentazione interna, ottimizzato per banchi ATE.

    Funzionalità aggiuntive

    • Server Web integrato: Amministrazione e monitoraggio remoto dei task. Accesso sicuro tramite USB (bulk communication) anche senza Ethernet o Wi-Fi.
    • J-Flash: Software compatibile con Windows, Linux e macOS; supporta core Cortex-A/R/M, RX, RISC-V e PowerPC, oltre a memorie (Q)SPI, NAND, eMMC e DataFlash.
    • Flasher SDK: Supporto per nuovi dispositivi di memoria e definizione di procedure di programmazione personalizzate per hardware non ancora a database.
    • U-Flash: Un unico strumento per programmare sequenzialmente diverse regioni di memoria o dispositivi multipli con impostazioni individuali in un unico processo.

    Dispositivi supportati

    L’elenco include decine di migliaia di dispositivi di centinaia di famiglie di produttori. Se un dispositivo non è presente, il team SEGGER è disponibile per valutarne l’aggiunta.

  • Segger J-Trace

    Panoramica

    Lo J-Trace di SEGGER è una sonda di tracciamento (trace probe) professionale di tipo streaming che offre la migliore esperienza di analisi possibile, vantando un elenco esteso di funzionalità in grado di soddisfare ogni esigenza di debug degli sviluppatori embedded. Grazie allo streaming trace illimitato, al Live Code Profiling e alla Live Code Coverage, i progettisti possono isolare e identificare difetti del codice altrimenti difficili da scovare.

    J-Trace offre supporto multi-piattaforma per Windows, macOS e Linux, risultando estremamente versatile. Questa flessibilità si riflette anche nel supporto ai più popolari IDE. Per abilitare il tracciamento con qualsiasi toolchain, è possibile utilizzare il software di debug stand-alone gratuito Ozone. Per muovere i primi passi in modo rapido e semplice, sono inoltre disponibili schede di riferimento per il tracciamento (trace reference boards).

    La serie J-Trace comprende diversi modelli. Dotato di tutte le funzionalità di debug dello J-Link, lo J-Trace PRO è progettato per supportare le funzioni di tracciamento avanzate di tutti i core e le architetture più diffuse. Modelli specializzati forniscono supporto per microcontrollori basati su Cortex-M (J-Trace PRO Cortex-M), Cortex-A/R/M (J-Trace PRO Cortex-A/R/M) e RISC-V (J-Trace PRO RISC-V). Tutti offrono ampie capacità di memoria di traccia e comunicazione ad alta velocità via USB SuperSpeed 3.0.


    Caratteristiche principali

    • Sonda di streaming trace con interfaccia SuperSpeed USB 3.0 e Gigabit Ethernet.
    • Streaming in tempo reale alla massima velocità di clock del sistema.
    • Ottimizzazione delle applicazioni con il Live Code Profiling.
    • Code Coverage a livello di istruzione per soddisfare i requisiti normativi.
    • Tracciamento illimitato per isolare e identificare difetti software nascosti.
    • Punti di interruzione illimitati nella memoria flash (Unlimited Flash Breakpoints).
    • Disponibile per tutti i dispositivi più diffusi (Arm e RISC-V).

    Modelli J-Trace

    • J-Trace PRO: La sonda di tracciamento multi-architettura “all-in-one” per qualsiasi core e architettura CPU.
    • J-Trace PRO Cortex-A/R/M: Supporta il tracciamento su un’ampia gamma di core Arm Cortex.
    • J-Trace PRO Cortex-M: La sonda leader per abilitare lo streaming continuo per lo sviluppo e l’ottimizzazione del codice.
    • J-Trace PRO RISC-V: Supporta il tracciamento su una vasta gamma di core RISC-V.

    Connettori di debug e tracciamento

    Lo J-Trace dispone di due connettori. Quello di debug è dedicato esclusivamente al debug e può essere utilizzato con gli adattatori target per J-Link. Il connettore di tracciamento gestisce i segnali ETM/N-Trace.

    Nota: È possibile utilizzare un solo connettore alla volta.


    Dispositivi supportati

    L’elenco dei produttori, famiglie e SoC supportati include decine di migliaia di dispositivi. Se il tuo componente non è in elenco, puoi contattare direttamente il supporto SEGGER.


    Specifiche tecniche in sintesi

    CaratteristicaValore
    AlimentazioneUSB
    Velocità di download in RAMFino a 4.0 MB/s
    Frequenza CPU massimaIllimitata
    Frequenza TPIU massima300 MHz
    Interfacce hostEthernet, USB 3.0
    Interfacce targetcJTAG, JTAG, SWD, SWO
    TracciamentoStreaming illimitato + Analisi live

    Ultime notizie

    Dicembre 2025: SEGGER annuncia il supporto per il debug, il tracciamento e la programmazione per i processori Alif Semiconductor serie E4, E6 e E8, che abilitano l’IA generativa nei dispositivi Edge.

  • Segger Flasher

    La programmazione a singola unità consiste nel caricamento del software su un unico microcontrollore o processore dedicato all’interno di un sistema più ampio. La famiglia di programmatori Flasher di SEGGER per unità singole include i modelli Flasher Pro, Pro XL, Compact e Portable PLUS.

    Questi strumenti universali per la programmazione in-system (ISP) offrono una programmazione affidabile di microcontrollori e System-on-a-Chip (SoC) e sono progettati per soddisfare tutti i requisiti di programmazione flash dell’industria embedded.


    Caratteristiche principali

    • Funzionamento Stand-alone: Ogni programmatore Flasher è progettato per operare in modo indipendente, senza necessità di un PC collegato. Questa capacità garantisce efficienza e affidabilità in qualsiasi ambiente.
    • Massima velocità: I Flash Loader di SEGGER offrono prestazioni di scrittura senza pari grazie alla tecnologia Turbo Mode e all’hardware ottimizzato. In molti casi è possibile raggiungere oltre il 95% della velocità teorica massima (solitamente superiore a 1 MB/s).
    • Assegnazione di numeri di serie: I dispositivi Flasher consentono la programmazione di informazioni variabili, come numeri di serie, indirizzi MAC Ethernet, firme digitali e chiavi di licenza, applicando “patch” di dati al firmware originale.

    Casi d’uso

    • Produzione in linea singola: Ideali per configurazioni dove le unità vengono programmate una alla volta. I Flasher sono facili da integrare, permettono aggiornamenti locali o remoti e massimizzano la resa produttiva.
    • Creazione di prototipi: I team di sviluppo preparano le unità Flasher in modalità stand-alone (con l’immagine del firmware). I team di test possono quindi creare prototipi o ripristinare la configurazione originale in caso di errore, senza l’intervento costante degli sviluppatori.

    Le Soluzioni

    ModelloDescrizione
    Flasher Pro / Pro XLI “tuttofare” per la programmazione veloce e scalabile. La versione XL espande la memoria da 128 MB a 2 GB tramite scheda SD.
    Flasher CompactGemello in miniatura del Pro, ideale per l’installazione in banchi di produzione o apparecchiature di test automatizzate (ATE) dove lo spazio è limitato.
    Flasher Portable PLUSProgrammatore palmare ultra-resistente per l’uso sul campo in ambienti difficili. Alimentato a batteria e portatile.

    Funzionalità aggiuntive e Software

    • Authorized Flashing: Permette di definire un numero massimo di cicli di programmazione per prevenire la produzione non autorizzata e la contraffazione.
    • J-Flash: Software compatibile con Windows, Linux e macOS per la programmazione di un’ampia gamma di core (Cortex, RX, RISC-V, PowerPC).
    • Flasher SDK: Kit di sviluppo per aggiungere supporto a nuovi dispositivi di memoria non ancora presenti nel database ufficiale.
    • Flasher Deployer: Strumento gratuito per gestire gruppi numerosi di programmatori Flasher, garantendo configurazioni identiche tra i team di produzione e assistenza.
    • Device Provisioner: Consente la configurazione sicura dei microcontrollori, inclusa la gestione di TrustZone®, chiavi, certificati e il blocco del dispositivo contro letture non autorizzate.

    Dispositivi supportati

    L’elenco dei produttori e dei dispositivi supportati include decine di migliaia di unità. Se il tuo dispositivo non è in elenco, è possibile contattare SEGGER per richiederne il supporto.

  • Percepio DevAlert

    Ecco la traduzione professionale in italiano di Percepio DevAlert:


    DevAlert

    Osservabilità profonda per software Edge critico

    Ottieni un’osservabilità basata su cloud per le anomalie nei dispositivi edge e nel software embedded. Rileva e analizza i problemi da remoto, durante i test e sui dispositivi già distribuiti. Utilizza i tuoi abituali strumenti desktop per il debug remoto sicuro.

    I vantaggi principali

    • Rilascia più velocemente: Risolvi i bug più sfuggenti durante i test di sistema grazie a un’osservabilità profonda del software, con accesso remoto facilitato per tutti i membri del team.
    • Riduci i rischi del lancio: I test non trovano tutti i bug. Rileva i problemi sui dispositivi dei clienti, comprendine la causa e fornisci soluzioni rapide.
    • Supporto tecnico efficiente: Aumenta la risoluzione al primo contatto. Funziona come i codici di errore diagnostici (DTC) delle auto, ma per qualsiasi prodotto e con accesso remoto.

    Caratteristiche del Debug Remoto in Cloud

    • Debug da remoto e sicuro: Senza dover esporre una porta di debug fisica.
    • Debug del codice sorgente e tracciamento di sistema: Ispeziona i core dump dai dispositivi remoti nel tuo debugger preferito. Cattura tracce per Tracealyzer.
    • Per dispositivi online: Avvisi automatici dal dispositivo al cloud, visibili in DevAlert in pochi secondi.
    • Per dispositivi offline: Carica i dati tramite un dispositivo host o memorizza gli avvisi sul dispositivo per un recupero successivo.
    • Controllo dati e Privacy: Utilizza il tuo storage privato e mantieni il pieno controllo sui dati diagnostici.

    Osservabilità Profonda

    DevAlert consente ai tuoi dispositivi di inviare alert automatici al rilevamento di errori, includendo core dump e tracce che aiutano a spiegare il problema. Definisci i tuoi avvisi e includi qualsiasi dato rilevante, come log o letture dei sensori. Tutto è accessibile dal cruscotto (dashboard) di DevAlert nel tuo browser.

    • Core Dump: Visualizza i core dump di un dispositivo remoto con un solo clic. Collega il tuo debugger abituale e ottieni la stessa esperienza del debug locale. Ispeziona call stack, argomenti delle funzioni, variabili e registri.
    • Tracce di sistema: Raccogli tracce per Percepio Tracealyzer e osserva gli eventi software appena prima dell’anomalia, inclusi l’esecuzione dei task RTOS e le chiamate API.
    • Efficienza: Gli avvisi sono minuscoli (kilobyte o meno). Il dispositivo può riprendere l’operatività o riavviarsi senza ritardi evidenti.

    Ambiti di Applicazione

    Problemi Software

    Molti dispositivi edge/embedded sono sviluppati in C/C++, linguaggi inclini a bug difficili da individuare, specialmente in ambienti multitasking RTOS. DevAlert cattura gli errori a runtime automaticamente e invia notifiche via email. Questo ti permette di capire il problema alla prima occorrenza, senza doverlo riprodurre in laboratorio.

    Malfunzionamenti Fisici

    Le anomalie del mondo fisico sono spesso osservabili dal software (es. un connettore staccato o un sensore anomalo). DevAlert funge da soluzione “DTC” personalizzata per il tuo prodotto. Inoltre, semplifica il troubleshooting per i membri meno esperti del team includendo riferimenti alla documentazione per problemi noti.

    Anomalie di Cybersecurity

    I dispositivi edge sono spesso bersagli di attacchi informatici. DevAlert permette di segnalare eventi sospetti dal software. L’osservabilità profonda consente di determinare se l’anomalia è stata causata da un attacco o da un errore accidentale, rivelando vulnerabilità zero-day o intrusioni in pochi secondi.


    Integrazione Desktop e Privacy dei Dati

    DevAlert è una soluzione ibrida dispositivo/cloud/desktop. Il debug avanzato avviene tramite strumenti desktop come GDB o Tracealyzer sul tuo computer locale, grazie al tool Dispatcher. Non devi imparare una nuova interfaccia.

    Privacy: A differenza di altre soluzioni cloud, DevAlert non memorizza dati sensibili come immagini firmware, core dump o log nel servizio cloud ospitato. Questi dati rimangono sempre nel tuo storage privato (es. un bucket S3 nel tuo account AWS), garantendoti il pieno controllo.


    Casi di Successo

    “DevAlert ci aiuta ad accelerare la crescita dell’azienda poiché possiamo consegnare nuove funzionalità più velocemente e con l’alta qualità che i nostri clienti si aspettano.” — David Löwenbrand, CEO di Sensorbee

    “Il mondo aspettava una soluzione come DevAlert. Rivoluzionerà la qualità del prodotto ed è un must per ogni progetto embedded o IoT.” — Jacob Beningo, Beningo Embedded Group

  • Percepio Detect

    Individua precocemente i problemi più sfuggenti. Evita la faticosa riproduzione dei bug. Esegui il debug con facilità.

    Percepio Detect™ introduce la Continuous Observability® (osservabilità continua) mirata a crash e rischi di stabilità nel software embedded basato su RTOS. Progettato per un’integrazione fluida nei test interni, nelle pipeline CI/CT e nei test sul campo, Detect aiuta il tuo team di sviluppo a individuare e risolvere i problemi tempestivamente, molto prima che raggiungano la produzione.

    Con Detect, puoi acquisire informazioni dettagliate al primo segnale di malfunzionamento, accelerando il debug e riducendo la necessità di difficili tentativi di riproduzione dei bug. È una soluzione rivoluzionaria per quei bug sporadici e difficili da replicare che possono far deragliare il tuo progetto. Con Detect, i “bug da incubo” si trasformano in correzioni rapide.

    Inoltre, Percepio Detect ti aiuta a scoprire rischi di stabilità nascosti, come i “near miss” (quasi guasti) e le anomalie temporali dovute a problemi di multi-threading, che altrimenti passerebbero inosservati. Monitora le tempistiche del software e l’utilizzo delle risorse, imposta soglie di avviso e ottieni informazioni istantanee e dettagliate sulle anomalie, comprendendo non solo cosa è successo, ma soprattutto perché.


    Collabora per un progresso più rapido e una qualità superiore

    Percepio Detect è una soluzione di squadra che consente il debug collaborativo attraverso un server condiviso e una dashboard basata sul web. Ciò semplifica il tracciamento dei rischi di stabilità, l’analisi delle prestazioni e la condivisione delle intuizioni tra i team di sviluppo e di test. Integrando Percepio Detect nei flussi di lavoro di test continuo, i team software possono raccogliere e analizzare automaticamente gli avvisi sulle prestazioni a runtime come parte della loro pipeline CI/CT. A differenza dei metodi di debug tradizionali che si basano sulla riproduzione degli errori, Detect cattura i problemi nel momento in cui si verificano, rendendo il debug più rapido ed efficiente.

    Percepio Detect fornisce supporto integrato a Tracealyzer e offre tracce sui problemi rilevati, senza la necessità di trasmettere tutti i dati di tracciamento all’host. Detect gira in modo indipendente sul dispositivo, anche sul campo, e monitora la stabilità del sistema con un impatto minimo sulle prestazioni. Fornisce inoltre i core dump con lo stack delle chiamate, ad esempio in caso di eccezioni di hard fault. Tracealyzer può essere utilizzato anche come strumento stand-alone per lo streaming continuo delle tracce durante le sessioni di debug. Insieme, questi strumenti forniscono un’osservabilità profonda e stratificata per i team di software embedded. Se estesi con Percepio DevAlert per l’osservabilità DevOps post-rilascio, coprono l’intero ciclo di vita del prodotto, garantendo stabilità, integrità ed efficienza dei sistemi basati su RTOS.

    Punti chiave

    • Cattura crash e rischi in tempo reale per una visibilità sistematica.
    • Debug più veloce con dump automatici dei crash e tracce di sistema.
    • Riduzione del tempo di debug fino al 90%.
    • Monitoraggio del sistema per un tempo illimitato.
    • Rilevamento di problemi di timing e multithreading.
    • Integrazione fluida nei flussi di lavoro CI/CT.
    • Server privato on-premise per il pieno controllo sui dati sensibili.

    Verifica, Rileva, Risolvi — Rilascia con fiducia

    Gli errori intermittenti sono difficili da correggere a causa delle limitate informazioni iniziali e della difficoltà di riproduzione. Percepio Detect fornisce un’osservabilità profonda su crash, errori e altri rischi rilevati fin dalla prima osservazione. Ottieni tracce RTOS visive sui problemi di multithreading e visualizza stack delle chiamate, argomenti delle funzioni e variabili negli hard fault.

    Percepio Detect consente inoltre il monitoraggio sistematico del timing del software e dell’utilizzo delle risorse per un tempo illimitato senza richiedere streaming di tracce ad alta larghezza di banda. Le metriche delle prestazioni vengono monitorate sul dispositivo in tempo reale e attivano avvisi quando vengono superati i livelli di guardia. Per risultati di alta affidabilità, il monitoraggio può essere attivo nei test sul campo per molti giorni o settimane e gli avvisi possono essere memorizzati sul dispositivo, sopravvivendo a crash e riavvii.

    Il monitoraggio di Percepio Detect può essere incluso nei regolari test di integrazione per trovare i rischi legati al multithreading precocemente e con il minimo sforzo.


    Continuous Observability® di Percepio

    Percepio Detect è un componente fondamentale del portfolio Continuous Observability di Percepio, che fornisce approfondimenti software in tutte le fasi di sviluppo. Che venga utilizzato durante i test unitari, i test di integrazione o il monitoraggio sul campo, Detect aiuta i team a costruire sistemi embedded più affidabili, manutenibili e performanti.

    Inizia oggi il tuo viaggio verso l’Observability Driven Development (ODD)!