I have finished writing a boot loader that will update the second FLASH bank just fine. Now I need to make it work with either FLASH bank, so I figured out that would be easy! Same procedure as on the TMS320F2812, just load the updating and communication routines into RAM and execute from there. IT IS NOT WORKING!!! The linker creates something that it calls a "trampoline table". Apparently the addressing distance from the FLASH to the RAM is greater than can be handled in a single jump, so an intermediate address in the table is used to complete the RAM based calls. The table is in FLASH, so there goes the FLASH upgrade down the tubes! Any suggestions???
The second issue is that the CPU is refusing to execute code from RAM. I did specify the section as (RX), but that does not help. The first fetch attempt from RAM causes a prefetch failure interrupt. Do I need to reprogram the MMU here in some way to accommodate execution out of RAM???
I will be looking at the TI bootloader example next, but the comments are telling me that it is not capable of updating itself, only the other FLASH bank.