Hello
I would like to make a bootloader to update the new user code into my LPC2148. This user firmware would be on SD card (Hex file).
My approach would be to write a program at the beginning of the flash memory which handle basic FAT functions. At each power-on, the bootloader is performed and check if a new firmware is needed to be loaded (with a system of ‘ID’ like firmware released information or something like that). If there is no new firmware, the system start the curent user code at a specific sector address (depending on bootloader size and few other stuff probably). The firmware is compiled to start at a defined sector address thus both programs are located in separate flash spaces.
My question is about vectors interrupt table. The vectoried IRQ and no-vectoried IRQ use the VIC so I think it’s not necessary to remappe the vectors in RAM. The bootloader and the firmware could init their VIC at the beginning of their execution to handle their ISR. However, the FIQ doesn’t use the VIC and point directly to the ISR. In this case, I understand we have to remap it in RAM otherwise the application code performs the FIQ ISR of the boot code…
If I don’t use FIQ, without remap the vectors, do you think my approach would work ? Do I misunderstand something ?
Thank you in advance,
Regards,
David