← Pagina iniziale
Tecnologie e piattaforme
Linguaggi di programmazione, piattaforme hardware, bus e strumenti — la scelta segue i requisiti del progetto, non le mie preferenze.
Questa pagina offre una panoramica compatta delle tecnologie con cui lavoro. L'elenco non è esaustivo — nomina le piattaforme, i linguaggi e gli strumenti frequenti nei miei progetti o che considero particolarmente rilevanti per lo sviluppo embedded. Se la vostra piattaforma specifica non compare qui, ciò non significa necessariamente mancanza di esperienza; nei progetti embedded i concetti spesso si trasferiscono ad altre piattaforme non appena il compito è chiaro.
Linguaggi
1. Linguaggi di programmazione e HDL
Scelta del linguaggio secondo il compito: prossimo all'hardware ed efficiente nelle risorse in C o assembler, orientato agli oggetti in C++, logica FPGA in VHDL e SystemVerilog, strumenti e analisi in Python.
- C — linguaggio principale per firmware microcontrollore, da bare-metal a FreeRTOS
- C++ — per applicazioni embedded più complesse con strutture a oggetti, conforme a MISRA se richiesto
- Assembler — sotto vincoli estremi, per driver hardware, codice di boot e reverse engineering
- VHDL — progetti FPGA con forte chiarezza strutturale
- SystemVerilog — sviluppo FPGA moderno, testbench, verifica
- Verilog — descrizione FPGA classica
- Python — automazione di test, script, analisi dati, backend web
- Kotlin — per applicazioni Android di accompagnamento a dispositivi embedded
- JavaScript / HTML / CSS — frontend web e interfacce di configurazione
MCU
2. Piattaforme microcontrollore
Esperienza con tutte le piattaforme microcontrollore consolidate sul mercato embedded — dall'ARM Cortex ad alte prestazioni al chip Atmel ottimizzato sui costi, come microcontrollore nudo o come piattaforma a scheda tipo Arduino o BeagleBone.
- ARM Cortex-M — la piattaforma standard per requisiti medi
- ARM Cortex-A — quando serve Linux o più potenza di calcolo
- ESP32 — applicazioni embedded con Wi-Fi/Bluetooth
- Atmel / Microchip AVR — p. es. famiglia ATmega per progetti sensibili al prezzo
- Arduino — prototipazione rapida, didattica e dimostrazioni
- BeagleBone — piattaforma ARM Cortex-A con Linux per applicazioni più impegnative
- Microcontrollori a memoria minima — bare-metal, senza RTOS (progetto Stihl come esempio, vedi referenze)
- altre piattaforme su richiesta
FPGA
3. Piattaforme FPGA
Sviluppo FPGA dalla specifica alla verifica. Accento sui prodotti Xilinx, familiarità con le toolchain moderne e i metodi di verifica.
- Xilinx Artix-7 — FPGA efficienti nei costi per compiti di controllo ed elaborazione del segnale
- Xilinx Zynq — piattaforma combinata ARM+FPGA per sistemi complessi
- Vivado — toolchain per sintesi, implementazione e programmazione
- Icarus Verilog / Verilator — simulatori open source per iterazione rapida
- Testbench in SystemVerilog — verifica strutturata dei progetti FPGA
Bus
4. Bus e protocolli di comunicazione
Esperienza con i bus consolidati negli ambienti automotive, industriale ed embedded — dall'implementazione prossima all'hardware alla diagnostica.
- CAN / CAN FD — standard automotive e industriale
- MOST — bus infotainment con esperienza dal progetto Audi (vedi referenze)
- Ethernet / EtherCAT — comunicazione industriale in tempo reale
- SPI / I²C / UART — interfacce standard per sensori e periferiche
- UDS (ISO 14229) — protocollo diagnostico per centraline
- WebSocket / MQTT — per connessioni IoT e cloud
RTOS
5. Sistemi operativi di tempo reale e framework
Scelta dell'architettura software secondo i requisiti di progetto — dal bare-metal su microcontrollori limitati ai sistemi operativi di tempo reale multi-core completi.
- Bare-metal — quando memoria e determinismo contano
- FreeRTOS — standard di fatto per RTOS su microcontrollore
- Architetture multi-core — distribuzione di compiti su più core
- Linux embedded — su piattaforme tipo BeagleBone, quando le applicazioni ne traggono beneficio
Strumenti
6. Strumenti, framework di test e IDE
Gli strumenti sono mezzi. Lavoro con ciò che si addice al progetto — e mi familiarizzo rapidamente con toolchain ignote se rilevanti per il progetto.
- Vector CANoe / CAPL — standard per test automotive e simulazione di bus
- LabView — software di misura e controllo
- Robot Framework — automazione di test end-to-end
- Banchi HIL — hardware-in-the-loop per test integrati di sistema
- Pulsonix — strumento di schema e progettazione PCB
- Vivado — toolchain FPGA Xilinx
- Git / GitLab — controllo di versione e revisione del codice
- Wireshark — analisi di rete e bus
Web/App
7. Tecnologie web e app (software di accompagnamento)
Quando i dispositivi embedded richiedono un'interfaccia di configurazione, una dashboard o un'applicazione mobile, posso fornire anche il software di accompagnamento.
- JavaScript / HTML / CSS — frontend web
- Chart.js — visualizzazione di dati nel browser
- Python / Flask — backend web
- Node.js — componenti server
- Socket.IO / WebSocket / MQTT — trasmissione di dati in tempo reale
- Kotlin — applicazioni Android per dispositivi embedded
- API REST — interfacce standardizzate tra embedded e cloud
Cosa non compare in questo elenco
Questa pagina nomina le tecnologie usate frequentemente — non è un catalogo completo. Se la vostra piattaforma, il vostro linguaggio o il vostro strumento non compare qui, vale comunque la pena parlarne. Nello sviluppo embedded, ciò che conta in fine non è tanto quale toolchain concreta si conosce, bensì con quale rapidità se ne adotta una nuova e con quale profondità si comprendono i concetti sottostanti.