跳转至

烧录调试工具(Wins)


“Telink Burning and Debugging Tool (BDT)” 适用于基于Telink SoC(包括8267、8269、8266、8232、8233、8366、8368、B85M系列以及B91M系列)的应用开发。

这份文档介绍了如何使用 “Telink Burning and Debugging Tool (BDT)”。

功能概述

在 SDK 开发过程中,通过使用 “Telink Burning and Debugging Tool(BDT)”,可以通过 USB 模式或者 “Burning EVK”(EVK)将固件直接下载到目标板(例如开发板)。

它主要的功能包括:擦除flash扇区,下载固件,通信失败时激活MCU,访问包括 Flash/Core/Analog/OTP 在内的内存空间,读/写全局变量和查看USB日志。

主界面

操作指南

下载固件

连接硬件

在使用 “Telink Burning and Debugging Tool (BDT)” 之前,需要连接目标板和PC。

有两种方法连接目标板和PC,如下所示。

方法1: 通过USB直接连接目标板和PC。

这种方法只适用于具有USB接口的目标板和支持USB功能的MCU,例如dongle板。

直接将目标板与PC连接

方法2: 通过Telink “Burning EVK” TLSR8266BR56 连接目标板和PC。

(1)通过USB线将 “Burning EVK” 与PC连接。观察 “Burning EVK” 的指示灯,指示灯闪烁一次,表明 “Burning EVK” 与PC连接成功。

将 “Burning EVK” 与PC连接

(2)连接 “Burning EVK” 和目标板。

有两种方法连接 “Burning EVK” 和目标板。

a. 通过USB接口直接连接目标板和 “Burning EVK”,如下图所示。这种连接方式只适用于有USB接口的目标板和支持USB功能的MCU,如dongle板。

通过USB连接 “Burning EVK” 和目标板

b. 通过Swire(单线)接口连接 “Burning EVK” 和目标板,如下图所示。

通过Swire连接 “Burning EVK” 和目标板

有关 TLSR8266BR56 的详细信息,请参阅 Telink 文档 “AN_18010500_User Guide for Telink Burning EVK TLSR8266BR56”。

通过 “USB” 方式或 “Burning EVK” 方式将目标板连接到PC后,有两种方法可以将固件下载到目标板上,分别对应上述两种硬件连接方式。

连接设备

在将固件下载到目标板之前,请确保BDT已找到该设备,如下图所示。

烧录和调试工具

如果BDT没有找到设备,如下图所示,可以点击 “Refresh” 查看可用设备。

查看可用设备

如果BDT发现多个设备,所有设备将会列出,如下图所示。点击 “Refresh” 按钮后,默认情况下第一个设备将连接到BDT。如果想要连接其他设备,可以选择指定的设备,如下图所示。

选择指定的设备

通过 “USB” 模式将固件下载到 “Flash” 中

在使用 “USB” 模式下载或调试MCU之前,请确保指定的MCU支持USB功能,并且其USB功能可用。详细信息请参阅第5章功能支持列表

接下来,用户可以按照本章指南,通过 “USB” 模式将固件下载到目标板的特定flash空间。

步骤1: 选择目标板的芯片类型,例如8258(默认选项),支持以下两种方法。

  • 方法1:使用下拉菜单选择芯片类型。

  • 方法2:按组合快捷键 “Ctrl+Q” 切换芯片类型。

注意:

所有芯片类型和默认选项都可以在 “config.ini” 文件中配置。

选择芯片类型

步骤2: 选择下载模式为 “USB” ,支持以下两种方法。

  • 方法1:使用下拉菜单选择USB下载模式。

  • 方法2:按组合快捷键 “Ctrl+W” 切换到USB下载模式。每次切换后,下拉菜单将自动显示当前下载模式。

注意:

所有下载模式和默认选项都可以在 “config.ini” 文件中配置。

选择下载模式为 “USB”

步骤3: 点击 “Setting” 按钮,打开设置对话窗口。选择 “Flash” 选项。用户可以采用以下任意一种方法,设置目标固件存储的flash起始地址偏移量,例如0x000000(默认选项)。

  • 方法1:使用 “Download Addr” 的下拉菜单选择可用的偏移选项。

  • 方法2:在 “Download Addr” 的编辑框中输入偏移地址。

注意:

  • 所有设置和默认选项都可以在 “config.ini” 文件中配置。
  • 用户还可以配置 “SRAM”/“OTP” 设置选项,以便将目标固件下载到SRAM或OTP中的目标区域。

选择起始偏移地址

步骤4: 选择要下载到目标板的目标固件文件。

(1)点击File->Open,打开文件选择窗口。

打开文件选择窗口

(2)在文件选择窗口,选择目标bin文件(如Telink.bin),然后点击 “打开” 按钮。

选择目标文件并打开新的文件路径

文件路径将显示在主界面的底部。每次通过文件选择窗口打开新文件路径时,它都会被添加到 “File->Reopen” 的子菜单中。这样可以简化后续选择固件操作,用户可以直接选择 “Reopen” 子菜单中可用的目标文件路径。

在 “Reopen” 子菜单中直接选择目标文件路径

步骤5: 检查目标板和PC之间的连接状态,确保其正常。

  • 如果连接状态正常,主界面左下角将显示 “usb device: ok” 或 “evk device: ok”。

  • 如果主界面左下角显示 “usb device: not found”,则表示目标板没有正确连接到电脑上。

连接状态指示

步骤6: 将选定的文件下载到目标板。

点击 “Download” 按钮,所选固件文件将通过USB模式下载到目标板的指定flash空间。日志窗口将显示相应的日志信息,如下所示。

通过USB模式将固件下载到Flash中

步骤7: 复位MCU,使新下载的程序运行,而无需重启MCU(从 Burning EVK 上拔下/插入),用户可以按照以下任意一种方法启动并运行MCU。

  • 如果通过下拉菜单选择 “manual mode”,固件烧录后,用户可以点击工具右上角的 “Reset” 按钮手动复位MCU。

手动复位MCU

  • 用户也可以在固件烧录前通过下拉菜单选择 “auto mode” ,以便在固件烧录后自动复位。

自动复位MCU

通过 “EVK” 模式将固件下载到 “Flash” 中

在使用 “EVK” 模式下载固件之前,请确保目标板通过 “Burning EVK” 方式连接到PC,并且目标板的单线通信已建立。

用户可以按照本章指导,通过 "EVK" 模式将固件下载到目标板的特定flash空间。

步骤1: 选择目标板的芯片类型,例如8258(默认选项)。支持以下两种方法。

  • 方法1:使用下拉菜单选择芯片类型。

  • 方法2:按组合快捷键 “Ctrl+Q” 切换芯片类型,下拉菜单将自动显示每次切换后的当前类型。

注意:

所有芯片类型和默认选项都可以在 “config.ini” 文件中配置。

选择芯片类型

步骤2: 选择下载模式为 “EVK”,支持以下两种方法。

  • 方法1:使用下拉菜单选择EVK下载模式。

  • 方法2:按组合快捷键 “Ctrl+W” 切换到EVK下载模式。每次切换后,下拉菜单将自动显示当前下载模式。

注意:

所有的下载模式和默认选项都可在 "config.ini" 文件中进行配置。

选择下载模式为 “EVK”

步骤3: 点击 “Setting” 按钮,打开设置对话窗口。选择 “Flash” 选项。用户可以采用以下任意一种方法,设置目标固件存储的flash起始地址偏移量,例如0x000000(默认选项)。

  • 方法1:使用 “Download Addr” 下拉菜单选择可用的偏移选项。

  • 方法2:在 “Download Addr” 的编辑框中输入偏移地址。

注意:

  • 所有设置和默认选项都可以在 “config.ini” 文件中配置。
  • 用户还可以配置 “SRAM”/“OTP” 设置选项,以便将目标固件下载到SRAM或OTP中的目标区域。

打开 “Setting” 对话框

步骤4: 选择要下载到目标板的目标固件文件。

用户可以通过 “File -> Open”或 “File -> Reopen”(如果在子菜单中可用)选择目标文件,文件路径将在主界面的底部可见。

选择目标文件

选择bin文件

步骤5: 检查目标板和PC之间的连接状态,确保它是正常的。

  • 如果连接状态正常,主界面的左下方会显示 "usb device: ok" 或 "evk device: ok"。

  • 如果主界面的左下方显示 "usb device: not found",表示目标板没有正确连接到电脑上。

检查连接状态

步骤6: 将选定的文件下载到目标板。

通过点击 “Download” 按钮,所选的固件文件将通过EVK模式下载到目标板的特定flash空间。日志窗口将显示相应的日志信息,如下图所示。

通过 “Burning EVK” 模式将固件下载到Flash中

步骤7: 复位MCU,使新下载的程序运行,而无需关闭MCU电源。用户可以按照以下两种方法之一启动并运行MCU。

  • 如果通过下拉菜单选择 “manual mode”,固件烧录后,用户可以点击工具右上角的 “Reset” 按钮手动复位MCU。

手动复位MCU

  • 用户也可以在固件烧录前,通过下拉菜单选择 “auto mode”,以便在固件烧录后自动复位。

自动复位MCU

将固件下载到 “SRAM” 或 “OTP” 中

默认情况下,“Setting” 选项设置为 “Flash”,即通过单击 “Download” 按钮,目标固件将下载到目标板的 “Flash” 空间。

用户还可以将 “Setting” 选项更改为 “SRAM” 或 “OTP”。在这种情况下,通过点击 “Download” 按钮,目标固件将相应地下载到目标板的 “SRAM” 或 “OTP” 空间。

对于TLSR8258,目标固件的SRAM起始地址为0x040000。对于其他Telink’s SoCs,目标固件的SRAM起始地址为0x008000。当然,用户可以根据需要在编辑框中设置其他地址。

目标文件下载成功后,目标板不会在 “manual mode” 下自动运行新的固件,因此用户需要点击 “Reset” 按钮启动程序。用户还可以在下载前通过下拉菜单选择 “auto mode”,以启用MCU自动复位。

通过 “auto mode” 将固件下载到 “SRAM”

如果目标板支持OTP功能,用户可以将固件下载到 “OTP” 中。详细信息请参阅第5章功能支持列表

多地址下载

有时候,需要将多个固件下载到Flash、SRAM或OTP的不同地址中。

例如,用户可以按照以下步骤将 “Telink.bin” 下载到Flash的地址 “0x000000” 和 “0x005000” 中。

步骤1: 选择目标内存空间(如Flash)来存储要下载的固件。

选择目标空间

步骤2: 点击 “Tool -> Multi-address download” 或按快捷键 “Ctrl+P” ,打开 “Multi-address Download” 界面。

打开 “Multi-address Download” 界面

步骤3: 点击 “Add” 按钮,添加固件文件并设置目标地址。

添加固件文件并设置目标地址

步骤4: 将固件1的路径添加到列表中,并设置起始地址的偏移量以存储此固件。

(1)首先,选择第一行(No.1),然后点击 “File” 按钮将目标bin文件(例如 “Telink.bin”)添加到列表中,相应的目录将显示在 “File Path” 列中。

添加固件

显示bin文件路径

(2)然后设置起始Flash地址的偏移量,将该固件存储在 “Start Address(H)” 列中。

为确保固件存储的目标区域有效,该工具将自动计算固件的大小和结束地址,然后在 “File Size(Bytes)” 和 “End Address(H)” 列中显示计算结果。

设置偏移地址

显示计算结果

步骤5: 请参阅步骤4,将固件2的路径添加到列表中,并设置起始地址的偏移量以存储此固件。

添加固件2的路径

步骤6: 单击 “Download” 按钮,将添加的固件1和固件2下载到目标板的指定内存位置。

“Download” 按钮

开始下载固件1

开始下载固件2

步骤7: 将所有固件下载到目标板后,点击 “Reset” 按钮使程序运行,而无需重启目标板。

复位

OTP启动信息下载

(1)配置OTP时钟,以8208芯片为例,otp 地址0x3ff8写入数据0x060301bf。

  • 功能:将MCU数字寄存器0x603写入0x01,用于配置OTP时钟。

(2)启动代码,以8208芯片为例,otp 地址0x3ff0写入数据0x060298bf。

  • 功能:将MCU数字寄存器0x602写入0x98,MCU启动代码的执行,程序开始跑起来。

(3)搬代码到RAM中,以8208芯片为例,otp 地址0x3ff4写入数据0x0001f03f。

  • 功能:MCU将OTP中从0地址开始的前7936个字节的内容搬到RAM 0地址处。

  • 数据长度 = 0x1f0 * 16 =7936 bytes

OTP需要搬多少大小程序到ram中,可以参照如下计算方法。

OTP上电第一次需要将vector和ram code段都搬到ram中,这两个段的大小计算公式为:

ram code的LMA的基地址+ram code size(之所以不用vector size + ram_code size来计算,是因为可能会有对齐因素导致大小计算的不对)

又因为启动信息中的长度信息是:实际长度/16。所以启动信息中的长度信息的通用的计算公式总结如下:

((ram code的LMA的基地址+ram code size)(16字节对齐))/ 16。

所以如下lst文件的最终计算公式为:0x220+0xAEC,16字节对齐后的大小为3344; 3344/16=209(0xd1)

对应otp 地址0x3ff4 写入数据0x0000d13f即可。

lst文件

以8208芯片为例,用户可以按照以下步骤进行OTP启动信息的下载。

步骤1: 打开BDT工具,选择8208芯片。

芯片选择

步骤2: 点击Tool->Memory Access,输入OTP 地址,写入启动信息及其长度,并在data编辑框按下回车键,对应信息会烧录到OTP地址中。

OTP启动信息下载

擦除Flash扇区

“Erase Flash Sector ” 功能用于以4kB为单位从特定地址开始擦除特定flash空间。

例如,要擦除从地址0x040000开始的64kB的flash空间,用户可以按照以下步骤进行。

步骤1: 点击 “Setting” 按钮打开设置对话框。选择 “FLASH” 设置选项。

设置要擦除flash空间的起始地址,例如0x040000(默认选项:0x000000),用户可以通过 “Erase Flash Addr” 下拉菜单选择偏移选项(如果可用),或直接在编辑框中输入偏移地址。

选择起始地址

步骤2: 以4kB为单位设置要擦除的flash空间大小,例如64kB(默认选项:512kB),用户可以通过 “Sector Erase Size” 下拉菜单选择大小(如果可用),或直接在编辑框中输入大小。

设置擦除大小

步骤3: 点击 “Erase” 按钮,开始擦除目标板的指定flash空间。

从0x000000起始地址开始擦除512kB的flash空间

Flash去除保护

Flash 被写保护之后会导致擦写以及烧录不成功,需要去除保护之后才能对Flash进行相应操作。Flash去除保护操作步骤如下。(该功能从v5.7.0版本之后开始支持)

步骤1: 打开BDT工具,选择芯片类型。

步骤2: 点击“Unlock”按钮,log中出现“Flash remove protection successfully!”代表去除保护成功。

Flash去除保护

Cache解析

芯片上电搬运代码,如果即将运行的代码不在cache 中,则会自动从Flash或OTP中读取函数到cache中。该功能主要是解析cache搬运代码是从flash 哪个地址取数据,以及数据内容是什么。并将解析的数据与原始数据进行比较,来确定cache搬运代码是否正确。该功能前提是芯片已下载程序并运行,然后通过如下步骤进行解析。(该功能从v5.7.0版本之后开始支持)

步骤1: 打开BDT工具,选择芯片类型,选择芯片需要下载的固件。

Bin文件选择

步骤2: 点击“Cache”按钮。下图标记“1”为搬运代码所在的flash 地址。标记“2”为对应flash地址存储的数据。标记“3”代表测试结果。"OK"代表搬运代码数据正确。"FAIL"代表搬运代码数据出错。

Cache数据正确

Cache数据出错时,"rawdata"代表flash地址对应的正确数据的值。"status"代表"rawdata"和Cache中的数据比较的结果。"status"为"T",二者数据一致。"status"为"F",则二者数据不一致。

Cache数据出错

Activate MCU

“与目标板通信失败时激活MCU” 功能仅适用于 “Burning EVK” 与 “EVK” 模式下目标板之间的Swire连接,即不支持 “USB” 模式或 “Burning EVK” 与 “EVK” 模式下目标板之间的USB连接。

当固件烧录失败时,请确保目标板通过Swire与 “Burning EVK” 连接,然后点击 “Activate” 按钮启用此功能以激活MCU。

Activate MCU

Debug

MCU开始运行后,要访问内存空间(Flash/Core/Analog/OTP),用户可以直接按组合快捷键 “Ctrl+M” 或点击 “Tool -> Memory Access”,打开 “Memory Access” 窗口,如下图所示。

“Memory Access” 界面

项目 值列表 默认 快捷键
MCU 类型 8366/8368/8266/8267/8269/8232/8233/8x5x 8258 Ctrl+Q
通信方式 EVK(Burning EVK)/USB EVK Ctrl+W
操作目标 Flash/Core[1]/Analog[2]/OTP Core Ctrl+E
操作大小(单位:字节) 1/2/4/8/16 1 Ctrl+R
地址 0 0 Ctrl+A
数据 0 0 Ctrl+D
  • [*1]: Core 包括数字寄存器和SRAM。
  • [*2]: Analog 指模拟寄存器。

访问存储器

(1) 从内存空间读取数据

想要从特定存储空间(Flash/Core/Analog/OTP)读取数据,用户可以执行以下步骤:

步骤1: 在 “Memory Access” 窗口中选择MCU类型(如 “8258”)和与目标板的通信模式(如 “EVK”)。

注意:

如果选择 “USB” 模式与目标板通信,请确保所选MCU支持USB功能且其USB功能可用。

选择MCU类型和通信模式

步骤2: 在 “Memory Access” 窗口中选择操作目标(如 “CORE”)并设置操作大小(如 “16”)。

注意:

  • 如果选择 “OTP” 作为操作目标,请确保所选MCU支持 “OTP” 功能。
  • 想要设置操作大小,用户可以通过下拉菜单选择大小(如果可用),或直接在编辑框中设置大小。
  • 最大操作大小为1MB。

设置操作目标和大小

步骤3: 将鼠标移动到 “addr” 框,然后输入要读取的起始地址的偏移量(例如 “0x040000”)。将光标保持在 “addr” 框中,通过单击 “Tab” 键,用户可以从指定的内存空间读取数据。

注意:

  • 每次点击 "Tab" 键启动内存读取操作时,可编辑框的值将会被保存,以便下次可以通过下拉菜单直接选择它。

设置起始地址并开始读取

  • 当读取大于1kB的内存空间(如CORE)时,读取的数据将自动保存到 “user” 文件夹下名为 “read.bin” 的文件中。用户还可以使用特定的命令行更改文件名以保存读取的数据。详细信息请参阅第2.8节命令行

保存读取的数据

(2) 将数据写入内存空间

将数据写入特定的内存空间,用户可以执行以下步骤:

步骤1: 在 “Memory Access” 窗口中选择MCU类型(如 “8258”)和与目标板的通信模式(如 “EVK”)。

注意:

如果选择 “USB” 模式与目标板通信,请确保所选MCU支持USB功能且其USB功能可用。

内存访问窗口

步骤2: 在 “Memory Access” 窗口中选择操作目标(如 “CORE”)并设置操作大小(如 “16”)。

注意:

  • 如果选择 “OTP” 作为操作目标,请确保所选MCU支持 “OTP” 功能。
  • 想要设置操作大小,用户可以通过下拉菜单选择大小(如果可用),或直接在编辑框中设置大小。
  • 最大操作大小为256字节。

设置操作大小

步骤3: 将鼠标移动到 “addr” 框,然后输入要写入的起始地址的偏移量(例如 “0x040000”)。

起始地址的偏移量

注意:

当操作目标选择为 “CORE” 时,如果设置的地址小于 “SRAM” 的起始地址,则实际访问的目标存储空间为数字寄存器;如果设置的地址大于 “SRAM” 的起始地址,则实际访问的目标内存空间是SRAM。

步骤4: 将数据写入指定的地址。

将鼠标移动到 “data” 框,然后输入要写入的目标数据。将光标保持在 “data” 框中,通过点击 “Enter” 键,用户可以将指定的数据写入指定的存储空间。

注意:

当输入数据时,字节之间必须用空格隔开,如下所示:

设置数据并开始写入

操作变量列表

在查看所有全局变量之前,请确保 “.lst” 文件和 “.bin” 文件位于同一目录下,有可能出现两种情况,如下所示。

情况1: 如果只有一个 “.lst” 文件和 “.bin” 文件位于同一目录下,则会自动选择这个 “.lst” 文件。

情况1

情况2: 如果有多个 “.lst” 文件和 “.bin” 文件放在同一目录下,则自动选择与所选 “.bin” 文件同名的 “.lst” 文件。

情况2

例如:如果选择 “Telink.bin” 文件,将自动选择 “Telink.lst” 文件。如果没有 “Telink.lst” ,并且所选 “Telink.bin” 文件的目录下仅放置了一个 “xxx.lst” 文件,则将会选择唯一的 “xxx.lst” 文件。

(1) 更新变量列表

想要查看所有全局变量,用户可以选择 “Tdebug” 页面,将鼠标移动到变量列表,然后右键单击鼠标选择 “Refresh” 或按快捷键 “F3” 。每次按 “F3”,变量列表就会更新一次。

更新变量列表

(2) 对变量进行排序

根据需要,用户还可以右键单击鼠标,选择 “Sort by address” 将所有变量按地址从低到高排序(默认),或选择 “Sort by name” 将所有变量按变量名称的ASCII码值从A到z排序(比较第一个不同的字符)。

按名称对变量排序

(3) 查看超过4字节的变量

如果变量的长度大于4字节,通过点击 “variable list” 的 “Value” 列中的 “…”,其值将显示在右侧的日志窗口中。

如果变量的长度大于1024字节,则该变量的所有值都将保存在名为 “Read.bin” 的文件中。

读取大于4字节的变量值

(4) 修改变量值

长度不超过4字节的变量支持直接写入操作,双击 “Value” 列中相应的框可以直接修改其值。

例如:要将地址 “0x41100” 中变量 “adc_vref_cfg” 的值修改为 “0x00000004”,用户可以执行以下步骤:

步骤1: 双击指定变量对应 “Value” 列中的框(例如 “adc_vref_cfg”),使该框可编辑。

双击指定的 “Value” 框

步骤2: 输入新的变量值(例如 “0x00000025”)来替换旧的变量值(“0x00000004”)。

修改变量值

步骤3: 按 “Enter” 键将新的值写入指定变量的地址中。

将数据写入指定地址

Debug MCU

在使用 “Run”, “Pause”, “Step” and “PC” 等按钮调试MCU之前,请确保所选MCU支持此功能。有关详细信息,请参阅第5章功能支持列表

在下面的小节中,以MCU “8258” 为例介绍该功能。

(1) Run MCU

点击 “Pause” 或 “Step” 按钮后,用户可以通过点击 “Run” 按钮使MCU从当前位置继续运行。请点击 “PC” 按钮查看MCU状态,读取PC并确保程序再次运行。

Run MCU

(2) Pause MCU

想要查看MCU状态的详细信息,用户可以点击 “Pause” 按钮暂停MCU。点击 “Run” 按钮,MCU将从当前位置继续运行。

Pause MCU

(3) Step MCU

如果可以与目标板通信,用户可以点击 “Step” 按钮逐步查看指令的当前位置。

“Trace MCU” 和 “Step MCU” 都支持以下两种模式。

a. 如果选择了 “Single step” 模式,MCU将进入单步模式,在点击 “PC” 或 “Step” 按钮后,将实施一次PC追踪。

在 “Single step” 模式下Step MCU

b. 如果选择 “continuous” 模式,MCU将进入连续模式,实施连续的PC追踪或使MCU连续步进。

在 “continuous” 模式下Step MCU

想要取消 “continuous” 模式,用户可以将模式切换到 “Single step” 模式,或者点击 “Run”/“Pause” 按钮。

如果目标固件(bin文件)和 “xxx.lst” 文件位于同一目录下,用户可以通过选择 “View -> interp .lst” 并点击 “PC” 按钮解析 “xxx.lst” 文件来查看更多详细信息,如下所示。参考第2.6.2节操作变量列表

“xxx.lst” 文件

选择 “interp.lst”

在 “Single step” 模式下选择 “interp.lst” Step MCU

在 “continuous” 模式下选择 “interp.lst” Step MCU

(4) Trace PC

如果可以与目标板通信,用户可以点击 “PC” 按钮查看指令的当前位置,如下所示:

在 “Single step” 模式下Trace PC

在 “Single step” 模式下选择 “interp.lst” Trace PC

将 “Single step” 模式切换到 “continuous” 模式

在 “continuous” 模式下选择 “interp.lst” Trace PC

(5) Stall MCU

当没有足够的时间查看MCU的状态时,用户可以点击 “stall” 按钮暂停MCU并查看MCU的状态或更改MCU的配置。

Stall MCU

注意:

在EVK模式下,只有使用 “Firmware_v3.2.bin”(或更高版本)烧录的EVK支持此功能。

(6) Start MCU

暂停MCU后,点击 “start” 按钮启动MCU,使MCU从SRAM开始运行。

Start MCU

单线同步

在设置单线同步速度之前,请确保以下各项:

a. 电源正常;

b. MCU未处于“低功耗”模式;

c. MCU的单线功能可用;

d. 系统时钟正常。

当 “Burning EVK” 和目标板之间无法建立连接时,用户可以尝试设置Swire(单线)同步速度来改善通信。

注意:

Swire寄存器地址可能因芯片类型而异。

(1) 在四个可编辑框中更改主速度和从速度,如下所示。

注意:

Swire寄存器地址可能因芯片类型而异。

(2) 点击 “SWS” 按钮以实现Swire同步。

设置Swire同步速度

在将固件下载到目标板或调试MCU之前,建议每次打开MCU电源时,用户应执行一次Swire同步,以检查与目标板的通信是否正常。

如果与目标板的通信状态错误,用户可以按照第2.5节开头提到的方法解决问题。

命令行

用户还可以使用命令行访问内存或将文件下载到目标板。在下面的小节中,以 “read core” 为例。

单命令行

步骤1: 通过选择 “Tool->Cmdline Input” 或按组合快捷键 “Ctrl+I” 打开命令行输入窗口。

打开命令行输入窗口

步骤2: 按如下所示输入所需的单个命令,然后按 “Enter” 键。具有指定名称的文件将在指定位置可用。

输入单命令行

多命令行

该工具支持多命令行操作。

所有命令都需要用分号隔开,如下所示。

输入多个命令

日志窗口

该工具支持USB打印功能,因此具有USB功能的MCU可以使用USB打印功能,在PC端的日志窗口中输出信息。

步骤1: 点击 “View -> usb log” 打开usb日志窗口。

打开usb日志窗口

步骤2: 在 “usb log” 模式下,所有输出的字符将以“Ascii”形式显示。

显示输出字符

步骤3: 再次点击 “View -> usb log” 退出 “usb log” 模式。

退出 “usb log” 模式

帮助

点击 “Help -> Command line”,所有命令将显示在 “Download” 或 “Tdebug” 页面的日志窗口中。

命令行

显示所有命令

点击 “Help -> User guide”,将打开嵌入的 “Help” 文档 “Telink Burning and Debugging Tool (BDT) User Guide”,如下所示。

用户指南

打开帮助文档

要获取有关Telink的更多信息,用户可以点击 “Help -> About Telink”。

About Telink

获取有关Telink的信息

默认配置

在这个工具的根目录中打开 “config” 文件夹 ,如下所示。

“config”文件夹

通过修改 “config.ini” 文件,可以更改此工具中的所有默认配置。下面是详细说明。

MCU

(1)MCU 类型:8368

(2)固件路径:\bin\dut_8368_flash_v0246.bin

该固件用于操作flash,例如:将指定固件下载到flash、读/写flash、擦除flash扇区,并在下载固件到flash或擦除flash的某些扇区时检查flash数据。

(3)SRAM起始地址:0x8000, 例如 8258: 0x40000;

(4)单线通信:

a. 主设备的Swire寄存器基址:0xb0

b. 主设备的Swire时钟:0x10

c. 从设备的Swire寄存器基址:0xb0

d. 从设备的Swire时钟:0x10

(5)固件路径:

固件1: \bin\dut_8368_otp_v0005.bin,用于操作OTP,例如将固件下载到OTP,读取/写入OTP,在将数据写入OTP或将固件下载到OTP期间检查OTP数据。

固件2: \bin\dut_8368_otp_normal_v0002.bin,用于将数据写入OTP或将固件下载到OTP期间检查OTP数据。

(6)默认:8258

通信方式

(1)通信方式:USB

(2)默认:EVK (Burning EVK)

Objection

(1)访问 Objection:Flash

(2)默认:Core

大小

(1)读/写数据的大小:2

(2)默认:1

下载地址

(1)下载地址:0x20000

(2)默认:0

擦除地址

(1)擦除地址:0x20000

(2)默认:0

页面显示

(1)页面显示:1 - Tdebug

(2)默认:0 - Download

按钮

(1)按钮1的名字:example1

(2)按钮1的属性:external executable application

(3)外部可执行应用程序的路径:E:\1_wtcdb\tcdb.exe uart -1 –u

(4)未定义按钮:Button4

按钮的属性包括三种类型:

a. external_exe:外部可执行应用程序

b. internal_exe:内部可执行应用程序,也就是这个工具。

c. external_file:默认情况下打开任意外部文件。

路径

(1)固件路径:“C:\Users\Administrator\Desktop\Telink.bin”

将此固件下载到目标板以更新固件,当文件路径过多时,可以直接删除这些路径。但是,无法删除第一条路径。

(2)默认文件路径:“C:\Users\Administrator\Desktop\Telink.bin”

升级固件

用户可以按照以下步骤升级 “Burning EVK” 的固件。

步骤1: 点击 “Help -> Upgrade” 打开 “Upgrade EVK” 对话框。

“Upgrade EVK” 窗口

步骤2: 点击 “Read FW Version” 按钮检查当前固件版本。

检查当前固件版本

步骤3: 单击 “Load…” 按钮加载新固件。

加载新固件

步骤4: 点击 “Upgrade” 按钮将新固件升级到 “Burning EVK” 中。注意:用户必须在使用EVK之前对它进行重启。

将固件升级到EVK中

工具指南

本章节主要介绍BDT的内置工具,内容包括工具的功能及其使用方法。

BQB Tool

功能描述

该工具有两个主要的功能:

  • 根据需求配置生成用于BQB测试的固件(Flash和SRAM两种类型的bin文件),其中可配置的选项包括:UART引脚、PA控制引脚、TX能量、内外部电容、内部供电方式以及校准参数的位置。另外,生成的固件可以通过工具直接下载到DUT中(通过Swire的方式)。注意:上述BQB测试固件为uart两线测试程序,串口通信的波特率为115200。

  • 收发包测试。

界面组成及使用说明

该工具主要由固件下载界面和测试界面两个部分组成,具体如下图所示。

BQB工具固件下载界面

BQB工具测试界面

(1) 芯片的选择

通过BDT主界面MCU列表来进行芯片型号的选择,选择好芯片之后可通过BQB Tool界面的标题栏来判断工具是否支持对应芯片。

(2) 固件的保存和下载

Step1 - 配置固件: 固件下载界面“Configure”区域,Uart_TX(RX)用来配置UART的TX和RX引脚,PA_TX(RX)用来配置PA的TX和RX引脚,TX_Pow用来配置发包的能量(default为默认值,一般为7dBm),CAP用来配置内外部电容,Pow_mode用来配置芯片内部的供电方式,Cal_Pos用来配置校准数据的存储位置(根据实际情况选择,测试时可选择SRAM)。

Step2 - 选择固件类型: 固件下载界面“Operation”区域,通过单选框来选择类型,可供选择的类型包括Flash程序和SRAM程序两种。

Step3 - 保存/下载固件: 固件下载界面“Operation”区域,通过点击“Save As...”按钮来保存固件,通过点击“Download & Run”按钮来下载固件。

(3) 收发包测试

Step1 - 连接串口: 测试界面“Serial Port Setting”区域,“SerialPort”为可选择的串口(若列表为空,可通过“Refresh”按钮来更新),“BaudRate”为通信的波特率(默认选用115200,与固件的串口通信速率保持一致),串口配置好之后点击“Open”按钮打开串口。

Step2 - 配置测试模式: 测试界面“BQB Test”区域,RFMode用来选择RF模式,Channel用来配置测试频点,PckgType用来选择包的数据类型,Payload用来配置包的数据长度。

Step3 - 测试: 测试界面“BQB Test”区域,“Initialize”按钮用来初始化DUT的状态,“TX”按钮用来控制DUT发包,“RX”按钮用来控制DUT收包,“END”按钮用来控制DUT停止收包或者发包(收包状态下点击END按钮可统计收包的个数)。

Jtag Tool

功能描述

该工具的主要功能如下:

  • 安装Jtag硬件相关的驱动
  • 通过Jtag下载/擦除固件
  • 通过Jtag读写参数
  • 通过Jtag调试

界面组成及使用说明

Jtag工具的界面由两部分组成,分别是“Target”区域和“Debug”区域,具体如下图所示。其中“Target”区域负责设备的连接以及Jtag设备驱动的安装,“Debug”区域主要负责读、写、擦以及调试功能。

Jtag工具界面

(1) Jtag设备的驱动安装

Step1 - 接入Jtag设备: Jtag设备如下图所示,通过USB与PC连接。

Jtag设备

Step2 - 检查设备驱动: 打开设备管理器查看设备,若驱动已安装,则会被正常识别成“libusbK USB Devices”设备,如下图所示。

Jtag设备驱动已安装

若驱动未正常安装,则会如下图所示。

Jtag设备驱动未安装

Step3 - 安装驱动: Jtag工具界面“Target”区域,点击下方的“Install Jtag Driver”来安装驱动。

(2) 连接调试设备

Step1 - 接入调试设备: 将调试设备通过Jtag接口连接到Jtag设备上,正常连接状态下Jtag设备只有蓝灯常亮。若红灯同时处于常亮状态,则先检查Jtag的驱动是否安装。若驱动安装正常,接着查看Jtag盒子与测试板之间的连线是否正常。

Step2 - 连接目标设备: 调试设备成功接入后,点击Jtag工具界面“Target"区域的"Connect Target”按钮来连接调试设备。若Jtag工具界面的标题栏显示为“Jtag Tool – target connected”,则表示已经连接成功,此时“Debug”区域的控件变为可操作状态。若连接不成功,可通过插拔一下USB接口来解决。

(3) 下载功能

Step1 - 选择固件: BDT工具主界面,通过点击“File->Open”来选择需要下载的固件。

Step2 - 设置起始地址: Jtag工具主界面“Debug”区域,在“Addr”对应的输入框中输入下载的起始地址。

Step3 - 设置固件载入的对象: Jtag工具主界面“Debug”区域,通过点击“FLASH”和“SRAM”两个单选框控件来选择。

Step4 - 执行下载: Jtag工具主界面“Debug”区域,点击“Download”按钮来执行下载操作。

注意:

下载到Flash中的程序需通过点击“Restart”按钮来运行,而对于下载到SRAM中的程序则通过点击“Run”按钮来运行。

(4) 擦除功能

Step1 - 设置起始地址: Jtag工具主界面“Debug”区域,在“Addr”对应的输入框中输入下载的起始地址。

Step2 - 设置擦除长度: Jtag工具主界面“Debug”区域,在"Erase Flash”按钮下方“Len”对应的输入框中输入需要擦除的长度。

Step3 - 执行擦除: Jtag工具主界面“Debug”区域,点击“Erase Flash”按钮来执行擦除操作。

(5) 读写功能

该工具支持Memory、Flash和Analog三种模式的读写,其中Memory方式可支持byte、half-word(2 byte)、word(4 byte)三种方式的读写,其他模式只支持按byte来读写。

Step1 - 设置读写模式: Jtag工具主界面“Debug”区域,点击“Write”按钮后面的下拉框来选择模式。

Step2 - 设置读写宽度: Jtag工具主界面“Debug”区域,点击读写模式选择框下方的下拉框来选择读写的宽度。

Step3 - 设置读写的地址、长度: Jtag工具主界面“Debug”区域,在“Write”按钮下方“Addr”对应的输入框中输入地址,在“Len”对应的输入框中输入长度。如果是写数据,还需要在“Data”对应的输入框中输入需写入的数据。

Step4 - 执行读写操作: Jtag工具主界面“Debug”区域,点击“Read”按钮来执行读操作,点击“Write”按钮来执行写操作。

(6) 调试功能

该工具支持的调试功能包括:读状态寄存器、读变量值以及常用的调试操作。

Step1 - 读状态寄存器: Jtag工具主界面“Debug”区域,在“Reg”对应的输入框中输入状态寄存器的名称,接着按下回车键就可以查找对应的寄存器,接着通过点击下拉框来选择对应的寄存器就可以查看该寄存器的值。如果不知道寄存器的名称,也可通过输入“*”来列出所有可查看的寄存器。

Step2 - 读变量值: Jtag工具主界面“Debug”区域,在“Var”对应的输入框中输入变量的名称,接着按下回车键就可以查找对应的变量,接着通过点击下拉框来选择对应的变量就可以查看该变量的值。如果不知道变量的名称也可通过输入“”来列出所有可查看的变量。注意:*要实现该功能需要保证在bin文件目录下存在与之同名的list文件。

Step3 - 常用调试操作: Jtag工具主界面“Debug”区域,点击“Stall"按钮来使设备停止,点击“Restart”按钮使设备从flash中重新加载固件运行,点击“Pause”按钮来使设备程序暂停,点击“Run”按钮使设备从程序暂停处继续运行,点击“Step”按钮来使设备程序单步运行,点击“PC”按钮来查看设备当前的PC指针。另外,如果在bin文件目录下存在与之同名的list文件,还可以查看对应的汇编代码,不过在使用该功能前还需要在“Var”对应的输入框中输入“*”并按下回车键。

TWS Tool

Download Tool

(1) 功能描述

“Download Tool”主要用来烧写bin文件、参数信息等到Flash的指定地址当中。该工具支持一次烧录单个和多个对象,最多支持一次烧录4个bin文件、1组 “BT Name”参数以及1组“BT MAC”参数。

(2) 界面介绍

“Download Tool”的界面如下图所示,主要包括“Setting”和“Operation”两个区域。其中“Setting”区域负责设置下载的信息,“Operation”部分负责执行下载操作。

TWS_Tool/Download_Tool界面

(3) 使用说明

Step1 - 设置烧录信息: Download工具的主界面“Setting”区域,通过最左侧的单选框选择需要烧录的信息,在“Address”对应的输入框中输入各信息写入的Flash地址,在“Path/Content”对应的输入框中输入对应的信息。对于固件下载,通过点击对应得“Browser”按钮来加载文件路径。而对于“BT Name/MAC”,则通过对应的输入框直接输入。“BT Name/MAC”都有自增的功能(每烧录完一组数据对应的值就会自增),通过右侧的单选框来选择。另外需要注意的是“BT Name”的最大长度不得超过25字符。

Step2 - 执行烧写操作: Download工具的主界面“Operation”区域,通过点击“Download”按钮来执行下载操作。

EQ Tool

(1) 功能描述

该工具的主要功能如下:

  • 生成EQ参数
  • 进行在线EQ调参(需相关协议支持)

(2) 界面组成

EQ工具的界面由5个区域构成,包括图表显示区域、“Configure”区域、“Parameter”区域、log输出区域以及“Operation”区域,具体如下图所示。

TWS_Tool/EQ_Tool界面

(3) 使用说明

Step1 - EQ参数调节: 首先选择调参的模式,通过“configure”区域下的Mode进行选择,工具默认提供三种可选模式,分别是:“Music”模式(即Line Out),“Speech MIC”模式(即Line In),“Speech SPK”模式(即Line In to Line Out)。接着选择声道,通过“configure”区域下的Channel进行选择。接着选择样本频率和EQ调参的级数,分别通过“configure”区域下的FreqSmp和Stages进行选择。最后配置各级参数,包括滤波器类型、Q值、中心频率以及增益值,分别通过“parameter”区域下Type、Q、Fc以及dB来配置。

Step2 - 查看和保存EQ参数值: 通过点击“Operation”区域中的“Get Parameter”按钮来获取参数值,通过点击“Save as bin file”按钮可以将生成的参数值保存成bin文件。

Step3 - 保存EQ配置: 通过“Operation”区域中Setting对应的复选框可进行EQ配置的保存和还原。对于保存操作,首先复选框选择“Save”,接着在弹窗中输入配置名称,最后点击OK。对于还原已保存的配置,通过复选框选择已保存的配置名称即可还原配置。

Step4 - EQ在线调参: 首先选择在线调参的方式,通过“Operation”区域中的单选框控件(“USB”和“RF”)来选择在线调参的方式。接着通过点击“Operation”区域中的“Download”按钮将EQ参数下载到设备中。

注意:

EQ工具所支持的在线调参方式都需要有相关协议的支持,具体需咨询相关工作人员。

RISC-V Tool

支持芯片通过USB实现如下功能:

  • 读写寄存器
  • 读写擦flash
  • 上报调试信息
  • VCD功能

注意:

SDK中必须有相应的交互协议,此工具才能使用。

读存储器

从特定存储空间(RAM/Analog/Flash)读取数据,操作步骤如下。

Step1 - 选择存储空间类型: 在界面“Memory”区域点击下拉菜单选择类型。

Step2 - 设置访问区域: "Addr"输入框输入所访问空间起始地址,并在“Size”输入框输入所需访问地址的个数。

Step3 - 读取数据: 将光标保持在“Addr”框中,通过按下键盘“Tab”按键,用户可以从指定的存储空间读取数据。

注意:

Size输入框中的数据为十六进制。写入“10”代表读取16个字节数据。最多一次只能读取256个字节数据。

读存储器

写存储器

在特定存储空间(RAM/Analog/Flash)写入数据,操作步骤如下。

Step1 - 选择存储空间类型: 在界面“Memory”区域点击下拉菜单选择类型。

Step2 - 设置访问区域: “Addr”输入框输入所访问空间起始地址,并在“Size”输入框输入待写入数据的长度。

Step3 - 写入数据: Data框输入待写入的目标数据,通过按下键盘“Enter”按键,用户可以将指定的数据写入到指定的存储空间。

注意:

写数据最多只能写入四个字节数据。

写存储器

固件下载

将固件下载到flash中,操作步骤如下。

Step1 - 选择固件: 点击“File->Import bin”,选择所需下载的固件。

选择固件

Step2 - 擦除flash: 点击“TS”按钮,其次点击“Chip_Erase”按钮擦除flash所有数据。

擦除flash

Step3 - 下载固件: 点击“Bin_DL”按钮下载固件。

下载固件

VCD功能

VCD功能操作步骤如下。

Step1 - 选择header文件: VCD功能区点击“Def”按钮,选择对应的header文件。

选择header文件

Step2 - 启动VCD功能: 点击“VCD”按钮启动。

启动VCD功能

Step3 - 查看相关任务运行状态: 点击“View”按钮,查看任务运行状态。

查看状态

注意:

header文件的定义和使用请咨询相关SDK负责人员。

命令行说明

为方便调试,可输入对应命令执行相应操作。

(1) 读命令

命令格式: [28] [Type] [Address] [Size]

Type:访问空间类型,“00”代表访问数字寄存器;“01”代表访问模拟寄存器;“02”代表访问flash。

Address:访问空间的地址,占四个字节。

Size:访问地址的个数,占4个字节。

示例:读取数字寄存器0x140280 地址一个字节数据。

命令:28 00 00140280 000001

读命令

(2) 写命令

命令格式 [2a] [Type] [Address] [Data1] [Data2]……[DataN]

Type:访问空间类型,“00”代表访问数字寄存器;“01”代表访问模拟寄存器;“02”代表访问flash。

Address:访问空间的地址,占四个字节。

DataN:待写入的数据。

示例:flash 0x1000地址写入数据“0x1122334455”。

命令:2a 02 00001000 55 44 33 22 11

写命令

(3) 擦flash命令

命令格式 [2a] [03] [Address] [Size]

Address:访问空间的地址,占四个字节。

Size:擦除flash的空间大小,占四个字节。

示例:flash 0x1000地址擦除4k数据。

命令:2a 03 00001000 00001000

擦flash命令

示例:擦整片flash。

命令:2a 03 00000000 00000000

(4) 保存所读数据

命令格式 [r] [String] [28] [Type] [Address] [Size] [BinPath]

r:读命令。

String:字符串,可自定义。

Type:访问空间类型,“00”代表访问数字寄存器;“01”代表访问模拟寄存器;“02”代表访问flash。

Address:访问空间的地址,占四个字节。

Size:所需要读取数据大小,占四个字节。

BinPath:所读数据待保存的路径。

示例:从flash 0地址读取4k数据,并保存到D盘。

命令:r read 0228 00000000 00001000 -d:\read.bin

保存所读数据

日志清除及保存

日志清除:点击界面Clear按钮即可清除日志。

清除日志

日志保存:点击界面Save按钮,选择文件保存路径并输入文件名即可。

保存日志

EMI Tool

功能描述

该工具有两个主要的功能:

  • 配置和下载测试固件。

  • 进行EMI测试。

  • 进行非信令测试。

  • 进行RF电流测试。

界面组成及使用说明

该工具主要由固件配置下载界面、EMI测试界面、非信令测试界面以及RF电流测试界面四个部分组成,具体如下图所示。

EMI工具固件配置下载界面

EMI工具EMI测试界面

EMI工具非信令测试界面

EMI工具RF电流测试界面

(1) 芯片的选择

通过BDT主界面MCU列表来进行芯片型号的选择。

(2) 固件的保存和下载

Step1 - 配置固件: 固件下载界面“Configure”区域,"Cap. Select"用来配置内外部电容,"Power Mode"用来配置芯片内部的供电方式,"Calib. Pos."用来配置校准数据的存储位置(根据实际情况选择)。如果使用“Swire Through USB”功能,则需勾选对应的选项。

Step2 - PA配置: 固件下载界面“PA Setting”区域,如果需要使用PA功能,则勾选上“Enable",如果使用PA功能但工作在Bypass模式下,则勾选“Bypass”。除了上述操作,用户还需要将PA操作的binary文件路径输入到对应的文本框中。PA操作相关的binary文件可通过“PA Configure Tool”来生成,可点击“PA Configure Tool”来打开该工具,工具的使用可参考对应的章节。

Step3 - 选择固件类型: 固件下载界面“Operation”区域,通过单选框来选择类型,可供选择的类型包括Flash程序和SRAM程序两种。

Step4 - 保存/下载固件: 固件下载界面“Operation”区域,通过点击“Save As Binary”按钮来保存固件,通过点击“Download”按钮来下载固件。

(3) EMI测试

Step1 - 配置频点、功率和RF模式: EMI测试界面“Setting”区域,输入测试频点、选择TX功率(TX测试需要)、选择RF模式。

Step2 - TX测试: TX测试包括两种RF类型的信号,分别是单载波信号和连续的调制信号,可通过“TX Continue”区域的“Carrier”和“CarrierData”按钮来分别设置。另外,连续的调制信号是支持跳频模式的,可通过勾选“Hop”来设置。

Step3 - RX测试: 通过“RX”区域的“RX Test”按钮来控制DUT进入RX测试模式。

(4) 非信令测试

Step1 - 配置频点、功率和RF模式: 非信令测试界面“Setting”区域,输入测试频点、选择TX功率(TX测试需要)、选择RF模式。

Step2 - TX测试: 非信令测试界面“TX Burst”区域,通过“Pack. Count”来选择连续的发包个数(仅支持单次发送1000个包数据和不限个数两种模式),通过分别点击“PRBS9”、“0x55”以及“0x0F”来选择发送不同类型的数据包。

Step3 - RX测试: 通过“RX”区域的“RX Test”按钮来控制DUT进入RX测试模式,通过点击“RX Count”按钮来查看当前的收包数,通过点击“RSSI”按钮来查看RF信号源的功率。

(5) RF电流测试

Step1 - 下载RF电流测试所需的固件: RF电流测试界面“Current Test Firmware”区域,配置MCU内部供电方式,点击“Download”按钮来下载电流测试的固件(每次开始时需要对DUT进行下电上电操作)。

Step2 - 进行TX电流测试: RF电流测试界面“Current Test Operation”区域,配置供电方式和功率以及频点,通过点击“TX Current”按钮来进入TX电流测试。

Step3 - 进行RX电流测试: RF电流测试界面“Current Test Operation”区域,配置频点,通过点击“RX Current”按钮来进入RX电流测试。

PA Configure Tool

功能描述

该工具主要用来配置生成PA工作所需的Binary文件。

界面组成及使用说明

该工具的界面如下图所示。

PA Configure Tool界面

配置生成PA工作文件:

Step1 - 添加PA控制的pin脚: 通过点击“Add”按钮来添加PA工作所需的pin脚。

Step2 - 配置各pin脚在不同工作模式下的电平: 分别配置“Init”、“TX”、“RX”以及“Bypass”模式下各pin脚的电平。

Step3 - 生成Binary文件: 通过点击“Save As Binary”按钮来将配置保存成binary文件。

EVK Offline Tool

功能描述

该工具用来配合带有离线下载功能的BurningEVK使用,主要功能包括:

  • 更新BurningEVK中工具固件。

  • 下载用户程序到BurningEVK中。

界面组成及使用说明

该工具的界面包括工具固件界面和用户工具界面,具体如下图所示。

EVK Offline Tool工具固件界面

EVK Offline Tool用户固件界面

(1) 更新工具固件

Step1 - 查看BDT中的工具固件: 通过点击“List all”按钮来查看现有的工具固件。

Step2 - 更新固件: 通过点击“Update”按钮来更新工具固件到BurningEVK中。

注意:

工具固件界面默认是隐藏的,需要通过修改配置文件来显示。

(2) 下载用户固件

Step1 - 添加用户固件: 通过点击“Add”按钮来添加用户固件,并配置好“Chip Name”、“Bin Name”、“Destination”、“Addr”以及“File Path”等信息。

Step2 - 下载用户固件: 先将需要下载到BurningEVK中的固件勾选上,接着点击“Download”按钮来完成下载。

Secure Boot Tool

该工具主要功能如下:

  • 支持芯片配置信息以及固件下载。

  • 支持重新使能Debug接口功能。

  • 支持读取芯片配置信息。

界面组成及使用说明

Secure Boot工具界面如下图所示。

Secure Boot工具界面

(1) Mode Selection

选择“secure boot mode”或“normal mode”任意一种模式。

(2) Firmware Encryption

选择启用或禁用“Firmware Encryption”功能。

(3) Secure Debug

选择启用或禁用“Secure Debug”功能。

(4) Run Description Address

选择Flash容量,相应的代码描述地址将自动确认。

注意:

此功能仅在“secure boot mode”模式下使用。

(5) Pubkey Hash

选择待烧录的“public_key_hash.bin”文件。单击“Download-All”按钮后,程序会自动检查文件长度是否满足条件。若不满足条件,会进行报错提醒。

公钥哈希文件错误

注意:

此功能仅在“secure boot mode”模式下使用。

(6) Root Key

输入框输入16个字符的字符串或32个十六进制字符的字符串作为根密钥,同时也支持选择文本文件导入密钥。

导入 Root Key 文本

输入32个十六进制字符的字符串示例:00112233445566778899aabbccddeeff或00112233445566778899AABBCCDDEEFF。

输入16个字符的字符串示例:tlk_key-1234abcd。

单击“Download-All”按钮后,程序会自动检查输入的字符串是否满足条件。若不满足条件,会进行报错提醒。

Root Key 格式错误1

Root Key 格式错误2

注意:

Firmware Encryption或Secure Debug功能启用时才需设置Root Key。

(7) Debug Plaintext

输入16个字符的字符串或32个十六进制字符的字符串作为根密钥,同时也支持选择文本文件导入密钥。

导入 Debug Plaintext 文本

输入32个十六进制字符的字符串示例:00112233445566778899aabbccddeeff或00112233445566778899AABBCCDDEEFF。

输入16个字符的字符串示例:tlk_key-1234abcd。

单击“Download-All”按钮后,程序会自动检查输入的字符串是否满足条件。若不满足条件,会进行报错提醒。

Debug Plaintext 格式错误1

Debug Plaintext 格式错误2

注意:

Secure Debug 功能启用时才需设置Debug Plaintext。

(8) Run Code

勾选复选框,选择运行代码0或代码1以及运行代码地址,并导入固件路径。

(9) Run Code description

勾选复选框,选择运行代码描述文件路径并导入。

注意:

此功能仅在“secure boot mode”模式下使用。

(10) Download-All

“Setting”区域芯片配置信息下载到eFuse中。“Run Code”以及“Run Code description”区域选择的文件下载到Flash中。

注意:

Secure Debug 功能启用,点击“Download-All”按钮,无论下载是否成功都会在工具config\sboot\key 路径下产生Debug Key文件。

(11) Download-Flash

“Run Code”以及“Run Code description”区域选择的文件下载到Flash中。

注意:

已烧录过eFuse,只需要更新固件程序,点击Download-Flash按钮即可。

(12) Re-enable Debug-interface

“Secure Debug”功能启用后,芯片Debug功能会被禁用。点击 “Re-enable Debug-interface” 按钮会弹出对话框。选择Yes,使用默认文件夹中的DebugKey.txt文件作为Debug Key去恢复Debug功能。选择No,需要手动导入文件作为Debug Key去恢复Debug 功能。

重新使能调试接口

(13) Read-Info

读取芯片eFuse中配置信息,不包括Root Key以及Debug Plaintext中的信息。

读取信息

(14) Save

保存界面配置信息,将Root Key以及Debug Plaintext中的信息保存到config\sboot\key路径。

key文件夹路径

常用安全机制组合和工具的使用步骤说明

Secure Boot、Firmware Encryption以及Secure Debug 安全机制可单独使用并且可以自由组合。然而,在实践中建议使用以下组合:

  • Option 0: Secure Boot + Secure Debug

  • Option 1: Firmware Encryption + Secure Debug

  • Option 2: Secure Boot + Firmware Encryption + Secure Debug

(1) Secure Boot + Secure Debug

Step1: “Mode Selection” 下拉框中选择“secure boot mode”。

Step2: “Firmware Encryption” 下拉框中选择“Disable”。

Step3: “Secure Debug” 下拉框中选择“Enable”。

Step4: 根据芯片封装选择对应Flash容量。此处默认选择“Flash:1M”。

Step5: “Run Code”区域选择运行代码0或代码1以及运行代码地址,并导入固件路径。

Step6: 上一步骤完成后,“public_key_hash.bin”文件路径会自动导入到“Pubkey Hash”输入框中,若未成功,则手动导入。

Step7: “Run Code description”区域导入运行代码描述文件路径。

Step8: 在“Root Key”以及“Debug Plaintext”输入框中输入密钥。

Step9: 点击“Download-ALL”按钮完成下载。

Secure Boot + Secure Debug 烧录步骤

(2) Firmware Encryption + Secure Debug

Step1: “Mode Selection” 下拉框中选择“normal mode”。

Step2: “Firmware Encryption” 下拉框中选择“Enable”。

Step3: “Secure Debug” 下拉框中选择“Enable”。

Step4: 选择固件下载地址并导入固件路径。

Step5: 在“Root Key”以及“Debug Plaintext”输入框中输入密钥。

Step6: 点击“Download-ALL”按钮完成下载。

Firmware Encryption  + Secure Debug 烧录步骤

Secure Boot + Firmware Encryption + Secure Debug

Step1: “Mode Selection” 下拉框中选择“secure boot mode”。

Step2: “Firmware Encryption” 下拉框中选择“Enable”。

Step3: “Secure Debug” 下拉框中选择“Enable”。

Step4: 根据芯片封装选择对应Flash容量。此处默认选择“Flash:1M”。

Step5: “Run Code”区域选择运行代码0或代码1以及运行代码地址,并导入固件路径。

Step6: 上一步骤完成后,“public_key_hash.bin”文件路径会自动导入到“Pubkey Hash”输入框中,若未成功,则手动导入。

Step7: “Run Code description”区域导入运行代码描述文件路径。

Step8: 在“Root Key”以及“Debug Plaintext”输入框中输入密钥。

Step9: 点击“Download-ALL”按钮完成下载。

Secure Boot + Firmware Encryption  + Secure Debug 烧录步骤

功能支持列表

并非所有MCU类型都支持此工具的所有功能,请参考下表。

功能支持列表