第九章 I.MX6ULL 启动方式学习

I.MX6ULL 启动方式
摘要由CSDN通过智能技术生成

I.MX6ULL 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。用户可以根据实际情况,选择合适的启动设备。不同的启动方式其启动方式和启动要求也不一样,比如上一章中的从 SD 卡启动就需要在 bin 文件前面添加一个数据头,其它的启动设备也是需要这个数据头的。本章我们就来学习一下 I.MX6ULL 的启动方式,以及不同设备启动的要求。

9.1 启动方式选择

BOOT 的处理过程是发生在 I.MX6ULL 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式。 BOOT_MODE[1:0]的值是可以改变的,有两种方式:

第一种方式:改写 eFUSE(熔丝),修改 eFUSE 的方式只能修改一次,后面就不能再修改了;

第二种方式:一种是修改相应的 GPIO 高低电平,修改 BOOT_MODE[1:0]对应的 GPIO 高低电平来选择启动方式,所有的开发板都使用的这种方式。

I.MX6ULL 有一个 BOOT_MODE1 引脚和BOOT_MODE0 引脚,这两个引脚对应这 BOOT_MODE[1:0]。 I.MX6ULL-ALPHA 开发板的这两个引脚原理图如图 9.1.1 所示:

图 9.1.1 BOOT_MODE 原理图

其中 BOOT_MODE1 和 BOOT_MODE0 在芯片内部是有 100KΩ下拉电阻的,所以默认是0。 BOOT_MODE1 和 BOOT_MODE0 这两个引脚我们也接到了底板的拨码开关上,这样我们就可以通过拨码开关来控制 BOOT_MODE1 和 BOOT_MODE0 的高低电平。

以 BOOT_MODE1为例,当我们把 BOOT_CFG 的第一个开关拨到“ON”的时候,就是高电平,拨到“OFF”就是低电平。

I.MX6ULL 有四个 BOOT 模式,这四个 BOOT 模式由 BOOT_MODE[1:0]来控制,也就是BOOT_MODE1 和 BOOT_MODE0 这两 IO, BOOT 模式配置如表 9.1.1 所示:

表 9.1.1 BOOT 类型

本开发板用到的只有第二和第三种 BOOT 方式。

9.1.1 串行下载

当 BOOT_MODE1 为 0, BOOT_MODE0 为 1 的时候此模式使能,串行下载就是可以通过 USB 或者 UART 将代码下载到板子上的外置存储设备中,我们可以使用 OTG1 这个 USB口向开发板上的 SD/EMMC、 NAND 等存储设备下载代码。这个下载是需要用到 NXP 提供的一个软件,一般用来最终量产的时候将代码烧写到外置存储设备中的,后面讲解如何使用。

9.1.2 内部 BOOT 模式

当 BOOT_MODE1 为 1, BOOT_MODE0 为 0 的时候此模式使能,在此模式下,芯片会执行内部的 boot ROM 代码,这段 boot ROM 代码会进行硬件初始化(一部分外设),然后从 boot 设备(就是存放代码的设备、比如 SD/EMMC、 NAND)中将代码拷贝出来复制到指定的 RAM 中,一般是 DDR。

9.2 BOOT ROM 初始化内容

当设置 BOOT 模式为“内部 BOOT 模式”以后, I.MX6ULL 内部的 boot ROM 代码就会执行,首先肯定是初始化时钟, boot ROM 设置的系统时钟如图 9.2.1 所示

图 9.2.1 boot ROM 系统时钟设置

在图 9.2.1 中 BT_FREQ 模式为 0,可以看到, boot ROM 会将 I.MX6U 的内核时钟设置为396MHz, 也就是主频为 396Mhz。 System PLL=528Mhz, USB PLL=480MHz, AHB=132MHzÿ

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值