资料介绍
调试嵌入式软件是我最不喜欢的行为,不幸地是,它却是必要的。值得庆幸地是,技术和工具链创新的进步衍生出大量的新技术,从而大大地加快了调试过程。下面让我们来看看其中一些方法,从传统的断点调试出发到更先进的仪器跟踪技术。
技巧1# - 传统的断点调试
每个开发人员都熟悉传统的调试技术,设置断点、执行代码,然后单步调试代码进行监视,同时监视寄存器和变量值。断点调试是我看到的使用最多的技术。然而,结果却不甚乐观,因为断点调试的效率较低,通常会产生次优的结果。
既然如此,为什么大家还如此频繁地使用断点调试呢?主要原因似乎是断点调试便于使用,易于理解,并且开发人员都乐观地认为,对于工作而言,断点是正确的工具。这种乐观需要校验。断点有可能破坏系统的实时性能,同时会将开发者吸进一个黑洞,使其无休止地去单步执行代码,盲目地寻找问题的一种解决方法。
技巧2#- IDE值图
如今,几乎所有的现代调试器和IDE都允许开发者监视存储在内存中的变量值。开发人员可以选择内存位置以及值刷新率,然后启动调试会话。一些IDE自身就有能力监视内置到IDE的值,而另外一些IDE则需要依靠外部软件。
值监测非常有用,如果将监测到的数据与图形化表示关联到一起,其带来的价值则更大。对实时的数据绘制值图对于发现意想不到的变化和验证特定波形的生成极其有用。例如,一个三相无刷直流电机(BLDC motor)。开发人员如果想要监测每个电机支架的电流和电压,则需要驱动电机所形成的非常具体的波形。绘制每个电机支架电流和电压能够让开发人员实时看到发生的事情。
技巧3#-从printf到SWO
在高端的ARM Cortex-M系列配件中,如M3/M4,它为开发人员提供了额外的调试能力,即串行线查看器(Serial Wire Viewer,SWV)。SWV还包括除串行线输出(SWO)以外的标准串行线调试。SWO可以用来做很酷的东西,如程序检索计数器,事件计数器,及数据追踪等。开发者还可以对它们进行自定义,设置自己想要在SWO中传送的信息。
许多开发者为了从他们的嵌入式系统中获取调试信息通常会设置printf。实际上则并不是在单片机中使用串口引脚,而是开发人员可以使用SWO通过调试器重新路由printf信息。以这种方式使用调试器可以保存专用串行接口的需要,同时消除了开发UART和USB设备的时间,效率更高。现在通过SWO和调试硬件将最初被应用程序所使用的开销卸去,缩减了那些有可能被应用程序代码使用的宝贵的时钟周期。
技巧4#-RTOS跟踪
试图透过表像看清一个实时操作系统中(RTOS)的本质可以说是相当具有挑战性。开发者并不想扰乱实时系统的性能,但仍然需要一些方法来了解系统的行为。这也是Blinky LED经常使用的把戏,但最近开发者的工具箱中增加了更多惊人的跟踪工具。例如免费的商用RTOS工具,如TraceX、SystemView和tracealyzer等等。
当RTOS闲置,或是有任务进入和退出时,跟踪工具允许开发者进行追踪分析。开发人员可以监控系统的异常,响应时间,执行时间,以及正确开发一个嵌入式系统所需的许多其他关键细节。RTOS跟踪工具最酷的功能是它们能够展示系统内部发生了什么。实时地或是在日志文件中进行审查和时序图监视,能够让开发者确定一个置信水平,用以估量系统是否能够按预期正常运行,或者帮助他们发现一些小问题,否则将花费大量的时间去寻找。
技巧5 #- 使用指令追踪技术(ETM / ETB / ETM)
有时开发人员面临的调试问题,只是在处理器中所能想象到的最低层面的问题。跟踪技术的存在,可以监视处理器执行的单个指令。在测试和验证软件时这种低水平跟踪对于监测分支覆盖非常有用。用于指令跟踪的调试工具不同于那些开发人员使用的串行线查看,而且成本略高。
结束语
调试工具和技术在过去几年里迅速发展,特别是高端微控制器。一般来讲,工程师都是视觉型生物,工具供应商正在寻找方法以刺激视觉的方式来揭示一个实时系统究竟发生什么。配置调试工具可能需要做一些前期工作,但是在设计上多花一点时间可以换来更少的调试时间,确实是一笔非常值得的时间投资。开发人员至少应该熟悉不同的调试工具和可用的功能,以便在出现问题,系统需要调试时,他们可以选择合适的工具完成任务。你有用过其它可以帮助工程师更快、更有效率地调试他们系统的技术么?
原文链接:Debugging the Cortex-M MCU
作者:Jacob Beningo
译者:刘帝伟 审校:刘翔宇
责编:周建丁()
文章来源:(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于简化Cortex-M核微控制器嵌入式软件的开发步骤
- no cortex-m sw device found 问题解决【转】
- 标题 Cortex-M Device found in JTAG chain.的解决
- STM32F429单片机无法下载的解决--no cortex-m sw device found 问题解决
- Cortex-M可以跑Linux操作系统吗?
- 一点理解之 CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库
- mcookie与单片机的关系_使用ARM Cortex-M MCU拓展单片机教学
- 关于国产Cortex-M内核MCU替换国外厂家时需要注意的几点事项
- ARM Cortex-M3 MCU 的 I2C DMA操作和中断资料下载
- Cortex-M3与Cortex-M4对比资料下载
- Cortex-M3和Cortex-M4 Fault异常应用之基础知识资料下载
- Cortex-M3(M0)汇编-启动代码分析资料下载
- Cortex-M3 NVIC与中断控制资料下载
- Kinetis-K60 Cortex-M系列核心板和扩展板的用户手册资料说明 11次下载
- 【ARM白皮书】ARM Cortex-M处理器入门 39次下载
- 【GD32 MCU 入门教程】二、GD32 MCU 烧录说明 (2)SWD/JTAG在线下载 231次阅读
- ARM Cortex-M异常-HardFault INVPC置1解决方法 1275次阅读
- DWT跟踪组件调试 841次阅读
- Cortex-M核心寄存器和位域 1091次阅读
- 分析ARM Cortex-M内核复位启动过程 2047次阅读
- 详解CoreSight技术中的调试和跟踪功能 4921次阅读
- 米尔科技Cortex-M Prototyping System +介绍 1661次阅读
- MCUXpresso软件和工具可轻松完成Arm®Cortex®-M内核MCU开发 5092次阅读
- Cortex-M3处理器中断和FreeRTOS中断优先级配置 6920次阅读
- 以NXP的Cortex-M系列为基础的linux系统与内存管理单元的关系详解 1168次阅读
- 一文解析Cortex-M处理器架构特性 8067次阅读
- Cortex-M系列处理器介绍及其特性参数 1.8w次阅读
- Cortex-M系列处理器指令集_指令集特性比较总结 7689次阅读
- 基于Cortex-M处理器上实现高精度关键词语音识别 1911次阅读
- 为什么说Cortex-M是低功耗应用的首选 3409次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多