当前位置:首页 > 技术学院 > 技术前线
[导读]在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。

嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。

很多年前,一位开发人员为了在对嵌入式有更深层次的理解,询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢?

面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员问的最多的大都围绕“我怎么才能使程序跑得更快”、“什么编译器最好”等肤浅的问题。

所以,面对这个不同寻常却异乎成熟的问题,我感到欣喜并认真回复了他:你的问题很有深度很成熟,因为只有不断地去深入理解才有可能不断地提高水平。为了鼓励这位执着的程序员,把10条关于嵌入式软件开发测试的秘诀告诉了他。下面我们一起来看看。

这十条秘诀在业界广为流传,使很多人受益。本文围绕这十条秘诀展开论述。

在软件开发中,没有什么比获得一个几乎没有文档并且需要维护它的代码库更具挑战性的了。文档不仅告诉工程师特定函数或变量的作用,而且还演示和传达了软件以特定方式实现的原因。在构建软件时会做出数百万个决策,对于嵌入式开发人员来说,尽可能多地保留该决策制定过程可能是至关重要的。

记录代码的部分问题归结为交付压力、不正确的设计以及记录事物如何工作的事实并不像开发它那样有趣或令人兴奋!许多工程师讨厌编写代码,但它是嵌入式工程师所做工作的重要组成部分,我们不能跳过它或三心二意地创建它。但是,在软件开发阶段可以牢记一些技巧,以确保未来的开发人员保持他们的发际线。

技巧 1 – 随手记录而不是事后记录

交付产品的压力通常会导致狂野风格的编码,其中代码到处乱扔,只是为了让某些东西正常工作,以便可以将其推出门外,在疯狂的编码过程中,很少考虑写下代码实际在做什么。产品交付后,设计团队会在“文档”阶段回顾代码。这样做的问题是,在编写代码之后可能需要数周甚至数月!对于一些工程师来说,记住他们昨天早餐吃了什么可能是一个挑战,更不用说两周前的一段代码做了什么了。结果是不准确的文档,后来导致误解和错误。

诀窍当然是在做出决定时随时记录。带有外部文档的正式流程肯定会减慢开发人员的速度,但在代码库中添加注释确实不需要更多时间。开发人员可以做的第一件事是写几行注释说明代码将要做什么。如果对实现进行更改,嵌入式开发人员可以立即更新评论。无论如何,在编写代码时开发注释只能节省时间并提高清晰度,从而减少错误并加快交付速度。

技巧 2 – 自动生成文档

尽管非常详细地记录了代码,但始终需要生成任何人无需查看代码即可看到的外部文档。这通常会导致双重文档工作。值得庆幸的是,有一些工具可以读取代码注释,然后生成代码的接口和其他文档详细信息!让工程师不必重复做同样的工作!比如Doxygen。在开发人员编写代码时,他们会以特定方式格式化注释,并使用他们希望在外部文档中提供的详细信息。然后,他们可以运行 doxygen 并生成准确反映软件中评论的 html、rtf 或 pdf 文档。这样做的好处是,如果你使你的评论保持最新,那么外部文档也将如此!

技巧 3 – 写不明显的评论

当开发人员记录他们的代码时,这很棒,但当文档只不过是变量或函数名称的重复时,则非常烦人。评论应该是描述性的,并提供超出显而易见的额外细节!提供尽可能多的信息,并且不要忘记提及相关和相关的变量或函数。开发人员应该能够通过阅读评论来了解软件的行为方式。

技巧 4 – 提供示例用法以提高清晰度

当函数或变量注释包含如何使用它们的示例时,它会非常有用。说它应该如何使用是一回事,但更应该清楚地展示它是如何使用的。除了减少对象被错误使用的机会外,这还可以提供更清晰的画面。

技巧 5 – 创建文档标准

就像编写代码一样,应该有一个与代码注释和文档开发相关的标准,由于文档标准中的项目几乎没有那么多,因此强烈建议将其汇总到编码标准中,这是为了确保团队中的每个人都以相同的方式评论和记录,以确保易于开发,开发人员应该专注于手头的问题,而不是试图浏览评论。

技巧 6 – 使用文档模板

确保注释遵循标准的最简单方法是为标题、源和支持文档创建模板。创建新模块时,它是从模板创建的,然后添加相关信息,这将有助于确保文件信息块、代码段、函数和变量都以相同的格式注释,这种方法最好的部分是它还节省了大量时间,并且可以帮助减少将一个模块复制为另一个模块的假冒模板时的复制和粘贴错误。

技巧 7 – 从图表中拉/推

在项目的软件实施阶段开始之前,应该有一个软件设计阶段。这个设计阶段无疑产生了许多漂亮的图表,例如在实际实现过程中使用的流程图和状态机。虽然这些文档充当了软件的路线图,但在开发和测试过程中总是存在偏差!不幸的是,这些变化很少会回到图表中,结果是设计文档和软件不匹配!在实施和测试阶段,嵌入式开发人员可以将这些图表放在手边,以便如果出现偏差,可以在现场更新图表,让它们稍后更新永远不是正确的答案。毕竟,我们总是有最好的打算回去更新或修复某些东西,但从来没有时间去做。

技巧 8 – 一致地使用注释括号

听起来很奇怪,许多开发人员已经为何时、何地以及应该使用何种类型的注释括号而进行了战斗!这一切都归结为一致性。如果一个团队决定只使用 /* ... */ 样式的评论,那么就只使用那个样式。如果 // 样式已确定,则使用该样式。无论偏好如何,请确保每次都以相同的方式完成,这将有助于让生活更轻松一点。

技巧 9 – 保持可读性(即格式良好)

保持代码结构化和易于阅读非常重要,以确保误解和错误不会进入代码。评论也不例外。零星结构的评论使眼睛很难捕捉到评论,更重要的是很难捕捉到不合适的东西。注释的格式应该是这样的,如果代码被打印出来,注释不会跨多个页面运行。如果你使用块指示符,则在文件头或函数注释等大块注释中,不要包含任何尾随字符,例如 # 或 *,这只会使更新文档更加困难。

技巧 10 – 嵌入图像和图表

通过使用自动化工具,嵌入式开发人员可以在构建的文档中包含编码标准、缩写、项目详细信息、要求和大量其他项目,甚至可以包括流程图等设计图!利用这种类型的功能,代码库不仅可以包含已执行的代码和逻辑,还可以在一个地方包含你可能想了解的有关项目的任何内容!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭