mini2440之启动机制---转自Linux社区

arm core:为执行汇编程序的核心部件

rom:厂家固化的代码,用于在arm上电后执行,将nand flash中大小如sram的前面代码(bootloader代码)拷贝到sram中,并cpu跳到sram的0x0位置

sram(片内,4k):在执行nand flash中前小段代码(4kb左右),初始化sdram/ddr,并将nand flash中剩余的bootloader代码拷贝到sdram中,最后跳入sdram中继续执行

sdram:mini2440的内存,当从sram中进入sdram后,开始执行bootloader的其余代码,加载内核到内存(内核存在于内存),加载完后进入内核继续正常运行

Nor flash:带有通用的sram的接口,可以直接访问内存,启动时候零地址指向norflash,适合做代码存储并EIP的

nand flash:常用于存放较大的数据

mini2440启动时,从0x00开始执行,其分为nand flash和nor flash上启动。

arm启动的时候内部结构大致如下

1.Nor flash的有自己的地址线和数据线,可以采用类似于存储器的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。mini2440就是直接把vivi直接烧录在nor flash上。

2.Nand flash是IO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像nor flash、内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot。

Mini2440把Bootloader烧到nand flash上启动,因为在mini2440里有一个内置的SRAM,叫做stepping stone(垫脚石),系统启动加电后,会把nand flash上的起始4KB的内容拷贝到SRAM里执行,这样就实现了从nand flash启动。如果bootloader小于4KB的话(像vboot),在SRAM里就能boot,大于4KB的话(u-boot,vivi),在SRAM里做一些基本初始化后,再把bootloader的剩余部分拷贝到SDRAM里(>0x30000000)。

我们使用mini2440的时候,经常通过nor flash启动,进入vivi的菜单(mini2440的Nor flash已经烧录好了vivi),之后通过vivi的usb下载功能,把其他的bootloader下在到nand flash里,下载完成后,再通过nand flash启动,测试我们的bootloader。

时间: 2024-10-07 13:09:20

mini2440之启动机制---转自Linux社区的相关文章

Linux系统的快速启动机制(内核切换) 【转】

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4187846 原文地址:Linux系统的快速启动机制(内核切换) 作者:Renwen0524 快速启动机制:允许通过已经运行的Linux内核的上下文启动另一个Linux内核,不需要经过BIOS.BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器.这种办法可以为经常启动机器的开发者节省很多时间. 1.使用该机制要满足两个基本条件1)内核

Linux systemd 启动机制

/************************************************************************* * Linux systemd 启动机制 * 说明: * 听说Linux Systemd启动流程要替代以前的SysV init启动流程,于是了解一 * 下Systemd工作机制,站在使用者角度,更关心的是如何使用,记录参考文章. * * 2016-11-22 深圳 南山平山村 曾剑锋 ********************************

Linux系统运行级与启动机制剖析

原文作者:技术成就梦想 原文链接:http://ixdba.blog.51cto.com/2895551/533740 一 系统运行级windows系统有安全运行模式和正常运行模式,这是两个不同的运行级,同样,linux也有系统运行级别,并且linux系统的运行级别更加灵活,更加多样化.在讲述运行级别前,先讲述下linux下的init程序,因为init程序直接和系统运行级别相关联, init程序是linux操作系统最主要的程序之一,是一个由系统内核启动的用户级进程,同时init进程也是所有其它系

安全狗Linux新版携手国内顶尖Linux社区首发

2015年4月27日,国内领先的云安全与解决方案提供商安全狗发布服务器安全狗LinuxV2.5新版本. Linux中国.Linux伊甸园.红联Linux和CentOS中文站等Linux社区皆是专注于Linux技术.提供专业Linux资讯的顶尖平台.此次联手与安全狗一起发布Linux新版,为广大用户带来全新的Linux系统操作体验.同时,几个联合首发的合作伙伴还为大家带来精美礼品,为新版本锦上添花. 服务器安全狗LinuxV2.5是一个服务器客户端和云端(服云)设置相结合的,集服务器安全防护和网站

(mini2440)建立交叉编译环境+配置linux内核

(mini2440)建立交叉编译环境+配置linux内核 系统ubuntu12.04(非虚拟机下) mini2440 CPU型号:       S3C2440AL-40 Nanflash型号:K9F1G08 Norflash型号:SST39VF1601 LCD:              统宝 240 x 320 $: 普通账户 #:root账户 *当shell下输入路径时可使用tab键自动补全 (一)建立交叉编译环境 1.将mini2440光盘中的linux文件夹拷贝到 /home/liang

系统的启动模式(启动级别)的改动---使用upstart启动机制的

/*********************************************************************  * Author  : Samson  * Date    : 06/18/2014  * Test platform:  *              Mint 15  *              GNU bash, version 4.2.45  * *************************************************

实例讲解Nginx下的rewrite规则 来源:Linux社区

一.正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!-x用来判断文件是否可执行三.rewrite指令的最后一项参数为flag标记,flag标记有:1.last    相当于apache里面的[L]标记,表示rewrite.2.break本条规则匹配完成后,终止匹配

SVN如何查看修改的文件记录] 来源:Linux社区 作者:frogoscar

SVN如何查看修改的文件记录 [日期:2014-11-20] 来源:Linux社区  作者:frogoscar [字体:大 中 小] 主要是有四个命令,svn log用来展示svn 的版本作者.日期.路径等等:svn diff,用来显示特定修改的行级详细信息:svn cat,取得在特定版本的某文件显示在当前屏幕:svn  list,显示一个目录或某一版本存在的文件. 比较常用的是svn diff命令.它可以比较不同版本之间.svn版本和本地版本库之间,以及检查本地修改的作用. svn diff;

系统的启动模式(启动级别)的修改---使用upstart启动机制的

/*********************************************************************  * Author  : Samson  * Date    : 06/18/2014  * Test platform:  *              Mint 15  *              GNU bash, version 4.2.45  * *************************************************