openocd调试esp32(通过FT232H)

之前在学习ESP32,其中有一部分课程是学习openocd通过JTAG调试程序的,因为我用的是ESP32-wroom,usb端口没有集成对应的usb转jtag的ft232,查了ESP32相关的资料(JTAG 调试 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com))里面提到ESP32的JTAG适配器,ESP-WROVER-KIT开发板使用的是FT2232H,且开发板内部已经集成这个适配器。

 我查了很多资料,确定ESP32里面是没有集成FT2232H适配器的,但是官方还是保留了接口以便我们自行接入JTAG适配器。 

根据上面的接口可以连接对应的JTAG适配器。

当时脑子一热就买了FT232H,看到淘宝里面的评论说可以调试ESP32就买了,没想到这么难配置,找不到合适的资料。淘宝店家也只是发了FTDI的官方资料和原理图(和这个模块的原理图还不一样),反正是靠不住的,最终各种摸索之下找到配置方法。 

网上有说需要EEPROM去写值设置成JTAG模式,包括spec上也是说需要通过EEPROM进行config,没看的很详细,主要是我还要买个EEPROM?这也太麻烦了吧? 

后来自己又摸索了一下,发现可以通过FT_Prog软件,将模式切换成D2xx。

因为我这个型号的只有一个JTAG口,所以选择Hardware Specific时要选Port A,然后Port A-->Driver右侧选择D2xx Direct这个选项最后,上方选项卡Devices中选择Program,弹出来的框选Program完成即可。

但还是连接不上openocd,猜测没有驱动导致的么?

下载usb driver tool可以设置对应的驱动,设置好之后,貌似能成功检测到了。 Automatic USB driver installer for FTDI and LibUSB drivers (visualgdb.com)

也不知道对不对,看到网上教程说这么设置,之后在设备管理器里面就会有这个。

但是openocd也仅仅是检测到了,实际上跑不起来,会有问题。是cfg配置的问题。

GitHub - amirgon/ESP32-JTAG: ESP32 FT232H JTAG Debugging on Linux

上面是一模一样这个模块,JTAG Debug的配置说明,接线也有说明,看了之后才发现我之前接线是有误的,各位也可以检查一下有没有接错。

 把git hub上的cfg下载下来,放在espressif(esp的sdk)中的openocd路径中。

D:\Espressif\tools\openocd-esp32\v0.11.0-esp32-20221026\openocd-esp32\share\openocd\scripts\board

上面是我的路径,给你们参考,之后执行openocd的指令

openocd -f .\board\ft232h.cfg

这里上面都已经配置好了,红色Error的信息是扫描不到cfg中的esp32的cpu,所以这里把esp32接上电脑之后,再执行一次指令。

 成功的接通,openocd处于端口监听的状态了,但是这里还是有些问题的,下面的额信息Debug controller reset了,这里不确定是什么问题,通过espidf去尝试连接gdb,openocd也没有反应,说明这里还是有问题的。暂时没确定是什么问题,后续解决了再补充。

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

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

相关文章

Linux 目录和文件常见操作

就常见的命令: pwd pwd 显示当前的目录 目录迁移 我以如下的目录大致结构做一个简单的例子 cd 迁移到指定的路径,可以指定相对路径和绝对路径,默认相对 .指向当前路径,…/ 指向上一级的目录。 ls 列出文件及其目录 命令选…

android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露

android 如何分析应用的内存(十八) 在前面两篇文章中,先是介绍了如何用AS查看Android的堆内存,然后介绍了使用MAT查看 Android的堆内存。AS能够满足基本的内存分析需求,但是无法进行多个堆的综合比较,因此…

第六章 SpringBoot注解 @ConditionalOnBean

满足条件的则进行组件的注入 Configuration(proxyBeanMethods true) //告诉SpringBoot这是一个配置类 配置文件 ConditionalOnBean(name "tom") public class MyConfig {Bean("tom")public Pet tom(){return new Pet("tomPet");}/*** 外部无论…

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具,可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段 -a :all,表示列出所有的连接,服务监听&#xff…

对文件的读取和修改 JAVA

目录 1、try catch:2、hasNextLine():3、java读取某个文件夹信息:4、修改: 1、try catch: 1、try语句对你觉得可能会有问题的语句进行尝试 2、try内语句出现错误会被catch语句捕捉,且整个程序不会崩溃 3、try语句出错才会执行下方catch语句…

在R中比较两个矩阵是否相等

目录 方法一:使用all.equal()比较两个R对象是否近似相等 方法二:使用identical比较两个R对象是否精确相等。 方法一:使用all.equal()比较两个R对象是否近似相等 使用函数:all.equal(x,y) 比较两个R对象x和y是否近似相等 > M1…

特语云用Linux和MCSM面板搭建 我的世界基岩版插件服 教程

Linux系统 用MCSM和DockerWine 搭建 我的世界 LiteLoaderBDS 服务器 Minecraft Bedrock Edition 也就是我的世界基岩版,这是 Minecraft 的另一个版本。Minecraft 基岩版可以运行在 Win10、Android、iOS、XBox、switch。基岩版不能使用 Java 版的服务器,…

tomcat设置PermSize

最近tomcat老是报错,查看了日志出现PermGen 内存不够用,重启tomcat后查询使用情况 通过启动参数发现没有设置 PermGen,继续通过jmap查看 jmap -heap 21179 发现99%已使用,而且默认是30.5M,太小了,这里设置成256M 1. 创建setenv.sh文件 在/usr/local/tomcat/bin目录下创建一个…

公会在tiktok发展,有哪些国家,怎么入驻呢?

在秀场直播领域,众多公会都将目光聚焦在TikTok上。TikTok已成为一个新的金矿,许多公会已在这个平台上赚得盆满钵满。 这些公会在TikTok上月流水达到数百万美元,甚至在一场PK中流水达到40万美元,分成比例高达80%。TikTok的秀场直播…

022 - STM32学习笔记 - 扩展外部SDRAM(一) - 初识SDRAM和FMC

022 - STM32学习笔记 - 扩展外部SDRAM(一) - 初识SDRAM和FMC 之前学习了I2C读写EEPROM和SPI读写FLASH,学完之后在学习一种新的存储介质–SDRAM。 一、初识SDRAM 我们知道在stm32内部是有一定大小的SRAM(256Kb)和FLA…

(5)将固件加载到没有ArduPilot固件的主板上

文章目录 前言 5.1 下载驱动程序和烧录工具 5.2 下载ArduPilot固件 5.3 使用测试版和开发版 5.3.1 测试版 5.3.2 最新开发版本 5.4 将固件上传到自动驾驶仪 5.5 替代方法 5.6 将固件加载到带有外部闪存的主板上 前言 ArduPilot 的最新版本(Copter-3.6, Pl…

使用JavaScript实现页面滑动切换效果

使用JavaScript实现页面滑动切换效果 在现代Web页面设计中,页面滑动切换效果已经成为了一种常见的设计要求,能够提升用户体验,增加页面的交互性。本文将通过JavaScript来实现这一效果。 首先,我们需要在HTML中添加一些基础结构和…

Object.assign详解

一、Object.assign是什么? Object.assign( )方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 二、用法 Object.assign(target, ...sources) 参数:target ——>目标对象 source ——>源对象 返回值:…

HCIP VRRP技术

一、VRRP概述 VRRP(Virtual Router Pedundancy Protocol)虚拟路由器冗余协议,既能够实现网关的备份,又能够解决多个网关之间互相冲突的问题,从而提高网络可靠性。 局域网中的用户的终端通常采用配置一个默认网关的形…

【枚举+推式子】牛客小白月赛 63 E

登录—专业IT笔试面试备考平台_牛客网 题意: 思路: 首先是个计数问题,考虑组合数学 组合数学就是在考虑枚举所有包含1和n的区间 这个典中典就是枚举1和n的位置然后算贡献 双指针超时,考虑推式子: Code&#xff1a…

【Rust】Rust学习 第七章使用包、Crate和模块管理不断增长的项目

目前为止,我们编写的程序都在一个文件的一个模块中。伴随着项目的增长,你可以通过将代码分解为多个模块和多个文件来组织代码。一个包可以包含多个二进制 crate 项和一个可选的 crate 库。伴随着包的增长,你可以将包中的部分代码提取出来&…

目标检测YOLOv3基于DarkNet53模型测试-笔记

目标检测YOLOv3基于DarkNet53模型测试-笔记 预测和试测结果: 预测代码如下所示: testInsects.py #YOLOv3网模型测试-单图片文件测试并显示测试结果 import time import os import paddle import numpy as np import cv2 import random from PIL impor…

拓扑布局和建立小型网络

练习 2.6.1:拓扑布局和建立小型网络 地址表 本实验不包括地址表。 拓扑图 学习目标 正确识别网络中使用的电缆物理连接点对点交换网络验证每个网络的基本连通性 简介: 许多网络问题都可以在网络的物理层解决。因此,必须清楚了解网络连接…

光致发光二极管光源——荧光效率检测系统

发光二极管(LED)光源已经逐步地取代传统光源,并在生产和生活中得以广泛应用。荧光粉在LED照明设备中起到了至关重要的作用,其功能为将转换芯片所产生的紫外或者蓝光,发射出目标颜色的光。近年来,人们为了提…

分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)

文章目录 01. Kafka 消费者分区再均衡是什么?02. Kafka 消费者分区再均衡的触发条件?03. Kafka 消费者分区再均衡的过程?04. Kafka 如何判定消费者已经死亡?05. Kafka 如何避免消费者的分区再均衡?06. Kafka 消费者分区再均衡有什…