EmbeddedRelated.com
Forums

AT91SAM7: C-startup

Started by Roman Mashak June 23, 2008
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