DAPlinkg工程拉取编译

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 这几个软件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git clone https://github.com/mbedmicro/DAPLink     // git 克隆官方项目下来
cd DAPLink                                         // 进入这个项目
pip install virtualenv                             // 安装 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 文件

DAPlinkg工程拉取编译_第1张图片

编译的过程中。可能也会报错 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

完成

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

最后整理:

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

官方源码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烧写固件中“stm32f103xb_bl_crc.hex”
  
#2.确定目标板型号这里以f103为例,更新固件
- 按下DAPLINK上的按键,再插上USB,直到会识别出来一个名字为MAINTENANCE的u盘。
- 然后把固件工程中的“stm32f103xb_stm32f103rb_if.hex”拷贝到U盘中。
- 然后重新插上USB就可以正常使用了

原版文档

DAPLink 开发人员指南

设置

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

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

  • 安装Python 3。添加到路径。
  • 安装Git。添加到路径。
  • 安装编译器:
    • GNU Arm 嵌入式工具链。此编译器将被标识为gcc_arm.
    • ARM 编译器 6 . 此编译器将被标识为armclang. 仅在 Linux 和 Windows 上受支持。
    • Keil MDK或Arm 编译器 5。此编译器将被标识为armcc. 仅在 Linux 和 Windows 上受支持。
  • 安装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

建造

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

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

步骤 3.1。使用progen_compile.py

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

步骤 3.2。progen_make

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

(venv) $ progen generate -t make_gcc_arm -p  -b

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

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

在哪里:

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

步骤 3.3。progen_cmake

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

(venv) $ progen generate -t cmake_gcc_arm -o generator= -p  -b
  • CMake:在以下选项中 使用生成器:
    • makeUnix Makefiles)
    • mingw-makeMinGW Makefiles)
    • msys-makeMSYS Makefiles, 未经测试)
    • ninjaNinja)
    • nmakeNMake Makefiles)
  • :要编译的目标项目(例如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 支持。可以在下面找到有关移植其中每一个的详细信息。

  • 添加新目标
  • 添加新板
  • 添加新的 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 ] --clean -v --parallel --release
  • 所有发布的可交付成果都将被创建并存储在firmware_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

你可能感兴趣的:(stm32,DAPlink)