[hpm_application] 高达80MHz 低成本SWD高速调试器方案,开源!
一、概述
在大致了解完hpm_sdk1.6.0之后,为了方便后续调试器持续优化,之前做的hpm5301evklite适配的cherryDAP的方案,也升级了hpm_sdk版本到V1.6.0。
SPI模拟SWD的驱动部分已经更新在cherryDAP仓库中,有需要自行clone。
仓库: https://github.com/cherry-embedded/CherryDAP
也可在该仓库查看:
仓 库:
https://github.com/RCSN/CherryDAP/tree/feature/support_spi_drive_swd_for_hpn5301
本文不做仓库中的编译调试阐述,想自己编译调试源码的,可以了解下最新HPM_SDK 1.6.0,以及查看本公众号的 《 你想要了解的先楫hpm_sdk开发都在这里系列 》文章以及以往调试器《 基于先楫单片机的调试器制作之路 》文章
后续计划:单SPI模拟JTAG,以及双SPI模拟JTAG,还有一个HPM专属的SEI外设模拟SWD/JTAG。敬请期待。
二、说明
(一)固件提取
在cherryDAP仓库中,对应的projects/hpm5301evklite/bin文件夹中就是相关固件,若不想编译直接使用可自行烧录,烧录步骤本文不做阐述,请自行查阅。 目前固件有两个,分别是
hpm5301_daplink.bin和spi_over_swd.bin。
两个固件说明可以请看txt文件。
(二)SWD频率说明
对于SWD频率,只做三个频率划分,分别是80M, 50, 15M。其他频率自行修改编译。
对于下发的SWJ_CLOCK命令
1、如果频率大于等于10M,则实际是80M。
2、如果频率大于等于1M并且小于10M,则实际是50M
3、如果频率小于1M,则实际是15M。
设置频率可以在set_swj_clock_frequency API中看到。
(三)固件编译说明
1、依赖的HPM_SDK版本比如不低于1.6.0,其余版本编译问题自行解决。
2、默认使用GPIO模拟SWD,也就是之前的代码不变,如果使用SPI模拟SWD,需要在工程CmakeLists文件使能CONFIG_USE_SPI_SWD宏。