你的位置:大电流电感 > 先锋技术

查找嵌入式C语言程序/软件中的缺陷的多种技术

2020-09-03 13:11:41      点击:
上一篇:用于自动或半自动机器人的RIO嵌入式控制平台

基于模式的静态代码分析、运行时内存监测、单元测试以及数据流分析等软件验证技术是查找嵌入式C语言程序/软件缺陷行之有效的方法。上述技术中的每一种都能查找出某一类特定的错误。即便如此,如果用户仅采用上述技术中的一种或者几种来进行验证,这样的验证方法很有可能会漏过对程序中的一些缺陷的检查。解决此类问题的一种安全和有效的策略就是同时使用上述软件验证中的所有互补技术。这样就能建立起一个牢固的框架来帮助用户检查出可能会避开某种特定技术的缺陷。与此同时,用户也自然地建立起一个能检测出关键并且难以查找的功能性错误的环境。

本文将详尽阐述基于模式的静态代码分析、运行时内存错误检测、单元测试以及数据流分析等自动化技术共同使用时是如何查找出嵌入式C语言程序/软件中的缺陷的。本文中将以Parasoft C++test为例来演示上述各项技术。C++teST是一个经广泛的最佳实践证明能提升软件开发团队开发效率以及软件质量的自动化集成解决方案。

当读者在阅读本文以及任何时候思考查找到的缺陷时,关注文中的截图是很重要的。自动化检测例如内存崩溃和死锁的缺陷,毫无疑问对任何开发团队都是一项必不可少的任务。尽管如此,最致命的缺陷却是功能性错误,这往往是难以自动发现的。在本文的结论部分我们将简要地讨论一下查找这些缺陷的技术。

情景简介

为了给出一个具体的示例,我们将就一个我们最近遇到的案例来介绍以及演示我们所推荐的缺陷查找策略:一个运行在ARM 板上的简单传感器应用程序。

假设我们已经创建了该应用系统,但是当我们将程序上载到系统目标板上并试图运行该程序时,我们没有在LCD屏上看到所预期的输出。