从Nandflash启动代码
在我的印象中,Nandflash具有很高的容量,访问方式类似于硬盘这样的块设备,需要有专用的驱动程序,适合于存放数据;而Norflash具有很高的速度,可以象SDRAM一样随机访问,并且可以直接在Norflash中运行程序,但是容量却不能做的很大,适合存放代码。因此我一直理所当然的认为,目标板上必须有Norflash来存放代码(至少用来存放启动代码)。
但是最近见到一块S3C2410的开发板,板上只有64M的Nandflash,却没有看到Norflash的影子,bootloader是直接下载到Nandflash的第0块的。在网上找了很久也没有找到答案,百思不得其解,猜测S3C2410有了什么“特异功能”,最后在S3C2410的用户手册中找到了答案。
原来,S3C2410集成了一个Nandflash控制器和一个容量为4KB的SDRAM缓存(称作Steppingstone),能够在系统启动时将Nandflash的前4KB内容拷贝到Steppingstone中,然后将Steppingstone映射到0x0的地址后,从0x0开始启动运行。因此启动代码应该放在Nandflash的前4KB中,并且在启动代码中将主程序从Nandflash拷贝到SDRAM中,拷贝后在SDRAM中运行主程序。
这样一来,即使没有Norflash,目标板一样的启动。由于Norflash比Nandflash和SDRAM都贵,因此,虽然系统需要的SDRAM的容量增加了,但是整个系统的开发成本还是可以降低不少。
从Nandflash启动代码相关推荐
- NandFlash启动理解(S3C2410)
1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并切被设置成autobo ...
- norflash/nandflash 启动分析 转
S3C2440和S5PV210是很多 嵌入式爱好者入门的arm处理器,网上的资料也很多.今天我们就来聊聊S3C2440和S5PV210的启动流程,上一篇博客我介绍了uboot在norflah上的启动流 ...
- norflash/nandflash 启动分析
S3C2440和S5PV210是很多 嵌入式爱好者入门的arm处理器,网上的资料也很多.今天我们就来聊聊S3C2440和S5PV210的启动流程,上一篇博客我介绍了uboot在norflah上的 ...
- 全志 android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- 全志android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- TQQ2440第一节:启动代码
由于网上和我自己用的开发板有气度代码,所以我打算先把ARM9的外围熟悉了在回来看看启动代码,我也大约的看了一下和ARM7的差不多.只是从NANDFLASH启动多了拷贝代码,和MMU初始化的代码,在这里 ...
- u-boot 启动代码start.S详解(for mini2440)
u-boot存储器映射图: start.S 代码分析 #include <common.h> #include <config.h>/*#include <config. ...
- nandflash 启动
S3C2440和S5PV210是很多 嵌入式爱好者入门的arm处理器,网上的资料也很多.今天我们就来聊聊S3C2440和S5PV210的启动流程,上一篇博客我介绍了uboot在norflah上的启动流 ...
- ARM裸机篇---启动代码分析
ARM裸机篇---启动代码分析 先搞清楚启动代码和Bootloader的区别,启动代码是指CPU复位后到进入C语言的main函数之前需要执行的那段汇编代码. 下面的代码先暂且这样吧,没啥注释的,时间关 ...
最新文章
- 人脸识别技术及应用,了解一下
- 2016年全球芯片市场或衰退2.13%
- 学习VUE时,利用webpack打包的错误处理方法
- 【转载】CMenu自绘---钩子---去除边框
- [JS 分析] 天_眼_查 字体文件
- Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
- [转帖]公司内网机器病毒
- Linux操作Oracle(5)——Oracle11g 卸载OPatch安装补丁的方法【rollback已安装的补丁】及报错问题解决
- openresty连接mysql_在CentOS 6上使用openresty访问mysql
- java jvm理解_【java】之深入理解JVM
- 搜索不到网络计算机和设备,电脑搜不到无线网络原因分析和对应解决办法
- 新冠病毒对计算机的影响,人工智能给新冠病毒分类
- python实现添加商品至购物车
- vue3 setup语法糖事件引用和写法
- 华为云计算IE面试笔记-eBackup有哪几种备份组网方式,各备份组网方式主要的应用场景及备份流程?
- synchronized锁升级那点事
- 二维数组解引用解释——指针
- 小蜜智能对话开发平台
- 千访 | “霸总”人设揽粉近十万!小红书企业号还能这么玩?
- 【小沐学Python】Python实现在线电子书(MkDocs + readthedocs + github + Markdown)
热门文章
- 随机梯度下降,mini-batch梯度下降,在线学习机制,mapreduce
- 《虐杀原形2》的特效系统
- MOS管的特征频率ft
- 站长在线Python精讲:在Python函数中理解形式参数和实际参数
- Unity3d 2020 无法连接Visual Studio(2017/2022)进行断点调试(附加到Unity3d)问题
- 手机模拟蓝牙手柄控制kobuki底座
- 短信-股票代码002291 000524 002467 002582
- 按键精灵1.3.7使用心得
- rgb ALPHA_8、ARGB_4444、ARGB_8888和RGB_565的区别
- [RK3568 Android11] 教程之升级固件方法二(电脑升级Update包)