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.
Hi all,
we're developing a bootloader using ethernet communication. So far we managed to erase, program and jump to the application.
The problem is: during the application execution only background functionsare executed while the ones inside the timer interrupt aren't.
The bootloader resides in flash from 0x0000 to 0x7FFF. the application resides from 0x8000.
We remapped the application vector table to 0x8000 and tried to follow the instructions at this link:
Interrupt exception vector handling with bootlaoder - Arm-based microcontrollers forum - Arm-based microcontrollers...
So now in the bootloader project we have:
resetEntry b _c_int00 undefEntry b #0x7FF8 ;undefEntry svcEntry b #0x7FF8; svcEntry prefetchEntry b #0x7FF8;prefetchEntry dataEntry b #0x7FF8; dataEntry b #0x7FF8; phantomInterrupt ldr pc,[pc,#-0x1b0] ldr pc,[pc,#-0x1b0]
Besides we enabled the IRQ Handling via VIC Controller.
Still no changes.
Any suggestion?
Thanks
Valentina
Hello Mr Wang,
thank you for your attention.
I do have "_enable_IRQ_interrupt()" inside my application code and the RTI interrupt notification enabled. As a matter of fact running the application code without the bootloader the timer interrupt works as the other interrupts.
I guess I'm missing something in remapping interrupt vector table using the bootloader.
Thanks
Best regards
Valentina
To use the interrupt in application, the interrupt vector table of the bootloader, and the cmd file of the application should be modified as below:
1. cmd file of the application
VECTORS (X) : origin=0x0000xxxx (application start address) length=0x00000020
2. interrupt vector table in bootloader
b _c_int00 ;0x00
b #0xxxxx (application start address - 0x08)
b #0xxxxx (application start address - 0x08) ;Software interrupt
b #0xxxxx (application start address - 0x08) ;Abort (prefetch)
b #0xxxxx (application start address - 0x08) ;Abort (data)
reservedEntry
b reservedEntry
ldr pc,[pc, #-0x1b0] ;0x18
ldr pc,[pc, #-0x1b0] ;0x1C