i.mx6启动流程

启动流程

从上电开始到应用程序运行中间到底经历了什么?

  • 加电
    上电中硬件方面会控制各个部分为芯片依次加电。
  • 第一个代码运行,进行BOOT模式选择
    通过引脚BOOT_MODE[1:0]来选择BOOT方式,两种方式。正常运行是内部BOOT模式
    • 01:串行下载 通过OTG1配合厂家提供的软件来为存储代码的设备烧写程序。属于量产模式。类似于单片机ISP
    • 10:内部BOOT模式 芯片会执行内部boot ROM 代码段,这段代码会进行硬件初始化(一部分外设),然后从boot设备(代码存放设备,例如SD/EMMC,NAND)中将代码拷贝出来复制到指定ROM中,一般是DDR.
  • 内部BOOT ROM代码运行
    该代码段为芯片厂商专用,出厂固化。
    1.初始化时钟,设置体统时钟为396Mhz。
    2.根据I/O口选择的代码段存放设备,初始化外部设备并读取以固定格式存储的起始代码段
    2.根据在芯片外部的起始代码段。初始化外部设备,并下载镜像到DDR中
    3.跳转到DDR中运行用户代码。
  • 外部代码段
    外部代码包含以下部分,存放顺序如下。
    1.IVT(Image vector table) 包含一系列地址信息,这些地址信息在ROM中按照固定地址存放。包括镜像程序入口点
    2.BOOT data 启动数据,包含了镜像的拷贝地址,大小等信息
    3.DCD(Device configuration data) 设备配置信息,重点是DDR3的初始化配置
    4.用户代码,最终可执行文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值