1、单片机中data和idate的区别? 2、什么时候用data什么时候用idata? 3、我写到程序时不能定义多余变量,

定义了之后仿真有误。问,怎么办?... 定义了之后仿真有误。问,怎么办? 展开
 我来答
ufo1cn
2011-08-31 · TA获得超过448个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:220万
展开全部
以 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根据具体芯片不同,大小范围也有区别。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式