打印

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

[复制链接]
2899|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
你认为应该是什么,是多少呢

使用特权

评论回复
5
OverLook|  楼主 | 2010-12-17 11:26 | 只看该作者
4# ayb_ice

应该是 所有的都是 data ,而没有定义 xdata

使用特权

评论回复
6
jack.king| | 2010-12-17 11:26 | 只看该作者
有2中可能,
第一你直接地应了xdata 变量
或者你选择了,memory model is Large:variables in XDATA

使用特权

评论回复
7
OverLook|  楼主 | 2010-12-17 11:27 | 只看该作者
data指直接寻址的片内RAM,xdata指片外扩展ram(注意有的MCU集成了xdata RAM,但从结构上讲仍是“片外扩展ram”),由编程时对变量/数组等的存储器区的定义决定。 ...
chunyang 发表于 2010-12-17 11:18


春阳  指的是  这个和 keil 编译器 有关, 由 编译器自己分配?

使用特权

评论回复
8
OverLook|  楼主 | 2010-12-17 11:28 | 只看该作者
本帖最后由 OverLook 于 2010-12-17 11:30 编辑

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

头一次用stc 单片机
这个STC5410AD 到底多少是内部扩展的RAM  多少是 纯粹的内部RAM ?

使用特权

评论回复
9
ayb_ice| | 2010-12-17 11:35 | 只看该作者
LZ
可能连编译模式都不知道

使用特权

评论回复
10
chunyang| | 2010-12-17 11:40 | 只看该作者
所有51的存储器分配都是一样的,直接寻址RAM(声明缺省)128字节,间接寻址RAM(声明IDATA)128字节,外部寻址(声明XDATA)64K。如果均未声明且存储器空间需求大于128字节照理应该在编译时提出警告,但也不排除自动将其转换为XDATA。良好的编程习惯必须计算内存需求并声明内存类型。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
OverLook + 1
11
chunyang| | 2010-12-17 11:42 | 只看该作者
编译程序是有编译条件的,楼主应该看看相关部份的资料,但即使如此,也要首先养成良好的编程习惯。

使用特权

评论回复
12
arao| | 2010-12-17 12:07 | 只看该作者
学习了,长见识

使用特权

评论回复
13
OverLook|  楼主 | 2010-12-17 12:30 | 只看该作者
所有51的存储器分配都是一样的,直接寻址RAM(声明缺省)128字节,间接寻址RAM(声明IDATA)128字节,外部寻址(声明XDATA)64K。如果均未声明且存储器空间需求大于128字节照理应该在编译时提出警告,但也不排除自动 ...
chunyang 发表于 2010-12-17 11:40


谢谢指教!

使用特权

评论回复
14
OverLook|  楼主 | 2010-12-17 12:32 | 只看该作者



在这里设置;

谢谢各位指教!

使用特权

评论回复
15
new1988| | 2010-12-17 13:14 | 只看该作者
把Memory Model选项改成small:variables in data。

使用特权

评论回复
16
coody| | 2010-12-17 16:24 | 只看该作者
选小模式即可。。。
经常有客户为这个事发牢骚,就骂是MCU的问题,这个关MCU P事。

使用特权

评论回复
17
原野之狼| | 2010-12-18 01:22 | 只看该作者
是拷贝过来的工程吧 新建的工程可不会是LARGE模式

使用特权

评论回复
18
OverLook|  楼主 | 2010-12-18 10:07 | 只看该作者
;P
是以前的工程。  好长时间不用 51了,生疏了。

使用特权

评论回复
19
shiwilson| | 2010-12-18 15:41 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

0

主题

440

帖子

1

粉丝