跳转至

烧录调试工具BDT CMD


该工具开发与测试在 Ubuntu 20.04.3 LTS, 64-bit 操作系统. 在macos X64,AARACH64系列进行编译测试。

版本v1.4,使用前请更新burning EVK固件版本到V3.6.

介绍

功能支持, 主要支持evk模式, 部分芯片支持usb模式,如下表。后续详细用例里面有说明。

evk mode usb mode
read/write flash (rf, wf) support only 826x support
read/write sram (rc, wc) support only 82xx support
read/wirte analog (ra, wa) support only 82xx support
download in flash support not support
download in core support only 82xx support
erase in flash/core support only 82xx support
check pc (pc) support only 82xx support
check global parameters (var) support only 82xx support
reset in flash or sram support only 82xx support
sws support not support
run step stop support, B91and B92 not support only 82xx support
ac support not support
lsusb support support
up not support support

芯片型号参数

B92 9518 B80 B85 B87 B89_A1 8232 8266 8267 8269 8366 8368 8367_i 8367_e 8369_i 8369_e

命令使用示例

命令选项介绍

-u: 表示使用usb模式,未使用-u默认为evk模式.
-s: 需要操作的字节数量,数量跟在-s后面. eg: -s 16; -s 1k.
-e: 表示擦除操作,常用于flash,core擦除.
-c: 表示core常用reset命令.
-i: 指定输入文件,后面紧跟文件路径,常用于指定下载文件. eg: -i /home/8258_gpio.bin.
-o: 指定输出文件,后面紧跟文件路径,常用于将读取二进制数据保存到文件. eg: -o /home/readflash.bin
-p: 表示打印具体过程常用于flash操作.
-b,-d: usb设备的bus, devid,存在多个usb设备时候需要使用该参数.

支持usb 模式的功能, 在命令后面添加-u选项即可。

假如存在多个evk设备,由于evk设备vid、pid都是相同的,可以通过指定evk设备的bus,devid控制指定设备。

假如使用usb模式的调试方式,也需要通过指定bus,devid的方式控制设备。

示例在命令的后面添加-b:bus -d:devid
./bdt 8258 sws -b 1 -d 1
./bdt 8258 sws -b 1 -d 2

./bdt 8258 sws -b 1 -d 1 -u
./bdt 8258 sws -b 1 -d 2 -u

sws

设置通讯速率,以及检测evk于目标板连接是否正常.

# 设置指定的sws值.
# b0:地址 10:速率参数值.前两个(b0 10)为设置evk swire clk值;后两个(b0 10)是目标开发板swire clk值.
./bdt 8258 sws b0 10 b0 10 

# 如果没有指定值,sws值默认为b0 10 b0 10.
./bdt 8258 sws

写入sws值必须跟在sws命令参数后面.

activate

唤醒设备,程序处于深度睡眠的时候,使用该命令.

./bdt 8258 ac

reset

重新启动, 程序从flash或者sram启动.

# 重启后从flash启动
./bdt 8258 reset

# 重启后从sram启动
./bdt 8258 reset -c

read/write flash

read flash(rf)

读取数量小于1kb, 读取数据将打印; 大于1kb将会保存到默认文件.

默认文件名称实例: save1020-11294102.bin

# 读取flash地址0x00 16字节数据
./bdt 8258 rf 0x00 -s 16
./bdt 8258 rf 0x00 -s 1k

# 将读取数据输出到制定文件readflash.bin
./bdt 8258 rf 0x00 -s 16 -o readflash.bin

write flash(wf)

flash 在写入之前需要先进行擦除, 擦除的默认单位是4k.

# 写入4字节数据到flash 0x00.
./bdt 8258 wf 0x00 01 02 03 04 -s 4

# 先擦除,再写入数据.
./bdt 8258 wf 0x00 01 02 03 04 -s 4 -e

# 写入一个文件到flash,下载功能.
# 写入文件不用选项-e -s.
./bdt 8258 wf 0x00 -i bin/USB_Demo.bin

read/write core

read core(rc)

读取数量小于1kb, 读取数据将打印; 大于1kb不将会保存到默认文件.

默认文件名称实例: save1020-11294102.bin

# 读取sram地址0x40000 16字节数据.
./bdt 8258 rc 0x40000 -s 16
./bdt 8258 rc 0x40000 -s 1k

# 将读取数据输出到制定文件readsram.bin.
./bdt 8258 rc 0x40000 -s 16 -o readsram.bin

write core(wc)

# 写入4字节数据到sram 0x40000
./bdt 8258 wc 0x40000 01 02 03 44 -s 4

# 写入一个文件到sram,下载功能
# 写入文件不用选项-e -s
./bdt 8258 wc 0x40000 -i bin/USB_Demo.bin

read/wirte analog

read analog(ra)

# 读取analog数据, 起始地址0x00 16字节.
./bdt 8258 ra 0x00 -s 16

write analog(wa)

# 写入4字节数据到analog 0x00.
./bdt 8258 wa 0x00 01 02 03 44 -s 4

check pc/parameter

查看pc指针值, 全局参数表(var).

需要查看pc指针值, 参数具体含义,需要配置.lst文件

# 打印当前pc指针值.
./bdt 8258 pc

# 打印当前pc指针值,详细说明.
./bdt 8258 pc -i USB_PRINT_LOG.lst

# 打印当前程序参数列表(地址,长度,值).
/bdt 8258 var -i USB_PRINT_LOG.lst

run stop

运行,停止程序执行

# 开始运行.
./bdt 8258 run

# 停止运行.
./bdt 8258 stop

step

单步运行程序.

./bdt 8258 step

up

更新evk固件, usb连接evk设备

-i : 指定需要更新的固件文件夹

-v : 查询当前evk版本号

# evk芯片为8266
./bdt 8266 up -i fw/Firmware_v3.4.bin
./bdt 8266 up -i fw/Firmware_v3.4.bin -ev
./bdt 8266 up -ev

lsusb

查看已经电脑usb设备列表,-v选项可以查看usb 描述符字符串。

./bdt lsusb 
./bdt lsusb -v

FAQ