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

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

时间:2023-04-16 18:44:07浏览次数:50  
标签:Git venv DAPLink 工程 Keil 编译 源码 pip

本文介绍使用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

标签:Git,venv,DAPLink,工程,Keil,编译,源码,pip
From: https://www.cnblogs.com/TonyJia/p/17323699.html

相关文章

  • eureka源码简单剖析-服务端(服务续约接口)
           ......
  • eureka源码简单剖析-服务端(服务注册接口-作用是客户端的注册服务)
    本部分讲的是客户端的一些服务注册要注册中心,就是服务的提供者将服务注册到注册中心,方便消费者拿到需要的服务  peer是集群的模式 然后看下这个super.register(info,leaseDuration,isReplication);   日常学习使用的一般是eureka单机模式,企业使用都是eureka......
  • r0tracer 源码分析
    使用方法修改r0tracer.js文件最底部处的代码,开启某一个Hook模式。functionmain(){Java.perform(function(){console.Purple("r0tracerbegin...!")//0.增加精简模式,就是以彩虹色只显示进出函数。默认是关闭的,注释此行打开精简模式。//is......
  • eureka源码简单剖析-服务端(服务接口暴露策略)
    下面来看下服务接口暴露的策略。其中服务端使用了Jersey框架,而Jersey框架是一个发布restful风格接口的框架,类似我们使用的springmvc, 然后下面看下jersey部分    以上就是服务接口暴露的相关策略部分......
  • Visual Studio Code开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
    一、开发常用的工具栏选项1、当前打开的文件快速在左侧资源树中定位:其实打开了当前的文件已经有在左侧资源树木定位了,只是颜色比较浅2、打开太多文件的时候,可以关闭3、设置查看当前类或文件的结构OUTLINE相当于idea查看当前类或接口的结构Structure二、查看......
  • OPCUA实践之winnt服务源码分享
    前言孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说:“对呀,对呀!......OPCUA,你用过么?”大家好,我是44岁的大龄程序员码农阿峰。离开上一个项目近半年了,这时当时在项目做的3个winnt服务,算是OPCUA的初次使用,代码并没有什么出彩的地方,却是能正常运行,而且工作了近1年的时......
  • IDEA进入一个类的源码
    进入一个类的源码按住Ctrl后单击类名即可进入类的源码单击Structure即可看到类里的方法......
  • vue2源码-五、将模板编译解析成AST语法树2
    生成render函数前言上篇,生成ast语法树,而这篇使用ast语法树生成render函数。exportfunctioncompileToFunction(template){//1,将模板编译称为AST语法树letast=parserHTML(template);//2,使用AST生成render函数letcode=codegen(ast);}生成r......
  • 从零编译 Qt 源码
    写在前头为了保证流程可复现,本文档展示的编译全过程在Windows10提供的沙盒中进行。Linux安装Qt想必都不会有什么问题,所以本文讲的其实是Windows上如何从零编译Qt源码。此处的Qt源码指的是Qt这个第三库本身,所以想找怎么编译自己写的Qt项目的可以到此为止了。......
  • 亲测一份PHP在线客服系统源码-thinkphp+workerman开发-网上流传最广的客服源码搭建教
    为了帮一个客户修改自己的客服系统,所以把源码在本地搭建了一下。因为,我本身就是使用golang有开发一款客服系统的,本来不愿意看这种旧版本的PHP客服源码。但是客户那边需求很少,购买我的商务版感觉不合算,所以网上找了这一个客服源码,也是流传最广的一款PHP客服系统。当然这个源码有没......