I am trying to create a boot program and I have gotten quite far. But now, I’m at an impasse. The below stackoverflow post should catch you up to speed. but if you would rather not. I’ll describe where I am.
I have the gnu gcc toolchain.
It appears the design doc for the boot program indicates that the boot sector starts at 0x20000000 and runs to 0x20400000 before the first user code is executed.
So my questions are as follows.
- How do you recommend I flash my program onto the device?
- 0x20400000 indicates 516mb. Isn’t there only 512 mb on this device?
- 0x20000000 indicates 512mb. Does this program get read at the end and work backwards? But that doesn’t make sense because of what step two is indicating.
- If the program really runs backwards, wouldn’t the first user code execute at 0x1FE00000?