Hi,
From my understanding of the CortexR4 on the TMS570, there is no real way to relocate the exception vector table during run-time to another location in flash. Is this correct? I read on another post that there is a V-bit in the CPU that would normally allow this, but the TMS570 would not be able to use this facility. In other words, will the CPU always reference this exception table at flash location zero?
B Reset
;undefEntry
B UndefinedException
;svcEntry
B SvcException
;prefetchEntry
B PrefetchException
;DataAbort
B DataException
;reservedEntry
B ReservedException
;IRQ
ldr pc,[pc,#-0x1b0]
;FIQ
ldr pc,[pc,#-0x1b0]
This does not pose a problem for the IRQ and FIQ, since those instructions reference the VIM registers which would have to be setup later in the application. However, for the other exceptions this causes an issue. I have a small bootloader program that is capable of jumping to two different applications that are located in separate flash areas. I would like for each application to have its own implementation of these exception handlers, but I don't see a way to do this at the moment without maybe adding some markers in RAM to steer the bootloader exceptions to the proper application exceptions.
Can someone confirm this and/or suggest alternatives?
Thanks,
Marco