本文目的
CH578M/CH579M是ARM Cortex-M0内核,通常arm的内核都是支持ARM-SWD下载和仿真的,那ch578M/579M也不例外.鉴于在ch578/579上使用SWD仿真有一些技巧和注意事项,本文进行一些总结与记录.
适用芯片
- 仅限于CH578M/579M
(其他的CH577F/578F/579F 虽然也是cortex m0 内核,但是SWD对应的IO PB16/PB17 没有引出来,所以也不能支持)
(本文教程亦不适用wch的RISC-V平台,诸如CH571/573/581/582/583 CH32V之类)
支持的工具
- J-LINK v8/v9 也包括一些J-link-ob
- dap-link
- st-link
- 其他支持m0 仿真的兼容link
注意事项
- SWD调试需要在wchisp工具中开启,(芯片的bootloader需要>=2.5);
- 使用USB/UART下载后 SWD下载会自动关闭,如需要使用需要再次打开;
- 低功耗下,SWD会被禁用,导致芯片不能响应SWD,从而下载/调试失败;
- 使能了LCD后,如果占用了对应SWD IO, SWD会失效.
- 无法通过SWD或者在应用程序关闭SWD,需要在wchisp工具中关闭,所以强烈不建议使用SWD去做批量生产
使用仿真
下面测试基于KEIL 525,更高的版本应该也支持(如果用J-FLASH下载可参阅使用J-flash 读写CH32F10x/CH578/CH579等WCH芯片)
使能芯片的仿真
默认的芯片是开启仿真功能的,但是一旦经过ISP工具下载后,仿真功能就会关闭,所以一般来说,我们需要先要在ISP模式下使能芯片的仿真功能:
安装pack包
下载的CH579的官方官方SDK: http://www.wch.cn/downloads/CH579EVT_ZIP.html
在压缩包的PUB文件夹下有个pack文件,双击安装
选择对应的芯片
打开 debug infomation
这一步很重要,否则只能下载,不能调试
调试工具设置(这里使用 jlink示例)
选择调试工具,这里选jlink,其他的link对应的选就行
官方的jlink 并没有CH579/578的信息,提示找不到,我们点击OK,去手动选择
如果这一步错了,需要删掉工程下的jlink的相关配置后,重新打开工程,他会重新让你选
我们在弹出的选择中,选择m0的内核就行了
下面是jlink识别后的样子