Skip to content

# 5.1. J6X Boot Mode

## 5.1.1. Boot Sequence

以上是J6X的启动流程图。

如上图所示，J6X在冷启动时，经过BootROM，进而一步步启动各个镜像。

当休眠唤醒Secondary Core启动时，不需要经过BootROM，支持从内部Sram已有的代码中直接启动。

## 5.1.2. 支持的启动模式

J6X支持Flash启动、USB启动和Uart启动三种模式，各个启动模式之间可以通过strap pin来控制。

### 5.1.2.1. Matrix 板情况

J6X Matrix板上的strap pin可以通过拨码开关和bootstrap跳线来切换，如下图所示：

拨码开关：

​​bootstrap实物图：

​​bootstrap原理图：

Matrix6 E/M芯片strap pin引脚

### 5.1.2.2. 启动模式对照表

请根据下表的配置信息，通过调整SW2开关的pin[2]、Bootstrap[1:0]来控制启动模式。

SW2[2] | Bootstrap[1:0] | Function
0 | xx | Flash
1 | 00 | UART
1 | 1x | USB

## 5.1.3. Nor Flash启动

Nor flash启动是主要使用的启动模式，镜像写入到Nor flash之后，配置好相应的strap pin，再重新上电后即可使用。

## 5.1.4. Uart启动

### 5.1.4.1. Uart启动信息

下面的串口输出信息指明了设备是从Uart来进行启动的, 如下所示：

    I:Bootrom v1.0.8-5211228 (Tue, 02 Jan 2024 14:40:09 +0800)
    4455-5353-4d33-4853-474e-4543-434c-534c-4852-4c4f-4e42-444e
    uart>>>
    CCCCCCCCCCCCCCC

### 5.1.4.2. 进入方法

#### 5.1.4.2.1. 通过切换Strap pin进入uart下载模式

通过切换strap pin的状态，J6X会直接进入Uart启动模式。

#### 5.1.4.2.2. 连续加载镜像失败8次自动进入serial download模式

bootrom从flash加载，加载不到镜像会轮询8次进入serial download模式。

    I:Bootrom v1.0.8-5211228 (Tue, 02 Jan 2024 14:40:09 +0800)
    4455-5353-4d33-4853-474e-4543-434c-534c-4852-4c4f-4e42-444e
    uart>>>
    CCCCCCCCCCCCCCC

### 5.1.4.3. 环境配置

#### 5.1.4.3.1. PC环境设置

在此章节中，暂时假设用户有一定的基础知识，知道python依赖库如何安装，uart权限的设置等基础知识，如果读者没有掌握这些技能，请学习相应的知识之后再阅读本文档。

进入uart启动模式后，可以使用如下工具来将镜像下载到板子上进行运行。

参考工具源码

发布包中如下位置有参考的工具代码：

xmodem_tools/

#### 5.1.4.3.2. 使用uart启动

启动命令参考 镜像烧写工具使用。

## 5.1.5. USB启动

使用USB方式启动前，请确保主机通过Micro-USB线连接到了开发板的USB口，如下图：

随后直接通过切换Strap pin拨码和添加bootstrap跳线进入USB启动模式，参考上面的 启动模式对照表。

进入USB启动模式后，MCU串口会有如下打印：

    horizon:/$ susb>>>
    high speed config #1: Device Firmware Upgrade Gadget
    UUUUUUUUUUUUUUUUUU

使用DFU工具依次烧写SBL、MCU和BL31等固件，DFU工具使用及相关命令参考 DFU。