Expertise interne

Firmware &
Logiciel embarqué

Du microcontrôleur sous Zephyr au SoC Linux custom — le développement bas-niveau en interne, pas en sous-traitance.

Démarrer un projet firmware Voir le Bureau d'études

Le firmware, c'est
la moitié du produit

Un PCB bien routé qui tourne avec un firmware approximatif ne livre pas sa promesse. Chez Codium, le développement logiciel embarqué fait partie intégrante du bureau d'études — le même ingénieur conçoit la carte et sait ce qui va tourner dessus.

Deux mondes coexistent : les microcontrôleurs sous RTOS — Cortex-M, RISC-V, contraintes mémoire serrées, déterminisme temps-réel — et les processeurs applicatifs sous Linux embarqué — Cortex-A, drivers kernel, BSP Debian/Fedora custom. Nous maîtrisons les deux.

Développement firmware embarqué — microcontrôleur et carte électronique
2
Familles de plateformes (MCU + Linux)
4
RTOS maîtrisés (Zephyr, FreeRTOS, NuttX, RIOT)
100%
Interne — zéro sous-traitance firmware
IoT
Protocoles intégrés : LTE-M, BLE, DECT NR+, LoRa

Firmware & logiciel sur mesure

Du driver I2C en bare-metal au service systemd sur Linux embarqué — chaque couche logicielle a ses règles. Nous les connaissons.

RTOS

Firmware microcontrôleur

Développement bas-niveau sur Cortex-M et RISC-V 32 bits : architecture RTOS, ordonnancement temps-réel, gestion des interruptions, optimisation mémoire (RAM et Flash comptées en kB).

Zephyr RTOS FreeRTOS Cortex-M0/M4/M33 RISC-V
Linux

Linux embarqué

Portage et configuration du kernel Linux pour votre SoC (Cortex-A, i.MX, AM335x, RK3568). BSP sur base Debian ou Fedora, rootfs optimisé, démarrage sécurisé (secure boot), gestion des overlays Devicetree.

Linux kernel BSP Debian / Fedora Cortex-A Devicetree
BSP

BSP & bring-up carte

Mise en route d'un nouveau hardware : bootloader (U-Boot, SPL), configuration du Devicetree, validation de tous les périphériques. Livraison d'un BSP propre et documenté utilisable en production.

U-Boot DTS overlay Bring-up JTAG / OpenOCD
Drivers

Drivers bas-niveau

Écriture de drivers Linux kernel (char device, platform driver, driver SPI/I2C/UART/DMA) et de drivers Zephyr natifs pour vos périphériques. Respect des patterns kernel mainline.

Linux kernel module I2C / SPI / UART DMA Zephyr driver model
Protocoles IoT

Stack protocolaire IoT

Intégration et configuration des stacks réseau : LTE-M (PSM/eDRX), DECT NR+, BLE, LoRaWAN, Zigbee. Gestion correcte des modes veille et de la reprise réseau pour maximiser l'autonomie batterie.

LTE-M / NB-IoT DECT NR+ BLE / Zephyr BT LoRaWAN
Consommation

Optimisation consommation

Stratégies de gestion de l'énergie pour objets sur batterie : power domains, deep sleep, wake-up sources, PSM/eDRX modem. On ne coupe pas le modem violemment — on lui dit de se mettre en sommeil correctement.

PSM / eDRX Power domains Deep sleep Profilage courant

MCU sous RTOS
ou Linux embarqué ?

Le choix ne se fait pas sur un critère unique. Puissance, mémoire, latence, mise sur le marché, certification sécurité — chaque paramètre pèse. On vous aide à choisir la bonne plateforme pour votre produit, pas celle qu'on préfère.

Concrètement : un capteur IoT sur batterie à 2 € de BOM va sur MCU. Une gateway industrielle avec interface web, gestion de fichiers et mise à jour robuste va sur Linux. La frontière est souvent la nécessité d'un OS complet.

MCU + RTOS Linux embarqué
Mémoire kB à quelques Mo Dizaines à centaines de Mo
Latence Déterministe (µs) Variable (PREEMPT_RT possible)
Consommation µA en deep sleep mA en idle minimum
Démarrage Immédiat (< 1 ms) Plusieurs secondes
Protocoles réseau Stack minimale intégrée Stack complète (TCP/IP, TLS, MQTT…)
Mise à jour OTA FOTA Zephyr / custom SWUpdate / RAUC (robuste A/B)
Sécurité TrustZone, secure boot Secure boot, SELinux, dm-verity

Prestations firmware & embarqué

Développement firmware RTOS complet
De l'architecture logicielle au driver bas-niveau : HAL, tâches RTOS, gestion des périphériques, protocoles de communication. Avec Zephyr ou FreeRTOS selon le contexte.
Portage Linux embarqué
Configuration du kernel pour votre SoC, adaptation du Devicetree, déploiement d'un BSP Debian ou Fedora optimisé, mise en place du démarrage sécurisé et des mises à jour via le système de paquets natif.
Bring-up de nouveau hardware
Mise en route complète d'une nouvelle carte : bootloader, validation des périphériques, mesure des courants de démarrage, identification et résolution des problèmes hardware/logiciel.
Écriture de drivers kernel
Drivers Linux (platform driver, char device, I2C/SPI) et drivers Zephyr natifs pour vos capteurs et périphériques sur mesure. Code propre, reviewable, maintenable.
Intégration stack IoT
Configuration et validation des stacks réseau : LTE-M avec PSM/eDRX correct, DECT NR+, BLE, LoRaWAN. Optimisation de l'autonomie batterie et gestion des reconnexions réseau.
Tests en conditions réelles
Validation du firmware sur le matériel cible, en conditions d'environnement réelles : température, alimentation, interférences RF. Identification des comportements inattendus avant la mise en production.

Du besoin au firmware livré

1
Cadrage
Analyse du hardware cible, des contraintes mémoire, temps-réel et consommation. Choix de la plateforme et du RTOS.
2
Architecture
Découpage en couches logicielles, définition des interfaces entre tâches, choix des primitives de synchronisation.
3
Développement
Écriture du firmware : HAL, drivers, couche applicative. Tests unitaires, CI sur la chaîne de build (west / cmake).
4
Validation
Tests sur hardware réel : validation fonctionnelle, mesure de la consommation, stress test, test des cas limites et des resets.
5
Livraison
Code documenté, procédure de build reproductible, guide de mise à jour OTA et rapport de qualification.

Notre retour d'expérience terrain

Zephyr vs FreeRTOS vs NuttX, le Devicetree expliqué, les drivers Linux kernel, la réalité d'un BSP Debian en production — retour de 15 ans d'expérience de développement embarqué dans notre article complet.

Lire l'article technique →
RTOS
Zephyr vs FreeRTOS vs NuttX — comparatif honnête
Linux
Drivers kernel, Devicetree, BSP — la réalité du terrain
IoT
LTE-M PSM/eDRX — comment ne pas tuer la batterie
Protocoles
DECT NR+, BLE, LoRa — les stacks qu'on intègre

Un projet avec une couche firmware ?

Parlez-en directement à notre équipe. Premier échange gratuit, sans engagement.