DAPLink:修订间差异
跳转到导航
跳转到搜索
(未显示同一用户的4个中间版本) | |||
第5行: | 第5行: | ||
=== 厂商移植 === | === 厂商移植 === | ||
通常各个采用ARM架构的MCU芯片厂商会移植属于他们自己的DAPLink以实现嵌入式硬件开发的自举(即仅使用该厂商的芯片即可完成嵌入式软件的开发),或者创建他们自己的的硬件调试工具。 | |||
==== 合宙 ==== | ==== 合宙 ==== | ||
第19行: | 第19行: | ||
DAPLink通常也指使用该软件固件制作的调试工具硬件。 | DAPLink通常也指使用该软件固件制作的调试工具硬件。 | ||
=== 固件 === | |||
一般情况下,DAPLink的固件一般分为两个部分,分别是Bootloader固件与Interface固件。 | |||
对于一个正常的DAPLink需要同时烧写两个部分的固件。 | |||
==== Bootloader固件 ==== | |||
用于烧写Bootloader固件,一般只有一个拖拽烧写Interface固件的功能。 | |||
当DAPLink没有烧录Interface固件或者nReset(输出)引脚被拉低时,进入Bootloader模式,此时上位机连接的DAPLink仅仅提供一个U盘(盘符为MAINTENANCE),用于提供烧录Interface固件功能。 | |||
==== Interface固件 ==== | |||
Interface固件与调试的目标芯片有关,其内部通常集成目标芯片的Flash编程算法,因此需要根据目标芯片更换Interface固件。 | |||
Interface固件某些功能可以是通用的,如SWD调试、USB转串口功能,某些功能可能不通用,如拖拽烧录目标芯片程序(需要加载编程算法)。 | |||
=== 固件编译 === | |||
==== 环境 ==== | |||
DAPLink的源代码采用python脚本管理,并未采用通用的构建系统。 | |||
需要的软件包如下: | |||
* [https://www.python.org/downloads/ Python3](带pip):用于运行python脚本。 | |||
* [https://git-scm.com/downloads Git]:用于获取git仓库信息(如版本)。 | |||
* 编译工具:用于编译源代码,可使用[https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads gcc]、[https://developer.arm.com/tools-and-software/embedded/arm-compiler AC6]、[https://developer.arm.com/tools-and-software/embedded/keil-mdk AC5(keil mdk])。 | |||
* 构建工具:一般是[https://www.gnu.org/software/make make],也可采用[https://cmake.org/ cmake]+[https://ninja-build.org/ ninja]。 | |||
* virtualenv:python软件包,因为编译过程中需要安装大量的python软件包依赖,因此需要使用virtualenv隔离复杂的系统环境。 | |||
所有的软件包在安装之后均需添加至PATH变量。 | |||
==== 步骤 ==== | |||
# 准备编译环境,按照要求准备编译环境。 | |||
# 准备源代码(使用git下载),进入源代码目录。 | |||
# 创建并进入virtualenv环境。 | |||
# 安装python软件包依赖(<code>pip install -r requirements.txt</code>) | |||
# 编译Bootloader固件(以编译基于STM32F103XB芯片的DAPLink为例:<code>python3 tools/progen_compile.py stm32f103xb_bl</code>) | |||
# 编译Interface固件(以目标为STM32F103RB芯片基于STM32F103XB的DAPLink为例:<code>python3 tools/progen_compile.py stm32f103xb_stm32f103rb_if</code>) | |||
编译完成后,所有的中间文件及最终结果均可在<code>projectfiles</code>目录中找到。 | |||
== 官方资料 == | == 官方资料 == | ||
网址:https://daplink.io/ | 网址:https://daplink.io/ | ||
== 相关资料 == | |||
* [[Blackmagic-debug]]:内置GDB server(通过串口访问)的即插即用 JTAG/SWD 微控制器调试器。 |
2024年6月5日 (三) 10:57的最新版本
固件源代码
主要
https://github.com/ARMmbed/DAPLink.git
厂商移植
通常各个采用ARM架构的MCU芯片厂商会移植属于他们自己的DAPLink以实现嵌入式硬件开发的自举(即仅使用该厂商的芯片即可完成嵌入式软件的开发),或者创建他们自己的的硬件调试工具。
合宙
上位机工具
- OpenOCD:OpenOCD是一个开源的可提供片上编程与调试支持的硬件调试工具软件。
说明
DAPLink是一个运行于Arm Cortex CPUs的开源烧录与调试应用软件的软件项目。
DAPLink通常也指使用该软件固件制作的调试工具硬件。
固件
一般情况下,DAPLink的固件一般分为两个部分,分别是Bootloader固件与Interface固件。
对于一个正常的DAPLink需要同时烧写两个部分的固件。
Bootloader固件
用于烧写Bootloader固件,一般只有一个拖拽烧写Interface固件的功能。
当DAPLink没有烧录Interface固件或者nReset(输出)引脚被拉低时,进入Bootloader模式,此时上位机连接的DAPLink仅仅提供一个U盘(盘符为MAINTENANCE),用于提供烧录Interface固件功能。
Interface固件
Interface固件与调试的目标芯片有关,其内部通常集成目标芯片的Flash编程算法,因此需要根据目标芯片更换Interface固件。
Interface固件某些功能可以是通用的,如SWD调试、USB转串口功能,某些功能可能不通用,如拖拽烧录目标芯片程序(需要加载编程算法)。
固件编译
环境
DAPLink的源代码采用python脚本管理,并未采用通用的构建系统。
需要的软件包如下:
- Python3(带pip):用于运行python脚本。
- Git:用于获取git仓库信息(如版本)。
- 编译工具:用于编译源代码,可使用gcc、AC6、AC5(keil mdk)。
- 构建工具:一般是make,也可采用cmake+ninja。
- virtualenv:python软件包,因为编译过程中需要安装大量的python软件包依赖,因此需要使用virtualenv隔离复杂的系统环境。
所有的软件包在安装之后均需添加至PATH变量。
步骤
- 准备编译环境,按照要求准备编译环境。
- 准备源代码(使用git下载),进入源代码目录。
- 创建并进入virtualenv环境。
- 安装python软件包依赖(
pip install -r requirements.txt
) - 编译Bootloader固件(以编译基于STM32F103XB芯片的DAPLink为例:
python3 tools/progen_compile.py stm32f103xb_bl
) - 编译Interface固件(以目标为STM32F103RB芯片基于STM32F103XB的DAPLink为例:
python3 tools/progen_compile.py stm32f103xb_stm32f103rb_if
)
编译完成后,所有的中间文件及最终结果均可在projectfiles
目录中找到。
官方资料
相关资料
- Blackmagic-debug:内置GDB server(通过串口访问)的即插即用 JTAG/SWD 微控制器调试器。