关于keil里面的设置问题,大小模式

[复制链接]
7603|15
 楼主| llllwwww 发表于 2009-5-20 10:16 | 显示全部楼层 |阅读模式
现在在用一种P89LV51RD2的单片机,其内部资源有1K的XDATA寻址的SRAM,想把它用起来,现在写的程序KEIL里面的RAM设置为了SMALL模式,程序可以正常运行,我现在只是简单的把这个改为了LARGE模式,发现程序能够正常编译,但是程序不能正常运行,重新改为SMALL模式后,又可以正常运行了,不知道是什么原因~程序里面大部分变量都是定义为DATA,有那位高手指点一下~谢谢了!
computer00 发表于 2009-5-20 10:30 | 显示全部楼层

是不是要先使能xdata的?有些芯片默认是不使能的

 楼主| llllwwww 发表于 2009-5-20 10:45 | 显示全部楼层

好像这个原因,汇编里面的代码不同!

 楼主| llllwwww 发表于 2009-5-20 11:13 | 显示全部楼层

好象不是这个原因~

哪个使不使能都不能用大模式,我看了一下汇编的结果,发现大模式和小模式的编译结果不一样,奇怪了~~
huangqi412 发表于 2009-5-20 11:18 | 显示全部楼层

是不是有积存器要先操作?

 楼主| llllwwww 发表于 2009-5-20 11:31 | 显示全部楼层

是不是对片内的XDATA操作一次,哪个使能的寄存器要清零一次?

cooperate 发表于 2009-5-21 07:54 | 显示全部楼层

圈圈说的可能比较大

    另外 内部扩展的xram通常很小的,使用大模式编译时可能会溢出
walkrain 发表于 2009-5-21 09:50 | 显示全部楼层

溢出?

假设xram有1K,实际程序占用1000bytes,内部ram占用128bytes,那么small模式可以正常运行,但是切换到large模式就不行。
另外我在编译时也出现过这个问题,当时也没细想,后来采用的small模式,或者是采用large模式,但是变量声明加上data
知道详情的解答下吧
 楼主| llllwwww 发表于 2009-5-21 11:36 | 显示全部楼层

多谢大家回复!

我现在已经把哪个EXTRAM使能位清零了,数据手册上说是用内部的XDATA必须要清零,还是不行~~关键是现在我想利用其内部的1K的XDATA,因为P0,P2口都用在数据传输上了,不能访问外部XDATA,它内部还有768个BYTES的XDATA空间,可以不通过P0,P2口来访问的,但是用大模式不行,我想能不能这样,编译还是用小模式,关EXTRAM位,数据定义成XDATA?
computer00 发表于 2009-5-21 16:12 | 显示全部楼层

使能xram应该在启动代码里做

ayb_ice 发表于 2009-5-21 23:07 | 显示全部楼层

首选确认是否有片内XRAM

其次还要确认地址范围,有些芯片并不是从地址0开始,当然还要确认是否被使能...
 楼主| llllwwww 发表于 2009-5-21 23:27 | 显示全部楼层

启动代码?

回圈圈:又不是用的IAP或者ISP模式,我是直接接的仿真器来调试的,启动代码从何说起?莫不是要用到它的ISP功能?
回楼上:芯片内部确实是有1K的SRAM资源,EA=0时范围是从000H-2FFH,使能就是让EXTRAM=0嘛?
圈圈说在启动代码里面怎么做?
computer00 发表于 2009-5-22 00:53 | 显示全部楼层

仿真器?你先确认你的仿真器是否支持这个xram?

启动代码就是startup.a文件,你可以在里面增加使能XRAM的代码。
 楼主| llllwwww 发表于 2009-5-22 08:57 | 显示全部楼层

啊?加我邮箱~~祥谈!

我的邮箱是liwei19760410@126.com
仿真器怎么不会支持XRAM呢?汇编的结果都有了~
好的,我再试试~我感觉XRAM的指令都没起作用~~
 楼主| llllwwww 发表于 2009-5-22 09:21 | 显示全部楼层

我用的仿真器是伟福的WAVE-SP51的,标准的MCS-51仿真驱动DRIVER!

是不是标准的MCS-51不支持这个XRAM功能?我在KEIL里面选择的就是这个P89LV51RD2这个器件,仿真器的驱动是装在了KEIL里面的DEBUG里面,用的是MCS-51DRIVER来模拟仿真的,还有哪个STARTUP.A51这个文件我从来没有改过,不知道在那里可以改~~我觉得在我的初始化应用文件里面初始化一下还不是可以吗?
谢谢圈圈赐教了~~
computer00 发表于 2009-5-22 17:08 | 显示全部楼层

我估计是你的仿真器不支持片内XRAM的仿真,你烧到芯片去试

您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

450

帖子

2

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