调试嵌入式软件的7个小技巧

描述

调试是每个开发人员都想避免的一项任务,但不幸的是,这是软件开发的必然之举。事实上,正如EDN的嵌入式研究所揭示的那样,嵌入式开发项目平均花费超过其总体努力的20%用于单独调试。当你的袖子卷起来并开始调试时,这里有一些提示可以帮助你。

提示1 -采取可控制的步骤

当一个bug进入嵌入式软件时,开发人员的第一直觉往往是跳入代码并启动做出改变。但是,开发人员的方法通常是偶然的,几乎是随机的,而不是以受控制的方式进行更改。嵌入式软件开发不是狂野西部。解决甚至最简单的错误应该包括检查可用数据,评估它,假设最可能的原因,更新代码,然后测试更新。如果变更没有解决问题,新数据至少应该被曝光,这有助于重复该过程。

提示2 -增加断言密度

ASSERT 宏是一个很棒的工具,可以在运行时返回错误消息断言的条件是错误的。开发人员可以使用此宏来验证其代码中的假设是否成立。令人惊讶的是,许多开发人员没有花时间将断言放入他们的代码中。代码库的 ASSERT 密度通常可能是长期和痛苦的调试会话之间的差异,也可能是失败假设发生时的陷阱。 ASSERT 可以帮助开发人员立即发现错误或假设失败。您的代码库的 ASSERT 密度是多少?

技巧3 -使用数据记录器

有关软件运行方式的信息是嵌入式软件工程师在调试时可以拥有的最佳工具。拥有诸如任务开始和完成时的性能信息,是否被抢占以及类似的细节都是至关重要的。记录所采取的操作是开发人员深入了解软件行为的好方法。日志可以像RAM缓冲区一样简单,文件写入外部闪存,也可以像传输到远程位置的编码数据一样复杂。

技巧4 -使用高级断点

开发人员熟悉使用IDE中可以打开的标准断点,只需双击一个断点即可代码的左边距。但是,许多IDE还具有更高级的断点功能,这是开发人员很少使用的功能。高级断点的一个示例是在变量达到某个值时设置要断开的行。使用高级断点可以大大减少调试时间,并且难以发现很容易发现错误。

提示5 -再次查看数据表

调试外围设备可能特别困难。现代微控制器可以在设置单个外设时涉及许多寄存器,这些外设设置并不总是很明显或有很好的记录。更糟糕的是,有关如何正确设置外设的详细信息通常并非都在一个数据表中。相反,信息的形式是“面包屑”,散布在家庭和外围数据表中,有时甚至在应用笔记中。仅仅查看一个文档是不够的。当硬件行为不端时,您需要反复查看数据表。

提示6 -监控调用堆栈

开发人员有时会质疑他们如何才能获得特定的代码行。 IDE包含一个可以准确显示该信息的调用堆栈窗口。调用堆栈显示调用了哪些函数以及以什么顺序调用,显示对于跟踪错误非常有用的信息。

提示7 -休息一下

调试可能是一项繁重的工作。深入研究软件和硬件的运作可以为开发人员提供隧道视野。开发人员有时需要通过继续执行其他任务或休息来退后一步。通过散步或做一些放松的事情离开系统将允许潜意识在有意识的思维休息时处理解决方案,以便当再次开始查看代码时,通常会有其他见解。

结论

无论是花费大量时间进行调试还是花费很少,事实上嵌入式软件开发人员都无法避免。使用本文中的提示有助于使调试更成功,因此更加可口。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分