Altera_Forum
Honored Contributor
19 years agoWarning when exception address is changed?
I'm working on a platform which will boot up RedBoot from flash (probably running in SDRAM using a ROMRAM startup model), and then RedBoot will load applications from flash and/or the network into SDRAM and start them.
The problem is that the default configuration seems to be for the exception address to be in flash. This seems like a singularly bad idea:[list][*]It needlessly couples application code to what's in flash. The exception handler would have to be shipped in flash as part of the bootloader, and there would have to be some global agreement between the bootloader and the application code about an exception vector table or something similar. [*]Although the bootloader is in flash along with the RedBoot bootloader, RedBoot doesn't actually use any exceptions or interrupts. Only the applications that are being loaded into RAM are going to use interrupts. [*]Flash is very slow compared to SDRAM, and we're currently running out of bus bandwidth during the execution of the exception handler in flash. [/list]Placing the exception handler in RAM makes a lot more sense: it runs about 4X faster and applications are decoupled from the bootloader because they can load their own exception handler if desired. We've tried to change the exception address from 0x00000020 (flash, just above the reset handler) to 0x08000000 (the start of SDRAM), but then we get this cryptic warning: <div class='quotetop'>QUOTE </div> --- Quote Start --- Changing the default reset address or exception address creates regions of unusable memory. Do not change the default address unless you are creating a system with multiple CPUs.[/b] --- Quote End --- I've absolutely no idea what that warning is supposed to mean. What "regions of unusable memory" are created by setting the exception address to the start of SDRAM?