My customer does not use the FlashA area, and puts the BEGIN segment and the bootloader code in the FlashB area. The code does not run after the device is powered on again. What is the reason?
--
Thanks & Regards
Yale
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
My customer does not use the FlashA area, and puts the BEGIN segment and the bootloader code in the FlashB area. The code does not run after the device is powered on again. What is the reason?
--
Thanks & Regards
Yale
What is the reason?
There was a clue in the linker script line that was removed: "Used for "boot to Flash" bootloader mode."
Unfortunately BEGIN must remain where it is because this address is hard-coded in the silicon. It performs the function highlighted below in the manual
The application code can be moved to FLASHB but BEGIN must remain in 0x3F7FF6.
Thanks Kier.
1. If I put the bootloader code written by myself into area B, BEGIN remains at 0x3f7ff6. So can I not erase the FlashA area when upgrading the code?
2. If I do not erase the FlashA area when using JTAG to upgrade, will it avoid the situation that the DSC is locked due to the interruption of programming due to power interference during the upgrade process?
1. If I put the bootloader code written by myself into area B, BEGIN remains at 0x3f7ff6. So can I not erase the FlashA area when upgrading the code?
Yes you can erase Flash A but you must reserve and flash program 0x3F766 and 0x3F767 with the branch instruction and address of your code, wherever that may be, before resetting your device. The branch instruction at 0x3F766 is just a sign post pointing to anywhere but the sign post cannot be moved.
2. If I do not erase the FlashA area when using JTAG to upgrade, will it avoid the situation that the DSC is locked due to the interruption of programming due to power interference during the upgrade process?
Sorry, I do not know the answer.
2. If I do not erase the FlashA area when using JTAG to upgrade, will it avoid the situation that the DSC is locked due to the interruption of programming due to power interference during the upgrade process?
Yes, Sector A does contain the CSM passwords, avoiding erase/program of this sector will safeguard against any accidental corruption/lock of those locations.
If we are looking for best containment of that possibility I would also advise to stay out of Sector H as well if possible. While there are no CSM passwords there, the topology of the flash is such that Sector H acts as a balanced sector to Sector A.
Finally, there will not be issues as long as there is no interruption of the flashing process of these sectors, this is more a extra safe step in case there could be a power fault or interruption during flash programming.
Best,
Matthew