System software

May your system software be crafted by the experts!

Embedded devices and software that supports them have been in RT-RK’s focus for a long time. Our engineers are passionate about this area, and approach it with veracity and meticulousness. The company offers system software concept, architecture and development for embedded devices of various architectures: MIPS, ARM, Texas Instruments, Intel, and STMicroelectronics.  

In the Linux kernel area, RT-RK provides various activities which include porting Linux kernel to new SoC and/or board. Also, device driver development together with porting/tuning is well known in RT-RK. Due to deep knowledge of real time software development RT-RK provides real-time adaptations and extensions. For example, RT-RK has provided the core kernel support for CI-20 MIPS development board.  

Furthermore, in the Real-time Operating Systems (RTOS) arena, RT-RK offers services of customization of 3rd party solutions (QNX, Nucleus, ThreadX), proprietary RTOS kernel solutions, and real-time software design and development. 

RT-RK is a pioneer of Android development, having roots in the early port of Android to big endian MIPS systems in 2010. Ever since that milestone, the company has been a close follower and contributor to Android Open-Source Project (AOSP). RT-RK can provide a customized version of Android for your embedded device. 

 

Domain knowledge

System software:

  • System software concept, design, architecture and development
  • Porting OS to new SoC and/or board
  • Device driver development together with porting/optimizations

Operating systems:

  • Linux, QNX, Nucleus, ThreadX, and proprietary RTOS
  • Programming languages: C, C++, assembler
  • Leading SoC vendors (ARM, Texas Instruments, Intel, MIPS)
  • Complete embedded product development with our HW experts
 

Operating systems and SoCs

Examples of our work

Rafael

Texas Instruments based ALPHA AMV (Automotive Machine Vision) load balancing demonstrator – multi SoC.

Key points:

  • Load balancing for video processing algorithms between TDA2x chips is available via PCIe. This solution enables optimal workload between TDA2SX SoCs
  • Processing logic coded for different processing units like ARM Cortex A15 processor, Arm Cortex M4 processor, DSP (C66), Embedded Vision Engine (EVE)
  • Modular pipeline video data processing implementation with Links&Chains TI framework processing video from 10 on-board cameras
  • Interprocessor (SoC) communication over PCIe and Ethernet

Read more in case study.

Grabber

Denso Video logger – synchronized logging of video from many cameras and CAN interfaces.

Key points:

  • Time synchronization between Linux and RTOS sides. Frame synchronization for cameras across multiple “daisy-chained” devices.
  • PCIe live data-forwarding from device to PC. PCIe switch configuration for RootComplex-to-RootComplex data transfer with NTP Linux driver.
  • PCIe optimization for write and read operations over DMA.
  • Linux driver for shared continuous memory management between Linux and RTOS.

Read more in case study.

OBLO

Texas Instruments TDA2P as a coprocessor for PC, PCIe based RAW to YUV converter.

Key points:

  • Provided an interface between TI TDA2P SoC EVM and Ubuntu based PC over PCIe bus, to record multiple YUV streams into a file on the PC after previously utilizing ISP conversion RAW->YUV on TDA2P side.
  • TDA2P SoC SW: micro Linux kernel running a PCIe driver, an interface between the SYS/BIOS RTOS and the Linux driver. Utilized Link&Chains framework to implement image processing pipeline. Integrated the RAW to YUV conversion on ISP block.
  • PC side: custom PCIe driver, application that sends RAW (Bayer), receives YUV to record on SSD

Read more in case study.

PM 300

Enabling interhost PCIe backbone communication.

Communication over PCIe is faster than Ethernet. Therefore, there is a need to enable interhost PCIe communication for different use cases such as video streaming or transferring sensor data between different hosts. Several other steps/technologies are involved in implementing such communication:

  • Switch configuration (NTBs, Memory Windows, etc.)
  • Porting and enabling NTRDMA data transfer on QNX
  • Designing/choosing appropriate APIs for user applications

Read more in case study.

More on the topic