Application does not start on a target board after the Program Flash memory was erased

12-Nov-2024

During the execution of the erase memory command, it is likely that the Boot Mode Header (BMHD) was also cleared. This is the case for TriCore 2xx devices where the Boot ROM is part of the Program Memory Unit. For TriCore 3xx devices, the Boot ROM is located in another part of the memory and will remain untouched when you clear the Program Memory.

Normally, the Boot Mode Header on a target board is initialized by factory default to run the target standalone. When you flash an application using our debugger without any Boot Mode Header configuration, you can disconnect the target board from the debug system and after a reset, the application will start just as it went in the debugger. However, if the Program Memory was erased, the Boot Mode Header may be unavailable and your application does not run standalone on the target board.


Possible solution

To solve this problem, you need to initialize a Boot Mode Header for your target.

Initializing a Boot Mode Header for your target must be done with caution, as incorrect usage of the Boot Mode Headers could potentially brick the device. Therefore, it is advised to first read the chapter 4. TC29x BootROM Content in the AURIX™ TC29x B-Step User's Manual, or a similar chapter in the user's manual for other devices. Also read sections 7.9.14 Boot Mode Headers, and section 9.7.1. Boot Mode Headers in the TriCore User Guide.

To initialize the Boot Mode Header using Eclipse:

1. From the Project menu, select Properties | C/C++ Build | Memory, and open the Boot Mode Headers tab.

2. In Boot Mode Header 0, from the Boot Mode Header configuration, select Generate Boot Mode Header.



3. Leave the other default settings untouched and select OK.

This will initialize the Boot Mode Header to allow for standalone execution of the target.


More resources

Was this answer helpful?