有人认为“嵌入式开发人员不需要发布版本。“在某种程度上,这是有道理的。开发人员经常在调试配置中开发和测试他们的软件,他们应该发布他们测试的内容。然而,跳过发布版本的使用会对系统产生负面影响。这篇文章将探讨你需要发布版本的五个原因。
原因1:性能优化
当你为调试构建软件时,构建优化级别通常设置在较低的级别。调试时,你可能需要逐句通过代码或设置断点来调查软件正在做什么。较低的优化级别可以防止编译器重新安排指令和执行其他可能会使人难以理解的优化。如果你部署你的调试版本,你将错过可以提高软件执行速度和软件规模的优化。
只有当你正在积极调试软件时,才应使用调试生成。CI/CD管道中用于硬件在环测试、单元测试等的构建都应该使用发布构建来完成。发布版本将最准确地表示你将要发布的固件——它将被优化,并且你将测试你发布的内容。
原因2:内存效率
嵌入式开发人员发布版本可以通过优化数据结构、删除不必要的代码和应用节省内存的技术来帮助减少嵌入式软件的内存占用。在资源经常受限的嵌入式系统中,内存效率至关重要。针对将应用存储器优化的发布版本进行编译可能会将存储器大小缩小到足够小,从而可以使用更便宜的微控制器。或者它可以为将来添加到产品中的功能留出足够的空间。
原因3:安全性增强
当你为调试配置进行构建时,你会发现构建中包含的信息通常要多得多,可以用来帮助调试系统。例如,你可能会发现其中包含调试符号和其他细节,如果有人从闪存中取出软件,可以更容易地对其进行逆向工程。当你为调试而构建时,你经常会发现,为了使调试更容易,固件中不包含健壮的安全措施。调试版本的简易性可能会留下痕迹,使入侵系统变得更加容易。
当你执行发布构建时,你通常会启用额外的安全特性,如堆栈保护、代码混淆、更严格的警告检查、地址清理和其他增强功能。如果你跳过发布版本,你可能会包含比你需要的更多的内容,使对手更容易利用你的系统。
原因4:提高了电源性能
在嵌入式开发中,当你为发布而构建软件时,还会进行一些优化。这些优化通常会让你的软件运行得更快。运行速度更快的软件的第二个好处是,如果你利用低功耗模式,你的系统也将使用更少的能源!更少的能源意味着你可以使用电池运行更长时间,或者如果你使用连续电源,你的设备将会更加环保。
原因5:专业性
软件开发人员经常因为编写错误的、低质量的软件而受到指责。花时间定义和测试一个优化的发布版本表明你和你的团队不仅仅是另一组一起编写代码的开发人员。相反,这个版本是经过深思熟虑的,高效的,并且经过了很好的测试。这表明你是一个专业人士,超越了业余爱好者或开发者所做的“让他们的代码工作起来”。
结论
发布版本可以给嵌入式开发人员带来很多好处。你将拥有更好的性能、更小的内存占用、更高的安全性和更低能耗的设备。当创建一个发布版本时,你不一定要删除帮助你在现场调试系统的监视器或工具。然而,它应该区分配置为在实验室中运行的固件开发和完善的版本。