Arm启动流程解析

发布者:工号待定最新更新时间:2016-06-06 来源: eefocus关键字:Arm  启动流程 手机看文章 扫描二维码
随时随地手机看文章
谈到arm的启动流程不得不说的是bootloader,但是我这篇文章主要来谈谈arm启动流程的,所以bootloader只是跟大家简介一下就ok。这篇文章我会谈到以下内容:
1、bootloader简介以及其作用
2、2440、6410、210当下比较常见的3款处理器的启动流程进行简单分析,通过这三款处理器的分析希望大家掌握arm处理器的启动分析。
Ok我们进入主题
l  Bootloader简介及其作用
在我看来bootloader的作用是初始化必要的硬件,引导内核启动。(当然这是主要作用,今天的重点不在bootloader,所以在我后面的博文会继续谈到的)
l  启动流程分析
在分析启动流程的时候我们将会使用的文档是三星公司提供的芯片手册,通过手册我们搞清楚芯片的启动。
在分析启动流程之前我们首先要清楚不论是arm的何种处理器,其都是从0x0 0地址处开始执行程序的。下面的分析我将会通过三个方面:1、芯片支持的启动方式2、地址布局3、启动流程
1.   2440 
a)   启动方式
由上图可知,S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于OM0、OM1两个引脚的状态。
 
  Arm启动流程解析
 
 
b)   地址布局
我们知道arm从0地址出运行代码那么我们的零地址处到底存放的是什么东西呢?我们通过地址布局图来分析
Arm启动流程解析

从上图我们可以清楚的看到左边的是从Nor Flash启动的地址布局,右边是从NAND启动的地址布局,因为Nor Flash内可以运行程序,所以我们在放bootloader的时候放在0地址处即可,所以我们重点分析从NAND启动。
c)   启动流程
我们从地址布局图中可以看到,当我们从NAND启动的时候0地址处是BootSRAM(又叫做stepping stone垫脚石),当我们上电时其会做以下事情
1.   上电后处理器自动将nandflash前4KB的内容到boot sram开始执行(由硬件完成)。
2.   通过bootsram(即刚才进来的4k)来初始化相关硬件和寄存器从而访问nandflash,接下来把剩余的bootloader到内存(SDRAM/DRAM)中,当stepping stone 里面的4KB执行完以后跳转到内存继续执行,完成系统的启动。
2.   6410
a)   启动方式
Arm启动流程解析

从上图我们可以看到6410支持的启动方式比较多有SROM(Nor Flash)启动,oneNAND启动,IROM(IROM是处理器内部的固件/存储器,但不是stepping stone)启动。其中IROM中又有sd卡、NAND,我们可以配置相应的管脚去选择其启动方式。
b)   地址布局
Arm启动流程解析

从上图我们可以发现在0地址处是一个镜像区,不放置任何设备,当我们选择不同的启动方式的时候,其通过映射关系将对应的设备映射到镜像区域。比如我们选择从IROM启动其就会将IROM映射到该区域。
c)   启动流程
Arm启动流程解析

假设我们从NAND启动,从启动方式中我们可以知道从NAND启动是属于从IROM启动的,所以当我们上电的时候其会做以下事情:
1.   将IROM映射到镜像区
2.   IROM中有芯片厂商写好的BL0,由BL0将系统引导至启动选项,然后将BL1(NAND中前8k)拷进stepping stone进行运行
3.   BL1将剩下的BL2拷进内存,当BL1执行完以后跳转到内存继续执行,完成系统的启动。
3.   210
a)   启动方式
Arm启动流程解析

Arm启动流程解析

从上图我们可以看到210支持的启动方式相当的多,但和6410相似。
b)   地址布局
Arm启动流程解析

  从上图我们可以看到其地址布局和6410类似,采用了映射的方法。
c)   启动流程
Arm启动流程解析

假设我们从NAND启动,从启动方式中我们可以知道从NAND启动是属于从IROM启动的,所以当我们上电的时候其会做以下事情:
1.   将IROM映射到镜像区
2.   IROM中有芯片厂商写好的BL0,由BL0将系统引导至启动选项,然后将BL1(NAND中前16k)拷进stepping stone进行运行
3.   若BL2小于80K,BL1则将其拷进stepping stone。若BL2大于80k,BL1将剩下的BL2拷进内存。当BL1执行完以后跳转到内存或者继续在stepping stone运行BL2,完成系统的启动。
关键字:Arm  启动流程 引用地址:Arm启动流程解析

上一篇:ARM学习规划经典
下一篇:ARM9启动分析存储器区分和启动流程解析

推荐阅读最新更新时间:2024-03-16 14:56

ARM 学习笔记六 (看门狗中断试验)
什么是看门狗呢?我也不是很清楚,网上资料说看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定时间,不给把看门狗的计数清0,就会引起计数益处中断,产生系统复位。 但是我知道S3c2440启动代码里一开始就禁止看门狗了。所以,一般都用不上吧。除非你的应用程序实时性比较高,那就得考虑用看门狗来看门了。 #define GLOBAL_CLK 1 #include def.h #include 2440addr.h #include mmu.h #include option.h #define LED1 (1 5
[单片机]
嵌入式JavaPOS系统测试的设计与实现
   0 引 言   随着嵌入式计算机应用技术的发展,嵌入式技术已经广泛应用到现代生活的方方面面。在零售系统方面,零售收款机是嵌入式应用的一个重要领域。目前,市场上的收款机大体上可分为三类:第一类是基于PC和DOS/Windows体系的,这类产品目前占市场绝大多数,属于高端产品,价格太高,适合大的商场和销售系统;第二类是基于单片机(51系列居多)的,基本上没有操作系统的支持,功能也较弱,主要用于餐饮娱乐,占据中低档市场;第三类是正在快速发展的基于嵌入式芯片和嵌入式操作系统的,价格较低,功能较强,适用于中高档市场,这类产品将是未来市场的主体。以上三类收款机的开发平台形形色色,基本上是每一款就是一种开发平台,没有统一的规范、开发和
[嵌入式]
朱老师ARM裸机学习笔记(四):S5PV210启动过程详解
常用器件特性 内存: SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用 DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。 单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM 嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质 PC机: 内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM 外存: NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。 NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是
[单片机]
朱老师<font color='red'>ARM</font>裸机学习笔记(四):S5PV210<font color='red'>启动</font>过程详解
RFID停车场可扩展AMR车位检测系统设计
  引言   停车场车位实时检测是实现停车场智能管理和提高停车位利用率的关键,也是停车管理现代化的要求。停车场车位检测系统的发展,大体经历地感线圈检测、闸机控制和车位实时检测三个阶段。车位检测与检测技术水平有密切的联系,传感器的快速发展是检测水准的保证。前两种车位检测系统的基本架构过于庞大,安装过于繁琐;在可靠性、实时性、准确性、可扩展、低能耗和工程量小等方面都不能满足停车场快速发展的需求。   WiFi是一种短距离无线技术,它通过无线电波来连网,广泛用于室内无线局域网组建。WiFi突出优势在于:一是无线电波的覆盖范围广,半径可达100 m左右;二是WiFi的传输速度非常快,可以达到54 Mb/s;三是进入门槛低,只要支持Wi
[网络通信]
谷歌 Pixel Watch 细节解密:与 NXP 开发 Arm M33 协处理器
IT之家 5 月 25 日消息,谷歌在其 I / O 大会上公布了一款全新的智能手表 ——Pixel Watch,圆润而又精致的外观引起很多人的喜爱。但很可惜,谷歌没有透露 Pixel Watch 的具体规格,预计谷歌将会在 10 月份举行新品上市发布会。 但现在关于 Pixel Watch 的细节爆料也逐渐增多,例如 RAM、设备协处理器等等,让我们对这款设备有了更好的了解。 现在,@Max Winebach 确认了更多有关细节,其协处理器被命名为Arm M33,功耗极低(以微瓦为单位)。此外,这款手表将搭载三星 Exynos 9110 处理器,配备 1.5 GB 的 RAM 和 32 GB 的 ROM 存储,带来流畅的
[手机便携]
谷歌 Pixel Watch 细节解密:与 NXP 开发 <font color='red'>Arm</font> M33 协处理器
ARM处理器和体系结构介绍(Cortex-A9)
ARM(Advanced RISC Machines) 概述:有三种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。 技术特征 体积小、低功耗、低成本、高性能。 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8/16位器件。 大量使用寄存器,指令执行速度更快。 大多数数据操作都在寄存器中完成。 寻址方式灵活简单,执行效率高。 指令长度固定。 嵌入式RISC微处理器 概述:RISC(Reduced Instruction Set Computer)是精简指令集计算机,RISC把着眼点放在如何使计算机的结构更加简单和如何使计算机的处理速度更加快速上。RISC选取了使用频率最高的简单指令,抛
[单片机]
<font color='red'>ARM</font>处理器和体系结构介绍(Cortex-A9)
ARM】2410裸机系列-ADC数模转换
开发环境 1、硬件平台:FS2410 2、主机:Ubuntu 12.04 ADC寄存器配置 1、初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式且启动转换 2、判断转换是否结束(ADCCON ) 3、读取转换结果(ADCDATn) 串口的初始化 见《串口通信·FS2410》: http://infohacker.blog.51cto.com/6751239/1223137 源代码 //adc.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
[单片机]
【<font color='red'>ARM</font>】2410裸机系列-ADC数模转换
ARM S3C2410驱动TFT-LCD的研究
  介绍了S3C2410的LCD控制器的数据和控制管脚,并给出了LCD的控制流程和TFT-LCD的控制器设置规则。参照TFT-LCD CJM10C0101的逻辑要求和时序要求设计了其驱动电路,设置了各主要LCD寄存器。   开发了CJM10C0101在嵌入式LINUX下的显示驱动程序,并在CJM10C0101上显示了清晰稳定的画面。实验表明这套装置通用性好,能驱动大部分的TFT-LCD;可移植性强,经过少许修改即可应用在其他嵌入式系统中。它是S3C2410驱动TFT-LCD的一套较佳的解决方案。   1 引言   随着科技的发展,ARM在社会各个方面的应用越来越广。S3C2410是三星公司生产的基于ARM920T内核的RIS
[单片机]
<font color='red'>ARM</font> S3C2410驱动TFT-LCD的研究
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved