1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > DAPLink源码生成Keil工程并编译成功——笔记

DAPLink源码生成Keil工程并编译成功——笔记

时间:2022-09-15 05:00:47

相关推荐

DAPLink源码生成Keil工程并编译成功——笔记

DAPLink源码生成Keil工程并编译成功——笔记

一、前期准备工作二、初始化安装三、启动虚拟环境四、生成Keil工程文件五、编译工程的遇到坑坑一:Arm v5编译器坑二:Git的环境变量(或许该怪windows?)坑三:未关闭虚拟环境脚本 补充--10.13结语

本文介绍使用DAP源码生产Keil工程的步骤以及遇到的坑。

一、前期准备工作

以下1~4为步骤:

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

安装 Git (https://git-/downloads),添加至路径 PATH(安装第三步 选项里推荐使用Notepad++作为默认编辑器,没有Notepad++需要先安装好,剩下的就一路默认即可)安装后会自动添加好路径D:\Git\bin\ 和D:\Git\cmd

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

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

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

二、初始化安装

方法一:从Github上下载DAP源码 (/mbedmicro/DAPLink),下载后的是名为DAPLink-main.zip的压缩包,需要解压。

方法二:也可先新建个文件夹(命名为英文,如NEW),对着它右键选Git Bash Here,就会打开Git Bash的命令窗口,

输入

$ git clone /mbedmicro/DAPLink

clone后的文件夹叫DAPLink ,无需解压(速度慢的话推荐第一种,反正都是一样的)

clone完后把Git Bash根目录切换到源码的根目录。

上述方法一的根目录为DAPLink-main,方法二的根目录为DAPLink,即对着这个文件夹右键Git Bash Here(关闭原来的Git Bash命令窗口),或者原来的窗口输入$ cd DAPLink

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

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

三、启动虚拟环境

输入:

$ venv/Scripts/activate(For Linux)

$ venv/Scripts/activate.bat(For Windows)

如果venv/Scripts/activate.bat不行就按照图片的提示前面加个source,或者这个不需要命令行执行,直接在DAPlink目录下venv—Scripts文件夹里找到activate.bat,右键管理员打开即可

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

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

四、生成Keil工程文件

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

如果这一步显示 bash: progen: command not found 之类的 均是上一步没弄好,可以重复执行上一步

$ pip install -r requirements.txt直至完全获取支持包

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

如常用的STM系列芯片:

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

五、编译工程的遇到坑

坑一:Arm v5编译器

用Keil打开,界面如下:

编译,确保有相应的芯片支持包(也称固件包),如果出现如下则是缺少Arm compiler version 5编译器,

Rebuild started: Project: stm32f103xb_if*** Target 'stm32f103xb_if' uses ARM-Compiler 'Default Compiler Version 5' which is not available.*** Please review the installed ARM Compiler Versions:'Manage Project Items - Folders/Extensions' to manage ARM Compiler Versions.'Options for Target - Target' to select an ARM Compiler Version for the target.*** Rebuild aborted.Build Time Elapsed: 00:00:00

目前最新下载的Keil版本都是v6的编译器了,相关的v5编译器安装网上也有很多帖子,好多都指向官网说在官网下载,但是本人花了十几首歌的时间浏览查找注册收验证码登录… 才发现Keil官网上已经没得下载了(这是个大坑!) 放弃官网寻找后才发现个帖子有说明v5编译器的文件夹地方,在以前的版本里安装目录下Keil_v5—ARM—ARMCC文件夹,

最新版本已经没有ARMCC这个文件夹了,所以可以用以前的版本copy过来放到ARM文件夹目录下,此处本人共享一波ARMCC文件夹出来:

链接:/s/1gYGGfa1w7sSQ_GWs_Bp6KA

提取码:ku9q

如果需要将自己的ARMCC文件夹打包copy给别人,建议用7z格式压缩,压缩前428M,压缩后78.7M(zip)、17.8M(7z) (7z YYDS!)

此处简略说明安装过程:打开Keil点击魔术棒旁边红绿黄三个小方块的东西(Manage Project Items—Floders/Extensions—Use ARM Compiler处点击右边三个小点点,把ARMCC文件夹添加进去即可(或搜Arm compiler version 5安装,会有很多帖子有很详尽的教程)

Arm compiler version 5 安装完后打开Keil—魔术棒—Target—Code Generation会出现Use default compirler version 5,并选择它(没装ARMCC时只有Use default compirler version 6) ,OK即可用v5来编译

坑二:Git的环境变量(或许该怪windows?)

然而继续编译会出现新的问题,如下:

'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。#> Getting git description#> ERROR: Failed to get git description, do you have git.exe in your PATH environment variable?".\build\stm32f103xb_if.axf" - 1 Error(s), 0 Warning(s).Target not created.

这是因为 git 的环境变量未配置好,也有一个方法检测git是否正常运行,Win+R 输入cmd打开命令行,输入git,正常的话是可以显示git相关信息的,但本人的显示 “git’ 不是内部或外部命令,也不是可运行的程序或批处理文件“ 所以需要添加git的PATH路径。这一部分本人折腾了很久,网上找了很多添加git路径的帖子,有些是重复的,有些又不一样,在这里我整合了需要添加的路径(不一定都需要添加,但都加上又没什么影响):

注意安装路径不同的话要做修改。

至于为什么本人在添加PATH部分卡这么久,全怪Window神奇的bug(或者不是bug,只是我还不了解为什么,有了解情况的可以评论区一波),添加路径有两种方法,一种新建后直接在空白行输入,

还有一种是点击编辑文本

弹出提示点击确认即如下图所示,每一个PATH中间都由英文符号 ; 分号隔开,

然而我用了第一种方法,直接新建空白处填写路径,显示效果如下,却怎么都不行,cmd永远还是显示 “git’ 不是内部或外部命令,也不是可运行的程序或批处理文件。“

人都快崩溃时候无意点了下”编辑文档“,终于破案,

多了一对引号和分号,删掉之后再次cmd输入git ,终于大功告成!

但为什么会出现上述这样的问题本人也不知道,打开编译页面显示的跟未修改前的还是一样,根本看不出会对一双引号和分号

还是建议添加修改PATH用方法二吧,比较稳妥。

坑三:未关闭虚拟环境脚本

cmd输入git也可以了,又开始Keil编译,一点编译,0.5秒都不到就听到 滴灵~ 一声编译完成,瞬间崩溃。一看问题,还是显示 ” ‘git’ 不是内部或外部命令“ …更加崩溃!接下来就是更加疯狂地google,

终于找到一篇帖子分享DAPLink的源码生成步骤有一处不一样,TA的最后一步需要关闭虚拟环境脚本 deactivate,在上述启动虚拟环境第一步就把虚拟环境脚本开启了,但是大部分的帖子以及官方的DEVELOPERS-GUIDE(在DAPLink目录下的docs里,包括了DAPLink的全部资料文档)均没有提及需要关闭(或许是我看漏)

已经是最后一根稻草了立马就试了下,Git bash里$venv/Scripts/deactivate.bat或直接管理员打开venv—Scripts—deactivate.bat,再重开Keil编译,终于,大功告成,编译正常通过!

至于为什么有的帖子需要关闭有的帖子又没写关闭就不知道了,知情的热心网友可以评论区一波。

补充–10.13

补充说明第三章启动虚拟环境中 如果用$ venv/Scripts/activate.bat没有反应的话就改为$ source venv/Scripts/activate注意后面不带.bat的,成功进入虚拟环境是会显示(venv)的。网上也有帖子说必须要用DAPLink\tools里的launch_uvision.bat来启动(官方文档的最后一行也有提及),

但本人亲测好像直接工程打开也是可以的,并且后来又发现并不一定要退出虚拟环境deactivate后才能编译,总之有点迷,反正遇到问题了就都试试。

关于launch_uvision.bat的启动需要修改Keil路径,如图片选中地方所示获取方式似乎也有不同的地方,本人亲测以上方法如果是Github上直接下下来解压的无论如何都不会编译通过,用git clone的均可以编译并且没有那么多奇奇怪怪的问题,git clone后$cd DAPLink跳转到DAPLink的根目录,这时会出现(main)的字样,而如果使用压缩包解压再cd进DAPLink根目录下是没有这个(main)的,因此推荐使用git clone来获取DAPLink源码!!!所以以上的截图都是错误的,正常的应该从cd DAPLink 命令后都会带有(main)…这里我汇总一下全部使用的git bash 命令:

$ git clone /mbedmicro/DAPLink //clone整个工程过来$ cd DAPLink //这个步骤会出现main$ pip install virtualenv //pip安装虚拟环境$ virtualenv venv //pip进入虚拟环境 $ source venv/Scripts/activate //使能虚拟环境$ pip install -r requirements.txt //安装支持包$ progen generate -t uvision //生成全部Keil工程文件//--------------------------------------------------------////如果不需要生成全部一百多个工程文件,就只挑需要的来生成即可,以STM32F103xb为例:$ progen generate -p stm32f103xb_bl -t uvision//只生成stm32f103xb_bl工程$ progen generate -p stm32f103xb_stm32f103rb_if -t uvision //只生成stm32f103xb_if工程//--------------------------------------------------------//$ venv/Scripts/deactivate.bat //取消虚拟环境,此步不一定需要

如果遇到更多的情况可以参考官方DAPLink的Issues部分,有很多网友也提出了与本文类似的问题:/ARMmbed/DAPLink/issues

结语

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。