搜索
bottom↓
回复: 11

初学arm9 对体系结构不是太清楚 几个问题求解答

[复制链接]

出0入0汤圆

发表于 2012-7-1 18:53:42 | 显示全部楼层 |阅读模式
不知道我下面这样理解对不对:
首先我知道有两种启动方式nor flash和nand flash
s3c2440裸跑程序:当从nor flash启动的时候,表现为哈佛结构,nor flash作为程序存储器,外接SDram做数据存储器
                          当从nand flash启动的时候,程序小于4kb的时候表现为哈佛结构,内部SRAM作为程序存储器,外接SDRAM做数据存储器;程序大于4KB时,前4KB程序表现为哈佛结构,内部SRAM做程序存储器,外接SDRAM做数据存储器,4KB以后程序表现为冯诺依曼结构,程序存储器和数据存储器都为外接SDRAM。启动过程如下:先将前4KB程序读入内部SRAM,用于初始化硬件以及将剩余程序读入外接SDRAM,然后再外接SDRAM中运行剩余程序。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-7-2 09:31:49 | 显示全部楼层
我觉得你的理解正确。

出0入0汤圆

发表于 2012-7-2 09:57:27 | 显示全部楼层
错!

s3c2440有两种启动方式,从nor flash和从nand flash启动,都是哈佛结构,所谓哈佛结构,就是程序与数据统一编址的寻址结构

当从nor flash启动的时候,nor flash作为程序存储器,sdram做数据存储器,但也可以把程序拷贝到sdram中运行

当从nand flash启动的时候,s3c2440会把nand flash前面4K的内容(程序头)拷贝到s3c2440内部的iram,并从iram中运行,程序头再把nand flash中剩余的程序拷贝到sdram,最后跳转到sdram中运行

出0入0汤圆

 楼主| 发表于 2012-7-2 16:32:43 | 显示全部楼层
wyoujtg 发表于 2012-7-2 09:57
错!

s3c2440有两种启动方式,从nor flash和从nand flash启动,都是哈佛结构,所谓哈佛结构,就是程序与数 ...

哈佛结构是数据和代码分开的吧

出0入0汤圆

发表于 2012-7-2 17:40:13 | 显示全部楼层
wyoujtg 发表于 2012-7-2 09:57
错!

s3c2440有两种启动方式,从nor flash和从nand flash启动,都是哈佛结构,所谓哈佛结构,就是程序与数 ...

哈佛是分开的。。。

出0入0汤圆

发表于 2012-7-2 17:55:06 | 显示全部楼层
winterw 发表于 2012-7-2 17:40
哈佛是分开的。。。

看来我搞错了

出0入0汤圆

发表于 2012-7-2 22:48:01 | 显示全部楼层
wyoujtg 发表于 2012-7-2 17:55
看来我搞错了

你的smile写的挺棒,正在拜读

出0入0汤圆

发表于 2012-7-2 23:19:06 | 显示全部楼层
到底哪个是对的?

出0入0汤圆

发表于 2012-7-4 18:01:36 | 显示全部楼层
我来解析吧,,我的肯定是对的。。肯定。。肯定

ARM的地址就是 统一编址的。
NOR 启动的方式,在 低地址有NOR flash存储器,高一点地址有RAM随机内存,就这样子,2440内部那个4K的启动SDRAM因为跟NOR flash地址重叠了,跳线选择NOR启动的时候

4K的启动SDRAM没有选上,所以4K的启动SDRAM是不能用的。nand flash因为没有挂在地址上,它就像SD卡那样通过一个控制器来读取的,所以nand flash任何时候都可以用。

nandflash 启动的时候,nor flash就没有用了(没片选上),启动的时候芯片内部有电路自动把nandflash 前面4K的代码拷贝到4K的启动SDRAM,然后从4K的启动SDRAM启动。
如果启动代码 大于4K就要自己拷贝到外部SDRAM中运行了。

其实理解这些东西只要明白: 任何代码,它要运行,都要存在于统一编址的地址中。比如 NOR Flash 和外部SDRAM就在这个地址中的,所以代码必须在其中任何一个才能运行

在nand flash中是不能运行的,在SD卡也不行,硬盘也不行,芯片内部4K的启动SDRAM可以,因为它在这个地址中

出0入0汤圆

发表于 2012-7-10 19:11:45 | 显示全部楼层
maxbiger 发表于 2012-7-4 18:01
我来解析吧,,我的肯定是对的。。肯定。。肯定

ARM的地址就是 统一编址的。

你说的很对,代码是不能在nand flash中运行的。因为数据不能以 字 为单位读出,故无法运行。2440内部那个4K的启动SDRAM好像有个名字叫stone。

出0入0汤圆

发表于 2012-7-11 10:58:05 | 显示全部楼层
大家能帮忙看看这个有关2440的问题吗?
http://www.amobbs.com/thread-5485398-1-1.html

出0入0汤圆

发表于 2012-7-11 17:20:44 | 显示全部楼层
laixiaoshuai90 发表于 2012-7-10 19:11
你说的很对,代码是不能在nand flash中运行的。因为数据不能以 字 为单位读出,故无法运行。2440内部那个 ...

从Nand Flash启动CPU时,CPU会通过内部的硬件将Nand Flash开始的4KB数据复制到称为Steppingstone的4KB内部RAM中,起始地址为0,然后跳到地址0开始执行。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 15:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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