Bootloader from CAN BUS to flash

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ipek
Level 4
Level 4
25 replies posted 10 replies posted 10 questions asked
I am new in this field and I have to write an application with a short deadline.
My application suppose to wait for a message from CAN bus;
if message received before timeout, my application shall get the program as hex (piece by piece of course) (with mdt maybe? ) and write it to flash.
If no message is received and timeout occurred, my application shall run the program that is loaded to flash previously.
I considered using CAN BSL but(correct me if I am wrong) it loads program to SRAM and runs from there too. Since I need my program to be flashed, CAN BSL is useless for me..
I need a suggestions maybe tips;
Can I configure CAN BSL mode ? If yes maybe I can modify it to load from to flash instead of SRAM ?
Or in CAN BSL mode, after data is loaded to SRAM maybe I can move it to flash ? But I am not sure how to do that..
Or maybe I can write all bootlaoder myself, a bootloader that listens can bus(I can do that) and loads program to flash (don't know how to).. And in that case won't use can bsl, which bsl mode shall I use?
You see I am a bit confused.. Please help 🙂

I use XMC1400 boot kit, I have latest versions of memtool, dave and segger j-link
0 Likes
4 Replies
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

I would recommend you openBLT, https://www.feaser.com/openblt/doku.php?id=homepage

Regards,
Jesus
0 Likes
User12373
Level 1
Level 1
OpenBLT bootloader developer here.

The OpenBLT bootloader has all the functionality you mentioned already build-in. After a reset the bootloader always runs first for a short (and configurable) amount of time. If a specific CAN message (XCP Connect Command)
is received within this amount of time, the firmware update continues and the newly programmed firmware is automatically started afterwards. If the CAN message is not received, the currently programmed firmware is started.

The download archive contains demo programs for the XMC1400 Boot Kit and the XMC4700 Relax Kit. Both are preconfigured for firmware updates via CAN, so you could use these demo programs as a starting point. You
can download OpenBLT from here. Additional information can be found in the FAQ.

With kind regards,

Frank
0 Likes
ipek
Level 4
Level 4
25 replies posted 10 replies posted 10 questions asked
Hello Frank,

I'd like to use OpenBLT but I have very limited time. In your website where you tell about CAN DEMO you said, "Select the CAN communication device that your PC uses to connect to the CAN bus."I don't have
CAN device to connect to the PC. I have only another XMC1400 boot kit. I can send the firmware with that only. If I will use OpenBLT I shall be interpreting and sending binary file of my firmware according to your protocol.
I don't know how do that..The nearest article in your FAQ is this : https://www.feaser.com/en/blog/?p=193 but host is a PC in here too.. Can you provide support about this problem ? Or shall I purchase commercial license ? But again I remind, I have 5 days left ....
0 Likes
User12373
Level 1
Level 1
Hello ipek,

If you are using the XMC1400 Boot Kit, you could just do firmware updates via RS232 instead of CAN. This is also already supported by the demo programs for the XMC1400 Boot Kit.

When you connect the XMC1400 Boot Kit to your PC, it shows up as a COM-port. This makes it possible for your PC to communicate via RS232 with your XMC1400 Boot Kit. The MicroBoot and BootCommander PC programs can then be used on your PC to start a firmware update on your XMC1400 Boot Kit. More details on how to do this can be found here.

In case you need to use CAN, then it is easiest to just purchase a CAN USB adapter such as the Peak PCANUSB or Kvaser Leaflight.

With kind regards,

Frank
0 Likes