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

[复制链接]
4992|15
 楼主| sunwind45 发表于 2008-3-27 20:11 | 显示全部楼层 |阅读模式
chenyang20 发表于 2008-3-27 21:10 | 显示全部楼层
今晚打老虎 发表于 2008-3-27 21:16 | 显示全部楼层

难道楼主想省点电

5880527 发表于 2008-3-27 21:57 | 显示全部楼层

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

真的,我是这样认为的
yinmu 发表于 2008-3-28 08:10 | 显示全部楼层

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

后学 发表于 2008-3-28 08:18 | 显示全部楼层

re

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

没有必要吧

xuyaqi 发表于 2008-3-28 14:45 | 显示全部楼层

硬件结构决定不行。

john_light 发表于 2008-3-28 14:49 | 显示全部楼层

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

static 发表于 2008-3-28 16:58 | 显示全部楼层

可以!

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

内部的就可以,因为地址不可以改变!
mohanwei 发表于 2008-3-28 20:08 | 显示全部楼层

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

现在零等待的Flash满天飞……
 楼主| sunwind45 发表于 2008-3-28 21:37 | 显示全部楼层

见笑了

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

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

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

zjh006 发表于 2008-3-29 08:27 | 显示全部楼层

AT89C51不知道可不可以

但是以前用过的一款SUNPLUS(也是51内核)的就可以,通过这个方法在线更新程序。
ayb_ice 发表于 2008-3-29 08:30 | 显示全部楼层

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

比如XC866就有地址映射功能,程序可以在XRAM里运行。。。
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自编程!
mohanwei 发表于 2008-3-29 17:53 | 显示全部楼层

uPSD的也可以。

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

本版积分规则

74

主题

178

帖子

1

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