分类: LINUX
2014-06-25 10:15:46
在CCS编程中,如果我们不指定变量/代码的存放位置,编译器会自动的给变量/代码分配一个位置,但是如果有的时候需要把变量放在一个特定的空间内,我们应该如何操作呢,CCS提供了如下的两个指令:
#pragma CODE_SECTION
#pragma DATA_SECTION
其中data_section是针对数据空间的,比如:
#pragma DATA_SECTION(var_xxx, ”ooo_sect”)
unsigned int var_xxx;
表示要把var_xxx这个变量放在ooo_sect这个section里边,ooo_sect是section name,在cmd文件里边定义。
#pragma CODE_SECTION是针对代码空间的。
#pragma CODE_SECTION(foo,"ramfuncs");
void foo(void)
{
}
然后再在cmd文件中指定这两个section的位置就可以了。
如果想在汇编中指定段,使用方法,在代码前用
.sect "XXX"开始则标示接下来的一段代码都是在xxx的代码段中。
PieVectTableFile : > PIE_VECT, PAGE = 1 //nonBIOS. cmd
#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");
struct PIE_VECT_TABLE PieVectTable; //globalVariableDefs.c