Hello,
I'm trying to understand the mechanism of remapping on AT91SAM7 chips and it's concerned the ARM assembly language. Basically what I wish to perceive is the way C-startup is implemented. As far as I understand, it strongly depends on a board involved and purpose of the firmware.
But there are some common parts of startup code as well, for example the vector table: some examples I explored use "B .." instructions, while others do various variations of "LDR pc ...". To my understanding, the first one is doing _PC-relative_ jump, and "LDR pc, ..." populate PC with an _absolute_ address.
So when is is preferable to use the first method (via 'B' instructions) and whe the second one with absolute addresses? Are there any rules or common practises for that?
Thanks.
Best regards, Roman Mashak