DSP下的#program
2014年7月22日
最近调试使用TMS320C6713的片子调试SDRAM,中间经过很多波折,这里就不吐槽了。
想将数据或者代码放到SDRAM上一定要用到#pragma 。查阅资料后,感觉百度文库的资料还可以,所以将度娘的资料摘抄过来,以作记录。
1.在CCS编程中,如果我们不指定变量的存放位置,编译器会自动的给变量分配一个位置。但是,如果有的时候需要把变量放在一个特定的空间内,我们应该如何操作呢?CCS提供了如下的两个指令:
#pragma CODE_SECTION
#pragma DATA_SECTION
其中data_section是针对数据空间的,code_section是针对程序空间的。
具体的使用办法是:
#pragma CODE_SECTION(fn, ”my_sect”)
int fn(int x)
{
return c;
}
#pragma DATA_SECTION(bufferA, ”my_sect”)
char bufferA[512];
在.cmd文件中建立对应的section就可以使用了:eg:
MEMORY
{
PAGE 1: spacename : origin = 0x...., length 0x..
}
SECTIONS
{
.my_sect : {} >spacename PAGE 1
}
2.DATA_ALIGN:变量存储对齐格式。
例子:
char a;
#pragma DATA_ALIGN(a ,32)
表示存储变量a时,以32字节对齐,其变量地址的低5位为0(即32的整数倍)