Embedded software

In collaboration with the electronic engineers responsible for hardware design, the embedded software engineers develop the firmware for the microcontrollers on the electronic boards.

DEVELOPMENT-OF-FIRMWARE-MULTI-TASKING
with the real-time OS FreeRTOS under STM32CubeIDE :

CONFIGURATION OF INPUTS/OUTPUTS
under STM32CubeIDE

DEVELOPMENT-OF-A-FIRMWARE-MULTITASKING
with the real-time OS FreeRTOS under STM32CubeIDE :

CONFIGURATION OF INPUTS/OUTPUTS
under STM32CubeIDE
EMBEDDED SOFTWARE

These firmwares contain most of the intelligence of our boards.

They are developed in C/C++, on all types of microcontrollers, using an IDE such as STM32CubeIDE.

The development stages of an embedded software at Kapa are the following (not exhaustive):

Discussions with the electronic engineers on the software/electronic interfaces,
Drafting of architecture and software design documents,
Configuration of the inputs/outputs of the microcontroller in accordance with the diagram produced,
Development of the drivers linked to the inputs/outputs,
Development of the application,
Static, unit and function tests.
Depending on their complexity, the available memory space and the power of the microcontrollers, the software can be architected as scheduled tasks with a real-time OS such as FreeRTOS, or more simply in bare-metal.

Firmware functionality can include
Acquisition of analogue and/or digital sensor data,
Control of various actuators,
Communication with the outside world (CAN, USB, IP, BLE, NFC, Wifi, …),
Management of more or less complex HMI (design of complex screens with the TOUCH GFX graphic library, audio, …),
Management of microcontroller standby modes for low power applications,
Management of a bootloader to update the firmware.
Software development can also be carried out on existing boards (evaluation board type) or supplied directly by the customer.

 

EMBEDDED LINUX

We also develop programs in embedded Linux according to your project needs:

• Yocto Project.
• Buildroot
• Multi-tasking system
• Xenomai