Other Parts Discussed in Thread: C2000WARE
Hello,
I could use some hints, ideas, suggestions. I'm writing a bootloader, that resides in the first flash sector and should accept a firmware over CAN and store it in the remaining sectors. The bootloader erases the flash sectors that are reserved for the firmware and then flashed the firmware with data coming from the CAN bus. This works quite well!
I build the software, using make (CMake) and load the resulting bootloader.out file with CSS and a XDS200 into the TMS320F28379Ds first CPU (all other CPUs are idle). I start the software and everything works fine.
When I now power down the hardware and power it up again, the software crashed with an illegal operation. So far, it seems that the crash steams from the returning of the function that contains calls to the F021 API (which resides in RAM). If I comment out the calls to the F021 API functions, the bootloader does not crash. When I single step through the code, the API calls are not crashing, but the returning from the RAM resided calling function back to the function in flash seems to be the problem. (Function is busy waiting for Fapi_checkFsmForReady() to return Fapi_Status_FsmReady).
To me it looks like, the loading of the bootloader.out file does have some required side effects that does not take place, when power reseting the software. I've tried to set a Range Avoidance Settings: 0x00-0x80000, 0x82000-0xffffffff to prevent the debug probe (XDS200) from writing to anything else beside the flash sector of the bootloader. But this doesn't changed anything.
Is there something, I could use to see the memory range the debug probe is writing to?
best regards,
Torsten
