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