嵌入式开发:调试嵌入式软件的技巧

天天见闻 天天见闻 2022-12-23 软件 阅读: 143
摘要: 当一个bug爬进嵌入式软件时,开发人员的第一反应是跳入代码并开始修改。嵌入式软件开发不是蛮荒的西部。宏是一个很好的工具,开发人员可以用它来验证代码中的假设。关于软件如何运行的信息是嵌入式软件工程师调试时最有用的工具。使用日志是开发人员深入了解软件的一个很好的方式。不管你花很多时间调试还是很少时间,事实是作为嵌入式开发人员这是不可能避免的。

调试是每个开发人员都想避免的任务,但不幸的是,它是软件开发中不可避免的罪恶。到了卷起袖子开始调试的时候,每个开发人员都应该记住7个技巧。

技巧 1——采取可控的步骤

当一个bug爬进嵌入式软件时,开发人员的第一反应是跳入代码并开始修改。它们通常是随意的嵌入式软件,几乎是随机的,而不是以一种受控制和受指导的方式做出改变。嵌入式软件开发不是蛮荒的西部。即使是最简单的bug的解决也应该包括检查可用的数据,评估它,假设最可能的原因,更新然后测试。如果改变不能解决问题,新的数据应该出现,然后帮助过程重复。

技巧2——增加断言密度

宏是一个很好的工具,开发人员可以用它来验证代码中的假设。令人惊讶的是,许多开发人员没有花时间将它们放入他们的代码中。代码库的断言密度通常是漫长而痛苦的调试会话之间的差异,或者是失败假设发生时的陷阱。可以帮助开发人员立即发现错误或假设失败。

技巧3——使用数据记录器

关于软件如何运行的信息是嵌入式软件工程师调试时最有用的工具。拥有诸如任务何时开始和完成、它们是否被抢占等性能信息以及其他细节可能是至关重要的。使用日志是开发人员深入了解软件的一个很好的方式。日志可以像RAM缓冲区、写入外部闪存的文件一样简单,也可以像传输到远程位置的编码数据一样复杂。在任何情况下,日志文件都是收集调试和系统分析信息的好方法。

技巧4——使用高级断点

开发人员熟悉使用标准断点,只需双击一行代码的左边就可以打开标准断点。许多IDE具有更高级的断点功能,但很少被利用。高级断点的一个例子是设置一条线,当变量达到某个值时断开。使用高级断点可以大大减少调试时间,并使难以捕捉的错误更容易发现。

技巧5——再次查看数据手册

调试外设可能特别困难。现代微控制器可以有10个寄存器来设置一个外设。外设设置并不总是显而易见或有据可查的。更糟糕的是,正确设置的细节通常不在单个数据手册中。只看一个是不够的。当硬件运行不正常时,请反复查看数据表。

技巧6——监控调用堆栈

开发人员有时会质疑他们最初是如何找到特定的代码行的。IDE包含一个调用堆栈窗口,可以准确地显示这些信息。调用堆栈显示了调用了哪些函数以及调用的顺序嵌入式软件,揭示了对跟踪bug非常有用的信息。

结论

不管你花很多时间调试还是很少时间,事实是作为嵌入式开发人员这是不可能避免的。使用本文中的技巧有助于使调试变得更容易接受。

其他相关
二十四桥景尽览 十八公里慢慢行

二十四桥景尽览 十八公里慢慢行

作者: 天天见闻 时间:2023-06-24 阅读: 83
近日,龙马河18公里滨水慢行系统全线贯通,市民通过燕沙桥下连接廊道穿越三环只需1分30秒,龙马河滨水慢行系统西起香河园路,步道沿河流两侧形成闭环,梁马河滨水慢行系统沿线共有5处缺点,实现了龙马河四环内滨水慢行绿道全线的贯通,最后打通的三环路燕沙桥下段点的施工难度最高。该工程的建设地点位于龙马河东三环主路及辅路桥下,燕沙桥下段点工程中,部分位于龙马河水位线以下。...
Wyn Enterprise——嵌入式商业智能软件,让数据分析无处不在

Wyn Enterprise——嵌入式商业智能软件,让数据分析无处不在

作者: 天天见闻 时间:2022-12-24 阅读: 264
商业智能软件是一款嵌入式商业智能软件,主要应用场景包括:自助式BI:提供自助式BI分析功能,最终用户可以非常灵活的与数据交互,探索数据背后的原因并发掘更多价值,为决策制定提供有效的数据支撑。等交互式分析功能,用户仅需通过极少的操作,便能找到最有价值的数据。支持智能联动、钻取、切片等交互式分析。...
三年黑盒测试工程师,带你了解嵌入式测试,金三银四升职加薪秘诀

三年黑盒测试工程师,带你了解嵌入式测试,金三银四升职加薪秘诀

作者: 天天见闻 时间:2022-12-24 阅读: 125
此文单从黑盒测试的角度来讲。有人可能会问嵌入式软件测试难吗?我感觉在黑盒测试中,嵌入式软件测试是要比商用软件测试难度高的,我只站在嵌入式软件的黑盒测试角度来发言。最后一个导致测试难度大的原因就是嵌入式软件测试相对来说是比较独立于软件测试的,相关的资料也是比较少的,并不像商用软件测试一样,只要一搜索,就能找到测试方法和一些测试文章。...
开发嵌入式软件构建管道

开发嵌入式软件构建管道

作者: 天天见闻 时间:2022-12-23 阅读: 139
即使在今天,通用软件行业已经采用构建管道、持续集成和测试工具,而通用嵌入式行业似乎没有意识到这些流程的存在,开发更复杂的构建管道会对嵌入式软件开发生命周期产生巨大影响。让我们看看嵌入式开发人员如何创建自己的构建管道。嵌入式开发人员可以利用的更现代的构建管道由四个阶段组成,这些阶段可以完全自动化和手动启动。增强嵌入式软件构建管道嵌入式软件构建管道的现代化可以为嵌入式开发团队和整个业务带来很多好处。...
嵌入式软件开发为什么选择C语言?

嵌入式软件开发为什么选择C语言?

作者: 天天见闻 时间:2022-12-23 阅读: 160
回到主题,为什么嵌入式软件开发选择C语言?能够直接访问硬件的语言有汇编和C语言,汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。开发工具在嵌入式软件开发中有重要的地位,大部分嵌入式软件开发工具都是针对C/C++编程语言。你会发现很多嵌入式C相关的工具链,而很少有C#、JAVA、PHP这些用于嵌入式的工具链。...
嵌入式软件税务上是如何认定的?

嵌入式软件税务上是如何认定的?

作者: 天天见闻 时间:2022-07-31 阅读: 270
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件。财政部于2005年年底发布《国家税务总局关于增值税若干政策的通知》,要求全面取消计算机等制造型产品嵌入式软件享受“18号文”所给予软件产品的增值税优惠政策。2006年8月7日,信产部经济运行司在新疆乌鲁木齐召开的2006年软件产业统计工作研讨会上,小范围地宣布将与财政、税务等有关部门积极协商,争取恢复嵌入式软件的增值税退税政策。...
我来说两句

年度爆文