在STM32中,变量默认存放于SRAM上。其实STM32有另外一片区域,可以存放数据,叫CCM DATA RAM。如下图所示:
特别要注意的是,CCM DATA RAM只能存放数据,不能存放代码。
如过想将 CCM DATA RAM利用起来,需要修改连接脚本,新建一个section,并且在定义变量时,用attribute关键字,通知连接器,将变量map到CCM所在的区域。
具体来讲,有如下几个步骤:
1:在链接文件新建一个memory区域,此区域规定CCM DATA RAM的地址及范围:
2:在链接文件,新建一个section,此section,被安放到步骤1新建的区域内,被用在程序中显式标记变量属性。
注意, (NOLOAD)标记,必须添加,否则在elf文件转换成bin文件时,生成的bin文件会非常大!!
3:新建一个变量,定义变量的 section属性。
以上,数组 test_attribute 变存放在 CCM DATA RAM中,不占用 SRAM。