打印

AT89c51的内部 RAM是不是不能用来跑程序?

[复制链接]
3866|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunwind45|  楼主 | 2008-3-27 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chenyang20| | 2008-3-27 21:10 | 只看该作者

不能

使用特权

评论回复
板凳
今晚打老虎| | 2008-3-27 21:16 | 只看该作者

难道楼主想省点电

使用特权

评论回复
地板
5880527| | 2008-3-27 21:57 | 只看该作者

楼主能想到这个问题还是很伟大哈

真的,我是这样认为的

使用特权

评论回复
5
yinmu| | 2008-3-28 08:10 | 只看该作者

是把ROM的程序调进寄存器(RAM)里执行的吧

使用特权

评论回复
6
后学| | 2008-3-28 08:18 | 只看该作者

re

    一般单片机的程序都是在Flash中跑,毕竟51的地址空间只有64K,还没有大到需要压缩的地步,
    32位系统一般都是先由bootloader启动,初始化Flash和SDRAM,然后把程序从Flash拷贝到RAM中(可能有解压缩的过程),再从RAM引导程序,这样做的一个好处就是程序运行比较快,另一个好处就是可以用Flash存储一些掉电不丢失的数据信息,

使用特权

评论回复
7
gyt| | 2008-3-28 13:45 | 只看该作者

没有必要吧

使用特权

评论回复
8
xuyaqi| | 2008-3-28 14:45 | 只看该作者

硬件结构决定不行。

使用特权

评论回复
9
john_light| | 2008-3-28 14:49 | 只看该作者

关注一下哈佛和冯诺依曼就清楚了

使用特权

评论回复
10
static| | 2008-3-28 16:58 | 只看该作者

可以!

如果有外部的程序和RAM空间,可以通过切换WD Rd PSEN 来切换代码空间到RAM空间,RAM空间到地址空间;完全可以!

内部的就可以,因为地址不可以改变!

使用特权

评论回复
11
mohanwei| | 2008-3-28 20:08 | 只看该作者

RAM不一定快,FLASH不一定慢……

现在零等待的Flash满天飞……

使用特权

评论回复
12
sunwind45|  楼主 | 2008-3-28 21:37 | 只看该作者

见笑了

见笑了
本来,想试试把程序由外部ROM里搬到外部RAM里去运行.因为用面包板,比较烦,就不想再接个外部RAM.突然间想到了这个问题.

是不是数据/指令分开的结构内部RAM都不能用来跑程序?或者这些哈佛结构的处理器一般不会留内部RAM,都需要外接RAM?

static说的,好象用在外部RAM可以

使用特权

评论回复
13
zjh006| | 2008-3-29 08:27 | 只看该作者

AT89C51不知道可不可以

但是以前用过的一款SUNPLUS(也是51内核)的就可以,通过这个方法在线更新程序。

使用特权

评论回复
14
ayb_ice| | 2008-3-29 08:30 | 只看该作者

有些51确实程序可以在RAM里跑

比如XC866就有地址映射功能,程序可以在XRAM里运行。。。

使用特权

评论回复
15
static| | 2008-3-29 10:06 | 只看该作者

完全可以

51单片机的片内RAM空间和ROM空间地址是固定,不可以切换的;如果采用外部总线外扩RAM和ROM的话,就必须和WR,RD,PSEN参与寻址;这个时候如果PSEN切换到RAM,WR,RD切换到ROM就可以程序在RAM中执行;数据在ROM中读写!

不过在RAM中允许程序必须要给程序自身留有有一个可以使用的RAM空间,此事ROM就可以当作EEPOM用!可以实现IAP自编程!

使用特权

评论回复
16
mohanwei| | 2008-3-29 17:53 | 只看该作者

uPSD的也可以。

使用特权

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

本版积分规则

74

主题

178

帖子

1

粉丝