Skip to content

Client:

 Automotive tier 1 supplier.

Industry:

Problem statement:

Our customer had to develop a LiDAR System for an ASAD application, on which we offered support in the area of BSP development for QNX. The entire development process had to follow ASPICE procedures, and the system was developed and tested in accordance to the guidelines from the QNX safety manual.

What we did:

  • Feature Item 1

    Lorem ipsum dolor sit amet, consectetur adipisi cing elit, sed do eiusmod tempor incididunt ut abore et dolore magna

  • Feature Item 2

    Lorem ipsum dolor sit amet, consectetur adipisi cing elit, sed do eiusmod tempor incididunt ut abore et dolore magna

  • Feature Item 2

    Lorem ipsum dolor sit amet, consectetur adipisi cing elit, sed do eiusmod tempor incididunt ut abore et dolore magna

How we did it:

During the time frame of the project (~ 6 months), our team of 3 embedded software developers, was involved in developing various drivers for QNX following the QNX safety manual guidelines.

Infrastructure Development

  • CI Infrastructure Development
  • Setup for Jenkins
  • Git repository setup
  • Uni testing framework integration
  • QNX VM integration
  • Static analysis tool integration
  • Cross-platform build for all the developed drivers/applications

DMA Driver Development

  • Support all IP features
  • System Memory Management Unit (SMMU) service configuration
  • Memory regions configurations
  • DMA transaction monitoring – system-wide, and means to read out this information for diagnosis proposes
  • DMA devices configurations for all devices that need DMA Ethernet, CSI2, I2C, SPI
  • Resource manager for DMA driver
  • Interrupt support

Ethernet Driver Development

  • Interfaces towards the QNX
    networking stack
  • Support EMAC0 and EMAC1 which all IP features
  • Media control 100|1000|2500
  • DMA transmit & receive
  • Interrupt control
  • PHY control API, interrupt handler,
  • Flow control
  • MAC address option
  • RGMII/SGMII option for PHY (Default is SGMII)
  • Error correction configuration, for all the error correction mechanisms supported by the Ip
  • Link monitoring and diagnosis, configuration, and corresponding interfaces toward networking stack
  • Tracing with three levels (INFO, DEBUG, ERROR)

I2C, xSPI, and TTC Driver Development

xSPI driver:

  • POSIX compliant interfaces towards the application: Open, Read, Write, devctl
  • Interfaces for performing the following operations on flash devices: Read, Write, Erase,
  • Suspend/resume the transfer, Sync, DMA support, Interrupt support
  • Tracing with three levels (INFO,
    DEBUG, ERROR)

I2C driver:

  • POSIX compliant interfaces towards the application: Open, Read, Write, devctl
  • Slave/master modes with various x-bit slave addressing depending on the application requirements
  • Mode selection
  • Error monitoring
  • Diagnosis interfaces
  • Interrupt support
  • DMA support
  • Tracing with three levels (INFO, DEBUG, ERROR

CSI Driver Development

  • POSIX compliant interfaces towards the application
  • Buffer control
  • Data format selection
  • Transfer start/stop
  • Monitoring / diagnosis
  • Error correction
  • DMA buffering for Tx operations
  • Interrupt support
  • Tracing with three levels (INFO, DEBUG, ERROR)

eMMC Driver Development

  • SDIO low-level driver which supports all IP features
  • QNX devb interfaces towards the file system for supporting the following operations:
    o Device attach/detach
    o Device statistics
    o eMMC partitions
    o eMMC volatile cache
    o Read / write
    o Erase/format SD device
    o Power management
    o DMA support, configurable channel
  • Tracing with three levels (INFO, DEBUG, ERROR)

Testing

  • Unit testing
  • Module testing
  • System testing

The timeline:

 sa imi scrii cativa pasi si durata lor si fac eu imagine.

The tools&technologies that we used:

  • QNX
  • C/C++
  • Jenkins
  • Docker
  • Build Systems – Make/Cmake

Results:

Our customer managed to make multiple successful deliveries to its OEM in which the relevant features were developed and tested according to the QNX safety manual and OEM specific requirements.

SEE more: