专栏算法工具链征程6E/M软件系统镜像烧写

征程6E/M软件系统镜像烧写

六朝金粉地2024-07-15
782
0

1. 镜像文件准备

*编译时,为了方便追溯底软版本,可以指定版本信息,只需要在配置文件中对相关环境变量赋值即可,如在j6_myproject_defconfig中赋值:

export TAG_NAME=Myproject

在板端使用如下命令查看:

1.1 编译环境选择

在/platform_sdk代码顶层路径执行 source envsetup.sh lunch,选择combo:

*如果未将配置好的.config文件拷贝到platform_sdk/device/horizon/j6/defconfig下,

则可以在执行 make manuconfig 后直接使用 source envsetup.sh 选择环境即可。

1.2 编译全部分区

执行编译动作:

生成的镜像文件位于目录 platform_sdk/out/release-gcc_11.4-64/target/product/img_packages/ 下。

其中,flash_all.sh脚本使用fastboot方式用于刷写所有分区。

1.3 编译单分区:

j6 build 系统支持单编各个module来缩小编译时间

基本逻辑:先编译模块(bdm xxx),再打包镜像(bd img xxx)

1.4 *build命令支持:

  • 编译所有模块并生成disk镜像

编译所有模块,对编译生成的文件打包并生成各个分区镜像,同时生成flash_disk、emmc_disk以及ufs_disk等整包镜像。

  • 单独编译kernel:

需先完成对kernel的编译,编译方法:

  • 单独编译某个独立模块以及依赖:

“独立模块” 指的是kernel以及hobot-drivers外通过Kconfig接入到build中的模块,如hbre下的otaupdate。

  • 清理

2. 镜像烧录准备

2.1 硬件环境准备:

电脑通过USB接板子uart口:

SW2拨至off:

2.2 串口通讯准备:

当使用windows通过串口连接J6X Matrix板时,需安装对应驱动,驱动下载链接:http://www.ftdichip.cn/Drivers/VCP.htm

下载位置:

解压后:

直接安装即可:

驱动安装后识别出的四个COM口,选择顺序从一开始,第三个COM口是acore,第四个COM口是mcu。

*本文档acore为COM6。

与开发板连接的PC,需要配备有可以通过USB与开发板串口通讯,或通过网口以ssh协议与开发板通讯的软件。

*本文档使用MobaXterm,用户可根据个人习惯自行选择:

MobaXterm下载地址:https://mobaxterm.mobatek.net/download.html

创建新session

选择Serial,选择COM6,波特率为921600

2.3 进入U-Boot

成功通讯后,使用reboot重启开发板,一直按回车进入U-Boot:
*单板无法正常启动时(无法正常进入U-Boot)请查看 4. 使用DFU进入U-Boot(变砖恢复)

3. 烧录方式:

3.1 fastboot(USB)刷写

3.1.1 设置fastboot USB模式

进入U-Boot后,输入

进入fastboot模式(USB),通过USB对开发板进行刷写。

3.1.2 连接设备

开发板USB口正确连接到ubuntu:

在刷写分区前Ubunut需要安装fastboot,并通过fastboot devices获取设备:

3.1.3 脚本更新分区

成功获取设备后进入到build生成的目录:platform_sdk/out/release-gcc_11.4-64/target/product/img_packages/

执行下属脚本即可对开发板所有镜像进行刷写:

单分区刷写:*详细使用请查看flash_all.sh脚本

*uboot 烧录过程中出现 Invalid MTD Device 错误:原因为分区表不对应,需要重新烧flash分区表

7.1后版本:flash_all支持烧写disk

7.1前版本:

可以尝试先更新一下 nor-flash 分区表:

分区表写不进去的话:

如果还是失败:使用dfu更新 flash:

进入/xmodem_tools/out/j6e/evm目录,按照DFU连接开发板后,启动 sbl:
使用usb烧录flash:*注意是 -a -1 , 本文档使用的是/img_packages/disk/flash_disk_J6M_Matrix_V1.1_nonsec.img

3.2 fastboot(UDP)刷写:

3.2.1 设置本机ip:

打开本地以太网

右键-属性-双击Internet协议版本4

配置好本机ip:

在命令终端中通过ipconfig查看是否修改成功。

3.2.2 设置开发板uboot ip:

通过上述3.2方式进入开发板U-Boot后:

配置单板ip:*请确保配置的ip跟本机设置的ip在同一个子网中。

3.2.3更新分区:

4. 使用DFU进入U-Boot(变砖恢复):

在单板无法正常启动时(无法正常进入U-Boot),可以使用DFU启动到U-Boot下Fastboot模式,再使用Fastboot烧录所需镜像。*能正常进入U-Boot可以暂时跳过此小节。

4.1 Windows下DFU

使用DFU启动前请确认板上拨码开关所对应的启动方式。*SW2[2]->on

通过USB连接到电脑:

将下载后文件解压的目录路径放入到系统路径中:

使用管理员权限打开命令窗口并执行dfu-util.exe -l确保连接成功:
进入到/xmodem_tools中,*请选择对应版本的xmodem_tools
执行:usb_serial_download.bat mcu.bin
*本文档mcu.bin为J6M_MCU_Matrix_V1.1.bin,用户请根据板子类型选择

*log与用户选择的版本相对应,下述log仅供参考。

此时单板进入到U-boot, fastboot(USB)模式。

4.2 Ubuntu下DFU

使用 sudo apt install dfu-util安装dfu

使用DFU启动前请确认板上拨码开关所对应的启动方式。*SW2[2]->on

通过USB口连接到Ubuntu中:

设置虚拟机连接所有USB设备:

在终端中输入:

表示成功连接DFU设备。

/xmodem_tools下提供了Linux下载的参考脚本。终端进入/xmodem_tools执行:

*请选择对应版本的xmodem_tools

*自动脚本执行中断或出错可以手动执行后续命令:

7.1前版本:

自动脚本终止在ddrc时可再次执行脚本。

自动脚本执行至spl时终止后,参考usb_serial_download.sh脚本使用手动输入完成后续刷写:

*找不到dfu设备请尝试重新拔插usb

根据上图serial选择对应的.bin文件:*本文为J6M Matrix V1.0因此使用J6M_MCU_Matrix_V1.0.bin

完成刷写,此时单板进入到fastboot(USB)模式。*找不到dfu设备请尝试重新拔插usb

7.1后版本:

中断在spl,再执行一次脚本:

自动脚本执行至MCU时终止后,参考usb_serial_download.sh脚本使用手动输入完成后续刷写:

*找不到dfu设备请尝试重新拔插usb

根据上图serial选择对应的.bin文件:*本文为J6M Matrix V1.1因此使用J6M_MCU_Matrix_V1.1.bin

完成刷写,此时单板进入到fastboot(USB)模式。请回到3.1.2进行烧录。

5. *flash_all.sh

6. *单板设置ip地址

通过串口连接单板后2.2,输入:

即可通过ifconfig查看ip添加成功。

算法工具链
征程6官方教程
+3
评论0
0/1000