打印
[STM8]

如何分配变量到指定的地址

[复制链接]
614|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原来是wjc|  楼主 | 2024-3-30 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
举例:
unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00
unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100
@tiny unsigned char temp_C; //定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配一个地址
@near unsigned char temp_D; //定义无符号变量temp_D,由编译器自动在地址大于0xFF的RAM中为其分配一个地址
另外也可以采用伪指令"pragma"将函数或者变量定义到指定的section中,例如:
#pragma section [name] // 将下面定义的未初始化变量定义到.name section中
Unsigned char data1;
Unsigned int data2;
……(任何需要定义在.name section中的变量)
……
#pragma section [] // 返回到正常的section.
注意:pragma伪指令可以用来定位函数,初始化变量或者未初始化变量。这三者用不同的括号区分。
(name):代码
[name] :未初始化变量
{name}:初始化变量

使用特权

评论回复
沙发
4c1l| | 2024-8-31 22:24 | 只看该作者
这种做法通常用于需要精确控制内存布局的情况,比如在处理硬件寄存器、优化内存使用或满足某些硬件要求时。

使用特权

评论回复
板凳
pragma伪指令可以用来定位函数,初始化变量或者未初始化变量

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

978

帖子

0

粉丝