AR# 36497: 12.1 EDK - Bootloader Fails to Load User Application if it Contains an Interrupt Routine
12.1 EDK - Bootloader Fails to Load User Application if it Contains an Interrupt Routine
When my bootloader contains an interrupt routine, the execution halts in a MicroBlaze embedded processor design.
This occurs because the MicroBlaze embedded processor has a fixed interrupt vector address, so, when the user application is bootloaded from Flash to DRAM, it overwrites thebootloader's vector address with the user application interrupt vector, which then corrupts thebootloader.
The solutionis to modify the bootloader to copy the vectors at the end, or to convertELF into binary and move the vectors section to the end of the binary file.