嵌入式开发的12个使用技巧
连接到互联网的嵌入式设备的数量正在以惊人的速度增长。一些嵌入式开发工程师设计联网设备已有十多年的历史,而另一些工程师则刚刚开始参与其中。对于有纪律的嵌入式开发人员来说,Doxygen 是一个了不起的工具,他们希望快速生成与他们的代码保持同步的软件手册。它扫描您的代码,解析出开发人员的注释,并将注释与软件对象和功能相关联。结果输出可以是链接的HTML、rtf或LaTex文件,然后作为应用程序的知识主体。
本文主要介绍五个构建连接设备的技巧和利用Doxygen时的七个关键技巧。
一、构建连接设备的五个技巧
技巧1——不要忽视安全性
与传统的嵌入式系统相比,连接的设备会带来很高的安全风险,,因为它连接到网络,每周 7 天、每天 24 小时都有数十亿设备连接到它。有可能在某个时候,某人或某物会注意到该设备并尝试访问它。从第一个需求开始,安全性就需要融入到设计中。安全性不能在设计周期结束时添加,而应该是一个经过深思熟虑和执行的计划。开发人员应考虑加密技术、身份验证和验证方法,所有这些都有经过验证的例子和技术,可以在今天加以利用。
技巧2——使用第三方软件组件
从位和字节级别开始,为每个外围设备和应用程序代码构建连接设备是一件徒劳的事情。现代微控制器已经变得如此复杂,以至于从头开始设置和创建驱动程序是一项耗时且昂贵的工作。尝试编写诸如文件系统、TCP/IP或 USB 堆栈之类的中间件所需的时间可能是驱动程序的两倍,而在编写驱动程序和中间件时,竞争对手已经推出了第二版。现在驱动程序和中间件的开发很有趣,不要产生错误的印象,但是产品开发的主要关注点是开发应用程序代码。嵌入式开发人员可以从许多来源购买或免费获得软件的基础底层,然后他们可以专注于他们的应用程序,而不是技术的最低标准。
技巧3——利用现有的物联网平台
构建连接设备非常复杂!开发人员需要了解编程语言、传感器、驱动程序、中间件、操作系统、项目管理流程,现在还需要了解安全性、加密、网络协议、web和服务器技术等等。团队不可能真正理解所有这些复杂的部分,所以建议是,使用现有的物联网平台来缓解连接和安全问题。
物联网不仅改变了人类与世界和设备互动的方式,也改变了嵌入式系统开发的基本方式。以Electric Imp或Particle等公司为例,它们正在提供安全连接到云的Wi-Fi模块。这些模块为轻松连接铺平了道路,更重要的是,它们将嵌入式软件转移到了云中!
技巧4——仅使用经过验证的标准
连接设备时代催生了网络标准的激增。每个标准都试图使用稍微不同的方法来解决这个问题。目前很难说哪些标准能够经受住时间的考验。围绕一个在几年内消失或失去支持的标准来构建一个产品可能是毁灭性的。嵌入式开发人员需要通过支持多种标准来保护他们的设备,或者保持简单并使用成熟的互联网核心标准,如POST和Request。
技巧5——优化团队优势
每个开发团队都有基本的优势和劣势。传统的思维模式是找出团队中的弱点,然后试图将这些弱点转化为优势,这个过程非常耗时,在许多工程师经历的快节奏开发周期中,这是一个不切实际的解决方案。在制造新设备时第一次学习网络安全知识是制造安全性差的设备的良方。相反,开发团队应该关注他们的优势,并继续进一步发展这些优势。应该通过使用第三方组件和产品,将已发现的弱点转化为优势。成功的连接设备不是通过改进弱点,而是通过使用内部和外部专业知识来构建的。
二、使用Doxygen记录嵌入式代码的7个技巧
技巧1——优化C语言的输出
Doxygen支持许多不同的编程语言,它的默认值不一定能为C语言提供最好的输出。当使用Doxygen配置工具Doxywizard时,开发人员应该选择“为C优化输出”选项。选择按钮位于mode选项卡下。
技巧2——使用模块模板以获得一致的文档
Doxygen扫描代码库,寻找以/**开头的注释块,嵌入式开发人员可以通过在代码块中使用Doxygen标记来指定特定注释的特殊处理。(标签很容易被发现,因为它们以@开头。)例如,@file标签将通知Doxygen后面的注释提供了模块的文件名。图2展示了一个带有Doxygen标签的注释块的例子。
但是Doxygen支持100多种不同的标签,这意味着使用Doxygen编写软件文档可能会很快变得混乱。在嵌入式软件中使用Doxygen的最佳建议之一是为头文件和源文件创建一个模板。模板文件应该包含示例代码块和头文件,以便在实现阶段使用。
技巧3——创建主页
Doxygen将从配置文件中扫描嵌入式开发人员告诉它的任何文件类型,并能够解析一种称为主页的特殊类型的文件。主页是一个用户可配置的页面,默认情况下在加载HTML文档时显示,或者出现在生成的RTF文件的开头。对于开发人员来说,主页是描述项目、背景和任何可能对手册读者有用的编码约定的最佳地方。
主页通常会描述以下内容:
项目是什么,目的是什么
链接到编码标准
链接到项目的C风格指南
代码库中使用的任何缩写的概述
版本日志
使用的一般Doxygen惯例
可能有用的项目文档的链接
有用的工具以及它们如何在项目中使用
技巧4——使用GraphViz的点工具
从GraphViz包中启用点工具为Doxygen提供了一个非常强大的图形选项,允许嵌入式开发人员生成如下图形:
类图
依赖图
调用图
被调用图
点生成的图形可以使用图形表示向开发人员提供对软件的洞察力,允许快速浏览漂亮的图片以提供很好的洞察力。
技巧5——对于HTML,生成树形视图
默认情况下,Doxygen将在其HTML输出中生成一个顶部菜单,开发人员可以通过该菜单浏览代码库。顶部菜单很有帮助,但是生成树形视图是一种更有效的导航方法。可以通过expert HTML选项卡启用GENERATE_TREEVIEW选项来创建树视图。
技巧6——不将Doxygen添加到编译器命令行
一旦嵌入式开发人员开始使用Doxygen,每次编译代码库时,通过编译器命令行调用Doxygen会很有诱惑力。但是,每次编译时都解析文档的代码库是一个很大的错误,因为Doxygen可能需要“很长”时间来解析文件和生成文档。时间的冲击会大大降低开发速度。相反,开发人员应该在将任何新开发的软件添加到版本控制系统之前创建文档。
技巧7——做将Doxygen注释添加到C风格指南中
开发团队应该使用C风格指南,告诉工程师在开发过程中要使用的风格惯例。风格指南应该反映Doxygen模板和约定,以便为嵌入式开发人员提供如何在整个代码库中一致地编写注释的指导。采用Doxygen也应该导致对这个重要的开发团队文档的更新。
今天的工程师生活在一个激动人心的时代。通过自动化和连接设备,我们周围的世界正在迅速变得活跃起来。在不久的将来,几乎每一个电子设备都将被连接起来,为人类的工作和生活提供一个近乎无缝的自动化环境。