打印

在Keil51中如何设置超过64K的ram啊?! 谢谢

[复制链接]
5099|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoyuan_ly|  楼主 | 2013-3-22 01:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
amwrdfe| | 2013-3-22 07:33 | 只看该作者
外部ram是通过dptr指针访问的,
所以自己不扩展端口的情况下,只有最大256+65536个字节的ram

使用特权

评论回复
评论
xiaoyuan_ly 2013-3-22 12:07 回复TA
补充一下:指的是大于64Kram的扩展。 
xiaoyuan_ly 2013-3-22 12:06 回复TA
那如果扩展了呢?! 该如何在Keil中设置,并被编译器认可呢?! 
板凳
菜鸟同学| | 2013-3-22 08:44 | 只看该作者
BANK 分块吧!

使用特权

评论回复
地板
ccxlslr| | 2013-3-22 09:18 | 只看该作者
好像不支持哦,不过可以支持ROM分块。可以超过64KROM

使用特权

评论回复
5
xiaoyuan_ly|  楼主 | 2013-3-22 10:14 | 只看该作者
amwrdfe 发表于 2013-3-22 07:33
外部ram是通过dptr指针访问的,
所以自己不扩展端口的情况下,只有最大256+65536个字节的ram ...

难道就不能像ROM一样分bank扩展吗?! rom可以有最大64个页了,ram呢?!

使用特权

评论回复
6
xiaoyuan_ly|  楼主 | 2013-3-22 10:23 | 只看该作者
amwrdfe 发表于 2013-3-22 07:33
外部ram是通过dptr指针访问的,
所以自己不扩展端口的情况下,只有最大256+65536个字节的ram ...

刚才又想了一下,其实扩展RAM是没有太多的用了和必要了,只要将对rom的操作和对ram操作结合起来去实际的操作ROM,就不需要编译器的支持了。将ram当rom使用就可以了

使用特权

评论回复
7
xiaoyuan_ly|  楼主 | 2013-3-22 14:52 | 只看该作者
再补充一下,就结贴了。
    这些天我一直的乱搞和乱想,其实,一切还是要围绕51的编译器展开的,没有了编译器的支持,硬件再搞的好也没有用(除非一条指令一条指令的自己打代码或者高级的就是自己搞个编译器,已适应你的硬件指令速度处理)。回过头来再看看,keil已经不错了,至少已支持最大16M了,虽然都是通过软件增加指令bank的方式来达到访问目的和操作,毕竟单片机硬件的16位地址线已死死的把性能空间限死了。对于我这个应用者来说,都是无奈之举了。如果keil能支持256M了,该有多好啊!!!

使用特权

评论回复
8
李冬发| | 2013-3-23 00:18 | 只看该作者
用ARM,可以达到nG。
内存要求这么大,再51架构不合适了。

使用特权

评论回复
评论
xiaoyuan_ly 2013-3-23 23:07 回复TA
是啊,我的应用面就是不到使用ARM的前提啊。郁闷 
9
dqyubsh| | 2013-3-23 12:27 | 只看该作者
用BANK可以超过64K RAM,但需要换页,效率很低。而且KEIL编译代码太大,实际效果差强人意。

使用特权

评论回复
评论
xiaoyuan_ly 2013-3-23 23:07 回复TA
你使用过了吗?! 能说点心得之类的了,谢谢!!! 
10
小营七郎| | 2013-3-23 21:20 | 只看该作者
最大的就是64吧?我记得好像就是的。

使用特权

评论回复
评论
xiaoyuan_ly 2013-3-23 23:08 回复TA
通过软件扩展了,你可以看下keil的帮助文件了。 HDATA 
11
dqyubsh| | 2013-3-24 05:44 | 只看该作者
之前做过一个数据回放器,有点类似MP3播放器,不过播放的不是音乐,是另一块板子ADC采集到的波形数据。主机把波形文件存储到板上RAM,然后DAC播放,用来还原采集到的数据。其目的是,在没有外部设备的情况下,依然可以重复生成设备发出的数据,用来调试采集通道,验证硬件和软件解码的正确性。

说它差强人意,是因为即使单片机采用48M、51内核的68013A,但KEIL把RAM数据读回,播放,换页,这一系列操作至少要10ms才能完成一次(C语言)。整个过程实现起来没问题,但速度太低了,不到100KHz,不满意。

所以,如果你试图用keil+51跑大容量RAM,必须先评估一下你的速度,如果没有这方面的要求,KEIL是可以满足的,没问题。

使用特权

评论回复
12
xiaoyuan_ly|  楼主 | 2013-3-25 13:27 | 只看该作者
dqyubsh 发表于 2013-3-24 05:44
之前做过一个数据回放器,有点类似MP3播放器,不过播放的不是音乐,是另一块板子ADC采集到的波形数据。主机 ...

你是在flash中跑,还是到了高速RAM中跑的呢?! FLASH的速度不行啊,等我搞的差不多的时候,不知道有没有兴趣帮我测试使用下这个51软核了,具体目标如下:51核速度能到120M左右,三周期指令,没有流水线,外接32位的sram,程序是搬运到SRAM并在SRAM中运行的。目前看来,基本可行可实施下,不知道你的想法如何,可以给点这方面的建议或意见吗?! 谢谢。

使用特权

评论回复
13
dqyubsh| | 2013-3-25 13:36 | 只看该作者
xiaoyuan_ly 发表于 2013-3-25 13:27
你是在flash中跑,还是到了高速RAM中跑的呢?! FLASH的速度不行啊,等我搞的差不多的时候,不知道有没有 ...

我说的当然是SRAM,不是FLASH。你说的其它情形,我无法实现。你可以用KEIL实际写一段程序,然后在汇编模式下数一下有多少条汇编指令,换算成指令周期,从而知道这段代码的运行时间。

如果是32位总线,那可能会有显著的提高,这个还是需要你自己评估下。

使用特权

评论回复
14
xiaoyuan_ly|  楼主 | 2013-3-25 13:42 | 只看该作者
dqyubsh 发表于 2013-3-25 13:36
我说的当然是SRAM,不是FLASH。你说的其它情形,我无法实现。你可以用KEIL实际写一段程序,然后在汇编模 ...

虽然是32位的地址线,但数据总线还是8位的。指令集毕竟是51指令集啊,还要用51的编译器了。。。。。

使用特权

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

本版积分规则

个人签名:追求卓越,成功将不期而至。

27

主题

284

帖子

1

粉丝