DAPLINK 之仿真调试器介绍

news/2024/10/15 9:55:24

目录
  • 前言
  • 1 协议
    • 1.1 JTAG 协议
    • 1.2 SWD 协议
  • 2 调试仿真器
    • 2.1 ST-Link 仿真器
    • 2.2 ULink 仿真器
    • 2.3 J-Link 仿真器
    • 2.4 DAPLINK 仿真器
  • 3 LINKer 搭配 CLion 的使用
    • 3.1 ST-Link + CLion + STM32F103RCT6
    • 3.2 DAPLINK + CLion + STM32F103RCT6
  • 参考

前言

本文算是 DAPLINK 学习的一个引子,主要介绍一下各类调试器及其使用。
接下来我会首先使用合宙 AIR32F103 进行复刻,然后是分析 DAPLINK 源码,最后根据学习情况来自制 DAPLINK。

烧录方式:

  • 1)ISP(In-System Preogramming,在系统编程):通过 MCU 片内 BootROM 完成在板 Flash 烧写操作

    • (1)要求芯片出厂时带有 ISP 固件程序
    • (2)一般通过串行方式烧写,速度较慢,不适合烧写容量大的代码
    • (3)如:LPC1700 系列芯片,通过串口使用上位机软件 FlashMagic 即可烧写
  • 2)IAP(In-Application Programming,在应用编程):支持用户程序运行时烧写 Flash

    • (1)要求部分用户程序已经烧写至 MCU 片内 Flash
  • 3)调试接口(JTAG、SWD 等)烧写:借助仿真器 MCU 的调试接口控制 MCU 完成片内 Flash,甚至外扩的 Flash 烧写

    • (1)适合前期开发调试阶段,量产后一般不同保留这种接口,除非是开发板

1 协议

1.1 JTAG 协议

  • JTAG(Joint Test Action Group,联合测试工作组)是一种国际标准测试协议,主要用于芯片测试。
  • 多数芯片都支持 JTAG 协议,并提供以下引脚来实现:
    • TCK:测试时钟输入
    • TDI:测试数据输入,数据通过 TDI 输入 JTAG 口
    • TDO:测试数据输出,数据通过 TDO 从 JTAG 口输出
    • TMS:测试模式选择,TMS 用来设置 JTAG 口处于某种特定的测试模式
    • TRST:可选引脚,测试复位输入引脚,低电平有效

一个 IEEE 小组专注于硅芯片测试方法。 许多调试和编程工具都使用联合测试
动作组(JTAG)接口端口, 用于与处理器通信。

参见 IEEE Std 1149.1-1990《IEEE 标准测试访问端口和边界扫描体系结构规范》 ,
来自 IEEE 标准协会。—— 出自创芯工坊《用户手册》。

1.2 SWD 协议

  • SWD(Serial Wire Debug,串行调试),也是 ARM 内核调试器的一种通信协议。相比 JTAG 协议,占用更少的端口资源。

  • JTAG 协议与 SWD 协议端口对比:

使用 SOC 和调试器之间的串行连接的调试实现。 这个连接正常需要一个双向数据信号和一个单独的时钟信号, 而不是 JTAG 所需的 4 到 6 个信号连接。—— 出自创芯工坊《用户手册》。

2 调试仿真器

  • 嵌入式开发时,连接电脑与单片机,用于调试、仿真、下载程序的设备。
  • ST(意法半导体)官方发布了 3 种仿真器:ST-LINK、ST-LINK/V2、STLINK-V3SET,用于 STM8 和 STM32 系列芯片仿真。

  • ST-Link 仿真器支持 SWIM / JTAG / SWD 协议下载,其中 SWIM 协议是一种用于 STM8 微控制器的调试编程协议。

ST-LINK/V2 实物及引脚说明:

  • ULink 是 ARM/Keil 公司的仿真器,因此仅可在 Keil 上使用,支持 JTAG / SWD 下载。

ULink 仿真器实物图:

  • J-Link 是德国 SEGGER 公司的仿真器,得到所有主流 IDE 的支持,支持 SWIM / JTAG / SWD 下载下载。

J-Link 仿真器实物图:

DAPLINK 仿真器是一类基于 ARM 开源的 DAPLINK(https://github.com/ARMmbed/DAPLink.git)实现,并修改优化的仿真器。

  • 如手头的 PWLINK2 是创芯工坊推出的 PowerWriter 系列中的产品,集成了调试器(Debugger)+ 烧录工具(Programmer)

PWLINK 仿真器实物图片:

3 LINKer 搭配 CLion 的使用

以下方式均基于 OpenOCD 实现烧录

  • (1)使用 STM32CubeMX 初始化工程,并编写完成代码

  • (2)创建 ./config/stlink.cfg 文件,并添加:

    # choose st-link/j-link/dap-link etc.
    # adapter driver cmsis-dap
    # transport select swd
    source [find interface/stlink.cfg]
    transport select hla_swd
    source [find target/stm32f1x.cfg]
    # download speed = 10MHz
    adapter speed 10000
    

从上述配置文件中注意到:接口配置文件为 stlink.cfg,目标配置文件为 stm32f1x.cfg,且传输方式选择 hla_swd。

  • (3)选择上面添加的文件(当然最好是选择 OpenOCD 自带的安装目录下的 board/st_nucleo_f103rb.cfg 文件):

  • (1)使用 STM32CubeMX 初始化工程,并编写完成代码

  • (2)创建 ./config/daplink.cfg 文件,并添加:

    # choose st-link/j-link/dap-link etc.
    adapter driver cmsis-daptransport select swdsource [find target/stm32f1x.cfg]
    

从上述配置文件中注意到:虽然未使用接口配置文件,但手动设置适配驱动器选择 cmsis-dap,传输方式选择 swd,目标配置文件为 stm32f1x.cfg。
由此可知,interface 文件中一般配置烧录器支持的驱动协议。

  • (3)选择上面添加的文件:

  • (4)PWLINK 与 JTAG 接口接法:

参考

  • 调试/仿真器:https://blog.csdn.net/m0_46511220/article/details/120615692
  • 知乎稚晖君:https://zhuanlan.zhihu.com/p/145801160
  • ARM 代码烧录方案与原理详解:https://blog.csdn.net/m0_37621078/article/details/106798909

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

VU9P处理板设计原理图:412-基于单XCVU9P+双DSP C6678的双FMC接口 100G光纤传输加速计算卡

基于单XCVU9P+双DSP C6678的双FMC接口 100G光纤传输加速计算卡一、板卡概述 板卡包括一片Xilinx FPGA XCVU9P,两片 TI 多核DSP TMS320C6678及其控制管理芯片CFPGA.设计芯片满足工业级要求。 FPGA VU9P 需要外接4路QSFP+(100Gbps)及其两个FMC HPC接口。DSP需要外接两路千兆以太…

信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用

在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)作为一个基础概念,在量化概率分布差异方面发挥着关键作用。它常用于衡量当一个概率分布用于近似另一个概率分布时的信息损失。本文将深入探讨KL散度及其他相关的重要散度概念。KL散度 KL散度,也称为相对熵,…

聊聊如何实现一个特别的责任链

前言什么是责任链责任链是一种设计模式,它让多个对象有机会处理同一个请求,这些对象形成一个链。请求从链的一端开始,逐个传递给链上的对象,直到某个对象处理它或者请求未被处理。这样,发送请求者无需知道哪个对象会处理,实现了发送者与接收者的解耦,增加了系统的灵活性…

修改网站源代码的步骤

修改网站源代码通常涉及以下几个步骤:备份现有代码:在进行任何更改之前,确保对当前的源代码进行完整备份。这有助于在出现问题时恢复到修改前的状态。获取源代码:通过FTP/SFTP、Git或其他版本控制系统将网站源代码下载到本地计算机上。分析需求:明确你需要做出哪些具体修改…

宝塔面板添加网站

宝塔面板是一款非常流行的服务器管理软件,它可以帮助用户方便地管理服务器上的网站、数据库、域名等资源。要在宝塔面板上添加一个新的网站,你可以按照以下步骤操作:登录宝塔面板:打开浏览器,输入宝塔面板的IP地址加上端口号(默认为8888)。 输入用户名和密码登录。进入网…

SQLSTATE[HY000] [1045]Access denied for user

遇到 SQLSTATE[HY000] [1045] Access denied for user 这个错误通常表示MySQL拒绝了用户的访问请求,通常是由于用户名或密码不正确导致的。以下是一些解决此问题的步骤:检查用户名和密码确认你使用的用户名和密码是否正确。 尝试在MySQL命令行工具中直接登录以验证。重置密码…

请问公司网站改版方案有哪些?企业网站改版需要注意什么

用户体验优化简化导航结构,使用户更容易找到所需信息。 提升页面加载速度,减少用户等待时间。 优化移动设备访问体验,确保网站在手机和平板上也能良好展示。视觉设计更新采用现代设计风格,提升品牌形象。 调整色彩搭配和字体样式,增强视觉吸引力。 引入高质量图片和视频,…

一款由AI编写,简洁而实用的开源IP信息查看器

大家好,今天给大家分享一款用于查询和显示用户当前 IP 地址的轻量级项目MyIP。MyIP提供了多种功能,包括IP地址查询、网络连通性检查、WebRTC连接检测、DNS泄露检查、网速测试、MTR测试等等。 使用MyIP,我们可以轻松地查看自己的公网IP地址,并且可以方便地进行网络诊断或监控…