@far 与@near 问题

2019-07-19 21:50发布


问题 :
       @far 与@near 指明到底是远指针还是近指针,那什么时候用那个比较好呢?最好针对STM8,8位的单片机讲讲。

参考:来自 微雪电子网 http://www.waveshare.net/article/STM8-3-1-10.htm     如何分配变量到指定的地址 举例:
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}:初始化变量

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。