背景描述:
在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 2Target 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结束那里开始的。