Perché serve un nuovo approccio all'AI nello sviluppo firmware
Gli strumenti AI tradizionali come GitHub Copilot, Claude Code o Codex sono estremamente utili per accelerare la scrittura del software. Tuttavia, nella maggior parte dei casi, non hanno accesso diretto:
- alla configurazione reale del progetto;
- allo stato del microcontrollore;
- ai registri hardware;
- al debugger;
- ai risultati della compilazione;
- alla documentazione specifica del dispositivo;
- all'hardware collegato al sistema di sviluppo.
Questo limita fortemente la capacità dell'AI di comprendere il comportamento effettivo dell'applicazione e di individuare problemi complessi legati all'esecuzione del firmware.
CMSIS Developer Assistant nasce proprio per eliminare questa barriera, consentendo all'agente AI di ottenere accesso controllato all'intero ambiente di sviluppo embedded.
Cos'è CMSIS Developer Assistant

@ copy Arm
CMSIS Developer Assistant è un'estensione di Arm Keil MDK V6 per Visual Studio Code che fornisce agli agenti AI un accesso controllato a:
- CMSIS Solution;
- sistema di build CMSIS;
- debugger Cortex-M;
- registri del microcontrollore;
- periferiche hardware;
- documentazione tecnica;
- target fisici collegati al PC.
In questo modo l'agente AI può contribuire a ogni fase dello sviluppo firmware, dalla progettazione iniziale fino alla validazione sul dispositivo reale.
Il risultato è un flusso di lavoro in cui lo sviluppatore definisce gli obiettivi, approva le specifiche e verifica il risultato finale, mentre l'AI può eseguire molte delle attività operative e ripetitive.
Dall'idea al firmware funzionante
Uno degli aspetti più innovativi della piattaforma è la capacità di trasformare un requisito funzionale in un'applicazione embedded concreta.
Lo sviluppatore può definire il risultato desiderato e lasciare che l'agente AI:
- pianifichi l'implementazione;
- generi il codice necessario;
- integri i componenti software;
- compili il progetto;
- programmi il dispositivo;
- verifichi il comportamento dell'hardware;
- analizzi eventuali errori;
- iteri fino al raggiungimento dei criteri di test definiti.
Questo approccio riduce significativamente il tempo necessario per passare dall'idea iniziale ad un prototipo funzionante.
Le tecnologie alla base di CMSIS Developer Assistant
AI Skills: workflow embedded guidati
Le AI Skills sono uno dei pilastri della soluzione.
Si tratta di flussi operativi strutturati che insegnano all'agente AI come eseguire attività tipiche dello sviluppo embedded, ad esempio:
- creare un nuovo progetto CMSIS;
- aggiungere una scheda di sviluppo;
- integrare componenti software;
- consultare la documentazione tecnica;
- effettuare il debug di un target Cortex-M.
Le Skills funzionano come procedure standardizzate che indicano all'agente quali strumenti utilizzare, quali passaggi seguire e quali limiti rispettare, garantendo risultati più affidabili e prevedibili.
MCP: il protocollo che collega l'AI agli strumenti di sviluppo
CMSIS Developer Assistant sfrutta il Model Context Protocol (MCP) per consentire all'agente AI di interagire con Visual Studio Code e con gli strumenti dell'ecosistema CMSIS.
Attraverso MCP l'agente può:
- eseguire la build del progetto;
- programmare il firmware;
- controllare il debugger;
- utilizzare porte seriali;
- analizzare log e artefatti di compilazione;
- consultare la documentazione del progetto.
In pratica, l'AI non si limita più a suggerire codice ma può operare direttamente sugli strumenti normalmente utilizzati dai firmware engineer.
Context Awareness del progetto e del target
Una delle funzionalità più avanzate è la capacità di utilizzare informazioni specifiche del dispositivo e del progetto.
L'agente può accedere a:
- CMSIS Solution;
- CMSIS Pack;
- file CMSIS-SVD;
- descrizioni di build ed esecuzione generate automaticamente;
- documentazione associata al target;
- esempi di codice;
- configurazioni hardware.
Questo gli permette di prendere decisioni basate sul contesto reale dello sviluppo anziché su conoscenze generiche.
Supporto per Zephyr RTOS
CMSIS Developer Assistant può essere utilizzato anche con Zephyr RTOS.
L'approccio consigliato consiste nell'utilizzo di un progetto csolution che descrive:
- applicazioni Zephyr disponibili;
- configurazioni di build;
- target hardware supportati.
In questo scenario:
- Zephyr continua a utilizzare il tool west per compilazione e configurazione;
- CMSIS aggiunge funzionalità di debug, programmazione, tracciamento e gestione dell'hardware.
Per i team che sviluppano applicazioni Industrial IoT, edge computing o sistemi embedded complessi, questa integrazione consente di mantenere il workflow esistente migliorando le funzionalità di sviluppo e diagnostica.
Quali attività di sviluppo supporta?
CMSIS Developer Assistant copre gran parte del ciclo di vita del firmware.
Le principali funzionalità includono:
Sviluppo di applicazioni
- creazione di progetti CMSIS e Zephyr;
- estensione di applicazioni esistenti;
- aggiunta di nuovi target hardware;
- configurazione di board, layer e startup code.
Build e programmazione
- compilazione del firmware;
- flashing della memoria;
- esecuzione dell'applicazione;
- connessione al target.
Debug avanzato
- gestione dei breakpoint;
- debugging step-by-step;
- analisi dello stack;
- lettura dei registri della CPU;
- monitoraggio delle periferiche;
- analisi della memoria.
Risoluzione dei problemi
- HardFault;
- crash del firmware;
- blocchi applicativi;
- errori di comunicazione;
- problemi di sincronizzazione;
- malfunzionamenti delle periferiche;
- problematiche di timing.
Analisi della build
- simboli ELF;
- utilizzo della memoria;
- sezioni linker;
- errori di compilazione;
- log di build.
Automazione DevOps
- creazione di workflow GitHub Actions;
- integrazione CI/CD;
- esecuzione di test automatici;
- supporto per FVP (Fixed Virtual Platform).
Documentazione tecnica intelligente grazie al sistema RAG
Uno dei componenti più interessanti è il sistema integrato di Retrieval-Augmented Generation (RAG).
Lo strumento può indicizzare automaticamente:
- datasheet;
- reference manual;
- documentazione delle board;
- documentazione Arm;
- PDF associati al progetto.
L'agente AI può quindi effettuare ricerche contestuali e recuperare informazioni specifiche relative a:
- registri hardware;
- bit field;
- periferiche;
- limitazioni del dispositivo;
- errata corrige;
- configurazioni consigliate.
Per gli sviluppatori embedded significa poter interrogare migliaia di pagine di documentazione tecnica attraverso richieste in linguaggio naturale e ricevere risposte contestualizzate al dispositivo effettivamente utilizzato.
Alcuni esempi di utilizzo
Uno sviluppatore potrebbe chiedere:
"Quali periferiche utilizza questa applicazione?"
oppure:
"Individua perché il firmware entra nell'HardFault Handler e proponi una soluzione."
Oppure ancora:
"Verifica che il GPIO commuti alla frequenza prevista e continua a correggere il firmware finché il test non viene superato."
In tutti questi casi, l'AI può basare la propria analisi sui dati ottenuti direttamente dal debugger, dai registri hardware e dall'esecuzione del firmware sul target reale.
Come viene mantenuto il controllo dello sviluppo
Un elemento particolarmente importante è che CMSIS Developer Assistant non sostituisce lo sviluppatore.
L'ingegnere continua a essere responsabile di:
- definire gli obiettivi;
- approvare le specifiche;
- validare i risultati;
- accettare o rifiutare le modifiche proposte.
L'agente AI si occupa invece del ciclo operativo:
- pianificazione;
- implementazione;
- compilazione;
- programmazione;
- osservazione del comportamento;
- analisi degli errori;
- iterazione.
Inoltre, tutte le operazioni critiche, come la programmazione della Flash o la modifica dello stato di esecuzione del target, restano soggette alle autorizzazioni configurate dall'utente.
Una nuova generazione di strumenti per Arm Cortex-M
L'arrivo di CMSIS Developer Assistant rappresenta un importante passo avanti nell'evoluzione dello sviluppo embedded assistito dall'intelligenza artificiale.
A differenza degli AI coding assistant tradizionali, la piattaforma accede direttamente a:
- toolchain CMSIS;
- debugger professionali;
- documentazione tecnica;
- registri del microcontrollore;
- periferiche hardware;
- target Cortex-M reali.
Questa integrazione permette di ridurre il tempo dedicato alle attività ripetitive e di aumentare la produttività dei team di sviluppo, lasciando agli ingegneri il controllo delle decisioni progettuali più importanti.
Per firmware engineer, software embedded developer e progettisti elettronici che lavorano con Arm Cortex-M, CMSIS e Zephyr RTOS, CMSIS Developer Assistant rappresenta una delle applicazioni più avanzate dell'intelligenza artificiale nel mondo dello sviluppo firmware professionale.
Fonte: Questo articolo è basato sulla documentazione ufficiale di Arm relativa a CMSIS Developer Assistant.
Fonte originale: CMSIS Developer Assistant




