2440:

启动方式:nor , nand

地址布局:

启动流程:

开发板在上电后,会从0x0地址处运行。

如果从nor flash启动,则代码要放在nor 的0地址处;

如果从nand flash启动,nand flash是不能直接访问的,必须通过相应的寄存器才能访问到,所以nand flash 不能参与ARM处理器的统一编址。从图上可以看出,我们从nandflash启动的0地址处是BootSRAM(垫脚石),从我们的BootSRAM取第一条指令,好像并没有从我们nand flash取代码。其实在我们上电的时候,

1) 处理器会自动从nand flash拷贝最前面4k代码到BootSRAM,这就间接从nand flash取到代码启动了。

2) 由于我们的bootloader通常不止4k,所以剩下的代码就会被复制到内存(由BootSRAM的一部分代码实现)


6410:

启动方式:SRAM(nor), OneNAND(具有nor和nand双重属性),

MODEM, IROM(包括SD卡启动和nand启动)

地址布局:

启动流程:

上电之后,从镜象区域启动,镜象区域就是以上启动方式的映射

nand启动流程:

1) nand启动属于IROM启动的一种,所以上电后首先访问IROM里的BL0,芯片厂商固化好的一段代码,除了初始化硬件以外,还会把我们nand flash里的BL1(8k)拷贝到stepping stone运行,而BL1又会把剩下的BL2拷贝到内存SDRAM去运行。


210:

启动方式:IROM,USB,UART

地址布局:

启动流程:

先执行BL0----->拷贝BL1到I-SRAM----->拷贝剩下的BL2还是到I-SRAM(容量很大96k)----->当BL2很大超过80k时候,BL2就不能拷贝到I-SRAM,就要让BL1把它拷贝到内存SDRAM了。

arm处理器启动流程分析的更多相关文章

  1. [国嵌笔记][029][ARM处理器启动流程分析v2]

    2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flas ...

  2. ARM处理器启动流程

    根据<<芯片手册>>查看相关内容: 1.启动方式 2.地址布局 3.启动流程

  3. Uboot启动流程分析(转载)

    最近一段时间一直在做uboot移植相关的工作,需要将uboot-2016-7移植到单位设计的ARMv7的处理器上.正好元旦放假三天闲来无事,有段完整的时间来整理下最近的工作成果.之前在学习uboot时 ...

  4. Uboot启动流程分析(二)

    1.前言 在前面的文章Uboot启动流程分析(一)中,链接如下: https://www.cnblogs.com/Cqlismy/p/12000889.html 已经简单地分析了low_level_i ...

  5. Uboot启动流程分析(一)

    1.前言 Linux系统的启动需要一个bootloader程序,该bootloader程序会先初始化DDR等外设,然后将Linux内核从flash中拷贝到DDR中,最后启动Linux内核,uboot的 ...

  6. 【UEFI】---史上最全的X86平台启动流程分析(软硬结合)

    最近研究了下X86处理器的启动流程分析,相比于常见的ARM来说,X86平台启动流程真的复杂了很多,本次基于项目实际的两个问题入手,研究了包括以下几个部分的内容: 1. 从硬件角度看启动流程 2. 从软 ...

  7. u-boot启动流程分析(2)_板级(board)部分

    转自:http://www.wowotech.net/u-boot/boot_flow_2.html 目录: 1. 前言 2. Generic Board 3. _main 4. global dat ...

  8. u-boot启动流程分析(1)_平台相关部分

    转自:http://www.wowotech.net/u-boot/boot_flow_1.html 1. 前言 本文将结合u-boot的“board—>machine—>arch—> ...

  9. Netty 拆包粘包和服务启动流程分析

    Netty 拆包粘包和服务启动流程分析 通过本章学习,笔者希望你能掌握EventLoopGroup的工作流程,ServerBootstrap的启动流程,ChannelPipeline是如何操作管理Ch ...

随机推荐

  1. shell 文本处理——使用awk格式化时间戳

    date -d @时间戳 "+%Y-%m-%d %H:%M:%S" 也可以内置函数 awk '{print strftime("%Y-%m-%d %H:%M:%S&quo ...

  2. 相聚 桂林电子科技大学第三届ACM程序设计竞赛

    题目链接:https://ac.nowcoder.com/acm/contest/558/D 就是求有多少块区域,用DFS就可以解决,一遇到一个1就从其开始深搜,将其所在的区域块覆灭(变为0),再遇到 ...

  3. [翻译] Virtual method interception 虚方法拦截

    原文地址:http://blog.barrkel.com/2010/09/virtual-method-interception.html 注:基于本人英文水平,以下翻译只是我自己的理解,如对读者造成 ...

  4. 学习总结---INNODB 事务并发

    目前在做一个OLTP的数据库系统,批量读写和随机读写并发,情况比较复杂.INNODB是我们的MYSQL引擎,他的主要特点是读操作可以不受阻塞,而修改操作会加锁.如何才能最高效的使用innodb是我们需 ...

  5. tf中softmax_cross_entropy_with_logits与sparse_softmax_cross_entropy_with_logits

    其实这两个都是计算交叉熵,只是输入数据不同. #sparse 稀疏的.稀少的 word_labels = tf.constant([2,0]) predict_logits = tf.constant ...

  6. python 删除一个目录下的所有文件

    一个目录下有文件,文件夹,文件夹里又有文件.文件夹....用python脚本,实现,递归删除一个目录下的所有文件: 目录结构如下: 其中我们要删除所有文件 代码实现如下: import os CUR_ ...

  7. IocPerformance 常见IOC 功能、性能比较

    IocPerformance IocPerformance 基本功能.高级功能.启动预热三方面比较各IOC,可以用作选型参考. Lamar: StructureMap的替代品 Lamar 文档 兼容S ...

  8. leetcode 第三大的数

    给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...

  9. C#默认以管理员身份运行程序实现代码

    using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; names ...

  10. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境