[STM8] STM8的变量

[复制链接]
1865|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 | 显示全部楼层
franki_18 发表于 2014-10-11 20:28 | 显示全部楼层
pofu007 发表于 2014-10-13 14:25 | 显示全部楼层
stm8s的话,RAM至少是1K啊,还没遇到过RAM不够的情况。用的IAR,从没在定义变量前加过near far这种关键词。
maxking 发表于 2014-10-19 09:34 | 显示全部楼层
如何定义一个变量在指定的某个地址??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部