Xmc1400 asl bsl mode details

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
Hi,

I have a processor in ASC BSL Mode(no timeout).
I have to change its BMI without using Memtool.
So I make a Windows application(Host) for this purpose. It talks in ASC BSL protocol and send a binary file(blinker: a simple led blink application) to the XMC.
(I am using a blinker to see if it works. Ultimetly I will end a BMI changer binary)
But the application I sent is not running. So I think there are 2 reasons for that.
1. I built my blinker application without changing the original linker script. So it is good for running in flash but not sram.
2. Even if my binary file would be built to run properly in ram, there is no start application command or something like that in ASC BSL mode. After the data transfer is complete, how am I suppose to run it?

Now I am investigating how to modify a linker script but it would be appreciated to find one for working a code in SRAM for XMC1400 in here. Because my time is so limited..
And secondly I have to understand how to run this application. I read reference manual and some examples but they didn't help.

Any additional information is more than welcome.
Bests,
İpek
0 Likes
1 Solution
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
Hello Ipek,

Posting answers here too for other viewers who searches this thread for answer.

1. I built my blinker application without changing the original linker script. So it is good for running in flash but not sram.

Kindly check the device guide. It has a section 4.3 Complete code execution from SRAM, with general instructions and sample code. If you are interested in a complete example,
please check the following source file.
It contains the example linker file in Bootstrap loader\DAVE4\XMC1x_ASCLoader\XMC1x_ASCLoader.ld for execution from SRAM.

2. Even if my binary file would be built to run properly in ram, there is no start application command or something like that in ASC BSL mode. After the data transfer is complete, how am I suppose to run it?

There is a step to change the BMI at the end of the flash update. You can incorporate that in you PC host tool. This makes use of on of the ROM firmware routines available , "Request BMI installation". This is sent through the serial
interface using the bl_send_header API in XMC1x_Load.cpp application implementation. You can refer the source code.

Best Regards,
Vasanth

View solution in original post

0 Likes
2 Replies
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
Hello Ipek,

Posting answers here too for other viewers who searches this thread for answer.

1. I built my blinker application without changing the original linker script. So it is good for running in flash but not sram.

Kindly check the device guide. It has a section 4.3 Complete code execution from SRAM, with general instructions and sample code. If you are interested in a complete example,
please check the following source file.
It contains the example linker file in Bootstrap loader\DAVE4\XMC1x_ASCLoader\XMC1x_ASCLoader.ld for execution from SRAM.

2. Even if my binary file would be built to run properly in ram, there is no start application command or something like that in ASC BSL mode. After the data transfer is complete, how am I suppose to run it?

There is a step to change the BMI at the end of the flash update. You can incorporate that in you PC host tool. This makes use of on of the ROM firmware routines available , "Request BMI installation". This is sent through the serial
interface using the bl_send_header API in XMC1x_Load.cpp application implementation. You can refer the source code.

Best Regards,
Vasanth
0 Likes
ipek
Level 4
Level 4
25 replies posted 10 replies posted 10 questions asked
Hi Vasanth,

If I would have an XMC1300, maybe every thing would be much easier 🙂
I reviewed that example you mention but this whole thing is for XMC1300. I am not able to build it for XMC1400 without dealing with every single line.
I would like to have a flasher application for XCM1400 and send messages to it to change the BMI.
But since there isnt one, and I dont need a whole flasher I just need a single BMI changing line of code to run in SRAM, I dont prefer to rewrite your XMC1300 example flasher according to XMC1400.
And even If I did, I am not able to run it because I dont have the propper linker script for "XMC1400" MCU
0 Likes