2020-01-31 03:51 AM
Hello Community,
ExtFlashSection :
{
*(ExtFlashSection ExtFlashSection.*)
*(.gnu.linkonce.r.*)
. = ALIGN(0x4);
} >QUADSPI
6. Here, I also attached liker script file.
7. Is there any configuration missed by me or make some wrong implementation.
8. I required ".bin" file in "STLINK" utility while program the external flash because In STLink select the "External Loader" >>"N25Q128A_STM32F746G_DISCO">>"Program".
9. It opens the "Download" window.
10. It display "start address" as "0x08000000" and that "text box" is disabled when i choose the ".hex" file
11. When i choose the ".bin" binary file that "textbox" is enable. But Binary file size is too large(~2.3GB).
Can you please suggest me how can i reduce the binary file size.
My aim is to program the GRAPHICS Data in to External Flash(QUAD SPI FLASH)
Regards,
Nikunj Patel
Solved! Go to Solution.
2020-02-03 05:01 PM
@Nawres GHARBI can the .DFU be uses as a multi-sectional containing object, like .ELF/.AXF, for programming modes other than USB/DFU in STM32 Cube Programmer?
@Community member look at the command line options on objcopy or srecords to break into multiple binaries. ST typically distributes the demos as .HEX files, which can describe multiple regions. The .HEX will likely be 2.5x the size of the minimum binary, but it only this large on the hard-drive, the data is programmed in a binary fashion across the JTAG/SWD interface. So won't be materially faster or slower than any other method.
The in-built system loader can only handle DFU files describing internal FLASH, if you build your own DFU device, it can handle external memories.
2020-02-13 09:03 PM
Hello @Community member
Thanks for great support.
As you suggested i have used the following command to split binaries in multiple section,
Here is below command.
arm-none-eabi-objcopy.exe -O binary --only-section=ExtFlashSection "${BuildArtifactFileBaseName}.elf" ExtFlash.bin;arm-none-eabi-objcopy.exe -O binary --remove-section=ExtFlashSection "${BuildArtifactFileBaseName}.elf" STM32F746.bin
Use Above command in
Project >> Properties >> c/c++ build >> Setting >> Build Steps >> Post-Build Steps >> Command.
Regards,
Nikunj Patel
2020-06-21 06:15 PM
I have the same problem. I don't know how to solve it.
2020-06-21 06:39 PM
Don't use .BIN for SPARSE memory maps. Use .HEX, or split the binary sections. Tools like FromELF split it into multiple binaries.
2021-07-29 11:08 PM
Hi @Community member , Good Morning
Thank you for posting this information and it worked for me.
As you mentioned i am able to generate the ExtFlash.bin file of TouchGFX assets.
As per my project requirement need two bin files, one is ExtFlash.bin which is generated
as per your input but can you help me to generate the Application bin file of the project.
Thank You,
Warm Regards,
Ahmed Raza K. Mulla
2021-11-30 08:46 PM
if I include sections FontFlashSection and TextFlashSection (placing fonts and text into external flash), the size of the binary becomes big again. I wrote a command-line program in c# that will separate the binary into 2 files based on the address in this case hex 90000000 and that works but I would like to use the steps mentioned above. were you able to get the post-build script to work with FontFlashSection and TextFlashSection sections included in the linker?
2021-12-01 10:19 AM
i was able to solve it by:
arm-none-eabi-objcopy.exe -O binary --only-section=FontFlashSection --only-section=TextFlashSection --only-section=ExtFlashSection "${BuildArtifactFileBaseName}.elf" ExtFlash.bin;arm-none-eabi-objcopy.exe -O binary --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection "${BuildArtifactFileBaseName}.elf" STM32F767.bin