ARM调试器只能偶尔连接成功问题
这里分析一个ARM板子JTAG调试器经常连接失败,只能偶尔连上目标板问题。
背景
这是原先另一个部门的板子,在部门合并之后,最近要对这个板子的代码体系进行转移,在过问开发进度时,工程师反映这个板子调试很难连接,所以错误不好定位。这个问题前段时间反映过,但是当时比较忙,没有过问。现在看起来这个问题影响问题定位了,所以看起来这个问题需要彻底看一下了。听原先负责这个板子的工程师,这些年也都是这样,这个芯片很难连接,以前如果不行就换板子。这个芯片是LPC2136,我们部门原先并不使用,但是LPC2132和LPC2134则是使用过的,并不存在问题。简单测试了一下这个板子,确实是连接非常困难。
接线查看
首先找了对比板子LPC2132,连接非常顺利。对比两个板子的图,分析JTAG接口连接,从原理图上看,JTAG接口连接并没有什么不妥,和对比板子一致,量硬件连接,也没有问题。连接总是提示“Failed to connect”。看来只能对JTAG进行分析了。
JTAG信号分析
把所有的JTAG信号线飞出来,接上逻辑分析仪,采集JTAG信号。首先采集正常的板卡的信号,如下:
从上到下,顺序为TRST,TDI,TMS,TCK,RTCK,TDO,从图中看,有来有回,一切正常。只是中间有一个异常,我最初设定为用TRST下降沿触发,却没有抓到,从波形看,TRST确实一直为高,这个当时也没有在意,不影响抓信号。
再抓一个不正常板卡的信号,如下:
从信号看,没有RTCK,也没有TDO输出。测量RTCK信号,并没有和地短路等异常发生。
这时想起来了最初看到的异常板卡的复位电路,是一个简单的RC复位。当时一打眼的时候,觉得这个电路取值有点问题,其中R=10k,C=100nF,稍有RC复位电路设计经验的,都可以看出这个取值不太合理,但是这个板子上电工作一直是正常的,也就没在意。对比对照板卡,其RC取值为100k,1uF。使用镊子强制复位异常板卡,果然可以JTAG连接成功。更换RC取值,板卡JTAG连接正常。
分析
这个板子原因是很清楚的了,复位电路复位时间过短,造成芯片没有很好复位。但是还有一个奇怪的问题,这个板子上电运行从来没有出过问题。猜测是CPU内核在复位链里面复位比较早,而JTAG口复位比较晚?还有一个问题,这个芯片手册有写明这个芯片有内部POR,为什么没有起作用?
ARM调试器只能偶尔连接成功问题的更多相关文章
- 安装ARM调试器
一.概述 1.调试ARM应用程序的软硬件组成 硬件JTAG/SWD仿真器 Eclipse调试插件 GDB调试客户端 GDB服务器端 JTAG/SWD需要的硬件驱动 2.GNU ARM Eclipse推 ...
- 《python灰帽子》学习笔记:写一个windos 调试器(一)
一.开发内容介绍 为了对一个进程进行调试,你首先必须用一些方法把调试器和进程连接起来.所以, 我们的调试器要不然就是装载一个可执行程序然后运行它, 要不然就是动态的附加到一个运行的进程.Windows ...
- Flash Builder 调试器无法连接到正在运行的应用程序(57%)
Flash Builder 调试器无法连接到正在运行的应用程序(57%),可能原因: 1,flashplayer不是debug版. 2,调试器(用debug版flashplayer随便 ...
- 【转】WinDbg调试器:启动程序时自动连接调试器方法
当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft ...
- zend stuido 12.5的插件安装和xdebug调试器的配置和和配置注意
参考: zend stuido 12.5的插件安装 zend 12.5 安装插件是按类别进行分类了的, 而且是在欢迎 界面就可以直接安装, 安装后,要重启zend才能生效 版式设计的一个基本点就是: ...
- 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用
32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX 可以这样想,16位通 ...
- 通过printf从目标板到调试器的输出
最近在SEGGER的博客上看到Johannes Lask写的一篇关于在调试时使用printf函数从目标MCU输出信息到调试器的文章,自我感觉很有启发,特此翻译此文并推荐给各位同仁.当然限于个人水平,有 ...
- ABP框架 - 介绍 VS2017调试器无法附加到IIS进程(w3wp.exe) c# 动态实例化一个泛型类
ABP框架 - 介绍 在14,15年间带领几个不同的团队,交付了几个项目,在这个过程中,虽然几个项目的业务不一样,但是很多应用程序架构基础性的功能却是大同小异,例如认证.授权.请求验证.异常处理. ...
- 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.1)- 玩转板载OpenSDA,Freelink调试器
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列EVK上板载调试器的用法. 本文是i.MXRT硬件那些事系列第二篇,第一篇痞子衡给大家整体介绍了i.M ...
随机推荐
- DeepFaceLab参数详解之FPS与Image format
DeepFaceLab参数详解之FPS与Image format , 本文讲解两个非常简单的参数,也是大家玩这个软件最先接触到的.参数虽然非常的简单,但是非常有用,适当调整可以为你节省大量硬盘空间,大 ...
- 由MySQL登录不了引发的一些问题
经手的项目按照老板的意思,想搞一个类似于个人学习版的版本给客户试用.计划通过网络将安装包发布出去,让客户自行下载安装使用,碰到个问题:数据库的安装.因为后台使用了MS SQLServer 2008/2 ...
- String 类源码分析
String 源码分析 String 类代表字符序列,Java 中所有的字符串字面量都作为此类的实例. String 对象是不可变的,它们的值在创建之后就不能改变,因此 String 是线程安全的. ...
- 代码实现:输入3个数a,b,c,按大小顺序输出。
import java.util.Arrays; import java.util.Scanner; //输入3个数a,b,c,按大小顺序输出. public class Test34 { publi ...
- Windows环境下Mysql 5.7读写分离之使用mysql-proxy练习篇
本文使用mysql-proxy软件,结合mysql读写分离,实现实战练习. 前期准备: 三台机器: 代理机,IP:192.168.3.33 mysql Master,IP:192.168.3.32 m ...
- CentOS 7.x关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory问题解决
一直用CentOS 6.x,今天用CentOS7.3版本时,防火墙配置后执行service iptables start出现”Failed to restart iptables.service: U ...
- ELK+Kafka日志收集环境搭建
1.搭建Elasticsearch环境并测试: (1)删除es的容器 (2)删除es的镜像 (3)宿主机调内存: 执行命令:sudo sysctl -w vm.max_map_count=655360 ...
- 24个MySQL面试题
一.为什么用自增列作为主键? 1.如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引. 如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作 ...
- Alias sample(别名采样)
应用场景:加权采样,即按照随机事件出现的概率抽样 具体算法: 举例如上,随机事件出现的概率依次是1/2,1/3,1/12,1/12;记随机事件的个数为N,则所有事件概率乘以N后概率为2,4/3,1/3 ...
- DHCP迁移
情况1:windows 2003迁移到windows 2003或者windows 2008,按照需要以下几个步骤:1.在源DHCP服务器导出DHCP数据文件,执行以下命令netsh dhcp serv ...