XMC4700 Won’t Boot After Over The Air Flashing

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

cross mob
User22005
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

I have a DAVE project that I am trying to flash over the air. If I use a Segger debug probe from within the DAVE IDE to flash it, it boots and runs fine. If I power reset without the Segger debug probe attached, it also boots and runs fine. If I use the Infineon supplied XMCLoad over a serial port to flash it, it flashes without error, but won’t boot and run. The .hex file I am flashing using XMCLoad is from the debug build directory of the DAVE project.

I’m not sure if there is some setting in the DAVE IDE that I need to specify in order to get it to flash using XMCLoad correctly or if the problem lies elsewhere. Does anyone have any ideas?

0 Likes
1 Solution
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi,

I have found the issue. The problem is with the XMCLoad application. One bug in the application in the code prevents certain part of the hex file being programmed into the device.

Vasanth_0-1639051672303.png

 

Here in the attached file you can change line 807,

if (prev_address_type == false)  to  if (prev_address_type == true) 

Then the issue should be resolved at your end.

Best Regards,
Vasanth

View solution in original post

0 Likes
6 Replies
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi,

Are you getting any errors in the tool ? If you use any other simple hex file(LED blink or something simple) does the problem still exist ? Could you please share more details on how to recreate the issue.

Best Regards,
Vasanth

0 Likes
User22005
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

I take it from your response that you don’t think there are any project settings that are causing this problem?

I’m not sure which tool you are referring to, but I get no errors when I use the Segger from inside the DAVE IDE or XMCLoad. I also tried using JFashLite to flash the .hex file and that boots and runs fine as well. From what I can tell, if I flash using XMCLoad and then flash using the Segger from inside the DAVE IDE, the Segger doesn’t seem to do any erasing so I think when it compares the flash contents it doesn’t do any flashing because the contents are the same.

I’m not sure what something like JFashLite is doing over the Segger that is different than what I am doing over the serial line. The image in the flash seems to be the same either way.

I’ll have to look into Blinky to see if it uses an LED that we have available or to build it with an LED we do have available.

0 Likes
User22005
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

I modified Blinky to use an LED that I have available. I can flash it with XMCLoad and it will boot and run fine. So Blinky works and the DAVE project I am working on does not flash and run.

0 Likes
User22005
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

I tried flashing my project using XMCLoad. I then set up the DAVE debug launch configuration to “Connect to running target”. When I ran the debugger I got “No source available for "0x8000200". As you can see below in the Memory Configuration, 0x08000000 is FLASH_0_cached. The hex file specifies addresses in 0x0C000000, which is FLASH_0_uncached.

This project is from an Infineon sample project D2GL_SC_FMCW which is a Distance To Go 2 project. It’s a big project and I don’t know all the different things Infineon did to it. I haven’t modified any settings having to do with memory organization. I’m not sure what it is doing memory wise or where to look for for solutions for this problem. I’ll want to be able to flash and debug it using the Segger as well as flash it over the serial line using XMCLoad.

Any ideas on this?

 

Memory Configuration

Name Origin Length Attributes

FLASH_0_cached 0x08000000 0x00010000 xr

FLASH_0_uncached 0x0c000000 0x00010000 xr

FLASH_1_cached 0x08020000 0x001e0000 xr

FLASH_1_uncached 0x0c020000 0x001e0000 xr

PSRAM_1 0x1ffe8000 0x00018000 !xr

DSRAM_1_system 0x20000000 0x00020000 !xr

DSRAM_2_comm 0x20020000 0x00020000 !xr

SRAM_combined 0x1ffe8000 0x00058000 !xr

*default* 0x00000000 0xffffffff

0 Likes
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi,

I have found the issue. The problem is with the XMCLoad application. One bug in the application in the code prevents certain part of the hex file being programmed into the device.

Vasanth_0-1639051672303.png

 

Here in the attached file you can change line 807,

if (prev_address_type == false)  to  if (prev_address_type == true) 

Then the issue should be resolved at your end.

Best Regards,
Vasanth

0 Likes
User22005
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

I checked this out and it now works fine.  Thanks for the help.

0 Likes