CC8x模块默认出厂带有U-boot,藉此您可以烧写默认或是自定义的固件。如果模块flash中的UBoot分区被擦除,或是您烧入一个不可用的U-Boot,导至模块变砖块不能用,你还可以通过恢复出厂状态来使得模块恢复正常工作。您可以选择从下面两处来启动UBoot,重新向片上闪存写入UBoot,从而恢复模块。

  • 利用USB调试模式启动U-Boot
  • 从uSD卡中启动U-Boot

USB调试模式启动U-Boot

使用这个方法,您需要有一台用于开发DEY的电脑并有root权限。您还需要CC8X的console连接线缆和一根USB type-C的线缆。

  1. 从Digi官网FTP下载CC8X的U-Boot镜像 \\Digi作为NXP的金牌合作伙伴,在i.MX8X未正式发布之际就提供一些模块和开发板,请根据模块型号和处理器步进版本选择合适的U-Boot镜像,参考:https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc8x/hw_r_variants_8x.html 以及如何识别处理器步进版本
  2. 将UUU工具放置于搜索路径中,比如/usr/bin
  3. 安装udev规则允许任何用户运行uuu来访问USB端口
    ~$ sudo sh -c “uuu -udev » /etc/udev/rules.d/99-uuu.rules”
    ~$ sudo udevadm control –reload-rules
  4. 更改启动模式,选择从USB启动
    开发板上的Boot1,Boot2开关全置位on即为从USB启动
  5. 连接console线到主机,打开一个串口终端 (sudo minicom -b 115200 -D /dev/ttyUSB0),并配置成115200/8/n/1以查看启动信息
  6. 连接开发板type-C接口到电脑
  7. 在主机上用uuu加载U-Boot文件,如 $ uuu </path/to/u-boot-file> ,此时uuu处于等待开发板设备状态
  8. 给开发板上电
  9. 主机的uuu显示成功,cc8x的终端显示启动信息,则启动成功

板子正常启动后,您还需要把U-Boot刷到模块的闪存,即eMMC中,以便下次可直接从模块启动。请参考固件更新章节了。

从TF卡(uSD卡)启动

  1. 从Digi官网FTP下载CC8X的U-Boot镜像 \\Digi作为NXP的金牌合作伙伴,在i.MX8X未正式发布之际就提供一些模块和开发板,请根据模块型号和处理器步进版本选择合适的U-Boot镜像,参考:https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc8x/hw_r_variants_8x.html 以及如何识别处理器步进版本
  2. 将一张SD卡插入到Linux主机上,用dmesg查看其设备描述符,比如sdc等
  3. 写入uboot到TF卡: sudo dd if=<path/filename.bin> of=/dev/<sdcard> bs=1k seek=32 oflag=sync
  4. 配置拨盘开关为uSD卡启动 Boot1 off; Boot2 on
  5. 连接console并打开串口终端,配置为115200/8/n/1
  6. 插入SD卡,给板子上电
  7. 查看启动信息,如果显示uboot信息,则启动正常

板子正常启动后,您还需要把U-Boot刷到模块的闪存,即eMMC中,以便下次可直接从模块启动。请参考固件更新章节了。

更多信息,请参考: 请参考官方:https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc8x/yocto_t_recover-device_8