打印

用过P89LV51RD2的高手请进~指导一下!

[复制链接]
1161|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llllwwww|  楼主 | 2009-5-20 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在写程序用的是P89LV51RD2这种单片机,只是用到了内核的128个字节的DATA资源,发现资源不够用,想使用片内的XDATA资源。
现在遇到的问题是:
1.在KEIL里面进行编译的情况下,如果在KEIL的设置里面将MEMORY设置成SMALL模式,发现程序能正常运行。
2.现在想把KEIL里面的设置改成LARGE模式,而且在程序中已经把EXTRAM这个清零了,发现程序还是不能正常运行。而且如果直接定义某个变量为XDATA,发现也不能正常运行!
有一个XDATA的使能寄存器,已经不要它寻址片外XDATA了!
疑问就是怎么把KEIL里面的设置改为LARGE模式,发现问题可能存在3个方面:
1.KEIL里面设置不正确!
2.程序的编写不合理!
3.内部资源的规划不清楚!

相关帖子

沙发
大漠孤烟| | 2009-5-20 16:31 | 只看该作者

查看变量所在RAM位置

可以查看一下,当改为LARGE模式后,你所定义的XDATA变量是否在000H-2FFH之间,可以在OPTION里边定义一下XDATA的访问区间就可以

使用特权

评论回复
板凳
llllwwww|  楼主 | 2009-5-20 16:42 | 只看该作者

哦,好的,定义XDATA的地址对吧?

在KEIL里面可以设定XDATA的地址,对吧?我发现,原先用SMALL编译的变量都在0x00-0x7F之间,当使用LARGE模式的时候变到了0x0000开头的区间,而且现在用的都是DPTR来访问的~在哪里定义?BL51 LOCATE里面?

使用特权

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

本版积分规则

91

主题

450

帖子

2

粉丝