STM8变量定义的时候,比如定义一个unsigned char a;
这个a地址是被定义在0x00-0xff之间,当你现在定义的变量比如很多,超过了0xff之后,编译器通常会报错。
这一点,很多人在设置变量的时候,经常会遇到这样的问题,那这个问题,主要是由于STM8在内核设计的时候,将0xff以内的寻址放在第0页,就是为了寻址方便。
速度也会更快。如果你此时想定义到0xff之外,只需要加入一个@near unsigned char b;那这样变量就被定义到0xff之外了。但寻址速度相对慢点。当然这里有个比较好处的是
可以将我们不经常用的变量放到0xff之外,经常用的放在0xff以内。
这一点,很多人都会烦错误,希望大家从这里可以理解一下ST的良苦用心呀。 |