Jan 26, 2021
12:11 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 26, 2021
12:11 AM
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
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
Solved! Go to Solution.
1 Solution
Feb 01, 2021
10:34 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Feb 01, 2021
10:34 PM
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
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
2 Replies
Feb 01, 2021
10:34 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Feb 01, 2021
10:34 PM
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
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
Feb 05, 2021
01:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Feb 05, 2021
01:32 AM
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
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