跳到主要内容

安装镜像到 SPI Nor Flash

Meles 开发板上有一个 SPI nor Flash。它被用来存放 Bootloader,以实现引导系统启动和 SoC 下载模式,Soc 本身不支持 从 Micro SD 卡或 USB 等其他储存介质启动。

通过串口为 SPI Nor Flash 烧写镜像

当您更换了全新的 SPI Nor Flash 或者固件损坏时,您可能需要为其烧写镜像,这时您可以采用串口的方式烧录。

必要准备

  • Meles 和电源适配器
  • Meles 的 Bootloader
  • 镜像烧录软件
  • USB to TTL 串口模块
  • 安装有 Ubuntu 的电脑

安装工具到电脑

安装 yoctools

$ sudo pip install yoctools -U

检查软件版本

$ yoc --version
2.0.74

下载镜像烧录软件, iw-single-line.bin

$ wget https://github.com/milkv-meles/thead-bin/raw/main/image-writer/iw-single-line.bin

下载镜像

首先您需要准备烧写用的镜像。若您的开发板是 8GB 版本,则您需要下载 u-boot-with-spl-meles.bin。若您的开发板是 4GB 版本,则下载 u-boot-with-spl-meles-4g.bin。这些文件可以在官方镜像章节找到。

下载 zero 镜像文件。

$ wget https://github.com/milkv-meles/thead-bin/raw/main/image-writer/zero-1m.img

启动 Meles 到下载模式

将 Meles 启动到下载模式非常容易:

  • Meles 关机并下电
  • 将 USB to TTL 串口模块连接到 Meles 调试接口
  • 按住下载按钮
  • 插入电源适配器让 Meles 上电
  • 松开下载按钮

将 Bootloader 写入 SPI Nor Flash

步骤 1: 使用 cct 工具检查可用设备

运行下列命令,/dev/ttyUSB0 是 USB 串口模块在电脑上的对应设备文件。

$ sudo cct list -u /dev/ttyUSB0
Wait ..............
提示

此处输出的日志 “Wait ......” 代表 cct 程序正在等待 Meles 响应,而 Meles 只会在进入到下载模式的瞬间相应。

不要关闭终端,并忽略打印的日志并直接前往步骤 2。

步骤 2: 启动 Meles 到下载模式

  • Meles 关机并下电
  • 将 USB to TTL 串口模块连接到 Meles 调试接口
  • 按住下载按钮
  • 插入电源适配器让 Meles 上电
  • 松开下载按钮
  • 检查设备

此时在步骤 1 中打开的终端会打印储存器列表。

$ sudo cct list -u /dev/ttyUSB0
Wait ............................
Memory device list:
dev = ram0 , size = 1.1MB
dev = qspi0 , size = 16.0MB

步骤 3: 将镜像烧录软件下载到 SRAM

$ sudo cct download -u /dev/ttyUSB0 -d ram0 -f ./iw-single-line.bin -v checksum -r
Wait
Send file './iw-single-line.bin' to 2:0 ...
File ./iw-single-line.bin download success.
Start to verify data with method:[checksum]
checksum value is: 0x880572
读出并校验成功!
Start to run image...

步骤 4: 下载 Bootloader 到 SPI Nor Flash

下载 bootloader 到 8GB Meles。

$ sudo cct download -u /dev/ttyUSB0 -d qspi0 -f ./u-boot-with-spl-meles.bin -v checksum -r -t 1200
Wait
Send file './u-boot-with-spl-meles.bin' to 23:0 ...
File ./u-boot-with-spl-meles.bin download success.
Start to verify data with method:[checksum]
checksum value is: 0x428a844
读出并校验成功!
Start to run image...

步骤 5: Meles 重新上电

Meles 重新上电后,蓝色 LED 应为常亮状态。

擦除 SPI Nor Flash

步骤 1:使用 cct 工具检查可用设备

运行下列命令,/dev/ttyUSB0 是 USB 串口模块在电脑上的对应设备文件。

$ sudo cct list -u /dev/ttyUSB0
Wait ..............
提示

此处输出的日志 “Wait ......” 代表 cct 程序正在等待 Meles 响应,而 Meles 只会在进入到下载模式的瞬间相应。

不要关闭终端,并忽略打印的日志并直接前往步骤 2。

步骤 2: 启动 Meles 到下载模式

  • Meles 关机并下电
  • 将 USB to TTL 串口模块连接到 Meles 调试接口
  • 按住下载按钮
  • 插入电源适配器让 Meles 上电
  • 松开下载按钮
  • 检查设备

此时在步骤 1 中打开的终端会打印储存器列表。

$ sudo cct list -u /dev/ttyUSB0
Wait ............................
Memory device list:
dev = ram0 , size = 1.1MB
dev = qspi0 , size = 16.0MB

步骤 3: 将镜像烧录软件下载到 SRAM

$ sudo cct download -u /dev/ttyUSB0 -d ram0 -f ./iw-single-line.bin -v checksum -r
Wait
Send file './iw-single-line.bin' to 2:0 ...
File ./iw-single-line.bin download success.
Start to verify data with method:[checksum]
checksum value is: 0x880572
读出并校验成功!
Start to run image...

Step 4: 下载 zero 镜像文件到 SPI Nor Flash

$ sudo cct download -u /dev/ttyUSB0 -d qspi0 -f ./zero-1m.img -v checksum -r -t 1200
Wait
Send file './zero-1m.img' to 23:0 ...
File ./zero-1m.img download success.
Start to verify data with method:[checksum]
checksum value is: 0x0
读出并校验成功!
Start to run image...

步骤 5: Meles 重新上电

Meles 重新上电后,Soc 将直接进入下载模式,蓝色 LED 熄灭。

通过 Fastboot 为 SPI Nor Flash 烧写镜像

若 SPI Nor Flash 中存在可用的固件,且 Meles 安装有 eMMC 模块,在 Soc 进入下载模式时,可以通过 Fastboot 的方式烧录镜像。

因为 TH1520 芯片没有在 Windows 下的驱动程序,以下步骤均需要在 Ubuntu 系统下执行。

下载镜像和工具

首先,您需要执行以下命令以安装 fastboot 实用程序

sudo apt-get install android-tools-adb
sudo apt-get install fastboot

另外,您需要准备刷写使用的镜像文件。若您的开发板是 8GB 版本,则您需要下载 u-boot-with-spl-meles.bin。若您的开发板是 4GB 版本,则下载 u-boot-with-spl-meles-4g.bin。这些文件可以在官方镜像章节找到。

写入镜像

步骤 1: 启动 Meles 到下载模式

  • Meles 关机并下电
  • 按住下载按钮
  • 插入 Type C 数据线让 Meles 上电
  • 松开下载按钮

在 PC 端键入以下命令来查看设备:

$ lsusb | grep T-HEAD
Bus 001 Device 045: ID 2345:7654 T-HEAD USB download gadget

此时执行 fastboot devices 命令,屏幕上返回 fastboot 设备号证明 fastboot 可用。

步骤 2: 写入镜像

进入存放镜像文件的目录,执行下面的命令开始刷写:

fastboot flash ram u-boot-with-spl.bin
fastboot reboot
#这里等待 3-5 秒让开发板重启
fastboot flash uboot u-boot-with-spl.bin

步骤 3: Meles 重新上电

Meles 重新上电后,若系统正常,蓝色 LED 应为常亮状态。

  • MilkvHaaland
  • Rjgawuie
  • MilkvMitchell