We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi there,
I'm working on a bootloader that uses a hex file.
What does this row do?
:0400000508000131BD
It breaks up to these:
: Start code 04 Byte count: 4 0000 Address 05 Record type: Start Linear Address Record 08000131 <--- is this a start address? BD Checksum
Does it say the execution start (IP) address is 0x08000131? My main program range is from 0x08000000 to 0x0800261. Or should I discard the line altogether?
Thanks. -Mad D
Sorry, I had to break it into two posts...
I can see that the top-of-stack address is 0x200005D0 in the SRAM and the start address is 0x08000145, which is different from 0x08000131. Any idea why?
I have set the stack to 0x400 and heap to 0x400. Why is the top-of-stack 0x5D0?
Cheers.
-Mad D
The answer to both questions is "Why not?" Apparently, you have some expectations as to the resulting firmware image layout and the linker is not meeting your expectations. I have no idea where those expectations came from. They should come from the manual. You should familiarize yourself with the linking process. Read up on sections, regions, scatter files, etc:
http://www.keil.com/support/man/docs/armlink/