在CCS编程中,如果我们不指定变量/代码的存放位置,编译器会自动的给变量/代码分配一个位置,但是如果有的时候需要把变量放在一个特定的空间内,我们应该如何操作呢,CCS提供了如下的两个指令
#pragma CODE_SECTION
#pragma DATA_SECTION
其中data_section是针对数据空间的,
#pragma DATA_SECTION(bufferB, ”my_sect”)
char bufferB[512];
在.cmd文件中建立对应的section就可以使用了.
#pragma CODE_SECTION是针对代码空间的。
#pragma CODE_SECTION(dragon_update,"ramfuncs");
Uint16 dragon_update(UPDATE_SOURCE_TYPE *update_flag)
{
}
然后再在cmd文件中指定这两个section的位置就可以了。
如果想在汇编中指定段,使用方法,在代码前用
.sect "XXX"开始则标示接下来的一段代码都是在xxx的代码段中。
PieVectTableFile : > PIE_VECT, PAGE = 1 //nonBIOS. cmd
#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");
struct PIE_VECT_TABLE PieVectTable; //globalVariableDefs.c