首页 > 系统相关 >转载-如何结合FT2232HL/CMSIS-DAP+Eclipse+OpenOCD软硬件工具使用SWD调试接口在Windows10操作系统在线调试S32K3XX(Cortex M7)

转载-如何结合FT2232HL/CMSIS-DAP+Eclipse+OpenOCD软硬件工具使用SWD调试接口在Windows10操作系统在线调试S32K3XX(Cortex M7)

时间:2023-05-28 16:46:14浏览次数:56  
标签:OpenOCD CMSIS ST LINK S32K3XX DAP 调试

原文链接:https://blog.csdn.net/zhuwade/article/details/121944736

由于我们公司自己需要开发烧录工具,本人通过google搜相关文档和看ARM公司的技术文档,终于实现了这个功能。因为涉及的内容知识点比较多,对于玩嵌入式MCU的小白来说要普及的知识,逐个介绍篇幅会比较长,本文中只介绍相应的关键知识点。篇幅有相关知识点文章推给大家。

我们带着下面几个问题进行展开:
    1. 为什么选择 FT2232HL/CMSIS-DAP调试器工具?
    2. SWD是什么?为什么要选择使用SWD调试接口?调试工具是通过什么方式访问Cortex-Mx内部的呢?
    3. OpenOCD是什么?为什么要选择 OpenOCD?如何获取搭建OpenOCD环境?
    4. 如何连接FT2232HL Debuger Adapter的SWD调试接口? 如何结合S32K3XX DAP architecture和OpenOCD工具深入挖掘芯片内部?
    5. 什么是Eclipse?为什么要选择使用Eclipse在线调试代码?如何获取搭建Eclipse GUI在线调试环境?
 

其实有相关嵌入式MCU调试经验的同事从标题就可以看出其中的核心价值是什么? 开源免费不需要考虑版权问题

我们拿STM32 OpenOCD调试系统框图来展开。

以上图片来源https://zhuanlan.zhihu.com/p/41517198

我们将原调试系统框图进行修改一下

那么现在看,是不是就一目了然了?是不是在现在的框图中发现FT2232HL/CMSIS-DAP+Eclipse+OpenOCD+SWD+S32K3XX(Cortex M7)对应所在的位置?

1. 为什么选择 FT2232HL/CMSIS-DAP调试器工具?

市面上有很多种调试工具例如Segger-JLINK,ARM Keil ULINK,ST-LINK,CMSIS-DAP/DAP-LINK等等。

 J-Link

J-Link是最著名的ARM开发调试工具,J-Link由SEGGER公司生产。提供对市面上几乎所有ARM内核芯片的支持。目前最新版本的J-Link产品有J-LINK PRO,J-LINK ULTRA+,J-LINK WiFi,J-LINK PLUS,J-LINK BASE,J-LINK EDU,J-LINK OB等等,PRO/ULTRA+/WiFi/PLUS/BASE支持JTAG和SWD模式。并且对主要的IDE环境如KEIL、IAR都有良好的支持。优点很多,因此也是首选的调试工具。新版本J-LINK功能越强官方售价自然就高,J-LINK PRO价格大概在€798.00。想样更细了解请看SEGGER J-Link产品详情。 曾经淘宝有很多盗版,现在JLINK自我保护做的很安全,一旦要支持更高级的版本功能,在线升级因为license问题导致无法继续再使用,现在在淘宝基本很少见到盗版J-LINK。

ULINK

ULINK是ARM官方的调试工具,KEIL出品。ULINK也可以支持大多数的ARM芯片,对KEIL的支持非常好,是KEIL的默认调试工具。缺点是因为不支持IAR,影响了ULINK的推广。ULINK官方提供电路图等资料,属於半开放的,可以自做。
UNLINK 产品介绍链接如下ULINK debug and trace adapters。ULINK一样功能越强的产品价格越贵。ULINKpro 价格大概在1,250.00。关键Keil编译与调试环境(Microcontroller Development Kit) MDK-Professional现在基本是按每年卖License. 一个License一年的价格在1,250.00。关键Keil编译与调试环境(MicrocontrollerDevelopmentKit)MDKProfessional现在基本是按每年卖License.一个License一年的价格在4,560.00. 

ST-LINK

ST-LINK可以单独购买,也可以通过ST公司的开发板自带,Discovery系列的开发板价格最低价格不到¥100。板载的ST-LINK可以仿真ST公司的所有ARM芯片。ST-LINK除支持ST公司的ARM MCU(M3内核的STM32F1、F2,M4内核的F4、F3以及M0内核的F0),还支持STM8系列。ST-LINK的版本目前为ST-LINK V2。虽然资料基本公开,但既然成本不高,就没必要自制。而且ST公司配套开发环境STM32CubeIDE和STM32CubeProg都是免费。为什么ST是现在Cortex M卖的最好的原因也是因为ST-LINK便宜而且对应的开发调试软件软件配套免费丰富。

CMSIS DAP/DAP-Link

CMSIS-DAP Debugger现在市面上非常常见。什么是CMSIS? 什么是CMSIS-DAP?
CMSIS: Cortex Microcontroller Software Interface Standard,即Cortex微控制器软件接口标准
CMSIS-DAP is a specification and a implementation of a Firmware that supports access to the CoreSight Debug Access Port (DAP). CMSIS-DAP支持各种Cortex处理器CoreSight调试和跟踪。CMSIS-DAP为调试器提供标准化的接口,支持5线JTAG或2线SWD,其固件作为源代码提供。CMSIS DAP V2.0.0 ,CMSIS V5 开源源码 和 更多详情...
CMSIS-DAP 好处,硬件设计开源,源码开源。STM32 CMSIS DAP开源资源 和 IBDAP-CMSIS-DAP-JTAG-SWD-Debug-Adapter开源资源。
DAP-Link 是CMSIS-DAP的升级版。优点:拖拽烧录、升级固件。包括了CMSIS-DAP的优点:开源+虚拟串口+免驱。淘宝有售Muse Lab CMSIS DAP/DAPLink仿真器STM32调试器下载器Keil JTAG/SWD/串口

CJMCU-2232 FT2232

CJMCU-2232 FT2232 其实是 一款USB to UART FIFO SPI I2C JTAG RS232 开发板。它的好处是不需要固件支持,只需要USB驱动支持。不存在固件更新或丢失的风险。价格也合适淘宝人民币60左右【优信电子】FT2232HL双通道 USB转UART/FIFO/SPI/I2C/JTAG/RS232。没有支撑的软件支持,但是OPENCOD支持,调试接入和在线源码调试完全靠脚本实现。

优缺点:

J-LINK 和 U-LINK对于资金雄厚的大公司来说,这点费用不算什么,但是涉及到几千几万员工使用这个费用可不少。
ST-LINK有点局限性,只能适用于ST公司的STM32芯片。
CJMCU-2232 FT2232适用于有一定ARM嵌入式开发基础,并且对于ARM调试接口比较熟悉的高级程序猿。大/小公司都适用但是需要专门人员去开发。
CMSIS-DAP Debugger对于资金少得公司,一些初创公司或者院校大学生来说是最佳选择,因为硬件和软件都开源,可以自己做,由于便宜也可以直接淘宝购买。

我为什么选择CJMCU-2232 FT2232也是被逼于无奈,我们公司长期一直在使用自己设计的蓝盒子工具,里面用的芯片是FT2232D. 几乎是全球员工都在使用。必须的开发出相应的调试和烧录工具。

2. SWD是什么?为什么要选择使用SWD调试接口?调试工具是通过什么方式访问Cortex-Mx内部的呢?

文章链接: SWD下载调试接口原理深度剖析

3. OpenOCD是什么?为什么要选择 OpenOCD?如何获取搭建OpenOCD环境?

文章链接:  如何搭建OpenOCD环境基于Window10+Cygwin?

4. 如何连接FT2232HL Debuger Adapter的SWD调试接口? 如何结合S32K3XX DAP architecture和OpenOCD工具深入挖掘芯片内部?

文章链接: 如何使用FT2232H适配器和开源调式工具OpenOCD对ARM Cortex M系列MCU进行SWD接口调试

5. 什么是Eclipse?为什么要选择使用Eclipse在线调试代码?如何获取搭建Eclipse GUI在线调试环境?

文章链接: 如何结合Eclipse+OpenOCD+arm-none-eabi-gdb实现可视化在线调试ARM Cortex M7内核?

历经3周终于把整套流程弄懂跑通。发现为公司global team省了购买工具的成本,成就还是满满的。

 

标签:OpenOCD,CMSIS,ST,LINK,S32K3XX,DAP,调试
From: https://www.cnblogs.com/stellarbin/p/17438454.html

相关文章

  • VCS常用调试方法记录
    VCS常用调试方法1.若编译VCS报错不明显,可在pkg注释掉`inlcude`单个或多个文件后再编译。简单来说:注释!调试!2.若VCS报错信息noendpackage,可能是pkg中的某个文件有误3.调试编译除了可以用VCS也可用DVT来获取更多的报错信息来确定出错点4.可以将makeclean一下后再编译试试5.......
  • vscode配置C/C++调试环境
    1.Ctrl+Shift+P,输入tasks,选择"Tasks:ConfigureDefaultBuildTask",z这会生成tasks.json.然后,修改其中的args,删掉原来的${file},并将工程下的c文件添加进去,即${fileDirname}/*c(或单个文件添加也行,笔者因为工程的所有的c文件都在一个路径下,所以用的*.c):1{......
  • 无限debugger反调试
    1.var_constructor=Function.prototype.constructor;Function.prototype.constructor=function(data){if("debugger"==data){returnnull;}return_constructor(data);}var_constructor=Function.prototype.constructor;......
  • QT编程: 编写低功耗BLE蓝牙调试助手(Android系统APP)
    由于工作需要,需要利用QT平台完成手机与ble蓝牙的通讯,所以就找了各种资料,算是初步的能够连接完成demo代码,但是依旧有些代码没有理解,比如特性那一片的代码,稍后还得研究啊(对了,这是低功耗蓝牙,不是经典蓝牙,看清楚了,当初不清楚经典蓝牙和低功耗蓝牙,浪费我一个星期,说多了都是泪,下面是代码......
  • 转:Visual Studio如何调试异步代码
    转自:https://www.duidaima.com/Group/Topic/ASP.NET/10666虽然异步代码可以提高程序的整体吞吐量,但异步代码仍然无法免除错误!当潜在的死锁、模糊的错误消息以及查找导致Bug的Task时,编写异步代码会使调试更加困难。幸运的是,VisualStudio具有与托管的、本地的和JavaScript......
  • 微软Playwright开源自动化框架初探-安装和调试(java版)
    最近在研究部门的UI自动化框架(java+selenium+testNG+openCV等),发现在调试脚本时,需要先下载谷歌浏览器。无头/有头模式还需要代码区分。还有一个体验问题,程序启动太慢,从运行到浏览器启动,差不多需要30s左右,等得有点着急。  在知乎/CSDN中找到多篇文章推荐自动化测试利器-Playwrigh......
  • SICK CLV69x TCP/IP与PC通讯调试实例
    ​第一部分:现场需求/问题描述客户购买了CLV690+CMF400TCP/IP模块以及手持枪IDM261,有以下要求: 1.  CLV690读取钢卷信息,没有读到通过手持枪补扫; 2.  条码信息通过TCP/IP与PC端通讯; ​ 第二部分:现场工作内容1.产品功能和参数设置:  a. 安装和电......
  • ubuntu下core file文件生成及调试
    1.简介:corefile是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息。2.corefile的设置默认情况下,程序崩溃是不会生成corefile的,因为被操作系统限制。可以通过命令:ulimit-c来查看,如果值为0则表示被限制了,所以不能生成corefile文......
  • AMD Vitis 调试时,BSP代码的某些行没有被执行,代码乱跳等问题。
    问题AMDVitis调试代码时,BSP代码的某些应该被执行的行,没有被执行,调试器显示代码乱跳等。原因为了提高运行速度,BSP编译时,默认使用了优化选项进行编译,导致调试器对应二进制代码、和C代码时出现问题,显示出错误的执行流程。这只是显示问题,实际执行流程是没有问题的。解决办法将......
  • 使用QtCreator C++编写串口调试助手
    Qt小白一枚,喜欢嵌入式应用,以前都是使用别人的串口调试助手,学习了C++以后,自己也尝试着做了简单的串口调试助手,分享给大家吧,希望能帮助到大家,如果有错误,请大家指正。话不多说开干!1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计)(界面设计的过程中,每一个控件......