DAPLink源码生成Keil工程并编译成功——笔记(实践篇)

发布时间 2023-04-16 18:42:36作者: Tony.Jia

本文介绍使用DAP源码生产Keil工程的步骤。

一、前期准备工作

以下1~4为步骤:

1.安装Python 3 (https://www.python.org/downloads/),并添加至路径 PATH,此处忘截图了,总之看见pip、all user、add to PATH之类的就勾选。(网上也有些帖子说暂时不支持Python 3要用Python 2.7的,本人实测Python 3也可以,可能是以前不行的现在可以了)

2.安装 Git (https://git-scm.com/downloads),添加至路径 PATH,安装后会自动添加好路径C:\Program Files\Git\bin 和C:\Program Files\Git\cmd(我是默认安装在系统盘下)

3.安装 Keil MDK (https://developer.arm.com/tools-and-software/embedded/keil-mdk),安装与License的方法网上一大堆,这里就不说明了

4.用命令行安装 virtualenv (最好用管理员权限打开cmd),输入 pip install virtualenv

 如果提示pip需要升级什么的就按提示继续输入命令升级pip,一般不会有什么大问题

二、初始化安装

1.从Github上clone DAPLink项目,必须克隆,不要使用下载的方式(会少踩坑)
$ git clone https://github.com/mbedmicro/DAPLink

2.clone完后把Git Bash根目录切换到源码的根目录。
上述方法一的根目录为DAPLink-main,方法二的根目录为DAPLink,即对着这个文件夹右键Git Bash Here(关闭原来的Git Bash命令窗口),或者原来的窗口输入$ cd DAPLink

3. 输入$ pip install virtualenv 安装虚拟环境

 4.输入$ virtualenv venv 进入虚拟环境,此时DAPlink文件下会出现venv文件夹

 

三、启动虚拟环境

1.输入:

$ venv/Scripts/activate (For Linux)
$ venv/Scripts/activate.bat (For Windows)
如果venv/Scripts/activate.bat不行就按照图片的提示前面加个source ,或者这个不需要命令行执行,直接在DAPlink目录下venv—Scripts文件夹里找到activate.bat,右键管理员打开即可
特别注意:补充说明第三章启动虚拟环境中 如果用$ venv/Scripts/activate.bat没有反应的话就改为 $ source venv/Scripts/activate注意后面不带.bat的,成功进入虚拟环境是会显示(venv)的。

 2.输入$ pip install -r requirements.txt(用于获取很多支持包,这步很关键,时长取决于你的网络,如果网络不好可能会下载不了,只要命令行里有显示Error或Warning之类的一律出问题)

最后的显示是Successfully installed xxxxxxxxx 才是完全安装成功,出现Error或Warning之类需要重新执行$ pip install -r requirements.txt

四、生成Keil工程文件

 1.输入 $ progen generate -t uvision 一步生成

 到最后报了一些错误,也不知道对工程有没有影响,又知道啥原因的小伙伴,可以给我留言。

2.如果这一步显示 bash: progen: command not found 之类的 均是上一步没弄好,可以重复执行上一步
$ pip install -r requirements.txt直至完全获取支持包

3.此使可以关闭Git bash了(其实还不行,还有一个步骤,详见下文 坑三…),进入到文件夹里面,会发现多出个文件夹projectfiles,即刚刚生成的Keil工程文件,里面有116个工程文件,找到对应的芯片型号即可。

如常用的STM系列芯片:

以 _if 结尾的工程是对应工程的应用程序;_bl 结尾的是对应工程的Bootloader应用程序,以STM32F103C8为例,首先烧写bootloader,即stm32f103xb_bl工程编译出来的hex文件,然后再烧写stm32f103xb_if编译出来的hex文件即完成一个DAPLink制作。

五、编译工程

1.以stm32f103xb_bl(BootLoader)工程为例,打开工程,会有如下提示

 2.编译,等待一会,就会提示编译成功,如有报错,请参阅https://blog.csdn.net/Pakin_Wu/article/details/127293806此贴中的踩坑指南

 3.编译stm32f103xb_if(DAPlink)工程

 至此,成功的编译了BootLoader工程和DAPlink工程。

结语

分享这篇文章出来旨在帮助坑友们排雷,节省十几首歌的时间,并且由于本人认知有限,本文的方法仅供参考,并不一定适用于任何情况。感谢DAPLink官方如此优秀的开源!

ps:以上也是原作者的心声,有啥不明白的地方,可以多多参考作者的文章,我也是站在了巨人的肩膀,亲自实践了一下而已,再次感谢原作者,还有和原作者一样的朋友门,默默的为开源做出的贡献!

原文链接:https://blog.csdn.net/Pakin_Wu/article/details/127293806