在线时间2029 小时
UID267320
注册时间2011-3-7
NXP金币1830
TA的每日心情 | 怒 4 天前 |
---|
签到天数: 2116 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 24823
- 最后登录
- 2024-4-30
|
发表于 2019-5-15 13:10:37
|
显示全部楼层
在S32DS工程目录中可以找到链接文件,如下图所示:
一般路径为:当前工程\Project_Settings\Linker_Files\S32K144_64_flash.ld
文件中已经定义好了Flash,SRAM等存储地址和段名称,通过以上图形可以看出,当前SRAM定义如下
/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000
/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
从地址0x1FFF8000开始的32K内存命名为m_data,从地址0x20000000开始的28K SRAM被命名为m_data_2。
默认情况下,在m_data(SRAM_L)中存放初始化过的全局变量,拷贝中断向量列表和RAM_CODE.
在 m_data_2中存放.bss段(没有初始化的全局变量,堆、栈)
If you need more RAM - you can merge m_data and m_data_2 section.
Just remove m_data_2 section, extend m_data to 0xF000 size and replace all m_data_2 target to m_data in linker file.
Other possibility is force variables into m_data seciton by __attribute__ ((section(".data"))) int my_var
可以通过使用__attribute__ ((section(".data"))) int my_var的方式强制变量定义在m_data段。
或者使用__attribute__ ((section(".customSection"))) int my_var的方式强制变量定义在m_data_2段
比如在项目中如下定义即可使用
|
|