DAPlink工程拉取编译

DAPLink也带有虚拟串口 web-usb U盘拖拽下载功能

DAPLink电路  GitHub  ARM官方
https://github.com/ARMmbed/mbed-HDK-Eagle-Projects
DAPLink源码  GitHub  ARM官方 开发文档
https://github.com/ARMmbed/DAPLink/blob/master/docs/DEVELOPERS-GUIDE.md

淘宝买的Daplink
http://www.eemaker.com/daplink-data.html  资料在这

别人把DAPLink移植到STLink上
https://bh3nvn.github.io/2019/05/DAPLink2STlink/

步骤如下:

要 python git mdk 这几个软件

 
git clone https://github.com/mbedmicro/DAPLink     // git 克隆官方项目下来
cd DAPLink                                         // 进入这个项目
pip install virtualenv                             // 安装 virtualenv(假如pythen已经安装了virtualenv这个环境,可以直接跳过这条指令)
virtualenv venv   
    

git clone https://github.com/mbedmicro/DAPLink 
cd DAPLink 
pip install virtualenv 
virtualenv venv                              
// 运行
venv\Scripts\activate.bat 
// 安装需要的依赖包                     
pip install -r requirements.txt                    

编译输出全部目标版文件
progen generate -t uvision

编译输出局部目标板文件
progen generate -p stm32f103xb_bl -t uvision                   //  bootloader文件  需要编译后烧录到目标板
progen generate -p stm32f103xb_stm32f103rb_if -t uvision	//  _if_crc.bin文件  需要把nRST引脚接地插入目标板试别成U盘再考进去,再上啦nRST即可  nRst不是单片机的自身复位

通过MDK打开目标板的工程文件,记住,换工程的时候不能关闭这个命令打开的MDK,只能在这个MDK中openProject
tools\launch_uvision.bat
这一步可能会报错, 因为每个人的MDK安装路径不一样, 打开这个文件 修改安装路径即可 DAPLink\tools\launch_uvision.bat 文件

​编辑

编译的过程中。可能也会报错 python3
DAPLink\tools\flash_algo.py 文件中的 StringIO 改为 io 还有 StringIO.StringIO(data) 改为 io.StringIO(data)
DAPLink\tools\post_build_script.py 文件中 0xffffffffL 改为 0xffffffff

编译完 _bl 文件 直接通过MDK烧录到目标板中 拔掉目标板, 将nRST下拉 插入 会试别为U盘
编译 _if 文件 将 _if_crc.bin 结尾的文件考到U盘中 拔掉U盘 nRST上拉 完成

1
venv\Scripts\deactivate.bat

遇到问题2  fromelf 路径不正确

由于我安装MDK时,路径不是默认的,路径有修改过,有可能出现fromelf 找不到,最后导致生成不了bin文件

解决方法:路径 找到  ...\tool\post_build_script.bat  文件,按照以下内容修改

@REM add fromelf to PATH
::@set PATH=%KEIL_ARM%\ARMCC\bin;%path%      ::原文件路径
@set PATH=D:\Program Files\Keil_v5\ARM\ARMCC\bin;%path%  ::修改自己安装的路径

完成

//-----------------------------------------------------------------------------------------------------------------------------

最后整理流程:

1.官方硬件原理图:mbed-HDK-Eagle-Projects

2.官方源码github库:DAPLink

在某个目录运行git bash cmd窗口,复制以下命令,拉取github工程文件并生成工程

##git clone https://github.com/mbedmicro/DAPLink
git clone https://github.com/ARMmbed/DAPLink
cd DAPLink
pip install virtualenv
virtualenv venv
venv/Scripts/activate.bat
pip install -r requirements.txt
progen generate -f projects.yaml -p stm32f103xb_bl -t uvision
progen generate -f projects.yaml -p stm32f103xb_stm32f103rb_if -t uvision

可以在DAP_Config.h 修改自己的硬件参数,官方程序STM32F103C8 运行不了

SWD只使用两根线,不使用nRESET脚,在MDK软件勾选了Reset and Run后,DAPlink的 SWD下载后不能软件复位

手动增加DAPlink 自动软件复位功能,查找 PIN_nRESET_OUT 函数,改成以下(引用博客网址)

extern uint8_t swd_write_word(uint32_t addr, uint32_t val);
__STATIC_FORCEINLINE void     PIN_nRESET_OUT(uint32_t bit)
{
    if (bit & 1)
        nRESET_PIN_PORT->BSRR = nRESET_PIN;
    else
        nRESET_PIN_PORT->BRR = nRESET_PIN;
	if(bit == 0)
	{
		swd_write_word((uint32_t)&SCB->AIRCR, ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | SCB_AIRCR_SYSRESETREQ_Msk));
	}
}

编译stm32f103xb_bl 工程,这个工程是bootloader工程
编译stm32f103xb_stm32f103rb_if 工程,这个是固件工程

#1.首先烧写bootloader工程
- 用J-Flash(或者ISP)烧写固件中“stm32f103xb_bl_crc.hex”
  
#2.确定目标板型号这里以f103为例,更新固件
- 按下DAPLINK上的按键,再插上USB,直到会识别出来一个名字为MAINTENANCE的u盘。
- 然后把固件工程中的“stm32f103xb_stm32f103rb_if_crc.hex”拷贝到U盘中。
- 然后重新插上USB就可以正常使用了

- 当出现DAPLINK 盘就代表你DIY成功了

注意:芯片型号一定要选择正确

(如果选择了有crc校验下载的,建议使用两个都是CRC结尾的hex文件)

原版文档(以下都是)

DAPLink 开发人员指南

设置

DAPLink 源代码是使用progen(来自project-generator)编译的,可以在 Linux、MacOS 和 Windows 上运行。

安装下面列出的必要工具。跳过已经存在兼容工具的任何步骤。

  • 安装Python 3。添加到路径。
  • 安装Git。添加到路径。
  • 安装编译器:
  • 安装make(使用GNU Make测试)。CMake也可以与 ninja 的不同实现make结合使用
  • 在全局 Python 安装中安装 virtualenv,例如:pip install virtualenv.

步骤 1.初始设置。

获取资源并创建虚拟环境

git clone https://github.com/mbedmicro/DAPLink
cd DAPLink
pip install virtualenv
virtualenv venv

激活虚拟环境

步骤 2.激活虚拟环境并更新要求。当您打开一个新的 shell 时,这是必要的。每次拉取新更改时都应该这样做

$ venv/Scripts/activate   (For Linux)
$ venv/Scripts/activate.bat   (For Windows)
(venv) $ pip install -r requirements.txt

$(For Windows)

venv/Scripts/activate.bat
pip install -r requirements.txt

建造

每次拉取新更改时都应该这样做

有两种构建 DAPLink 的方法。您可以使用progen项目生成器中的命令行工具或tools/progen_compile.py包装器工具。

步骤 3.1。使用progen_compile.py

(venv) $ python tools/progen_compile.py [-t <tool>] [--clean] [-v] [--parallel] [<project> [<project> ...]]
  • -t <tool>:选择要构建的工具链。默认值为make_gcc_arm. 测试的其他选项是make_gcc_armmake_armclangmake_armcccmake_gcc_armcmake_armclangcmake_armcc
  • --clean: 将清除现有的编译产品并强制重新编译所有文件。
  • -v:将使编译过程更加冗长(通常列出所有命令及其参数)
  • --parallel:启用项目内的并行编译(项目按顺序编译)。
  • <project>:要编译的目标项目(例如stm32f103xb_bllpc11u35_if),如果没有指定所有(140到150)项目将被编译。

步骤 3.2。progen_make

以下命令结合了生成和编译:

(venv) $ progen generate -t make_gcc_arm -p <project> -b

或者,可以将这些任务分开:

(venv) $ progen generate -t make_gcc_arm -p <project>
(venv) $ make -C projectfiles/make_gcc_arm/<project> [<target>] [VERBOSE=1]

在哪里:

  • <project>:要编译的目标项目(例如stm32f103xb_bllpc11u35_if)。
  • <target>: 构建目标,可以是allcleanhelp
  • VERBOSE=1: 显示额外的编译信息。

步骤 3.3。progen_cmake

以下命令结合了生成和编译:

(venv) $ progen generate -t cmake_gcc_arm -o generator=<generator> -p <project> -b
  • <generator>CMake:在以下选项中 使用生成器:
    • makeUnix Makefiles)
    • mingw-makeMinGW Makefiles)
    • msys-makeMSYS Makefiles, 未经测试)
    • ninjaNinja)
    • nmakeNMake Makefiles)
  • <project>:要编译的目标项目(例如stm32f103xb_bllpc11u35_if)。

步骤 3.4。用于MDKprogen编译。

该命令在该projectfiles/uvision目录下生成 MDK 项目文件。

$ progen generate -t uvision

要仅生成一个特定项目,请使用如下命令:

progen generate -f projects.yaml -p stm32f103xb_stm32f746zg_if -t uvision

这些选项用于progen设置参数:

  • -f对于输入项目文件
  • -p为项目名称
  • -t指定 IDE 名称

贡献

我们很想得到你的改变!一旦变更集重新基于 main,就应该发出拉取请求。有关贡献的详细要求和指南,请参阅贡献指南

港口

DAPLink 可以通过三种已定义的方式进行扩展。这些是添加目标支持、添加板支持和添加 HIC 支持。可以在下面找到有关移植其中每一个的详细信息。

测试

DAPLink 有大量用 Python 编写的自动化测试。它们用于回归测试,但您可以使用它们来验证您的 DAPLink 端口。详情在这里

在 uvision 和 mbedcli 构建文件夹中搜索 daplink 固件构建的选项。 python test/run_test.py --project-tool make_gcc_arm ...python test/run_test.py --project-tool uvision ...

发布

发布使用progen_compile.py

  • 使用正确的发布版本创建标签并将其推送到 github
  • 通过运行 'git clean -xdf' 然后运行 ​​'git reset --hard' 来清理你将要构建的 repo
  • progen_compile.py使用以下参数运行命令(有关-t标志,请参见上文):
(venv) $ python tools/progen_compile.py [-t <tool>] --clean -v --parallel --release
  • 所有发布的可交付成果都将被创建并存储在firmware_<version><version>DAPLink 版本在哪里)。将其保存在存储构建的任何位置。

使用 uvision 发布

DAPLink 包含用于自动执行构建版本的大部分步骤的脚本。除了构建版本之外,这些脚本还保存了相关的构建信息,例如 git SHA 和 python 工具版本,因此可以复制相同的构建。创建发布的推荐步骤如下。

  • 使用正确的发布版本创建标签并将其推送到 github
  • 通过运行 'git clean -xdf' 然后运行 ​​'git reset --hard' 来清理你将要构建的 repo
  • 运行脚本build_release_uvision.bat以创建所有构建。
  • 所有发布的可交付成果都将创建并存储在“uvision_release”中。将其保存在存储构建的任何位置。

注意:可以使用该构建的 复制以前build_requirements.txt的构建。为此,在步骤 2 中build_requirements.txt调用时添加附加参数build_release_uvision.bat。这将使用用于创建该构建的 python 包的确切版本进行安装和构建。

MDK

如果您想使用 MDK (uVision) IDE 来处理 DAPLink 代码,您必须在正确的环境中启动它。否则项目将无法构建。要正确启动 uVision,请使用tools/launch_uvision.bat

这个脚本可以接受参数来覆盖默认的虚拟环境和要安装的 python 包。例如tools\launch_uvision.bat other_env other_requirements.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值