QNX嵌入式系统的内存错误分析.pdfVIP

  • 50
  • 0
  • 约1.97万字
  • 约 11页
  • 2015-08-11 发布于重庆
  • 举报
QNX嵌入式系统的内存错误分析.pdf

嵌入式系统的内存错误:分析、预防和降低风险 Elena Laskavaia 与 Paul Leroux QNX 软件系统公司 elaskavaia@, paull@ 嵌入式系统的内存错误 摘要 如果消除内存错误和优化内存分配在所有软件系统中 内存错误对嵌入式系统尤为有害。这些系统不仅内存 很重要,那么在嵌入式系统中就更加重要了。 资源有限,而且运行的环境通常不会给第二次机会: 首先,内存是嵌入式系统中宝贵的资源,必须对其进 由于运行几周或几个月之后出现的内存错误导致崩溃 行高效和可靠地管理。内存分配不理想可能会浪费宝 的系统可能无法恢复,并且会造成代价高昂甚至灾难 贵的 RAM 并影响其性能。内存分配效率低可能会迫使 性的后果。 项目取消有用的软件功能,添加更多的 RAM ,或者 要解决内存错误带来的难题,开发人员可以利用工具 升级到更快的处理器,而所有这些方法会降低项目价 进行内存分析和调试,并采用能够将内存错误对系统 值或增加项目成本。相反,内存分配效率高有助于最 的影响降至最少的操作系统架构。本文介绍了用于解 大程度发挥软件功能,同时最大程度降低硬件成本。 决内存问题(例如堆损坏和内存泄漏)的内存分析技 其次,部署嵌入式系统的环境中往往可能很难或无法 术,以及优化嵌入式系统中内存使用的内存剖析。 实施恢复策略。内存错误具有在系统可靠地运行很长 简介 时间之后才出现的倾向,因此内存错误在这些环境中 特别隐蔽,只需想一想 2007 年 1 月火星全球轨道卫星 是否有客户向您抱怨说, “系统几天来一直运行得都 故障(美国国家航空和航天局 (NASA) 喷气推进实验室 很好,但突然崩溃了”?如果您是一名开发人员,那 的火星探测计划副经理 John McNamee 将其归咎于内 就不可能没有听说过如此的抱怨,就如同有问题的程 存错误: 2 “两个内存地址被覆盖”) 和冥王星及柯伊 序是您自己的程序,并且您程序的某处存在内存错 伯带的 “新地平线”任务(当遇到 “无法纠正的内存错 误。无论过去还是现在,问题都是:错误出在哪里? 误”时 “令人难以置信的好运”挽救了任务),内存错 事实上,大多数开发人员发现内存错误和内存泄漏很 误的隐蔽性就可见一斑3 。 难检测和隔离,因此难以纠正。他们面临的问题是, 解决难题 等到内存问题出现时(通常导致程序崩溃),损坏通 要解决嵌入式系统内存错误带来的难题,开发人员可 常已经变得非常普遍,导致很难(尽管可能)跟踪到 1 以利用一个工具套件进行内存分析和调试,并采用能 问题的根源 。在多线程环境中很难寻找出导致内存 够将内存错误对系统的影响降至最低的实时操作系统 错误的根源,因为其中各线程共

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档