在GCC 和RealView MDK (即Keil) 开发工具中,允许定义变量时手工指定其地址。
volatile unsigned long bbVarAry[7] __attribute__(( at(0x20003014) ));
注意:at()中的地址必须对齐到4 字节边界。
通过上面的方法定义变量数组的起始地址就是0x2003014。
例子:
当有参数需要保存在FLASH中,可以定义参数的地址为相应FLASH地址,这样,通过变量索引的参数值为最新值,而不需要因为参数改变,再次通过read操作才能更新变量中的数值。
注意:定义FLASH时,该方式定义的地址不能处于BIN文件的范围内,否则会提示错误。