|  | 

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?

Articoli simili

  •  |  | 

    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…

  • Segger emFile

    PanoramicaemFile è 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…

  •  | 

    Segger Embedded Studio

    Embedded Studio di SEGGER è un ambiente di sviluppo integrato (IDE) completo, progettato specificamente per la gestione, la compilazione, il test e l’implementazione di applicazioni embedded. Grazie a una vasta gamma di funzionalità, garantisce operazioni di sviluppo fluide ed efficienti. Progettato per soddisfare le esigenze degli sviluppatori che lavorano con svariati microcontrollori, Embedded Studio ottimizza…

  •  |  | 

    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…

  •  |  | 

    Segger emVNC

    emVNC-Server (Virtual Network Computing) consente di visualizzare il display e gestire un sistema embedded tramite USB (utilizzando emUSB-Device di SEGGER), TCP/IP o qualsiasi altro livello di trasporto di tipo socket. emVNC è stato progettato specificamente per i sistemi embedded. Fornisce sia il modulo server per il sistema target, sia l’applicazione client per i computer. L’applicazione…

  •  |  | 

    Segger emPower OS

    emPower OS di SEGGER è un sistema operativo completo che fornisce l’ambiente ideale per qualsiasi sviluppatore impegnato nella creazione di sistemi embedded o dispositivi IoT. Può essere adattato per girare in sistemi a microcontrollore singolo con risorse limitate (senza memoria esterna) o scalato per ottenere le massime prestazioni su processori applicativi (MPU) senza sovraccarichi inutili….

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *