Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262311
  • 博文数量: 49
  • 博客积分: 1684
  • 博客等级: 上尉
  • 技术积分: 458
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-09 22:45
文章分类

全部博文(49)

文章存档

2023年(1)

2021年(2)

2018年(2)

2017年(7)

2016年(2)

2015年(6)

2014年(13)

2013年(7)

2012年(7)

2011年(1)

2010年(1)

分类: 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

阅读(3428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~