Software Development
Embedded software for NXP®-based platforms, from board support and drivers to security engineering and long-term maintenance.
Production-Ready Software for Your NXP® Platform
MicroSys develops the embedded software for miriac® modules, boards and customer-specific systems, so that your team can concentrate on the application instead of platform bring-up. Because hardware and software come from one source, drivers, firmware and board support fit together from the first boot.
Our services span the complete platform software, from Board Support Packages to security engineering. Security is built into the process rather than added at the end, and regular updates keep the software aligned with NXP and upstream releases. This supports your obligations under the Cyber Resilience Act throughout the product life cycle.
Board Support Packages
A Board Support Package (BSP) is the foundation of every Linux-based product: bootloader, kernel, device tree and root filesystem, matched to the hardware. We adapt the BSP provided by NXP to our SBC carrier boards or to your custom carrier, including memory configuration, interfaces and peripheral setup, and build it on the Yocto Project. After the initial release, we keep the BSP current by following NXP releases and upstream kernel updates, including security fixes, so that your platform does not fall behind.
Result: A documented, reproducible BSP with a tested boot image for your hardware, plus update releases over the agreed period.
Starting point: Our validated BSPs for miriac® SoMs and SBCs, which already include a bootloader and OS image for the evaluation carrier board.
Software Development Kits
An SDK allows your application developers to build, run and debug software for the target without maintaining a full Yocto build environment. SDKs are provided on request, in the form that fits your workflow: a cross-toolchain with a sysroot generated from your image, an extensible SDK for iterative development, or a containerized build environment for CI pipelines. Optional additions are IDE integration, remote debugging setup and example applications for the board interfaces.
Result: An installable SDK matched to your BSP version, with setup instructions, ready for your application team.
Starting point: The Yocto build of your BSP, from which the SDK is generated, so that libraries and headers always match the image on the device.
Drivers
Custom hardware needs software that makes it usable. We develop and adapt Linux drivers for your peripherals, such as sensors, displays, communication controllers, network switches and FPGA interfaces, and configure the platform accordingly, including device tree, pin multiplexing and SerDes configuration. Drivers follow kernel conventions, so they remain maintainable and can be carried across kernel updates. Latency and throughput requirements are considered in the design.
Result: Tested drivers and configuration integrated into the BSP, with documentation of interfaces and parameters.
Starting point: The mainline and NXP kernel drivers for the SoC, which we extend or adapt instead of rewriting wherever possible.
Firmware
Many systems combine an application processor with additional microcontrollers, for example for real-time control, power and supply management, or sensor and actuator interfaces. We develop firmware for the real-time cores of the SoC and for additional or customer-specific microcontrollers, including hardware abstraction, bus and protocol handling, and the communication link to Linux.
Result: Documented, versioned firmware with build environment, flashing procedure and a defined interface to the host software.
Starting point: The vendor SDKs of the target microcontroller or SoC real-time core, combined with proven communication mechanisms such as RPMsg/OpenAMP.
Middleware
Between drivers and application lies the software that makes a platform productive. We implement middleware such as interprocessor communication between SoC cores, hardware-accelerated AI inference using the SoC’s NPU or external accelerators, device and fleet management with remote configuration and monitoring, and application services such as data logging, protocol gateways and diagnostics. The goal is a clean interface between platform and application, so your developers can concentrate on what differentiates your product.
Result: Integrated, documented components with interface definitions and example code, ready for use by your application team.
Starting point: Our miricore© IPC solution for interprocessor communication and selected open-source components chosen for long-term maintainability.
Security Engineering
Connected products must be secure, and the Cyber Resilience Act makes this a regulatory requirement. Together with you, we perform a Threat and Risk Analysis (TARA) to identify the security measures your software needs. We then implement them: secure boot with a hardware root of trust, signed and rollback-protected over-the-air updates, Linux kernel hardening, and cryptography using the security hardware of the SoC. We also integrate security into your build process, with signing of artifacts, SBOM generation and automated vulnerability analysis (CVE checks).
Result: Hardened software with documented security architecture, signing and update infrastructure, and SBOM and vulnerability reports for each release.
Starting point: Our hardened BSP baseline, the Security Integration Guide for miriac® SoMs and the CRA Package with documentation, software and processes.
Our Development Approach
Steps to Excellence
- Project Management: Plan milestones, quality gates and risk mitigation.
- Requirements development: Elaborate, analyse and verify requirements, agreed jointly with you.
- Solution concept: Assure feasibility, select SoM, assess architecture and effort at start of project.
- Architecture and design: Create software architecture and design, test specification prepared in parallel.
- Implementation: Version-controlled development; every change is reviewed and built in a CI pipeline.
- Verification: Static code analysis, unit tests and integration tests, on target hardware where available.
- System and acceptance test: Test against system requirements with full traceability, followed by an acceptance test together with you.
- Release and maintenance: Release candidate with documentation and SBOM; vulnerability and incident management after delivery.
Standards and quality
Our development follows a structured, documented process based on the V-model, with requirements traced through to verification. Our quality management is certified according to ISO 9001:2015.
Our secure development lifecycle and our vulnerability and incident management are derived from the requirements of the Cyber Resilience Act. They are aligned with the EN 40000 series (currently in draft) and with IEC 62443-4-1.
We support the requirements for EMC, CE conformity and market-specific standards, and have realized projects in the regulatory environment of IEC 61508, DO-160 and EN 50155. We also support development in the context of automotive functional safety (ISO 26262) and machinery safety in industrial automation (ISO 13849). Many of our System-on-Modules are prepared for use in these environments.
Capabilities
Platforms and operating systems
We develop for NXP i.MX, S32, Layerscape® and QorIQ® processors. Embedded Linux based on the Yocto Project is our standard. On request, we provide hardware-related support for real-time operating systems such as FreeRTOS, Zephyr, VxWorks, QNX and OS-9.
Heterogeneous systems
Modern SoCs combine application cores with real-time cores. We design the cooperation between Linux and real-time software, including communication, resource partitioning and boot sequence.
Interfaces and networking
Our software support covers the interfaces described under Hardware Development, including Ethernet with TSN, automotive and Single Pair Ethernet with switch configuration, CAN FD, LIN, PCIe, USB, as well as display and camera interfaces.
AI and edge computing
We integrate inference on the SoC’s NPU and on external accelerators such as Hailo-8™ into your application, from model deployment to the runtime pipeline.
Build and automation
Reproducible Yocto builds, CI/CD pipelines and automated tests on target hardware ensure consistent quality across releases.
Security and compliance
Secure boot, encrypted storage, hardware-backed cryptography, signing, SBOM generation and vulnerability analysis form a continuous chain from build to update. Documentation for CRA compliance is produced on this basis.
Languages and tools
We develop in C and C++ for system and firmware software, and use Python for tooling and test automation.
Collaboration
How we work together
Projects can be scoped as fixed work packages, as development support on a time-and-material basis, or as a continuing maintenance agreement for BSP updates and security patches. Phased engagement based on mutually agreed project milestones is possible.
What we need from you
Access to the target hardware or its documentation, your customer requirements, and your preferred operating system and toolchain.
What you receive
Deliverables are agreed per project. Typically they include source code with build instructions, documentation, test results, release notes and the SBOM. Further documentation, such as CRA-specific documents, is available by agreement.
Start your project
Tell us about your application. The following information helps us with a first assessment: processor or module, state of the hardware, required operating system and interfaces, requirements and schedule.