Categoria: RTOS

  • 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.
  • 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)!

  • 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 strumento e si risolvono in un attimo. Lo usiamo continuamente.” — Alex Pabouctisids, Lead Firmware Engineer, Flyability

    Sei stanco di passare ore infinite a fare il debug del codice C/C++ embedded? Di’ addio alla noiosa ricerca guasti e dai il benvenuto a uno sviluppo accelerato con Percepio Tracealyzer. Il debug tradizionale è spesso inefficace per i complessi sistemi RTOS o Linux odierni e può arrivare a consumare il 40-50% del tempo di sviluppo. Ottieni un’osservabilità visiva per velocizzare il debug quotidiano e risolvere problemi dove gli strumenti tradizionali falliscono.


    Caratteristiche e Funzionalità

    Ottimizza le Prestazioni del Sistema

    “In meno di 5 giorni dall’utilizzo dello strumento, abbiamo migliorato le prestazioni del nostro motore di rendering grafico di 3 volte.” — Terry West, CEO, Serious Integrated, Inc.

    Tracealyzer offre funzioni di profiling avanzate che mostrano gli eventi dietro i numeri. Individua i colli di bottiglia delle prestazioni e sblocca il pieno potenziale del tuo hardware. Assicurati di raggiungere gli obiettivi prestazionali del prodotto e di offrire un’esperienza utente reattiva. L’ottimizzazione è complessa per i sistemi RTOS o Linux multi-thread. Quando un thread è lento, spesso dipende da fattori non evidenti nel codice sorgente. L’osservabilità visiva fornisce il quadro completo e semplifica l’ottimizzazione.


    Come funziona – Dagli Eventi all’Intuizione

    Percepio Tracealyzer visualizza il comportamento e le tempistiche del software embedded basandosi su una libreria di tracciamento software aggiunta nel sistema target. Questa estende il kernel del tuo RTOS con una strumentazione leggera aggiunta agli hook preesistenti per catturare eventi chiave, come:

    • Cambio di task (task switching)
    • Chiamate API del kernel
    • Blocchi (blocking) e timeout

    Esiste anche una API C per il logging personalizzato (“eventi utente”) che consente di estendere il tracciamento per loggare valori di variabili e altri eventi di debug.

    Il tracciamento può essere esplorato visivamente in Tracealyzer attraverso varie viste grafiche e analisi per il debug, il profiling e il rilevamento di anomalie, inclusi grafici del carico CPU, utilizzo della memoria stack e heap e diagrammi temporali. Il tracciamento può essere eseguito in streaming live continuo o come snapshot in memoria per catturare i momenti critici che precedono un problema.

    Tracealyzer è una soluzione al 100% software e non richiede una porta di tracciamento dedicata sul dispositivo, ma può beneficiare di sonde di debug veloci come IAR I-Jet e Segger J-Link come interfacce ad alta velocità per lo streaming continuo.


    Testimonianze degli Utenti

    “Non è sempre facile decidere se un investimento sia una buona idea o meno. Ma ora che abbiamo investito in Tracealyzer, è molto difficile per noi immaginare di sviluppare firmware basato su FreeRTOS senza di esso. […] Dal mio punto di vista, Tracealyzer per un RTOS è come l’oscilloscopio per la progettazione hardware; non è un’opzione, è un requisito.” — Mr. Ravache, R&D, Neovigie


    Supporto e Compatibilità

    • Bare-metal, RTOS e Linux: Supporto preconfigurato per i più popolari sistemi operativi embedded, tra cui FreeRTOS, Zephyr, ThreadX, PX5 RTOS, SafeRTOS, LynxOS-178, VxWorks e Linux. L’SDK di Tracealyzer consente integrazioni con altri OS e osservabilità “full-stack”.
    • Su qualsiasi processore: Supporta numerose famiglie di processori, inclusi STM32, NXP i.MX RT, Xilinx Zynq e altri dispositivi Arm, ESP32 e molti altri. È comunemente usato su microcontrollori a 32 bit e SoC multicore a 64 bit.
    • Con qualsiasi strumento di sviluppo: Utilizzabile con qualsiasi compilatore, inclusi GCC, Clang e IAR Embedded Workbench. Sono disponibili guide specifiche e supporto per i debugger Arm Keil µVision, IAR, Segger J-Link, STM32CubeIDE, Espressif ESP-IDF e Lauterbach.