STM32cubeIDE+STM32F429开发环境下,由于单片机内存较小,只有192K,发现还有643KCCMRAM可用,于是开始查找使用CCMRAM的方法。
首先找到这篇有用的博客:STM32 .ld链接文件分析,不过在应用的时候,我只用到了如下内容:
SECTIONS
{
_siccmram = LOADADDR(.ccmram);
.ccmram :
{
. = ALIGN(4);
_sccmram = .;
*(.ccmram)
*(.ccmram*)
. = ALIGN(4);
_eccmram = .;
} >CCMRAM AT> FLASH
...
}
在最后编译的过程中,去掉AT>FLASH才可以编译过,否则会报错…section .ccmram' will not fit in region FLASH’。但是若去掉了会导致最后编译的目标.bin文件有200多M,显然不合理。
没辙,没有ld语法相关知识储备,只能再来百度寻找解决办法,最后在这边文章中找到正解办法:问题: SMT32F4 添加CCMRAM 时 修改ld链接文件 使用 gcc elf 生成 bin 文件 128M 地址填充,
SECTIONS
{
.........
_siccmram = LOADADDR(.ccmram);
.ccmram (NOLOAD) :
{
. = ALIGN(4);
_sccmram = .;
*(.ccmram)
*(.ccmram*)
. = ALIGN(4);
_eccmram = .;
} >CCMRAM
...........
编译通过,.bin文件大小正常,问题解决。等待上机验证CCMRAM是否可以正常使用。
|