打印
[STM8]

STM8的变量

[复制链接]
1501|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2014-10-10 13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8变量定义的时候,比如定义一个unsigned char a;
这个a地址是被定义在0x00-0xff之间,当你现在定义的变量比如很多,超过了0xff之后,编译器通常会报错。
这一点,很多人在设置变量的时候,经常会遇到这样的问题,那这个问题,主要是由于STM8在内核设计的时候,将0xff以内的寻址放在第0页,就是为了寻址方便。
速度也会更快。如果你此时想定义到0xff之外,只需要加入一个@near unsigned char b;那这样变量就被定义到0xff之外了。但寻址速度相对慢点。当然这里有个比较好处的是
可以将我们不经常用的变量放到0xff之外,经常用的放在0xff以内。
这一点,很多人都会烦错误,希望大家从这里可以理解一下ST的良苦用心呀。
沙发
mmuuss586| | 2014-10-10 18:54 | 只看该作者

类似增强型51;
增强型51内部RAM也比较大;

使用特权

评论回复
板凳
jxmzzr| | 2014-10-11 19:45 | 只看该作者
没有深入研究过,关注学习一下,鼓励分享。

使用特权

评论回复
地板
franki_18| | 2014-10-11 20:27 | 只看该作者
:D

使用特权

评论回复
5
franki_18| | 2014-10-11 20:28 | 只看该作者
:D

使用特权

评论回复
6
pofu007| | 2014-10-13 14:25 | 只看该作者
stm8s的话,RAM至少是1K啊,还没遇到过RAM不够的情况。用的IAR,从没在定义变量前加过near far这种关键词。

使用特权

评论回复
7
maxking| | 2014-10-19 09:34 | 只看该作者
如何定义一个变量在指定的某个地址??

使用特权

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

本版积分规则

506

主题

2446

帖子

8

粉丝