用KEIL做的程序编译后出现如下现象:

[复制链接]
3808|18
 楼主| OverLook 发表于 2010-12-17 11:04 | 显示全部楼层 |阅读模式
STC5410AD单片机



为什么DATA  17    ,  XDATA 274    ?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| OverLook 发表于 2010-12-17 11:05 | 显示全部楼层
程序里 的内存全部如下定义法:

unsigned int  tm_1000ms_cycle;
unsigned char  tm_1000ms_run;
unsigned int  ad_buf[ 3 ];
unsigned long  ulVol_buf;
chunyang 发表于 2010-12-17 11:18 | 显示全部楼层
data指直接寻址的片内RAM,xdata指片外扩展ram(注意有的MCU集成了xdata RAM,但从结构上讲仍是“片外扩展ram”),由编程时对变量/数组等的存储器区的定义决定。
ayb_ice 发表于 2010-12-17 11:19 | 显示全部楼层
LZ
你认为应该是什么,是多少呢
 楼主| OverLook 发表于 2010-12-17 11:26 | 显示全部楼层
4# ayb_ice

应该是 所有的都是 data ,而没有定义 xdata
jack.king 发表于 2010-12-17 11:26 | 显示全部楼层
有2中可能,
第一你直接地应了xdata 变量
或者你选择了,memory model is Large:variables in XDATA
 楼主| OverLook 发表于 2010-12-17 11:27 | 显示全部楼层
data指直接寻址的片内RAM,xdata指片外扩展ram(注意有的MCU集成了xdata RAM,但从结构上讲仍是“片外扩展ram”),由编程时对变量/数组等的存储器区的定义决定。 ...
chunyang 发表于 2010-12-17 11:18


春阳  指的是  这个和 keil 编译器 有关, 由 编译器自己分配?
 楼主| OverLook 发表于 2010-12-17 11:28 | 显示全部楼层
本帖最后由 OverLook 于 2010-12-17 11:30 编辑

这个分配是随机的吗? 还是可以在编译器 内部设置?

头一次用stc 单片机
这个STC5410AD 到底多少是内部扩展的RAM  多少是 纯粹的内部RAM ?
ayb_ice 发表于 2010-12-17 11:35 | 显示全部楼层
LZ
可能连编译模式都不知道
chunyang 发表于 2010-12-17 11:40 | 显示全部楼层
所有51的存储器分配都是一样的,直接寻址RAM(声明缺省)128字节,间接寻址RAM(声明IDATA)128字节,外部寻址(声明XDATA)64K。如果均未声明且存储器空间需求大于128字节照理应该在编译时提出警告,但也不排除自动将其转换为XDATA。良好的编程习惯必须计算内存需求并声明内存类型。

评分

参与人数 1威望 +1 收起 理由
OverLook + 1

查看全部评分

chunyang 发表于 2010-12-17 11:42 | 显示全部楼层
编译程序是有编译条件的,楼主应该看看相关部份的资料,但即使如此,也要首先养成良好的编程习惯。
arao 发表于 2010-12-17 12:07 | 显示全部楼层
学习了,长见识
 楼主| OverLook 发表于 2010-12-17 12:30 | 显示全部楼层
所有51的存储器分配都是一样的,直接寻址RAM(声明缺省)128字节,间接寻址RAM(声明IDATA)128字节,外部寻址(声明XDATA)64K。如果均未声明且存储器空间需求大于128字节照理应该在编译时提出警告,但也不排除自动 ...
chunyang 发表于 2010-12-17 11:40


谢谢指教!
 楼主| OverLook 发表于 2010-12-17 12:32 | 显示全部楼层



在这里设置;

谢谢各位指教!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
new1988 发表于 2010-12-17 13:14 | 显示全部楼层
把Memory Model选项改成small:variables in data。
coody 发表于 2010-12-17 16:24 | 显示全部楼层
选小模式即可。。。
经常有客户为这个事发牢骚,就骂是MCU的问题,这个关MCU P事。
原野之狼 发表于 2010-12-18 01:22 | 显示全部楼层
是拷贝过来的工程吧 新建的工程可不会是LARGE模式
 楼主| OverLook 发表于 2010-12-18 10:07 | 显示全部楼层
;P
是以前的工程。  好长时间不用 51了,生疏了。
shiwilson 发表于 2010-12-18 15:41 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:青岛电子电气同僚群6770360

0

主题

440

帖子

1

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