About the customer:
Our customer is a reputed tier-1 supplier of automotive components and has been developing a series of innovative solutions for the industry. Our partnership with the customer has been a longstanding one with several collaborations. The customer has been a witness to our expertise in automotive software development and suite of ready solutions. It was one of the reasons we were brought on-board this project.
The fundamental requirement of the project was to develop and configure UDS based bootloader for ECU flashing over CAN. A UDS based bootloader was needed to transfer vehicle diagnostic related data to the ECUs. In order to achieve the desired output from the bootloader, the customer wanted the flash bootloader to be 2-level- Primary Bootloader and Secondary Bootloader.
Implementation of diagnostic services as per UDS protocol was one of the challenges faced by the customer. A team with relevant skill set and experience was also required to develop a flash bootloader equipped with the codes to achieve diagnostic communication.
Critical phases/requirements were identified during the multiple discussions our automotive team had with the customer’s team:
- Development of low-level drivers required for the Bootloader operation
- Base software development including flash manager and scheduler
- ECU communication stack- CAN and vehicle diagnostics stack implementation (UDS)
- Bootloader Development and configuration using V-Flash from Vector
- Implementation of algorithms including seed and key generation and data validation
After finalizing the project scope and the deliverables, our automotive team swung into action. The software architecture of the UDS based bootloader was sketched out with clearly defined components. As we had a few re-usable components such as UDS software and CAN protocol software, we focused our efforts on the development of the flash bootloader. As per the customer’s requirement, we deployed VFlash tool from Vector for ECU reprogramming and bootloader configuration.
- UDS based Flash bootloader
- Development of Primary and Secondary Bootloader
- Configuration of Bootloader using template created by V-Flash tool
- Development of bootloader programming application (P-Flash)
- D-Flash reprogramming
- Seed and Key generation algorithm development
- Bootloader security modules- SHA 256, CRC algorithm etc.
- Data validation support
- Integration of UDS protocol software to implement vehicle diagnostic services
- CAN protocol stack configuration as per DBC file
- Base software and low-level device driver development including scheduler, watchdog and flash manager
Our timely delivered solution reduced the time-to-market of the product by more than 6-8 weeks. We deployed some of our re-usable stacks such as CAN-IF, CAN NM and UDS protocol software to further reduce the development time. Configuration time was also considerably reduced due to our proprietary CAN and UDS configuration tool.
Tools and Technologies:
Vflash software from Vector: Bootloader configuration, parameterization
Vector Canoe- ECU Flashing tool
IDE and debugger: ATMEL and MP Lab X IDE from Microchip