I'm adding a code segment to my gcc linker script to allow the placement of objects in the Close Coupled Memory (CCM) memory block.
The additions to the linker script are as follows:
This compiles fine, and the .map file shows that any objects
with the following attribute are located correctly.
__attribute__ ((section (".ccm")))
However, the resultant .bin file cannot be loaded onto the board using the Windows STM32 ST-Link Utility because the load operation does finish. The load progress bar never shifts from zero, and if I leave the program running for several hours, it will consume more and more memory until the system locks up.
I can program and run the .bin file using my own in-application-programmer, so I know the file is OK. Removing the new CCM code segment allows the
STM32 ST-Linkto load the file OK.
I'm using the latest version of the ST-Link utility on Windows 7. The version information is reported at:
STM32 DT-Link Utility.exe v2.3.0
I'm using the CodeSourcery toolkit:
arm-none-eabi-gcc (Sourcery CodeBench Lite 2012.03-56) 4.6.3
Has anyone else been able to make this work?