想使用STM32 ST-LINK Utility 软件来烧录hex文件,如果使用QSPI则需要编写一个外部的loader, 看了ST官网开发板的代码,尝试去修改一直都不行。所以想不使用QSPI,只使用内部128k FLASH,这样应该就可以不需要加载外部的loader直接烧录hex文件了, 于是在 options for targets 选项卡里面,在Linker选项卡里面,勾选 Use Memory Layout from Target Dialog,使用内部FLASH。
可是在编译工程时提示:\OBJ\KDSTM32H750_TESTBOARD.axf: Error: L6971E: system_stm32h7xx.o(.data) type RW incompatible with malloc.o(.ARM.__AT_0x2001E000) type ZI in er RW_IRAM1.
0x2001E000是120K的结束地址,看了代码内存实际只分配了120K地址,不知道这个提示是不是说FLASH内存超出了120K。
但是我的程序编译后的大小只有84.58K,如下图是使用QSPI编译后的程序大小((64876+21556+184)/1024=84.5859375K),不知道这是什么原因,需要怎么修改程序可以达到我想要的。