找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 16
打印 上一主题 下一主题
收起左侧

PIC单片机存储器问题

[复制链接]
跳转到指定楼层
楼主
ID:613324 发表于 2023-3-14 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC单片机的程序存储器空间是8K words,数据存储器空间是1K,这样的话,岂不是ROM空间比RAM空间大??那么程序怎么跑??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1063163 发表于 2023-3-14 15:18 | 只看该作者
你要明白PIC单片机是按照哈佛架构做的,而C51是基于冯诺依曼架构的。
“哈佛体系结构是一种计算机体系结构,其显着特征是:
- 指令存储器和数据存储器是不同的物理设备;
- 指令总线和数据总线在物理上也是分开的。”
这允许同时发送和处理命令和数据,从而大大提高整体性能。
因此,在 PIC 微控制器中,ROM 仅用于存储命令(和不变的数据——消息、转换表、字符生成器……),而 RAM 仅用于存储数据(变量、字符串、缓冲区、结构……) .
这种 PIC 架构在具有电磁干扰和噪声的环境中使用时可实现非常高的可靠性。
回复

使用道具 举报

板凳
ID:353115 发表于 2023-3-14 17:16 | 只看该作者
你可以将ROM理解成书架,RAM理解成书桌。这样你的问题其实就是,书架那么多书,书桌这么小,怎么看书?
书其实可以一点一点看的。
回复

使用道具 举报

地板
ID:401564 发表于 2023-3-14 20:44 | 只看该作者
"这样的话,岂不是ROM空间比RAM空间大??那么程序怎么跑??"
你是基于什么知识问这个问题的呢?
你随便百度一个单片机型号,RAM比ROM还大的,你能找几个来
回复

使用道具 举报

5#
ID:883242 发表于 2023-3-14 21:28 | 只看该作者
Y_G_G 发表于 2023-3-14 20:44
"这样的话,岂不是ROM空间比RAM空间大??那么程序怎么跑??"
你是基于什么知识问这个问题的呢?
你随便 ...

这个真的有,当年非智能手机用的ARM7单片机,程序在NAND flash里面,开机后把flash内容全部加载到RAM里面运行。
回复

使用道具 举报

6#
ID:613324 发表于 2023-3-17 14:03 | 只看该作者
是我之前理解有误,我一直认为要将程序放在RAM里跑,其实程序可以在ROM里跑的。。
回复

使用道具 举报

7#
ID:1034262 发表于 2023-3-17 15:07 | 只看该作者
ROM空间比RAM空间大。MCU不是都这样的吗?通用的MCU里,我没见过RAM比ROM大的,电脑我也没见过内存比硬盘大的。
回复

使用道具 举报

8#
ID:613324 发表于 2023-3-23 16:01 | 只看该作者
coody_sz 发表于 2023-3-17 15:07
ROM空间比RAM空间大。MCU不是都这样的吗?通用的MCU里,我没见过RAM比ROM大的,电脑我也没见过内存比硬盘大 ...

你没见过不代表不可以,我就内存32G,硬盘16G,不可以?
看清问题,我的问题是以为程序是一定要放在RAM里跑的,可实际不是,程序可以放在ROM里跑,也可以放在RAM里跑。可是一般单片机都是放在ROM里跑,数据放在RAM里。
回复

使用道具 举报

9#
ID:139866 发表于 2023-3-23 16:06 | 只看该作者
semonwong 发表于 2023-3-23 16:01
你没见过不代表不可以,我就内存32G,硬盘16G,不可以?
看清问题,我的问题是以为程序是一定要放在RAM ...

这在说芯片,你扯电脑干啥,就算装电脑,谁会放着32G内存条,硬盘去装个16G的,吕布骑狗?
回复

使用道具 举报

10#
ID:401564 发表于 2023-3-23 20:16 | 只看该作者
semonwong 发表于 2023-3-23 16:01
你没见过不代表不可以,我就内存32G,硬盘16G,不可以?
看清问题,我的问题是以为程序是一定要放在RAM ...

你是来向别人请教的,不是来教别人的
"看清问题,我的问题是以为程序是一定要放在RAM里跑的,可实际不是"
你说这话的理论依据是什么呢?程序就是放在RAM里面跑的,而且,也只能放在RAM里运行
ROM是用来放指令的,不是用来运行指令的,单片机就是通过复制ROM里面的指令,放在RAM中运行的,叫复制也行,叫调用也行,大概就是这么个意思了
上古时期的单片机没用过,不好说
现在的单片机,指令都是存放在ROM中,记住,是存放!不是在里面运行
然后,单片机再把ROM中的指令调(叫复制也行)出来,放在RAM中运行的,调用的方式不用,也就有了哈佛结构和冯诺依曼结构之分..........
这种玩意类似于"单片机发展史"之类的,村口大妈聊天一样的内容,你都不舍得看一下?还杠人家.....
回复

使用道具 举报

11#
ID:613324 发表于 2023-3-31 14:27 | 只看该作者
天ノ忆 发表于 2023-3-23 16:06
这在说芯片,你扯电脑干啥,就算装电脑,谁会放着32G内存条,硬盘去装个16G的,吕布骑狗?

是人家扯电脑的。看东西都不仔细,还在指教别人。您真的理解我的提问吗?
回复

使用道具 举报

12#
ID:996773 发表于 2023-3-31 14:45 | 只看该作者
楼主还是先学会写代码让硬件跑起来再说吧,入门自然知道ram和rom干啥了,这个问题不管是小白阶段

问还是高手问都有点多余。
回复

使用道具 举报

13#
ID:613324 发表于 2023-3-31 15:38 | 只看该作者
Y_G_G 发表于 2023-3-23 20:16
你是来向别人请教的,不是来教别人的
"看清问题,我的问题是以为程序是一定要放在RAM里跑的,可实际不是" ...

我不是请教别人,是跟别人讨论这个问题。我也没有教别人,别人说的不对,当然可以提了。这样才能互相进步。我们都不是圣人,每个人说的话,每个人理解的意思,当然有正确有错误,提出哪里不合适,有什么问题?

对于你说的话,我也给你提出一些意见:
pc机在运行程序的时候将程序从外存(硬盘)中,调入到RAM中运行,cpu从RAM中读取程序和数据;
而单片机的程序则是固化在ROM或flash中,MCU运行时直接从ROM或flash中读取程序,从RAM中读取数据,正由于是哈弗结构,数据和指令分家,所以MCU可以直接在ROM中跑,这才回到我讨论的问题,RAM小,怎么把大的ROM的程序放在RAM里跑,其实就是根本不需要放RAM里跑。
本来ROM就是只读存储器,当然可以存放,也当然可以运行,这跟上古不上古有啥关系?和RAM的区别是一个掉电丢失一个掉电不丢失而已。
你不要学个什么ARM啥的就以为程序一定要搬运到RAM中,不同的单片机运转完全不一样。好好看清我的讨论话题,讲的是PIC单片机,PIC什么架构,自己先了解一下!

希望大家不要讲什么哪有这么用的?更希望多从原理入手!
回复

使用道具 举报

14#
ID:613324 发表于 2023-3-31 16:02 | 只看该作者
hi等你 发表于 2023-3-31 14:45
楼主还是先学会写代码让硬件跑起来再说吧,入门自然知道ram和rom干啥了,这个问题不管是小白阶段

问还是 ...

就这个问题,已经抓到好几个没有真正理解的漏网之鱼了。行了,这个话题讨论结束,我也得到我的答案了。
回复

使用道具 举报

15#
ID:401564 发表于 2023-4-3 23:26 | 只看该作者
semonwong 发表于 2023-3-31 15:38
我不是请教别人,是跟别人讨论这个问题。我也没有教别人,别人说的不对,当然可以提了。这样才能互相进步 ...

对的,对的,你说的是对的,我说的全是错的,我什么都不懂
回复

使用道具 举报

16#
ID:613324 发表于 2023-4-4 09:16 | 只看该作者
Y_G_G 发表于 2023-4-3 23:26
对的,对的,你说的是对的,我说的全是错的,我什么都不懂

你要这个态度,没法继续了啊,话题结束,我已找到我的答案。
我只是希望大家都搞懂,而不是说哪有这么用的,眼界打开!
忠言逆耳
回复

使用道具 举报

17#
ID:401564 发表于 2023-4-4 23:43 | 只看该作者
semonwong 发表于 2023-4-4 09:16
你要这个态度,没法继续了啊,话题结束,我已找到我的答案。
我只是希望大家都搞懂,而不是说哪有 ...

对的,对的,你对单片机的认知在我之上,我确实不如你呀
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表