Part Number: TMS320F28379D
Dear team:
Background: We customized a bootloader which always runs when power up. Besides, in our application code, we can also jump into the bootloader with a USB command.
In the bootloader we did several tests:
1) Flash the app code and jump into app, this will work with no problem.
2) If we flash the code repeatedly (more than once), the code can still be flash and the jump can success. But in app, all the interrupt cannot work.
In the .CMD file, the application code memory BEGIN is allocated at the begin of FLASH E. And we simply jump to this address after the bootloader.
Is it ok to jump to the beginning of application code directly? Did we miss any initialization procedure which caused the problem? If we missed something, why we the code works normally if we only flash once?
We hope to solve this problem just in case users accidently flash the MCU twice, and the code cannot work normally, which will cause unpredictable problem.
------------------------------------------------------------------------------------------------
And in fact you have already given me some advice:
"Fourth, it is fine to jump straight to the application code. But what do you mean by the application code? Are you jumping to BEGIN which contains code_start and then performs a LB to _c_int00? You need to make sure _c_int00 is being executed before branching to main() of the flash application. This performs the C initialization code."
This is exactly what we did, we are jumping to BEGIN which contains code_start and a LB to c_int00 operation.
And we noticed in this post, you suggest not to jump to c_int00 but the entrypoint like the example code did.
e2e.ti.com/.../1530413 c_int00#1530413
My question is:
1) Does the code in the entrypoint contains a c_int00? Or in other word, is the entrypoint address equals to BEGIN address?
2) Is it OK to execute c_int00 twice (once before bootloader and once before application code)? Did this caused the error?
