-
-
[原创]DAP-LINK研究笔记-用STM32单片机替换J-LINK
-
发表于:
2021-9-18 17:04
36078
-
[原创]DAP-LINK研究笔记-用STM32单片机替换J-LINK
Arm Mbed DAPLink 是一个开源软件项目。把代码编译以后,会生成一个固件(和单片机开发是相同的),把固件写到单片机里面,单片机就具备了J-LINK的功能。其成本很低,在淘宝上也有现成的产品。本文记录的是使用一个STM32开发板制作DAP-LINK的过程。
图 1 淘宝上的DAP-LINK
本次实验的基本流程如下:
1.使用开源的代码编译生成DAP-LINK固件。
2.使用J-LINK烧写DAP-LINK的固件到开发板中。
3.验证DAP-LINK固件在开发板中的可用性。
下面先介绍基本的硬件、软件环境,再介绍实验步骤。
实验主机:笔记本电脑
开发板:STM32F103C8T6开发板[1](用来承载DAP-LINK)
开发板:STM32F103VET6开发板[2](用来验证DAP-LINK可用)
辅助调试器:J-LINK调试器[3]
开发板和辅助调试器依次如下图所示:
图 2 J-LINK调试器示意图
图 3 STM32F103C8T6开发板
源码:x893 DAP-LINK源码[4]
实验主机:Win10
编译环境:ARM MDK 5.14[5]
制作过程部分主要描述编译环境构建、编译DAP-LINK源码、烧写DAP-LINK程序到小开发板、验证DAP-LINK的可用性。其中,在验证可用性的环节,DAP-LINK指示灯和SWD调试连接需要进行原理图分析后,才能确定芯片的连接关系,进而使用杜邦线建立DAP-LINK和开发板的连接。USB接口的连接,x893和我们的小开发板的连接是一致的,所以这部分不用担心烧写DAP-LINK程序后会不兼容。
经多次测试,x893 的DAP-LINK源码适用于本开发板。其代码在github中开源,事实上,该代码衍生自官方的github。
图 4 x893 DAP-LINK源码
该代码使用ARM MDK[6]编译,所以需要在笔记本上构建编译环境,才能完成代码编译。
下载MDK。使用脚注提供的百度云连接安装即可。安装和破解过程参考网络已有教程资源[7]。安装完成后,需要下载最新的CMSIS包[8],选择Legacy support for Arm Cortex-M devices下载,下载完成后默认安装即可。
打开\Firmware\STM32目录下的CMSIS_DAP.uvproj工程文件,即可打开MDK的工程。打开后如下图所示。选择CMSIS-DAP-V2-F103。点击左侧箭头即可进行编译。
图 5 MDK打开工程项目后的界面
编译完成后,build output窗口有以下输出:
图 6 编译完成的日志
4.3 烧写DAP-LINK固件到开发板
将开发板与J-LINK建立连接,并将J-LINK插入到笔记本中,点击图5所示的蓝色深色箭头,完成烧写。期间,需要确保J-LINK连接到开发板后,MDK可以识别到J-LINK插入到开发板,而且在debug->settings中可见J-LINK已经识别到与J-LINK连接的MCU了。
图 7 确保J-LINK与开发板连接后识别到开发板的MCU
图 8 J-LINK下载固件到开发板中
重新将C8T6开发板(烧写DAP-LINK固件的开发板)的USB插入到笔记本中,笔记本中识别了两个设备,分别是串口设备和USB设备。这样,我们的C8T6就变成了一个CMSIS DAP调试器,其功能类似J-LINK。
图 9 将DAP-LINK重新插入电脑后出现两个设备
将C8T6开发板与被测试的VET6开发板相连接。连接关系如下图所示。需要注意的地方有两个:SWD连接和DAP-LINK的指示灯。
图 10 DAP-LINK和开发板的连接方式
打开被测试开发板资料中的例程,设置开发板烧写方式为DAP-LINK。然后以烧写DAP-LINK的方式进行编译、烧写。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-9-18 17:12
被fengzhidian编辑
,原因: 改了格式