I working on creating a bootloader and see that the standard appears to be to relocate (copy) the vector table before jumping into application code.
What about instead maintaining two copies of the vector table? In my case, I'd have a vector table with reset address and no interrupts for the bootloader and then a 2nd vector table with all my various interrupts for the application. The 2nd table is located immediatly before the application code and is over-written at the same time the bootloader is updating the application code.
I see the multiple table approach as booting slightly quicker and preserving more RAM since the 2nd table is stored in ROM. Can you think of any disadvantages? Is this a common thing that developers already do?