DAPLink 工程构建过程记录(以及源码浅析)
简述
本文记录了作者 下载 ARM 官方开源的 DAPLink 源码以及生成 MDK 工程的步骤。作者的开发环境是 ubuntu18 ,python pip 源换成了清华源 https://pypi.tuna.tsinghua.edu.cn/simple 。如果使用默认的国外源,可能会导致整个过程失败。(ps:国内 pip 阿里源会提示找不到软件,最好换成清华源。)
pip 更换国内源的方法如下:
- 创建文件:
~/.pip/pip.conf
- 修改
pip.conf
文件内容为:
1 | [global] |
下载并构建 MDK 工程
命令行窗口输入如下命令,下载代码工程:
git clone https://github.com/balanceTWK/DAPLink.git
(这里为了防止 ARM 官方的源码以后发生了更新,导致与本文步骤对不上,我使用了我自己 GitHub 代码仓库 fork 的源码。在写这篇文章的时候,这个仓库的源码是最新的。如果想要使用 ARM 官方最新的源码,请替换命令为: git clone https://github.com/ARMmbed/DAPLink.git
)
进入刚刚下载好的 DAPLink 目录创建 python 虚拟运行环境
pip install virtualenv
sudo apt install virtualenv
virtualenv venv
启动 python 虚拟环境
source venv/Scripts/activate
安装更新各种所需要的 python 组件
pip install -r requirements.txt
这个命令如遇失败,可以多次执行,直到更新完成。
生成 MDK 工程,输入如下命令可以将所有的 MDK 工程都构建出来。
progen generate -t uvision
生成的 MDK 工程可以在 DAPLink\projectfiles\uvision
路径下找到。
使用 MDK 打开 DAPLink 工程
将生成的工程拷贝到 Windows 环境下,使用 MDK 打开相应工程:
选择 Migrate to Device Pack
大致浏览下 DAPLink 源码。发现可以通过头文件 DAP_config.h
中的一些配置宏来裁剪 DAPLink 的功能。(功能如:JTAG 协议调试;SWD 协议调试;文件拖拽下载;虚拟串口。。。。等)
DAPLink 使用了 RTX 实时操作系统, RTX 是 ARM 出的一个实时操作系统。有一个 cmsis_os2_port.c
文件,这个文件应该是操作系统的移植文件,也就是说可以比较方便的移植到别的嵌入式操作系统上。(我觉得我可以尝试换成我们公司的国产 RT-Thread 系统来练练手,→_→ 哈哈。。。)
从 main 函数来看,整个程序的运行流程是一套状态机,一共有 8 个事件。
最后
立个 flag ,后续把 DAPLink 硬件付诸实践,把系统换成 RT-Thread 。写一篇更详细的 DAPLink 源码分析笔记。
可以关注下我的 DAPLink 工程仓库地址(里面包含我用 KICAD 画的 pcb)获取最新消息 仓库地址链接 Orz 。。。