有人認為“嵌入式開發人員不需要發布版本。“在某種程度上,這是有道理的。開發人員經常在調試配置中開發和測試他們的軟件,他們應該發布他們測試的內容。然而,跳過發布版本的使用會對系統產生負面影響。這篇文章將探討你需要發布版本的五個原因。
原因1:性能優化
當你為調試構建軟件時,構建優化級別通常設置在較低的級別。調試時,你可能需要逐句通過代碼或設置斷點來調查軟件正在做什么。較低的優化級別可以防止編譯器重新安排指令和執行其他可能會使人難以理解的優化。如果你部署你的調試版本,你將錯過可以提高軟件執行速度和軟件規模的優化。
只有當你正在積極調試軟件時,才應使用調試生成。CI/CD管道中用于硬件在環測試、單元測試等的構建都應該使用發布構建來完成。發布版本將最準確地表示你將要發布的固件——它將被優化,并且你將測試你發布的內容。
原因2:內存效率
嵌入式開發人員發布版本可以通過優化數據結構、刪除不必要的代碼和應用節省內存的技術來幫助減少嵌入式軟件的內存占用。在資源經常受限的嵌入式系統中,內存效率至關重要。針對將應用存儲器優化的發布版本進行編譯可能會將存儲器大小縮小到足夠小,從而可以使用更便宜的微控制器。或者它可以為將來添加到產品中的功能留出足夠的空間。
原因3:安全性增強
當你為調試配置進行構建時,你會發現構建中包含的信息通常要多得多,可以用來幫助調試系統。例如,你可能會發現其中包含調試符號和其他細節,如果有人從閃存中取出軟件,可以更容易地對其進行逆向工程。當你為調試而構建時,你經常會發現,為了使調試更容易,固件中不包含健壯的安全措施。調試版本的簡易性可能會留下痕跡,使入侵系統變得更加容易。
當你執行發布構建時,你通常會啟用額外的安全特性,如堆棧保護、代碼混淆、更嚴格的警告檢查、地址清理和其他增強功能。如果你跳過發布版本,你可能會包含比你需要的更多的內容,使對手更容易利用你的系統。
原因4:提高了電源性能
在嵌入式開發中,當你為發布而構建軟件時,還會進行一些優化。這些優化通常會讓你的軟件運行得更快。運行速度更快的軟件的第二個好處是,如果你利用低功耗模式,你的系統也將使用更少的能源!更少的能源意味著你可以使用電池運行更長時間,或者如果你使用連續電源,你的設備將會更加環保。
原因5:專業性
軟件開發人員經常因為編寫錯誤的、低質量的軟件而受到指責。花時間定義和測試一個優化的發布版本表明你和你的團隊不僅僅是另一組一起編寫代碼的開發人員。相反,這個版本是經過深思熟慮的,高效的,并且經過了很好的測試。這表明你是一個專業人士,超越了業余愛好者或開發者所做的“讓他們的代碼工作起來”。
結論
發布版本可以給嵌入式開發人員帶來很多好處。你將擁有更好的性能、更小的內存占用、更高的安全性和更低能耗的設備。當創建一個發布版本時,你不一定要刪除幫助你在現場調試系統的監視器或工具。然而,它應該區分配置為在實驗室中運行的固件開發和完善的版本。