Vai al contenuto
BigTree108

Servizi di sviluppo firmware

Servizi di sviluppo firmware per microcontrollori: firmware bare-metal e RTOS in C, C++ e Rust, driver, stack Bluetooth e wireless, bootloader e aggiornamenti sul campo, firmware per ECU automotive, controllo motori e gestione batterie e progettazione a basso consumo per wearable, sensori, contatori, elettrodomestici, veicoli e dispositivi medicali, con ingegneri firmware dedicati al Suo team o progetti realizzati end to end.

Il firmware che sviluppiamo

  • Firmware per microcontrollori

    Firmware bare-metal, Zephyr, FreeRTOS o Eclipse ThreadX per componenti STM32, Nordic nRF52, nRF53 e nRF54, ESP32, NXP, Renesas, Infineon, Microchip e Silicon Labs, usando l’SDK del produttore dove fa risparmiare tempo e incapsulandolo dove vincolerebbe a un solo chip.

  • Driver per periferiche e sensori

    Driver I2C, I3C, SPI, UART, CAN, ADC e DMA per sensori, display, motori e radio, ciascuno testato su un dispositivo simulato o registrato prima di incontrare quello reale.

  • Firmware per protocolli wireless

    Stack Bluetooth Low Energy e LE Audio, Wi-Fi, Thread, Matter, Zigbee e LoRaWAN configurati ed estesi sul chip, e modem cellulari pilotati con comandi AT o LwM2M, pronti per la qualificazione Bluetooth SIG e la certificazione Matter.

  • Bootloader e aggiornamenti sul campo

    MCUboot o un bootloader su misura con immagini firmate, due slot e rollback, così un aggiornamento interrotto da una batteria scarica lascia il dispositivo sull’ultima versione funzionante.

  • Firmware a basso consumo e per wearable

    Fitness band, cerotti per la salute, auricolari e sensori che funzionano per mesi con una piccola batteria: modalità di sleep, sorgenti di risveglio e duty cycle radio ottimizzati sulla traccia di un power profiler, così l’autonomia stampata sulla confezione è una misura e non una stima.

  • Firmware per controllo motori, alimentazione e batterie

    Field-oriented control per motori BLDC e passo-passo, gestione delle batterie con bilanciamento delle celle e stima dello stato di carica, e firmware di controllo per caricabatterie, inverter solari e sistemi di accumulo, con i loop di controllo ottimizzati in simulazione prima di pilotare l’hardware reale.

  • Firmware per ECU automotive

    Software di base e componenti applicativi Classic AUTOSAR su controllori Infineon AURIX, NXP S32K e Renesas RH850, comunicazione CAN FD, LIN ed Ethernet automotive e diagnostica UDS, scritti secondo MISRA C e il livello di sicurezza ISO 26262 richiesto dal Suo item.

  • Audio, DSP e machine learning sul dispositivo

    Elaborazione di segnali audio e di sensori con CMSIS-DSP o su core Cadence Tensilica e Analog Devices SHARC, e modelli di keyword spotting, gesture e anomalie eseguiti sul microcontrollore tramite LiteRT for Microcontrollers o Edge Impulse.

  • Firmware safety-critical e fault-tolerant

    Firmware per dispositivi medicali, elettrodomestici e funzioni di sicurezza industriale scritto secondo MISRA C e le regole di IEC 62304, IEC 60730 o IEC 61508, con watchdog, fault handler che conservano una traccia del crash attraverso il reset e code coverage misurata al livello richiesto dallo standard.

Ingaggiare ingegneri firmware

  • ingegneri firmware dedicati

    Ingegneri firmware che entrano a tempo pieno nel Suo team, lavorano con i Suoi strumenti e il Suo processo e rispondono al Suo responsabile. Li intervista Lei; noi ci occupiamo del contratto ucraino, delle buste paga, della fatturazione e delle ferie.

  • Progetti di Sviluppo firmware

    Un’attività di sviluppo firmware ben definita, con un perimetro, un piano fisso e un responsabile nominato da parte nostra che risponde del risultato e riferisce sull’avanzamento nei Suoi canali.

  • sviluppo firmware su base continuativa

    Sviluppo firmware come servizio continuativo: le stesse persone ogni mese, un backlog di cui Lei stabilisce le priorità e ore che può vedere nel nostro portale e in fattura.

La pagina sul team dedicato spiega come gli specialisti entrano nel Suo team, e la pagina sull’outsourcing tratta la realizzazione di progetti, le prese in carico e il modo in cui fatturiamo.

Chi si occupa di sviluppo firmware per Lei

  • Ingegneri firmware

    C, C++ e Rust su microcontrollori

  • Ingegneri firmware automotive

    Classic AUTOSAR, CAN e diagnostica UDS

  • Ingegneri hardware

    Schemi elettrici e bring-up della scheda su cui gira il firmware

  • QA engineer embedded

    Test hardware-in-the-loop e fixture

  • Sviluppatori mobile

    App companion per iOS, .NET MAUI e React Native

Come scriviamo il firmware

La maggior parte del firmware si può testare senza la scheda, quindi lo scriviamo così: l’accesso all’hardware sta dietro interfacce sottili, la logica sopra di esse gira come test unitari sulla macchina di build in Unity, Ceedling o GoogleTest, e Renode esegue l’intera immagine su hardware emulato nella pipeline. L’analisi statica verifica le regole MISRA C o CERT C dove il prodotto lo richiede, gli avvisi del compilatore sono errori e ogni immagine di rilascio è costruita da un commit con tag dalla pipeline e firmata lì.

L’hardware raggiunge l’ingegnere in due modi: gli vengono spediti kit di sviluppo e schede prototipo, oppure lavora su un rack nel Suo laboratorio tramite accensione remota, una sonda di debug e una console seriale attraverso la Sua VPN. In entrambi i casi la build gira nella Sua pipeline e il codice risiede nei Suoi repository.

Altri servizi embedded e hardware

Panoramica: Embedded e hardware

Domande sullo sviluppo firmware

Il lavoro sul firmware può iniziare prima che il nostro hardware sia pronto?

Sì. Il lavoro parte sul kit di sviluppo del microcontrollore scelto e in Renode, con driver scritti sui datasheet dei componenti presenti nel Suo schema, così le prime schede prototipo vengono messe in funzione con un firmware già esistente anziché partire da zero.

C, C++ o Rust per il nostro firmware?

C quando l’SDK del produttore, il codice esistente o le evidenze di certificazione sono in C. C++ per firmware più grandi che traggono vantaggio da tipi e template senza allocazione dinamica. Rust, con Embassy ed embedded-hal, per firmware nuovi dove conta la sicurezza della memoria e il microcontrollore è ben supportato; Rust è già il linguaggio del nostro software desktop. Raccomandiamo un solo linguaggio per prodotto prima di scrivere la prima riga.

In quali settori lavorano i vostri ingegneri firmware?

Elettronica di consumo e wearable, in fitness band, auricolari, elettrodomestici e sensori per la smart home; apparecchiature industriali ed energetiche, in azionamenti motore, sistemi di gestione batterie, contatori e caricabatterie; automotive, in ECU di carrozzeria, comfort e powertrain e in controllori per e-bike ed e-scooter; dispositivi medicali e per la salute, in glucometri, pompe a infusione e apparecchi acustici; prodotti per la sicurezza, in sensori di allarme, serrature smart e lettori di accesso; e telecomunicazioni, in modem e moduli radio.

Con quale rapidità possono iniziare ingegneri firmware?

Quando è disponibile il profilo giusto per il ruolo di ingegnere firmware, l’avvio dipende soltanto dal Suo colloquio e dalla firma dell’NDA e della cessione della proprietà intellettuale. Altrimenti avviamo una ricerca, che di norma produce profili di candidati entro due o tre settimane, e nessuno inizia finché Lei non ha detto di sì.

Come ingaggiare ingegneri firmware tramite BigTree108?

Ci indichi il lavoro, il livello di seniority e l’impegno orario necessario. Le proponiamo una o due persone con i rispettivi profili, Lei le intervista come farebbe con una Sua assunzione e firma un unico contratto con BIG TREE 108 LLC, ricevendo una sola fattura al mese.

A chi appartiene il lavoro che producono?

A Lei. Ogni specialista ha un contratto firmato con BigTree108 che cede all’azienda tutto il lavoro prodotto, e il nostro accordo con Lei lo cede a sua volta. Codice, design e documenti vengono consegnati nei Suoi repository e strumenti, non conservati dove solo noi possiamo modificarli.

Ha bisogno di firmware da scrivere o da correggere?

Ci indichi il microcontrollore, la toolchain e che cosa deve fare il dispositivo. Riceverà una risposta entro un giorno lavorativo: un piano per il firmware, profili di candidati oppure una revisione del codice esistente.