1、单片机中data和idate的区别? 2、什么时候用data什么时候用idata? 3、我写到程序时不能定义多余变量,
1个回答
展开全部
以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,寄存器 R0-R7必须映射到低RAM,要占去 8 个字节,如果使用寄存组切换,占用的更多。
所以可以使用 data 区最大为 120 字节,超出 120 个字节则必须用 idata 显式的指定为间接寻址,另外堆栈至少要占用一个字节,所以极限情况下可以定义的变量可占 247 个字节。
直接寻址要快些。
http://apps.hi.baidu.com/share/detail/15336943
然后还有xdata定义的外部RAM,data,idata,xdata根据具体芯片不同,大小范围也有区别。
所以可以使用 data 区最大为 120 字节,超出 120 个字节则必须用 idata 显式的指定为间接寻址,另外堆栈至少要占用一个字节,所以极限情况下可以定义的变量可占 247 个字节。
直接寻址要快些。
http://apps.hi.baidu.com/share/detail/15336943
然后还有xdata定义的外部RAM,data,idata,xdata根据具体芯片不同,大小范围也有区别。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |