|  | 

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.

Articoli simili

  •  |  | 

    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 implementa il concetto di App, ovvero piccoli…

  •  |  | 

    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…

  •  |  | 

    Segger IoT Toolkit

    Panoramica L’IoT Toolkit è una raccolta di librerie progettate per comunicare senza sforzo con i moderni dispositivi IoT, permettendoti di concentrarti sulle parti cruciali della tua applicazione. Sebbene i dispositivi IoT parlino tipicamente linguaggi semplici, implementare questi protocolli secondo gli standard ufficiali può diventare un onere gravoso. L’IoT Toolkit fornisce librerie collaudate per aiutarti a…

  •  | 

    Percepio TraceAlyzer

    Osservabilità visiva del tracciamento per una “visione a raggi X” nello sviluppo del software embedded. Accelera il debug quotidiano, risolvi i problemi e consegna prodotti eccellenti nei tempi previsti. Semplifica il Debug e Sviluppa più Velocemente “Tracealyzer ha raddoppiato la nostra velocità di sviluppo. Problemi che richiederebbero giorni per essere risolti diventano ovvi con questo…

  •  |  | 

    emFile RAID 5

    Sebbene l’acronimo R-A-I-D derivi da Redundant Array of Independent (originariamente Inexpensive) Disks, i termini “recuperabile” e “replicabile” sono più accurati di “ridondante”. Storicamente, i dispositivi di archiviazione sono stati i dischi rigidi. Nelle applicazioni embedded, questi possono essere qualsiasi tipo di dispositivo di memoria (NAND, NOR, SD) e, date le dimensioni del sistema, l’archiviazione è…

  •  |  | 

    Segger emWin

    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…