本节将为大家讲解如何使用CDS + cklink 实现基于 FLASH 的 debug 与烧录
前期准备
- 下载链接下方提供的W806 的Flash 下载算法文件w806.flash,由于阿里网盘的分享限制,因此制作了7z格式的自解压exe文件,小伙伴们可放心食用,直接解压即可得到 w806.flash 文件 本次算法文件不包含官方的secboot文件,因此需要 修改 gcc_csky.ld 文件的flash 起始地址
flash 算法链接 「W806flash」https://www.aliyundrive.com/s/qsFyBhTnpm2
测试的工程也在链接里面。
本次制作的flash 算法暂未集成 官方的secboot文件,后期会加上!!!
- 使用CDS 打开 创建的工程 打开 gcc_csky.ld 文件按照图中修改即可,由于未集成secboot 所以需要将程序运行地址提前,修改好后之后进行重新编译,

硬件连接
- 使用杜邦线连接cklink 和W806 ,其连接引脚为;
CKLINK | W806 |
---|
TRST | RESET(PA0) |
TMS | TMS(PA4) |
TCK | TCK(PA1) |
GND | GND |
- 这里使用W806 开发板外部供电,不再使用cklink 供电,有可能由于供电不足导致调试失败。
- 由于W806的PA1 PA4 引脚,有其它额外的功能,请确保调试时,这两个引脚未复用其他功能。
打开T-Head DebugServer
双击桌面上的T-Head DebugServer 图标,如果连接一切正常回显示如下图片

导入flash 下载算法
- 解压下载的 W806flash.exe 文件,会得到 W806flash 文件夹,文件夹中即下载算法文件 W806.flash

- 打开CDS 工程,依次点击软件上方的工具栏选项 Window -->> Preferences

在弹出的对话框中按照如图所示,依次点击,进行导入flash 下载算法操作

点击Import 选项后选择 我们刚才解压的flash 下载算法文件即 W806.flash

随后会弹出一个 Modify Flash Template 的对话框,用户根据需要可以进行修改,也可保持默认 点击OK 即可

导入成功后会在右侧显示 Flash 算法的版本以及基本信息,点击 Apply and Close 关闭即可

配置工程使用下载算法
- 右键创建好的项目,按照如图所示进行 debugger 配置即可

- 在弹出的 Debug Configuration 选项卡中 ,双击T-Head Application 选项进行打开debug 参数配置页面


- 在 点击
进行选择使用的下载算法,在弹出的页面中按照如下配置

配置好后如图所示,点击 Apply and Close 即可

- 切换的 Debugger 配置选项栏,进行Debugger 配置

- Local JTAG 该选项是直接使用cklink 进行调试,无需单独启动 T-Head DebugServer ,两种调试不能同时进行,使用 Local JTAG 进行调试,需要将 T-Head DebugServer 关闭。
- JTAG Server 该选项需要借助 T-Head DebugServer 进行创建 socket 进行远程调试,配置时候需要将端口号与T-Head DebugServer 创建的端口号保持一致才可以
- Simulator 该选项主要仿真 CPU核使用
- OpenOCD 该选项针对RISC -V 系列使用
我们调试W806 一般使用 LocalJTAG 和JTAG Server 两个选项,LocalJTAG 选项需要 cklink 固件与 CDS中内嵌的固件一直,否则会自动升级,无法阻止,JTAG Server 选项不会自动升级。本次我们使用 JTAH Server 选项

- 配置好后选择 Apply 然后 直接点击 Debug 选项即可,
<img src="https://zyqmain-1311779619.cos.ap-nanjing.myqcloud.com/img/202206170636307.png"/>
第一次需要这样配置,随后只需要点击 IDE 界面上的小蜘蛛图标即可,或者右键选择 debug 也是可以的

- 一切配置正常后,可以看到如下界面即表示成功

- 如果 小伙伴连接的有串口 0 的话 ,会看到如下打印

断点的设置
由于本次是基于Flash 的调试,因此断点类型需要设置为 硬件断点 或者自动断点 设置方法如下

设置好后,双击侧边栏 即可快捷进行断点设置

随后 即可进行debug 调试了,断开 debug ,按下开发板的 复位键 ,程序即可正常自动运行。