电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>嵌入式系统的除错策略分析

嵌入式系统的除错策略分析

2017-10-20 | rar | 0.2 MB | 次下载 | 1积分

资料介绍

  嵌入式系统除错的工作量,可望占了嵌入式软体专案工作量的一半以上。了解硬体除错功能以及它们所能解决的问题,是选择正确的晶片、建立除错系统以及提高生产效率的关键。
  很多人都相信“臭虫(bug)”此一用词起源于海军少将 Grace Murray Hopper。但事实上,没人知道这种用法的真正来源,它可能可以回溯到 Thomas A Edison,或甚至更早。美国海军后备役军官 Hopper 在 1945 年 9 月 9 日于哈佛大学对 Mark II Aiken 继电计算器( Relay Calculator)进行测试时,于短路的 Panel F #70 号继电器处发现了一双臭虫。她把这只臭虫拿掉后(就是对电脑进行除臭虫(debugging)),就解决了这台机器不定时关机的故障(参考文献 1)。虽然这个早期的例子指的是从系统硬体中去除臭虫,但今天“debugging”这个词是指发现一个程式的问题,并去掉缺陷代码(defective code)的过程。这些问题包括任何与原始意向的差异,而去掉缺陷代码的做法则远优于增加纠正代码(correction code)。理想情况下,在任何时间都可以获得所有的特性(如系统的匯流排与暂存器值),供监控与修改。但随着 IC 转向 SoC,可存取性(accessibility)就变得更加困难了。
  对硬体除错,是要尽可能地可以存取到嵌入式系统内部资源,这可以透过观察系统的特性,如 CPU 状态和 PC 值,或修改系统的参数。在嵌入式系统设计的早期可以用简单技术进行除错,如记录(logging)与监控,或者对多核心 SoC而言,可以采用最新开发的方法,如跟踪、缓衡记忆体除错(cache debugging)和交叉触发(cross-triggering)等。本文的重点不是在如何编写代码或为代码除错,而是描述现在可用的嵌入式硬体硅智财权(intellectual property ,IP),以及该 IP 能解决哪方面的除错问题。
  记录与监控
  最古老也是最常用的除错方法就是在代码中增加一些列印叙述(print statement),它可以显示软体某个部分的执行资讯,并提供暂存器和变数的实际值。这可能是一年级学生练习“hello world”的一种延续,该程式会在荧幕上显示这两个词,用于表示程式能够运行,以及执行到了某个点。列印叙述(或 printf 语句)只是记录的一种变型,它是用处理器将重要资讯写入一个“管道(pipe)”,作为外部跟踪的过程。所使用的管道将视系统而订,在 printf 情况下,管道是标准的输出(荧幕),但它也可以是 UARTUSB,甚至是通用 I/O。
  当你需要用一种对程式设计工程师有意义的方式,组织各个部分资讯时(例如提供感测器资讯或状态机的转换),采用记录的方法是很有价值的。可以用记录工具来分析记录的资讯,并产生一个后处理资料库。必须小心使用记录功能才能获得高效率。例如,记录资讯应使用关键字开头,如“警告”、“错误”或“除错”等,并应能识别出资讯的建立者。应将记录功能划分为一小组档案,以便于维护,并提供时间戳资讯。不幸的是,记录是一种侵入性的方法,它会修改软体的即时状态,因而不同于最终应用。
  除错监控器是另一种常见的除错工具,它与运行在 CPU 记忆体中的目标代码一起工作(参考文献 2 和参考文献 3)。除错器运行在一台主机上,它透过一个专用的埠发送指令和接收响应,从而达到与监控器通信的目的。可以将 Linux 上的 gdbserver 程式当作一个除错监控器,不过它比早期的 ROM 监控器更复杂
  (图 1)。
  嵌入式系统的除错策略分析
  当使用者希望在某条指令处设置一个中断点时,gdbserver 会保存该指令,而用一个系统呼叫(system call)来替代它。Gdbserver 然后用 Linux 的 ptrace 程式获得所有进行系统呼叫的应用程式资讯。接着,当发生系统呼叫而啟动中断点时,gdbserver 可以取得对被除错应用的控制。除错器运行在一台主控机上,透过串列埠或乙太网路连接到目标物件(参考文献 4)。监控器的方法既便宜又实用,但也有一些缺点,例如需要在进行任何除错前载入代码,并可能与应用软体相互影响。如果代码位于快闪记忆体中就不能使用监控器软体,因为要插入软体中断点就需要修补应用软体。
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1感应笔电路图
  2. 0.06 MB   |  7次下载  |  免费
  3. 2美的电磁炉维修手册大全
  4. 1.56 MB   |  5次下载  |  5 积分
  5. 3Cortex-M3/M4F指令集技术用户手册
  6. 2.28MB   |  3次下载  |  免费
  7. 4SMD LED选型手册 贴片灯珠
  8. 5.47 MB   |  3次下载  |  免费
  9. 5基于PLC的拉丝机张力控制系统研究
  10. 0.14 MB   |  2次下载  |  5 积分
  11. 6LZC3106G高性能谐振控制器中文手册
  12. 1.29 MB   |  1次下载  |  1 积分
  13. 7JL2233B集成电平转换功能的LDO中文手册
  14. 0.50 MB   |  1次下载  |  免费
  15. 8加密芯片的一种破解方法和对应加密方案改进设计
  16. 0.29 MB   |  1次下载  |  免费

本月

  1. 1使用单片机实现七人表决器的程序和仿真资料免费下载
  2. 2.96 MB   |  44次下载  |  免费
  3. 2UC3842/3/4/5电源管理芯片中文手册
  4. 1.75 MB   |  19次下载  |  免费
  5. 3华瑞昇CR216芯片数字万用表规格书附原理图及校正流程方法
  6. 0.74 MB   |  14次下载  |  3 积分
  7. 4DMT0660数字万用表产品说明书
  8. 0.70 MB   |  13次下载  |  免费
  9. 53314A函数发生器维修手册
  10. 16.30 MB   |  13次下载  |  免费
  11. 6TPS54202H降压转换器评估模块用户指南
  12. 1.02MB   |  8次下载  |  免费
  13. 7STM32F101x8/STM32F101xB手册
  14. 1.69 MB   |  8次下载  |  1 积分
  15. 8感应笔电路图
  16. 0.06 MB   |  7次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935119次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420062次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183335次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73807次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65987次下载  |  10 积分