I want to share S32K144 bootloader example (based on AN12218SW : S32K148) using S32K144EVB
This example includes :
1. Bootloader interface : Tool to download User Application to S32K144 when running bootloader
2. Bootloader_b11 : Bootloader project
3. bootloader_app_b10 : User Application project
How to use :
I) Step 1 : to flash Bootloader (BootLoader_b10.elf) to S32K144 (through USB micro connector)
II) Step 2 : Bootloader will wait in 10 seconds for you click "download" user application 'bootloader_app_b10.srec' file through Serial_Bootloader_Interface.jar tool (Select Baudrate = 19200). If not, Bootloader will run forever in for-loop (user application is not downloaded into S32K144)
Note1 : After User Application is downloaded into S32K144, Bootloader will automatically jump to user application (RED LED and GREEN LED blink alternately)
Note2 : If you re-build User Application in User Application project, you need to modify a little srec file (bootloader_app_b10\Debug\bootloader_app_b10.srec)
Good luck .. ^_^
I have tried working with the bootloader code you shared. I am able to load the bootloader and the application software also working when the bootloader is in debugging mode. If i run it in normal mode, I am not able jump to application mode. I have attached the linker file of application and SREC file of app.
There are some more S32K1xx bootloader based on CAN as below links for your reference:
Hope it's helpful for you.
it is very interesting project for flashing S32K via CAN Bus.
Because I am not fluent in chinese.
i have a question regarding the work process.
If i connect several boards (same bootloader) into single can bus.
and then I use GY8507 flashing *.S19 file into this can bus.
what would be the outcome? should all hardwares get same update of *.S19 or Error ?
looking forwards to your reply.
@Narudol-T Hi Narudol,
This CAN bus based bootloader is designed for automotive applications, on a car, each ECU has its own dedicated function with a pre-dfined CAN message ID for it bootloader link-up, so it is impossible to connect several boards (same bootloader) into single can bus at the same time.
So I'd like to know how is your use case?
For your question, if connecting mulptiple boards with the same bootloader configuration to a single CAN bus, for my project, it should work as normal(all the boards will response with the same beat). While in a actual bootloader, a randon number will be sent by the ECU to secure communicate with the bootloader host, so they will not work as expected with bus conflict.
The application is Electric Vehicle.
Since normal operation will be 112SxP NMC Li-ion, it requires at least x8pcs of MC33771B board.
So, when when want to update the Battery Cell Controller (BCC) from outside though CAN Bus.
This bootloader will come very handy.
And, the Firmware of each BCC is basically same, only CAN ID shall be different.
In such above practice, what should be the best practice to handle it ?
Should we need to modify the Bootloader specificly to each BCC board or commonly used ?
Looking forward to your reply.
Thank you very much.
BTW, if there is any other flashing tool you may recommend besides GY8507?
For example, I have VECTOR, KVASER, and PCAN usb.
Could it being used for flashing *.S19 with any specific suggestion software ?
Looking forward to your reply.
Hello, thank you for sharing your code. I have some questions, please.
1. Is Your bootloader capable of updating the user application via a UART interface for example or not.
2. How can I make my change your application (bootloader 10) by my own application?
Thank you for sharing.
I would like to add the note. It is better to use some tools for SREC alignment for huge application projects.
The srec_cat tool can be used for this purpose: