Questions tagged «debugging»

识别,量化和纠正系统操作中的错误的过程

4
JTAG与SWD调试
浏览完本文后,我想知道SWD调试比JTAG调试有什么好处? 我知道SWD使用较少的电线/引脚,占用较小的空间等。但是,如何在硬件编程器/调试器设备的性能,功能和成本方面发挥作用呢?像Eclipse这样的IDE仍然可以断点/暂停代码并逐步执行代码吗? 可以像我相信可以在JTAG中那样使用SWD接口对ARM芯片进行编程吗?
41 jtag  debugging  swd 

6
打ack电子管电视有什么帮助?
在老电影(或这段时间里播放的新电影)中,我经常看到人们sm视电子管电视或屏幕的顶部。它似乎以某种方式有助于稳定/增强图像。但为什么? 有什么原因会使电子电路从无法正常工作到突然的机械震动导致工作正常?在什么情况下会导致电子产品出现此类问题?看起来Atari ST遭受了类似的问题,可以通过执行所谓的“ Atari掉落”(如本节上的Wikipedia所述)来解决,尽管这被描述为由于连接松动引起的,是否存在其他可以通过类似方式解决的故障模式,为什么?

3
随机泄漏电流的神秘案例
免责声明:我已经知道此电路调试难题的解决方案了(不是很简单),我将在一段时间后将其发布,以便其他人可以为这个神秘的故事做出自己的贡献!我认为这可能对电路设计师具有一定的教育意义! 几年前(〜8,IIRC),我在当地的一家杂货店偶然发现了一个非常有趣的特价:一些非常好(所以我认为)的Osram DOT-IT LED照明设备,价格只有一半。 如您所见,它们是小型电器,由三个AAA电池供电,装有三个非常明亮的白色LED。整个事情是通过按下透明圆顶来启动的软开关打开的。第一次按下时,三个LED会亮起,而在随后的每次按下时,其中一个LED会熄灭。因此,您可以选择设备将产生的光量。除了透明的塑料弹片外,外壳还采用了非常坚固的阳极氧化铝,后盖是带有强力磁铁的塑料,可以将物品粘在冰箱,车身修理厂或任何您想要的合适金属表面上。 由于当时在意大利的LED照明非常昂贵,而且像这样的小物件价格昂贵或完全残破,所以我认为最好买一打(我最初只尝试了一个装置,验证它发出非常强的光并且质量很高)。我打算将它们用作房子每个房间和汽车中的应急灯。 一切都很好,直到大约六个月后发生短暂的停电。令我非常失望的是,其中12件中的10件电池没电了! 当然,我的第一个念头是“嘎吱嘎吱的泄漏性软开关”,然后我就去跑了我的微电流表!实际上,我发现有几个单元的泄漏电流过高(〜1 mA),而其他单元的泄漏电流却很老实〜20μA。我很困惑。 我更换了低漏电的所有电池,并决定再次尝试。 几个月后,令人惊讶的是,他们再次失败了!我再次测量了泄漏,得到了不同的结果。一些单元的泄漏电流高达〜1 mA,而其他单元则“正常”。而且,我重新测试了两个原本显示高泄漏的单元,...它们不再泄漏了!!! 我受够了,因为那时我没有更多时间浪费在这个问题上,所以我将它们全部报废,将它们放在垃圾箱中(毕竟,它们中装有三个漂亮又昂贵的白光LED,我打算抢救他们)而忘记了他们。 几周前,我再次找到了它们,在疯狂的重组中,我想拆除这些单元并抢救这些LED。因此我发现内部电路是一块很小的PCB,仅容纳一个瞬时开关,LED,驱动器芯片和一个盖子。PCB如下图所示(出于好奇,我尝试查找该驱动器芯片的数据表,但没有运气)。 我只是为了好玩而再次测试了PCB,但仍然得到了以前观察到的不稳定的泄漏行为,但是在此过程中,我终于找到了罪魁祸首。 猜猜是随机和不规则泄漏的原因是什么!



8
您如何攻击新板?
您可以从制造商那里获得PCB。这是一个新设计,您当然可以在所有主要部件上进行试验,但是您知道会出现问题。太多的事情都会引起问题,例如: 原理图中的错误 ERC / DRC未发现布局错误 焊接时零件错放 焊接时的短裤等 以上的任何组合 最近,我有两个相对复杂的电路板,为了定位错误,我基本上必须在组装后对整个电路板进行填充。我发现了错误,但是这些板子报废了。 我尝试着从最少的零件和不能手工焊接的零件开始(我使用的是粘贴,模版和烤面包机)。通常,这将是MCU,JTAG连接器和几个电容器。然后,我会逐步检查其他区域是否出现问题。 这种方法有效,但是速度很慢。我还必须在假定存在某些特定硬件的任何代码中注释掉/注释掉。 有人对如何采用新设计的PCB有任何技巧/建议吗? 编辑:我主要是在考虑使您的电路板瘫痪的问题,例如隐藏的电源轨短路或任何使MCU变砖的问题。


2
如何找到这个旧的Marantz放大器的问题?
在问了有关电阻器符号的第一个问题之后,我回到了这款老式的Marantz PM-68类AB放大器,我将使用可在维修手册中找到的ID来指代组件。 当一个朋友给我这个放大器时,它在某种程度上起作用了。声音还不错,但每隔几分钟就会从扬声器中发出随机很大的爆炸声。 它最终停止工作,我想修复它。我更换了所有主板电容器,因为其中一些旧电容器泄漏了。一些保险丝电阻(3295-3298)也被烧断了(可能是由于爆炸声出现时出现尖峰),所以我也更换了它们。 左声道现在运行良好,我通过在输入端注入正弦波进行检查,输出正弦看起来很漂亮!两个通道的电源线(+ 56V和-56V)均稳定。 问题是正确的渠道。在使用示波器和万用表进行了数小时的调试之后,我一无所知。正弦波的下半部分有严重的削波。正弦的底部甚至不存在!我检查了所有的电阻器,二极管,焊料(我发现一些焊料变干并弄坏了,所以我将它们固定了)。几分钟后,当我触摸正弦波底部时,其中一个晶体管不会像其他晶体管那样发热,它几乎不发热(7266)。当我将其拆焊并使用左通道中的一个时,会发生相同的问题,因此不是晶体管。 当我将两个示波器探头放在2268电容器的每一侧来检查信号时,断开扬声器时会产生非常好的正弦波。但是,一旦我插入扬声器,正弦波的下半部分就会被剪断。 在这种情况下,您会检查什么?你能想到我可能错过的事情吗? 这是音量为〜33%时左(黄色)和右(蓝色)通道之间的差异: 这是音量为10%时左(黄色)和右(蓝色)通道之间的差异: 这是当没有扬声器插入时我在2268两侧获得的信号(我的输入为283Hz): 这是将扬声器连接到右声道时在2268两侧得到的声音: 这是温暖的晶体管(7266)。我尝试将其与7265切换为无济于事: 这是正确通道的示意图: 这是在小负载(<10%体积电位计)下的测量值的特写视图: 我尝试交换晶体管7258和7260。我还用全新的电阻替换了电阻3274和二极管6256。 这是晶体管7264基极的信号:

8
为什么printf()对调试嵌入式系统不利?
我想尝试使用调试基于微控制器的项目是一件坏事printf()。 我知道您没有预定义的位置可以输出到该位置,并且它可能会消耗宝贵的引脚。同时,我已经看到人们使用UART TX引脚来通过自定义DEBUG_PRINT()宏输出到IDE终端。
16 c  debugging 

1
如何使用GDB,OpenOCD和arm-none-eabi-gcc将调试消息打印到带有STM32发现板的gdb控制台上?
我正在使用OpenOCD,arm-none-eabi-gcc和gdb编程STM32 Cortex M0发现板(32F0308DISCOVERY)。我想知道是否有任何直接的方法可以通过SWD记录调试消息。我已经阅读了有关半主机选项的信息,但这似乎需要引入newlib或其他大型库。(只有64k闪存可用。)是否有更轻巧的方式来通过SWD记录文本,还是使用UART是唯一实用的选择?

1
在线调试器和在线仿真器之间的功能区别是什么?
在线仿真器(缩写为ICE)以其出色的调试功能而自豪,并且还具有很高的价格标签。 在线调试器(缩写为ICD)可以完成ICE可以执行的大部分工作,但通常成本要低得多。 我知道,从那时起,ICE实际上会从插座上卸下有问题的芯片,并用仿真器电缆替换,但是使用现代QFN,BGA和易碎的TQFP封装,似乎大多数产品都称自己为“ ICE”调试器连接到调试头的方式与ICD几乎相同。 以下是一些名称中使用“ ICE”的产品示例: 爱特梅尔AVR JTAGICE Microchip MPLAB RealICE 还有一些来自多家供应商的JTAG'ICE'产品,请注意,由于它们不是真正的在线电路,因此我不对它们进行打折,但是如果它们不能用作真正的ICE,我会对其进行打折。 在哪种开发任务中需要ICE,什么时候应该满足ICD?假设我想单步执行代码,而不使用LED和printf()语句。 您使用ICE解决了一些问题的实例,但如果没有它就无法(实际上)解决?

8
如何调试Arduino草图?
我最近开始为Arduino编码。而这些代码中的错误正在杀死我。由于Arduino中没有硬件调试器,所以serial.print()是我唯一的选择。您用来调试Arduino代码的方法/做法是什么?

2
商业JTAG调试器和开源FT2232H OpenOCD调试器之间有什么区别?
我见过一些商业的JTAG调试器,例如: iC6000片上分析仪(支持Aurora协议) Lauterbach –微处理器开发工具 以及基于OpenOCD FT2232H的JTAG调试器: 苍蝇拍 NGX ARM USB JTAG 与仅使用小信用卡尺寸PCB的FT2232H JTAG调试器相比,为什么这些商用调试器会大放异彩?商业调试器内部有哪些其他硬件?这些调试可以在哪一部分调试中提供帮助?
10 jtag  debugging 

3
如何在Arduino C代码中发现内存溢出错误?
在将代码上传到Arduino之后,有几次我在串行监视器上有一些可疑的输出:例如,空白的永恒输出或突然截断字符串或​​混乱的字符串。 因为Arduino IDE中没有编译错误或警告,所以我认为Arduino已损坏,但是经过一些测试,我发现Arduino IDE编译器无法捕获所有类型的错误-尤其是在为数组结构循环分配变量时。这似乎在短时间内使Arduino崩溃。 如何发现Arduino IDE未显示的错误?

3
如何在Linux PC上使用gdb调试Arduino Uno?
如何在Linux PC上使用gdb调试(单步执行源代码)Arduino Uno?请注意,我不喜欢在wine或VirtualBox中使用AVR Studio。 问题1:物理连接 如何和什么连接到Uno板?我的猜测是,由于Uno板上装有ATmega328,因此应该可以使用一步式源代码?我还猜想我可以在ICSP头上使用AVR JTAGICE mkII或AVR Dragon? 问题2: GDB服务器 然后我注意到有一些项目,例如AVaRICE,似乎为gdb函数提供了jtag,但可能还有其他项目吗? 问题3:小精灵在哪里? 如果我启动并运行它,那么Arduino IDE在哪里将生成的输出像带有调试符号的elf文件一样隐藏(应该有一个)?还是我需要生成仅使用Ardino库的经典Makefile? 我试图找到有关使用什么/如何使用的信息,但是我只发现了那些告诉我可以做什么的线索。有人可以将我推向正确的方向吗?
10 arduino  avr  linux  debugging 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.