DAPLink源码生成Keil工程并编译成功——笔记(实践篇)
本文介绍使用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
一步生成
注意:也可以单独编译一个工程,输入
$ progen generate -p stm32f103xb_bl -t uvision //只生成stm32f103xb_bl工程
$ progen generate -p stm32f103xb_stm32f103rb_if -t uvision //只生成stm32f103xb_if工程
到最后报了一些错误,也不知道对工程有没有影响,又知道啥原因的小伙伴,可以给我留言。
2.如果这一步显示 bash: progen: command not found 之类的 均是上一步没弄好,可以重复执行上一步
$ pip install -r requirements.txt直至完全获取支持包
3.此使可以关闭Git bash了,进入到文件夹里面,会发现多出个文件夹projectfiles,即刚刚生成的Keil工程文件,里面有100多个工程文件,找到对应的芯片型号即可。
如常用的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