Hur utvecklas firmware för en integrerad enhet? Samdesign av hårdvara och mjukvara

Firmware som skrivs efter att hårdvaran frysts ärver varje hårdvarufel. Firmware som skrivs tillsammans med hårdvaran tar bort de flesta.

· av Kari Rantakoski

Kort svar: Firmware för en integrerad enhet utvecklas i en samdesignloop med kretskortet: arkitekturen (MCU eller SoC, minne, periferienheter, effektlägen, gränssnitt) låses tillsammans med schemat; board bring-up ger drivrutiner, ett hårdvaruabstraktionslager (HAL) och en bootloader på den första prototypen; applikationslagret lägger till RTOS, styrlogik, kommunikationsprotokoll och uppdateringar över luften (OTA); automatiserade hardware-in-the-loop-tester och ett fabrikstestprogram skrivs före serieproduktionen; och produktionsprogrammering, provisionering och fältuppdateringar designas in från början. Comtec Labs utvecklar firmware och hårdvara i ett och samma team, så att varje prototyprevision förbättrar båda.

Samdesignloopen steg för steg

StegFirmwarearbeteHårdvarubeslut det styr
1. Krav och arkitekturBeräkningsbudget, minne, realtidskrav, effektlägen, säkerhetsnivå, gränssnittVal av MCU/SoC, minne, effektträd, debug- och programmeringskontakt
2. Board bring-upKlock- och effektkonfiguration, drivrutiner, HAL, bootloader, första lysdioden och UARTPull-ups, bootpinnar, testpunkter, sensorplacering, EMC-åtgärder
3. Applikation och uppkopplingRTOS-tasks, reglerloopar, CAN/Modbus/Ethernet/BLE/LTE-stackar, OTA-uppdatering, loggningAntenn- och RF-layout, kontaktpinkonfiguration, watchdog- och brown-out-design
4. Verifiering och testautomationEnhetstester, hardware-in-the-loop-riggar, fabrikstestfirmware, kalibreringsrutinerTestpunkter, boundary-scan-kedja, fixturgränssnitt
5. Produktion och fältProgrammering och provisionering på linjen, säker nyckelinjektion, uppdateringspipeline, diagnostikLagring av serienummer, secure element, servicekontakt

Hur god praxis för inbyggd firmware ser ut

  • Versionshantering, kodgranskning och CI-byggen (continuous integration) för varje commit, även för firmware.
  • Ett hårdvaruabstraktionslager så att applikationen överlever ett byte av MCU eller sensor.
  • Secure boot, signerade uppdateringar och krypterad provisionering där enheten är nätverksansluten; EU:s Cyber Resilience Act gör detta till ett marknadskrav för uppkopplade produkter.
  • Defensiv kodning i C/C++ (MISRA-liknande regler, statisk analys) och watchdog-övervakade tasks.
  • Fabrikstestfirmware som motionerar varje gränssnitt, så att produktionslinjen hittar hårdvarufel på några sekunder.

Varför ett team för hårdvara och firmware

När firmwareingenjören sitter bredvid layoutingenjören blir debugkontakten, testpunkterna, sensorns orientering och effektsekvenseringen rätt redan på den första prototypen. När ett bring-up-problem dyker upp åtgärdas det i schemat och i drivrutinen samma dag, i stället för att eskaleras mellan två företag. Det är den praktiska innebörden av FoU-driven tillverkning.

Nyckelfakta

  • Firmware tar typiskt 40–60 % av ingenjörstimmarna för en integrerad enhet; resten är elektronik och mekanik.
  • Ett hårdvaruabstraktionslager gör en MCU:s end-of-life till en portning i stället för en omskrivning.
  • Signerade OTA-uppdateringar och säker provisionering blir obligatoriska för uppkopplade produkter som säljs i EU (Cyber Resilience Act).
  • Comtec Labs programmerar och provisionerar enheter på produktionslinjen och levererar testfirmwaren tillsammans med produkten.

Typiska plattformar vi arbetar med

ARM Cortex-M-mikrokontroller (STM32, NXP, Nordic, Espressif) med bare-metal eller FreeRTOS/Zephyr, inbyggd Linux på Cortex-A och SoC:er i NXP i.MX-klassen, fältbussar och industriella protokoll (CAN, Modbus, EtherCAT, OPC UA), trådlöst (BLE, Wi-Fi, LTE-M/NB-IoT, LoRa) samt edge AI-inferens på mikrokontroller och acceleratorer.

Vanliga frågor

Utvecklar ni firmware för kort ni tillverkar?

Ja, det är normalfallet.

Vem äger källkoden?

Kunden.

Kan ni lägga till firmware i en befintlig produkt?

Ja, efter granskning av hårdvara och kod.

Hur hanteras fältuppdateringar?

Bootloader med signerade avbilder, uppdateringspipeline och rollback.

Redo att minska överraskningarna kring kretskort?

Comtec Labs erbjuder en komplett uppsättning tjänster för att effektivisera ditt arbetsflöde:

Kretskortsplanering
Kretskortsprototyper
Kretskortskomponent inköp
Kretskortskomponent montering
Kretskorts testning
Kretskorts reparation och modifiering
Produktion av kretskort
Kretskorts massproduktion

← Comtec Labs blog

Redo för nästa projekt?

Från FoU till skalbar tillverkning.

Kontakta oss