Home > Product-engineering > Automotive > Flash Bootloader solutions for ECU re-programming
Flash Bootloader solutions for ECU re-programming
What is Flash Bootloader Software? – An introduction
Flash Bootloader software, which is integrated with an automotive ECU (electronic control unit) application, facilitates the ECU re-programming and/or software update in an automotive ECU.
Integration of flash bootloader software eliminates the need for specialized hardware (like JTAG programmer) and physical removal of the ECU from the vehicle for ECU re-programming or application software update..
Flash Bootloader software design is completely independent of the ECU application (which needs to be updated or flashed).
Flash Bootloader development and integration services:
Hardware platform consulting for bootloader development projectRequirement gathering and application analysis workshops with our automotive expertsHardware platform evaluation and project roadmap strategyFlash Bootloader software development for 8 bits, 16 bits and 32 bits microcontroller platform as per the project requirements
ECU Re-programming tools development and end-of-line testing supportDesign and development of customized re-programming tool (PC/Web based)Expertise in development of GUI-based and Command line-based (for End-of-Line testing) ECU re-programming toolSupport for tools configuration and testing of standard ECU re-programming tools like PCAN, Vector, ValueCAN3 and more
Flash Bootloader development servicesBootloader sequence development as per the customer/project requirements (Jump to Boot, Erase App, Download App, Validate and Reset sequence)Memory mapping between the Flash Bootloader software and automotive ECU ApplicationCAPL Script or Bus Master Script development to support ECU re-programmingBase software development (Flash driver, MCU, Timer and more) in accordance with the bootloader software designFlash Bootloader software integration with the customer’s hardware platform
In-vehicle communication and application layer servicesFlash bootloader development support for CAN, LIN, UART, SPI, I2C communication protocolsSupport for bootloader development based on UDS, J1939, KWP 2000, J1587 protocolsCustom bootloader development for any proprietary communication protocol as per the customer’s requirement
Secure flash bootloader software access and data integrity servicesSeed and Key Algorithm implementation for secure and verified access to flash bootloader software for ECU re-programming or software updateChecksum strategy (like CRC16) implementation to ensure vehicle data integrity
FAQs about Flash Bootloader Software
Q. Is your Bootloader software compatible with all the vehicle communication protocols?
Ans. Yes, our designed Bootloader software is compatible with popularly used communication protocols (either wired/wireless).
Following is the indicative list of protocols which are compatible with our bootloader design:
Q. Do you provide customization for your bootloader sequence according to the application of your customer?
Ans. Yes. The reprogramming strategy can be customized according to your application specific requirements.
Q. Which program is executed first with the initiation of the system, the bootloader or the application?
Ans. The Bootloader code is executed first with the initiation of the system.
If there is a valid application present in the application block, then the control jumps from Boot to the application block.
Q. How to ensure that the reprogramming has been successfully completed?
Ans. While the reprogramming sequence executes, the hex byte gets flashed. After flashing of the entire hex byte, the bootloader will validate the flashed area by using the CRC algorithm.
Q. How can we re-program both the application and the bootloader module?
Ans. The application and the bootloader can both be re-programmed using two different programming sequences.
The primary bootloader is used for application re-programming and the secondary bootloader is used for bootloader re-programming.
Both the codes are stored in the program memory of the microcontroller.
Q. Can Embitel develop the front-end, PC Flash tool for re-programming?
Ans. Yes. We provide development services for thePC based application. The application development can be done either by using QT C++ scripting for window application or CAPL + CANoE scripting depending on the user specification.
Q. Which all type of Application level protocols does your bootloader supports?
Ans. Our Bootloader programming module supports different types of application-level protocol namely UDS, J1939 and KWP2000.
Q. Is your bootloader compatible with the non-RTOS platform?
Ans. Yes, our bootloader is compatible with both non-RTOS and RTOS based application platforms.
Q. Please share amount of memory utilized by your Bootloader software?
Ans. Embitel’s Bootloader solution ensures a low memory footprint for both ROM and RAM. The bootloader programming occupies the following space of memory block:
- 12 to 15 Kilo Bytes of ROM
- 2 to 3 Kilo Bytes of RAM
Q. Does Embitel provide the Detailed Design Documentation for the Bootloader?
Ans. After the requirement gathering and application analysis phase, the detailed design documentation is completed based on the customer’s inputs and requirements. This is part of our Service Level Agreement (SLA).
Q. Does Embitel provide post-production support and maintenance services?
Ans. Yes. As a part of our SLA, we provide a planned maintenance and support services depending upon the specific project requirements.
Features of Flash Bootloader software solution designed by our automotive engineers:
- Our proprietary Flash Bootloader software solution is compatible with all popular CPU architectures available in the market
- Low memory footprint (both ROM and RAM) of the automotive grade bootloader solution
- Leverage the benefits of the layered architecture of our flash bootloader solution
- Well-structured and well-defined documentations of the bootloader solution
- Expertise in development of both Primary and Secondary Flash Bootloader solution
Why partner with us for your Falsh Bootloader software development and integration project:
- Leverage our automotive domain expertise and project experience in Flash Bootloader solution development to reduce time-to-market and application development costs
- We are a CMMi Level 3 and ISO 9001:2008 & ISO 27001:2013 certified organization
- Robust project management processes based on EmbiQ – an engagement model. This model is built on three critical pillars – People, Process and Technology
Learn about the Generic Bootloader Software Architecture:
What are the different types of Bootloaders?
There are primarily two types of Bootloaders: –
- Primary or Single Bootloader (PBL): Primary Bootloader (PBL) is installed in the ROM and is the first block to execute on boot reset. The main function of the Primary Bootloader is to download the Secondary Bootloader in the RAM of the automotive ECU and activate the SBL.
- Secondary Bootloader (SBL): The Secondary Bootloader is used for reprogramming and/or software update of the automotive ECU application software.
The above mentioned software architecture of the Flash Bootloader ensures low memory footprint of the bootloader software.
- The Flash Bootloader is programmed in the EOL Station and is loaded on the microcontroller Flash memory (which stores both the bootloader software and ECU application software).
- If the applications are validated, the software control is moved to the automotive ECU application software. If not validated, then control of the software remains with the Bootloader.
- The Bootloader communicates with reprogramming tools through serial communication protocols (UART, LIN, SPI, CAN, Ethernet, etc.) and can reprogram the ECU application software.
- The Bootloader software also detects, reports, and manages errors like power failures, loss of communication, and Flash-write errors.
- Flash error protection is usually accomplished by storing a checksum or Cyclic Redundancy Code (CRC) for the ECU application.
Learn about the UDS-based Bootloader Software Architecture
- A secure way of reprogramming the ECU Application software can be achieved by using a UDS-based (Flash Bootloader software, which also contains diagnostics services).
- Multi-packet data is handled by the Transport layer using ISOTP modules. The services listed below are used in the UDS-based Bootloader software:
• Diagnostics Session Control
• ECU Reset
• Routine Control (Flash-Erase and Application Validation)
• Request Download
• Transfer Data
• Transfer Exit
• Clear DTC
Learn about the J9139-based Bootloader Architecture
- Secure reprogramming of the ECU Application software is also possible using the J1939-based Flash Bootloader software.
- It uses CAN communication protocol with a 250kbps rate. Multi-packet data will be handled by the Transport layer – J1939/21 – TP.
- The following layers are in the J1939 Bootloader software:
• J1939/21 – Datalink and TP
• J1939/81 – Network Management Layer
• J1939/71 – Application Layer
• J1939/73 – Diagnostic Layer (DM3, DM11, DM14, DM15, and DM16)