打印

问几个KEIL 的弱弱的问题

[复制链接]
1932|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
chen3bing| | 2009-8-8 13:18 | 只看该作者
DATA和IDATA是不同的存储区。

使用特权

评论回复
板凳
dudongdao|  楼主 | 2009-8-8 13:30 | 只看该作者
嗯,是的~~  
看名字看出来了~~
不过我还是没想通啊~

使用特权

评论回复
地板
冷漠| | 2009-8-8 19:50 | 只看该作者
IDATA包含了DATA。必定或>或等于DATA。DATA=低128字节,IDATA却根据设置或128,或256字节。

如何设置?

到STARTUP.A51中去找。

使用特权

评论回复
5
dudongdao|  楼主 | 2009-8-9 00:32 | 只看该作者
嗯~~  那SP可以放到高128是吗?  
请教冷漠大侠,如果不加那个启动文件,默认是什么样的,是不是默认SP存放在低128的,这样吗?
我现在建立工程都不加那个启动文件了,发现加了不加程序都行啊,哪种习惯好点,加了有什么好处呢?

使用特权

评论回复
6
冷漠| | 2009-8-9 11:20 | 只看该作者
你不人为加,编译器是缺省加的,STARTUP.A51在C51?.LIB库中,我见过LZ在工程中加入C51S.LIB,其实是多余的。关键是加还是不加STARTUP.A51:

建立一个新项目时,系统都提问你加不加入STARTUP.A51。
如果不加,系统默认C51S.LIB等库,其内的STARTUP是默认设置在80H-也就是128字节的。像8031之类。

如果你用的是8032/89C52之类,(现在的片子都是至少256字节IDATA了吧。)那就应该(也许不是必须)加入STARTUP.A51 以修改IDATALEN长度为100H。

但是如果你在DEVICE项选择的片子正确:例如89C52,是不是应该系统自动就设置了RAM=100H ?(系统设计原则:对用户的系统设置要求或知识要求应该降到最少。)要检验一下很简单:
1、在程序编译连接后的仿真代码下看一看STARTUP.51(当然是系统默认的)程序初始化RAM区为全“0”时是多少字节。
2、BL51链接标签下有指示TO **x(256RAM)什么的。

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
程序匠人 + 6
7
冷漠| | 2009-8-9 11:46 | 只看该作者
本帖最后由 冷漠 于 2009-8-9 12:07 编辑

贴图麻烦

128字节.JPG (57.53 KB )

这显然是128字节IDATA的

这显然是128字节IDATA的

使用特权

评论回复
8
冷漠| | 2009-8-9 11:57 | 只看该作者

使用特权

评论回复
9
冷漠| | 2009-8-9 12:20 | 只看该作者

使用特权

评论回复
10
dudongdao|  楼主 | 2009-8-9 15:25 | 只看该作者
我试验了,看来还是加上好点,都是0X7F不是0XFF

使用特权

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

本版积分规则

90

主题

413

帖子

1

粉丝