imx6q的启动方式

嵌入式Linux之旅-imx6q 同时被 2 个专栏收录
6 篇文章 0 订阅

少则得,多则惑。—— 老子 《道德经》

imx6q的boot mode

imx6q的boot mode的选择是根据BOOT MODE的寄存器,而BOOT MODE的寄存器是由在POR的上升沿采集BOOT_MODE0和BOOT_MODE1引脚决定的。imx6q的启动方式如下表
在这里插入图片描述
我的板子的BOOT_MODE0和BOOT_MODE1分别是0和1,也就是上表的Internal Boot,也是大多数开发阶段使用的模式。

BT_FUSE_SEL的设置

内部启动Internal Boot的启动方式由efuse中的BT_FUSE_SEL熔丝决定的,BT_FUSE_SEL默认是0。BT_FUSE_SEL是1的时候,imx6q的启动方式由efuse中的BOOT_CFG[1~4]决定;BT_FUSE_SEL是0的时候,imx6q的启动方式由GPIO中的BOOT_CFG[1-4]决定。

GPIO中的BOOT_CFG[1-4]

我的板子的BOOT_CFG[3-4]都是连接到GND,即都是0。BOOT_CFG[1~2]的连接原理图如下图所示。
boot_cfg
BOOT_CFG[1-2]的各个bit的含义如下表
在这里插入图片描述
在这里插入图片描述
根据上面的原理图,总结如下

BOOT_CFG101234567
State0000S5S6S70
BOOT_CFG201234567
State000S1S2S3S40

其中S1 - S7是拨码开发,可以将引脚连接到0或者1。

我们最常用的是模式是,正常启动模式和烧写模式。下面分别介绍他们的设置方法。

  • 从eMMC启动的设置
    我的开发板固件是烧写在eMMC上的,所以BOOT_CFG1[7:4]设置成011x。也就是S6和S7要设置成1。这里不使用eMMC的fast boot模式,所以BOOT_CFG1[4]设置成0,即S5为0。
    S3和S4用来设置eMMC的总线宽度,这里设置的是非DDR模式的4bit,所以S4为0,S3为1。S1和S2用来选择使用哪个USDHC接口的,根据原理图,使用的是USDHC-4,所以S1和S2都设置成1。

  • USB烧写模式的设置
    本来可以通过修改BOOT_MODE0和BOOT_MODE1引脚的高低电平进入USB烧写模式,但是板子上已经将上面的两个引脚固定成Internal Boot模式,所以可以参考如下说明
    ib
    让boot code无法正确启动即可。比如设置BOOT_CFG1让芯片从SD卡启动,也就是把S6设置为0,但是板子也不插上SD卡,imx6q就可以进入usb烧写模式 了。

  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值