We have written a bootloader that occupies the 0x000000 - 0x0FFFFF in flash memory and a application that occupies 0x100000 - 0x1FFFFF.
When the bootloader runs, it checks to see if the application is in flash. If not, it will copy the application from external eMMC and flash it. The unit then reboots and the bootloader launches the new application.
Everything is working as expected however, when we moved the application to location 0x06000 - 0x1FFFFF, the flash erase function no longer works while trying to erase the first sector. While debugging, the MCU appears to restart.
We are using KDS 2.0.
What could be wrong?
已解决! 转到解答。
Did you disable all interrupts or move the active interrupts executable and remap the vectors to RAM? Interrupts must not jump to a flash bank code when you're trying to flash it.