Embitel

Embitel logo
Search
Close this search box.

Board Support Package For
Automotive Grade Microcontrollers

Platform Software For Automotive-Grade Microcontrollers
Equipped With Cybersecurity Features

Board Support Package: Providing Robust Foundation for Deploying Automotive Applications

Board support package (BSP) aka Platform Software forms the foundation of an automotive application. It needs to be reliable, secure, and most importantly, developed for the specific microcontroller. From low-level drivers and abstraction layers to communication and diagnostics, platform software has a comprehensive set of tasks to facilitate.

Embitel’s Board Support Package: Ready for Cybersecurity Applications

Embitel offers Board Support Package (BSP) solutions and reference designs for an array of automotive-grade microcontroller platforms (Freescale, Fujitsu, IAR and more) that are popularly deployed for automotive applications. Our Board Support Package is equipped with secure communication and secure diagnostics layer with state-of-the art cybersecurity modules such as crypto interface layer, and crypto drivers to name a few. The BSP also comprises safety module to address possible faults emerging from BSP modules.

Talk to our BSP development experts to get started with
your automotive project!

Board Support Package: Features and Use-cases

Success Story of Development and Integration of Our Board Support Package

Board Support Package: Cybersecurity Ready Platform Software

Powered by cybersecurity module (CSM), our board support package is ready to support automotive applications that require cybersecurity features.
Cybersecurity Ready Platform Software
The cybersecurity module enables unique access to basic cryptographic functions to all software modules. The CSM comprises crypto interface layer and software crypto driver.  
  • Crypto interface layer (Cry IF): The crypto interface layer provides a set of standardized cryptographic algorithms, such as AES, SHA, ECC, TLS, and MAC, which can be implemented by different automotive software components.
  • Crypto Driver: We implement crypto driver in 3 different ways- software based, hardware security module (HSM), third party cybersecurity library.
    • We implement security algorithms such as AES 128 RSA 1406 through software based crypto driver
    • If the hardware used in the project comes with HSM, we develop the required drivers
    • We can also interface any 3rd party cybersecurity library, if required
CSM is deployed for both diagnostics and communication.
  • Secure Communication: Data communication through CAN, Ethernet or other protocol, is secured by cybersecurity features built inside crypto IF layer and crypto drivers.
  • Secure Diagnostics: Secure diagnostics is enabled by utilizing UDS services 27 (secure communication) and 29 (authentication).

Know more about Board Support Package and BSP software integration and support services

Know more about Board Support Package and BSP software integration and support services

handbook

A Closer Look at BSP Platform Software Architecture

Software Architecture

Different modules of our Board Support Package:

Low Level Driver: It is a software module that directly accesses on-chip MCU peripheral modules that are mapped to memory. As a result, it makes the upper software layer independent of the MCU.

Hardware Abstraction Layer: It is the layer between Low level Driver and the upper layer. A hardware abstraction layer (HAL) implements a reusable hardware interface in software. HAL is fully reusable and does not need rewriting when ported to new hardware.

Data Abstraction Layer: It is the layer between HAL and the Application layer. DAL coverts raw data into Physical Data which is received from either Low-level Driver or HAL Layer.

Device drivers: These are software components for external peripherals like EEPROM,SBC etc. They enable the external hardware module by either SPI, I2C or some other communication medium.

Safety Modules: These built-in modules supervise the MCU system and report instances of malfunction to upper layers.

Communication Stack: The layer is responsible for providing signal level access to the application layer. It packs the signals for the transmission and unpacks the received messages.

Diagnostic Stack: This layer comprises diagnostic protocols such as UDS, OBD, DoIP, J1939 etc.

Cybersecurity Module: The module is equipped with crypto interface layer and crypto driver to support applications that require cybersecurity compliance.

Integration of our BSP software is hassle free as:

Ready-to-Deploy Board Support Packages for Automotive Grade MCU Platforms

We offer ready-to-deploy Platform Software reference design solutions for all the popular hardware platforms. Leverage the pre-tested and production grade BSP reference design to reduce product development cost and time-to-market.

Following is the comprehensive list of MCU platforms for which we provide ready-to-deploy platform software:

Infineon Microcontroller
  • Aurix TC3xx series
  • TLE98xx Series
Texas Instrument
  • TMS320
  • TMS320F28379d
NXP
  • MPC57xx
  • S32K14x
  • KEAZ128
  • KEAZ64
Cypress Semiconductor
  • Cypress PsoC series
Renesas
  • RH850
  • V80
  • RL78/F13
  • RL78/F14
  • RL78/F15
ST Micro
  • STM32Fxx
  • SPC58xx
Fujitsu
  • F2MC-16FX
Atmel Micro
  • ATSAMHA1G16A
  • SAMV70
Microchip
  • PIC16F series
  • DsPIC30F Series
  • DsPIC40F Series
Silabs
  • SLWSTK6102AA
Action Item ISO 26262 Compliant Dev. Traditional Software Dev.
Requirements Related to Functional Safety A Technical Safety Requirement (TSR) document is prepared along with the Functional software requirement Only functional requirement document is required
Safety Analyses Safety analyses (FMEA & DFA) are performed to understand failure modes and their impact No such safety analyses are performed as functional safety aspect is not considered
Architecture and Unit Design UML based design using tools like Rhapsody & Ascet Design can be created on Word/Excel
Tools ISO 26262 qualified tools are required for development and testing Regular IDEs and Testing tools are required.

Software & Hardware Design services for Motor Control Electronic Systems

Device Driver Development

 Device Driver Development


  • Robust device drivers development is an essential part of BSP development. These drives support the different peripherals of the hardware including USB, GPS, touchscreen and more.
  • These low-level drivers allows the OS Kernel to communicate with the hardware’s component like internal/external buses, CPU and memory.

Porting and Migration Services

 Porting and Migration Services


  • We offer support for Android BSP Porting and Linux BSP Porting to custom hardware platform
  • Complete integration of BSP with your target hardware and OS is provided. Unit testing, functional testing and integration testing is performed to ensure bug-free code.
  • BSP development, customization, application specific configurations and hardware-specific foot-print optimizations, bootloader specific configurations are carried out efficiently.

Hardware Abstraction Layer

 Hardware Abstraction Layer (HAL) Libraries Development


  • The HAL includes all the routines that are required for hardware initialization, interrupt handling, hardware timer and clock and memory management.
  • Implement Seed and Key algorithm for security access
  • Additional device drivers and other services can be added to this library to support any custom hardware requirements.

Service and Safety Layer Services

 Service and Safety Layer Services


  • Diagnostics Module: Development and integration of automotive diagnostic software stacks (UDS/J1939/KWP2000/OBD II). Support for development and integration of custom-built diagnostic stack, as per your business requirements.
  • Safety Module Development: Support for development and integration of following safety module to safe-guard system from run-time errors:
    • RAM Corruption Test
    • ROM Corruption Test
    • CPU Overload Test
    • Stack Overflow Test
    • Program Flow Test
  • ECU State Manager: An ECU State Manager software module is designed to periodically check the current state of the ECU.
    The integrated ECU State Manager, periodically fetches value from the lower layers (HAL and Low-level Device Drivers) to identify if the system is in one of the following modes:
    • Init mode
    • Run mode
    • Fault mode
    • Prepare to sleep mode
    • Sleep mode
  • FCM (Fault Code Memory): FCM module is also integrated in order to store data regarding active faults, in-active faults and freeze frame data for future analysis and diagnostics of the system.
    This is a robust module designed to transfer fault code memory data between Non-Volatile Memory (NVM)/ROM and RAM based on the current state of the system

FAQs: Board Support Package (BSP) Development

Your automotive software & hardware teams have hands-on experience with which microcontrollers for BSP development.
Ans. Our Automotive software and hardware teams have partnered with global customers for development of Board Support Package (BSP) based on following hardware platforms:
  • Renesas ( RL 78, RH 850)
  • Freescale( S12G128, MPC56XX)
  • Fujitsu, Texas, Atmel, STMicroelectronics and Cypress semiconductor.
What is our business engagement model for BSP software development?

Ans: We partner with our automotive customers under a one-time licensing fee model.

Under this model, our customer gets access to the entire source code of the Board Support Package (BSP). Customer also owns the IP rights of the BSP software.

 

Such a model delivers an added advantage of reuse of the BSP software modules across multiple projects (multiple platforms and/or for multiple application software).

 

P.S: When you partner with us for BSP Development, we also share the static files ;viz; cfg.c and cfg.h files. This enables your team to manage the system configuration and re-use of the source code for different projects.

What programming language is used for development of BSP software? Is your code compliant with any global standard?

Ans: Our team has in-depth expertise in Embedded C software programming language for BSP development.

 

Our BSP code is compliant with 2012 MISRA C standard.

If we have a custom-developed or third party software component, can it be ported with your existing architecture without any compatibility issues?

Ans: Yes, we ensure seamless portability of your software component module to our existing software architecture with the help of our API ( Application Programming Interfaces) based design.

 

Here at Embitel, we don’t follow a coding practice that is based on global variables. Rather, we follow an API based and a layered architecture design for BSP development. This ensures that any customization or addition/removal of a software module doesn’t require major changes in the source code of that module.

 

All the software modules in different layers of the BSP, communicate via APIs’ . This makes it easy for us to port your software components to our software architecture without causing any compatibility issues.

Do you provide support for both Real time Operating Systems ( RTOS) and non-RTOS systems?
Ans: Yes, we have experienced engineering professionals who can work on both RTOS (Real time Operating Systems) and Non-RTOS based applications by following API based architecture for application programming.
What tool-chains does your team expertise in for BSP development?
Ans: At Embitel Technologies, we have deployed the following tool-chains for BSP development across different projects:  
  • Softune IDE: An Integrated Development Environment, Softtune is useful in developing, emulating and debugging an embedded application. The IDE is primarily used for the FR family of Fujitsu Microcontrollers.
  • IAR: is an embedded workbench that is primarily used for RENESAS microcontroller. It includes the IAR C/C++ compiler and debugger.
  • Greenhills: Multi IDE from Greenhills Software is used for developing BSP for PowerPC. Our automotive team has years of experience in the development and customization of BSP for PowerPC.
  • CodeWarrior: CodeWarrior is one of the most widely used IDEs (integrated development environment) for embedded systems. It is used for editing, compiling and debugging software program for a wide range of microcontroller families, primarily the FreeScale.
Ans: Yes. We offer the following documentation and testing services:  
  • Low Level Design Documentation
  • API Documentation for software components
  • Module Level Test Plan and Report: In order to ensure the quality of the application being developed, we perform unit testing, functional testing, and integration testing during the product development lifecycle. These tests are executed based on a test case plan and a report is generated once the tests are performed.
    1. Functional Testing & User Acceptance Testing: If we are involved in the development for the application software, we perform the functional testing and user acceptance testing.
    2. Manual testing: Manual testing is done for low level drivers
    3. Unit testing/ Script Testing: The unit testing is done through the Check C framework. A script testing helps in ensuring a Modified condition/Decision coverage.
    4. Integration Testing: If the application being developed has any additional software component, as per the user’s requirement, then an integration testing of the software modules is performed.

Software & Hardware Design services for Motor Control Electronic Systems

Softune IDE

Softtune is an Integrated Development Environment to develop programs for FR family of Fujitsu Microcontrollers. This IDE takes care of all the development, emulation and debugging needs.

CodeWarrior

One of the most widely used tool in embedded systems, CodeWarrior is an integrated development environment that is used to write, compile and debug a program for several microcontroller families, most primarily FreeScale.

IAR

It is a workbench that is primarily used for RENESAS microcontroller. Their association with each other is quite old and strong.

Greenhills

Multi IDE from Greenhills Software is essentially used for developing BSP for PowerPC and our automotive team hasin-depth expertise in development and customization of BSP for PowerPC.

Industry Experience

Knowledge bytes

Board Support Package, abbreviated as BSP, is the set of software codes (for low-level drivers and hardware abstraction layer) which are essential to facilitate robust boot process of a microcontroller.

It does not include any software other than what is necessary for the desired functioning of the peripherals of the System-on-Chip (SoC).

As BSP is the first software code to be developed for a SoC, it also consists of the bootloader software that will load the applications in the OS memory. The board support package is also designed as per the unique specifications of a particular hardware platform and is not dependent on the OS (Operating System). With respect to the automotive embedded systems, the BSP can have varying number of CAN, PWM and ADC channels.

The primary function of Board Support Package is to facilitate the communication between the hardware (microcontroller) and the application software. To enable this, the BSP has

  • Low-level Drivers– Vehicle network drivers (CAN, LIN etc), Analog to digital converters and more.
  • Hardware Abstraction Layer– I/O handler, Pulse Width Modulation handler, communication control and more.
  • Service and Safety layers– RAM, State Manager, Fault Code Memory and Diagnostics stacks (like UDS, OBD2)
  • Scheduler and Flash Bootloader

In an automotive ECU, the peripherals on the SOC have to interact with the OS or the Scheduler (depending on the use case). These peripherals may include USB, GPS, touchscreen and more.

Communication between the OS kernel and the hardware component like system Bus and Memory is also taken care by the Board Support Package.

Modules to check the ECU state, memory management and fault code memory (FCM) are all handled by BSP software.
BSP may support additional functions as well depending on the use cases and applications.

Scroll to Top