当前位置: 首页 > 嵌入式 > 正文

MDK(KEIL)中设定变量或数组到指定的位置

定位变量到指定的位置

使用定义在头文件 absacc.h中的 __at宏,可以将变量以如下方式定位到绝对地址处:

C 例子:

#include <absacc.h>  
const char MyText[] __at (0x1F00) = "TEXT AT ADDRESS 0x1F00"; 
int x __at (0x40003000);                         // variable at address 0x40003000
unsigned char xArray[128] __at (0x68000000);     // Array start at address 0x68000000

汇编例子:

在汇编文件中可以使用段名,由|.ARM.__AT_<addr>|组成来定义位置。下面的例子是将一个段定义到地址0xFFE0处:

     AREA |.ARM.__AT_0xFFE0|, CODE, READONLY

转自:http://hi.baidu.com/jamiedu/item/479184c4f232b667f6c95d33

该方法主要用于,芯片内部具有特殊功能的RAM使用,把特殊变量位置定义在这个区间,方便在程序中使用。比如休眠备份寄存器区间BKPSRAM、内核全速RAM CCM等。

 

发表评论


快捷键:Ctrl+Enter