(单片机实际制作时)内外RAM的问题 (Keil软件 build窗口program size中data的单位)

我用keil编译C程序时,Build窗口(没有错误与警告)显示:ProgramSize:data67.1,xdata758,code4538,有那位同志知道这三个数值的单... 我用keil编译C程序时, Build窗口(没有错误与警告)显示:Program Size:data 67.1 ,xdata 758,code 4538,有那位同志知道这三个数值的单位分别是什么吗?
补充:主要是涉及个人实际制作,担心片内RAM不够用。
我用的keil vu3 汉化版虽然不是正版的keil,但它并没有2K代码限制。
发现问题的经过:
起初认为data的单位是B。可是data 的数值不能再大了,“源文件浏览器”中发现一些简单的变量在xdata区。即使将这些变量用data来定义,“源文件浏览器”还是告诉我这些变量在xdata区,而且Build窗口(没有错误与警告)仍旧显示:Program Size:data 67.1 ,xdata 758,code 4538。难道真的是“单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.”了吗?真是这样的话,data的单位肯定不是B,因为最小的51单片机RAM也有128B呀。
思来想去,不得其解。望各位师叔师姑师兄师姐伸出援手。
后来都已经用上AT89C51RC2了,而且target选项卡也在“使用片内RAM”前打上勾了,RC2足足有1280B的RAM呀。仍是Program Size:data 67.1 ,xdata 758,code 4538。
我的提问没有个主题,现在补充一下吧。就是:上述data在Build窗口的单位是多少?67.1是data的最大值了吗?还是说可以通过一些设置提高data值的上限?

若我的提问本身就有问题,也希望朋友们不吝赐教。
展开
 我来答
大雄说创业
2009-10-13 · TA获得超过476个赞
知道小有建树答主
回答量:384
采纳率:100%
帮助的人:282万
展开全部
先说说这几个词是什么意思:
1,DATA,51的内部RAM,只有128B(字节)大小,不管是最新的什么增强型单片机;

2,XDATA,外部RAM,只能使用MOVX寻址

3,CODE,代码区,即是你的代码的大小,AT89C51为4K,C52为8K等,增强型的有更多的选择。

然后说明一下,几种RAM的区别:
1,DATA,也是上面1提到的DATA RAM,占51的128B;
2,IDATA,大小也为128B,与DATA构成256字节的内存(如AT89C52)
3,PDATA,外部RAM的前256B(就是一个页的大小),是XDATA的一部分;
4,XDATA,外部RAM

所以你的那个单片机的1280B,其实组成为:
DATA :128B
IDATA:128B
XDATA:1024B

所以你的问题,“使用片内RAM”打勾只是软件仿真用的;你的XDATA用了758B,说明你特意用XDATA关键字定了这么大的内存,比如大数组或者内存模式时,使用了lager模式,那么编译器会自动把超出的部分放到XDATA里,我猜你应该是这里选择了lager模式,不过你的内容这么大,也只能选择lager模式。

以上为原创,如果想看更详细的介绍,可以看以下链接:
http://hi.baidu.com/efei789/blog/item/cf9afc0a12a4801994ca6bfb.html
意法半导体(中国)投资有限公司
2023-08-25 广告
单片机是一种集成处理器,通常包含微控制器、存储器、通信接口和其他外设。它们通常用于嵌入式系统,如智能家居设备、汽车电子系统、工业自动化和消费电子产品等。单片机可以通过编程来实现各种功能,如数据处理、输入输出控制、通信等。由于单片机体积小、功... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
盛世鼓声声9976
2009-10-13 · TA获得超过489个赞
知道小有建树答主
回答量:277
采纳率:100%
帮助的人:0
展开全部
选择内存模式为small:variables in DATA
按理说不会去XDATA,看看是否定义了大的数组?uint mtab[100]之类的?
可否给出源程序?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潇湘电子工程师
2009-10-13 · TA获得超过3703个赞
知道大有可为答主
回答量:4170
采纳率:0%
帮助的人:2372万
展开全部
都是字节,我写了个小程序试过了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式