-
Hello. 0x8000000 - bootloader, This works fine in Marlin, but I could not compile a normal *.bin file for GRBL in PIO. My *.ld script:
My ini:
In terminal I see result: But in explorer I see "firmware.bin" (255 988 byte) in which 1 sector of the flash is completely filled with values 0x00000000. How can I get a valid firmware file that will boot from 0x8008000 (my bootloader overrides SCB->VTOR) and use page 1 of the flash as EEPROM? |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
PIO is not using the correct The second word in the binary should be the address to |
Beta Was this translation helpful? Give feedback.
-
I use the same script and env that I used before without a bootloader, just adding |
Beta Was this translation helpful? Give feedback.
-
This is my *.LD and *.ini files: |
Beta Was this translation helpful? Give feedback.
-
This is at odds with this statement (if it is in the binary and not in the flash, or is it from a flash dump at 0x8008000?):
Here are parts of the .map file for a bootloader image for a F407:
and how it looks in ST-Link: ![]() |
Beta Was this translation helpful? Give feedback.
-
Thanks for the answer.
GRBL starts, but now there is no way to test everything on the hardware. After testing on the machine, I will create commits for my 2 boards and ask you to update their support files in the official branch. |
Beta Was this translation helpful? Give feedback.
Thanks for the answer.
The problem turned out to be quite superficial and is related to my inability to "properly prepare" *.LD files.
I simply changed the startup code section, specifying a new correct address (change
BOOT_FLASH
to
FLASH
(0x8008000 instead 0x8000000)) and now I get a *.bin file with the correct structure and size at the output:GRBL starts, but now there is no way to test everything on the hardware. After testing on the machine, I will create commits for my 2 boards and ask you to update their support files in the official branch.
Best wishes, Am0k.