I see that in an S record that an "S9" record/line is supposed to describe a starting execution address. But when I decode that line, the address is nowhere near that actual starting address of the firmware. It seems simple to understand; am I missing something?
Solved! Go to Solution.
Hi,
What tool did you use to generate the S19 file (I assume the GNU objcopy)?
The address can be omitted (or set to zero) depending on the tool which generates it. But the GNU objcopy should set it to the start address which is usually the reset vector:
I hope this helps,
Erich
You can see my incorrect thinking in my post: "...starting address of the firmware." My S record file starts its firmware bytes at 0x8000 (vector table, constants, etc.), but the actual beginning of the executable part of the program (the reset vector) IS correctly defined by the S9 record/line. Now it makes sense. Thank you for helping me think through it, Erich.
Hi,
What tool did you use to generate the S19 file (I assume the GNU objcopy)?
The address can be omitted (or set to zero) depending on the tool which generates it. But the GNU objcopy should set it to the start address which is usually the reset vector:
I hope this helps,
Erich