背景描述:
在CCS编译代码时出现如下警告
解决方法:
找到cmd文件(这里是用的系统自动生成的),在Section部分找到对应的核
#ifdef CORE7
.text > CORE7_L2_SRAM
.stack > CORE7_L2_SRAM
.bss > CORE7_L2_SRAM
.cio > CORE7_L2_SRAM
.const > CORE7_L2_SRAM
.data > CORE7_L2_SRAM
.switch > CORE7_L2_SRAM
.sysmem > CORE7_L2_SRAM
.far > CORE7_L2_SRAM
.args > CORE7_L2_SRAM
.ppinfo > CORE7_L2_SRAM
.ppdata > CORE7_L2_SRAM
/* COFF sections */
.pinit > CORE7_L2_SRAM
.cinit > CORE7_L2_SRAM
/* EABI sections */
.binit > CORE7_L2_SRAM
.init_array > CORE7_L2_SRAM
.neardata > CORE7_L2_SRAM
.fardata > CORE7_L2_SRAM
.rodata > CORE7_L2_SRAM
.c6xabi.exidx > CORE7_L2_SRAM
.c6xabi.extab > CORE7_L2_SRAM
.input1 > SHRAM // 自定义字段,从SHRAM首地址开始
.input2 > SHRAM // 自定义字段
.input3 > SHRAM // 自定义字段
#endif
要让这段代码起作用,在CMD文件里加入如下代码
#define CORE7 1
再编译,警告就消失了。
注意
自定义字段,需要将变量映射到该字段对应的内存
#define num1 4
#define num2 3
#define num3 2
Target CPI1Plots[num1];
#pragma DATA_SECTION(CPI1Plots, ".input1");
Target CPI2Plots[num2];
#pragma DATA_SECTION(CPI2Plots, ".input2");
//
Target CPI3Plots[num3];
#pragma DATA_SECTION(CPI3Plots, ".input3");
内存里的情况如下
CPI3Plots起始地址不是接着CPI2Plots结束那里开始的。