Forum Discussion
Altera_Forum
Honored Contributor
19 years agoFirst, thanks for responding to my question.
>>> What "regions of unusable memory" are created by setting the >>> exception address to the start of SDRAM? > > Take a look at the default linker command script -- the warning > is just a conservative warning And my question is a warning about what? > and from a practical point of view is really just a software > issue -- provided your reset address is elsewhere. The reset address is elsewhere. Is that what the warning is about -- overlapping reset and exception areas? Quartus thinks that the reset handler in flash at 0x00000000 is going to overlap the exception handler which is in SDRAM at 0x08000000? > If the warning bothers you just do as makasete suggests and set > it to whatever + 0000_0020. It only bothers me because I still don't understand what it is I'm being warned about. The warning states that changing the exception address will create regions of unusable memory. I have to change the exception address to be in SDRAM, and I sort of need to know what regions of memory are being made unusable by changing the default exception address. I also don't understand why having an exception handler at 0x08000000 causes the warning and having it at 0x08000020 does not cause the warning? Both are "changing the default reset address or exception address". > The first 0x20 bytes are just the first cache line following > the reset address -- and the only line that gets invalidated at > reset -- so that's where the linker scripts want to put the > startup code that invalidates the rest of the instruction > cache. Yes, I'm aware of that. I don't see what that has to do with the exception handler location. In all cases (the default location and both values we've changed it to) it's outside of the 0x20 byte region assigned to the reset handler. > Placing the exception address at +0x20 will help avoid any > software link-time issues when you're playing around with > different code models. I'm afraid I must be a bit dim today -- I don't understand that statement either. How will having the exception address at 0x08000000 cause any link-time issues that would be avoided by having it at 0x08000020? In neither case will the .exceptions section overlap the .entry section. I can see how you could make an argument for a warning if the exception handler overlapped with the reset handler (e.g. if the exception address was within the 0x20 byte block following the reset address), but that's not the case in the situation where we see the warning. That said, I think I probably will leave the exception address at 0x08000020 so that I can make the entry point for my application be the same as the beginning of RAM at 0x00800000. Having the application load address and the start address the same makes the system more consistent with previous products in the family.