C语言中_at()函数如何实现特殊地址定位?
- 内容介绍
- 文章标签
- 相关推荐
本文共计505个文字,预计阅读时间需要3分钟。
C语言中,`_at()` 特殊地址定位用于将变量或常量定位到特定的内存地址。在Keil中,可以使用 `_at()` 指令将变量或常量定位到指定地址。例如,`int variable __at__(0x8000)=100;` 表示将变量 `variable` 定位到内存地址 `0x8000`,并初始化为 `100`。
C语言中 “_at()” 特殊地址定位详解
在keil里面,有一个特殊地址定位的指令,就是将一个变量或常量定位到一个指定的地址上面
指令为 __at ,使用方法如下
int variable __at(0x8000) = 100;
意为将variable变量定位到0x8000这个地址。
指令的目的是告诉链接器将指定地址定位到某个地址里面,在使用该功能的时候需要注意一点的是,地址的范围需要符合单片机的datasheet给出的地址映射表,
注意,如果地址超出了flash的最大范围,程序将无法得到这个值,例如一个256Kflash的芯片,在使用功能__at指令的时候,地址就不要超过256*1024了,否则你是找不到这个变量的。
本文共计505个文字,预计阅读时间需要3分钟。
C语言中,`_at()` 特殊地址定位用于将变量或常量定位到特定的内存地址。在Keil中,可以使用 `_at()` 指令将变量或常量定位到指定地址。例如,`int variable __at__(0x8000)=100;` 表示将变量 `variable` 定位到内存地址 `0x8000`,并初始化为 `100`。
C语言中 “_at()” 特殊地址定位详解
在keil里面,有一个特殊地址定位的指令,就是将一个变量或常量定位到一个指定的地址上面
指令为 __at ,使用方法如下
int variable __at(0x8000) = 100;
意为将variable变量定位到0x8000这个地址。
指令的目的是告诉链接器将指定地址定位到某个地址里面,在使用该功能的时候需要注意一点的是,地址的范围需要符合单片机的datasheet给出的地址映射表,
注意,如果地址超出了flash的最大范围,程序将无法得到这个值,例如一个256Kflash的芯片,在使用功能__at指令的时候,地址就不要超过256*1024了,否则你是找不到这个变量的。

