
Industry solutions


Our team of experts has deep expertise in implementing Board Support Packages for the QNX operating system. We are addressing all platform-specific details, such as bootloaders, IPL, devices drivers/resource managers, root file system configuration as well as all required optimizations such that QNX can boot and run successfully on a custom embedded platform.
We address all aspects of a custom Board Support Package for Embedded Systems, from the development and integration of custom bootloaders up to the device drivers development and integration of middleware libraries and tools relevant to application development. As a result, our customers can completely concentrate on the development of their custom application which is the true added value of their product.
Moreover, we are supporting our customers not just with complete BSP solutions, but also with partial solutions. That could involve both development of various sub-components and support for the application developers.
We develop bootloaders from scratch or integrate existing ones onto custom embedded platforms such that QNX can boot and update itself according to strict application requirements. Our team uses state of art proprietary and open-source tools for implementing, testing, and profiling all aspects related to the bootloaders on an embedded platform.
We implement and customize the Initial Program Loader – IPL of the QNX operating system by implementing all the required low-level descriptions of the hardware platform as well as making the low-level configurations of the CPUs and various peripheral and internal interfaces.
Using well known technologies provided by QNX toolchain, our team of engineers implements complete root filesystems which include all tools, software stacks and libraries required for the successful development and deployment of a custom embedded application.
Our team takes care of all aspects related to low level testing of an embedded hardware platform, by performing all required debugging and testing activities for bringing the board to boot up successfully, such that the systems achieves readiness for further development.
We address all aspects related to the memory layout of the system, by defining the partitioning concept and implementing it such that all safety and functional requirements are met, thus defining safety partitions, configuring MPUs, implementing linked scripts etc. such that the whole software stack can relay on a robust memory layout.
Using well known technologies provided by QNX toolchain, our team of engineers implements complete root filesystems which include all tools, software stacks and libraries required for the successful development and deployment of a custom embedded application.
By implementing reliable and scalable build systems for custom RTOS Board Support Packages, we ensure that the developed BSPs provide the flexibility required for adapting to new specific application needs as well as ease of use during the development process. Our team employs well-established open source technologies such as Make and CMake, Docker, etc. for implementing modern build systems that package together all components required for the development and maintenance of embedded systems as well as bringing the required compatibility with the QNX make build system.
We optimize the implemented software components of the BSP, in an iterative process, by making use of hardware support, such as accelerators or MPU, when available, as well as setting up toolchains for profiling the system with respect to various parameters, such as run time, memory footprint, CPU load balancing, memory leakage etc. At the end of this process we deliver a BSP which is fully optimized for a custom embedded platform and the supporting infrastructure for further development and profiling.
We are implementing all the software components required for initializing and configuring various functionalities of the SoC, such as system timers, RAM and Flash interfaces, boot modes, etc. such that the system can boot up the given QNX operating system from internal or external memories and provide to it all low-level initializations that it needs for successfully managing all required internal and external hardware devices.
In the iterative process of optimizing the system according to strict application needs we employ various techniques that involve the optimization of various components with respect to their memory footprint and load time at statup, by optimizing their actual implementation and delegating their start at the right time in the boot sequence such that the system is fully booted up in an optimal time.
Architecture | Silicon Vendor | SoC Name | Processor |
---|---|---|---|
ARM | NXP | IMX6 | Cortex A9 |
ARM | NXP | IMX7 | Cortex A7 |
ARM | NXP | IMX8 | Cortex A72, A53 |
ARM | NXP | QorIQ P1 | AMC |
ARM | NXP | QorIQ P2 | AMC |
ARM | NXP | QorIQ P3 | AMC |
ARM | NXP | QorIQ P4 | AMC |
ARM | NXP | QorIQ P5 | AMC |
ARM | Renesans | V3H | Cortex A53 |
ARM | Renesans | V3M | Cortex A53, A57 |
ARM | Renesans | H3 | Cortex A53, A57 |
ARM | Renesas | M3 | Cortex A53, A57 |
ARM | Renesas | D3 | Cortex A53, A57 |
ARM | Renesas | iWave RZ/G1H | Renesas RZ/G1H |
FPGA / ARM | Xilinx | ZCU 102 | Cortex 53 |
FPGA / ARM | Xilinx | ZCU 104 | Cortex 53 |
FPGA / ARM | Xilinx | ZCU 106 | Cortex 53 |
ARM | Texas Instruments | OMAP5430 | Cortex A15 |
ARM | Texas Instruments | OMAP5432 | Cortex A15 |
ARM | Atmel | ATSAMA5027 | Cortex A5 |
ARM | NXP | MPX-S32G274A | Cortex A53 |
ARM | Broadcom | Raspberry Pi 4 Model B | Cortex A72 |
ARM | NXP | S32G | Cortex A53 |
ARM | Qualcomm | SA8155 | Snapdragon SA8155P |
ARM | Texas Instruments | Jacinto 7 J721E | Cortex A72 |
ARM | Texas Instruments | Sitara AM572x | Cortex A15 |
ARM | NVIDIA | DRIVE AGX Pegasus | Xavier |
ARM | NVIDIA | DRIVE AGX Xavier | Xavier |
ARM | NVIDIA | DRIVE PX 2 | Parker |
ARM | NXP | SCM120-120-EVK SMARC | Cortex A9 |
ARM | NXP | Boundary Devices BD-SL | Cortex A9 |
ARM | NXP | IMX7 | Cortex A7 |
ARM | NXP | QorIQ LS10xxx | Cortex A53 |
ARM | Qualcomm | S820Am | Qualcomm Kryo |
ARM | Qualcomm | SA8155 | Qualcomm Kryo |
ARM | Samsung | Exynos 8 | Exynos 8 |
ARM | Telechips | TCC803x | Cortex A53, A7 |
ARM | Texas Instruments | Beagleboard X-15 | Cortex A15 |
ARM | Texas Instruments | AM437x | Cortex A9 |
ARM | Texas Instruments | AM572x | Cortex A15 |
ARM | Texas Instruments | Jacinto 6 | Cortex A15 |