對于專業編寫代碼的人來說,評估“其他人的代碼”的過程可能看起來很簡單——但這不僅僅是閱讀手冊或檢查源模塊。正確評估選擇及其長期影響意味著以新的、更廣泛的視角看待各種選擇。以下是可以幫助搜索更可靠軟件的“做/不做”指南列表。
隨著嵌入式設計人員為物聯網生產數十億可靠設備的壓力,硬件和軟件開發方法正在發生變化。挑選零件、獲取手冊和坐下來編寫代碼的日子即將結束——不是因為困難,而是因為這樣做所涉及的時間。等到采用舊方法的設計師基本工作正常時,競爭對手可能已經發布了他們的成品。
創新是一把雙刃劍,進一步推動了不斷變化的發展實踐。每天都有更多新的微控制器和 FPGA 處理器內核在 32 位 ARM 架構中被創建和引入,從而帶來更多的處理能力來驅動許多設計人員在細節層面上不熟悉的高級外圍功能。這在互操作性要求要求對外圍設備進行徹底測試的情況下尤其棘手,這對于在所有操作場景下設備與其他設備的可靠連接至關重要。
在這個用戶期望很高且處理技術快速發展的新環境中,釋放新設備的潛力需要能夠更快生產的更好的軟件。成功的團隊以可重復使用的硬件知識產權 (IP) 模型為基礎,現在正在為每個軟件 IP 塊采用構建-借用-購買策略。代碼可以在內部開發,可以從開源社區借用,也可以從供應商處購買,將所有內容都融合到一個解決方案中。
評估軟件的注意事項
除了特定的功能和性能要求之外,應該如何評估軟件 IP 塊?以下是適用于應用構建-借用-購買方法的團隊的一些“做/不做”指南。
DO:考慮整個軟件堆棧
32 位嵌入式軟件 IP 的范圍比 8 位和 16 位世界的編譯器和調試器要廣泛得多。IP 存在于各個領域,包括操作系統、協議棧、用戶界面代碼和中間件。操作系統和應用程序編程接口 (API) 的選擇可以啟用或抑制其他選擇,這會影響產品生命周期的測試、驗證、文檔和支持。
不要:假設一切都必須寫出來
開發人員歷來有代碼優先的心態,購買開發工具,可能獲得操作系統,然后開始編寫應用程序。雖然這為團隊提供了對代碼的大量控制權,但重用或從可靠來源獲取代碼實際上可以降低風險,并且肯定會加快開發速度。越來越多的現成軟件解決方案,特別是在 ARM 架構的背景下,正在被創建和部署。
DO:尋找符合規范的代碼
難以編碼的外圍設備和功能通常屬于網絡、用戶界面和信號處理類別,必須仔細遵守規范才能正常運行。獲取藍牙、TCP/IP、USB、HTTP Web 服務器、圖形和 DSP 庫等領域的代碼——在其他應用程序中得到驗證——可以在項目中發揮作用。
不要:落入開源價值陷阱
開源通常是一個很好的起點。ARM 的一個很好的例子是 Linaro 在 Linux 中為 Cortex-A 系列所做的努力。開發人員應該明白,可能需要努力移植、擴展和驗證開源代碼以完成價值方程式。例如,BTstack 的開發者——開源藍牙專家 Matthias Ringwald——欣然承認它是有限范圍的處理器和操作系統上的“所需協議的最小集合”。
“標準具有短期,尤其是長期的優勢。通常購買的商用現貨 (COTS) 軟件是查找支持標準的軟件的好地方,而通常內部專用軟件可能不太面向標準。隨著時間的推移,公司希望增強產品;通過遵循標準,其他硬件和軟件組件將更有可能幫助未來的發展。”
——Mike Gee,Motomic Software 首席執行官
DO:對對象和源模塊都開放
基于對“其他人的代碼”的根本不信任或需要遵守以源代碼為中心的審查流程,開發人員通常需要訪問源代碼。然而,擁有源代碼并不一定會使代碼更值得信賴,或者提供對結果的更多控制——但它肯定會增加項目的費用。在現場應用中證明的自包含功能的對象模塊可以高度可靠且具有成本效益,并且可以提供文檔以方便審查。
不要:將許可視為理所當然
許可是一個備受爭議和高度誤解的話題。許多工程師甚至不相信存在問題,認為授權嵌入式代碼問題的故事是都市傳說。在移動制造商之間紛爭不斷、共同特征專利的有效性受到激烈爭論的時代,不事先關注 IP 許可可能是一個巨大且代價高昂的錯誤。適當的許可可以保護知識產權的提供者和消費者。
DO:盡可能將代碼抽象到 API
充分利用構建-借用-購買策略的關鍵之一是使用 API,抽象 IP 塊之間的接口。這有兩個效果:它可以防止在模塊內創建對特定于實現的代碼的依賴關系,并且它允許 IP 塊根據需要換出以用于具有不斷變化的需求的未來項目。另一個經常被忽視的考慮因素是系統架構中的競爭時間線,其中并行評估功能塊的多個實現并選擇最佳方法。
不要:過度設計到低級需求
編寫代碼的誘惑力如此之大,以至于常常導致一個正當理由:第三方代碼并不能滿足每一個詳細的要求,因此必須完整地開發代碼。當然,如果開源或商業代碼發現了一個主要需求,或者如果某個特定功能的創新突破是目標,那么應該編寫一個代碼模塊。在構建-借用-購買場景中,高級需求非常值得付出努力,但應重新考慮低級實現細節以避免限制選擇。
“我看到人們在決定構建時犯的最大錯誤是他們認為編寫代碼并不太難,在某些情況下確實如此。他們完全忽略了調試和測試需要多少時間和成本才能使軟件(在我們的例子中是 TCP/IP 和相關協議)在每種配置和每種網絡環境中都能正常工作。這不僅會導致更高的成本,而且項目通常會延遲,從而導致收入損失,甚至可能失去市場機會。”
——拉里·拉德,InterNiche Technologies 總裁
DO:專注于公司的核心專業知識
任何構建-借貸-購買策略的一個關鍵原則是專注于獨特的能力,這應該占用大量的工程資源和專業知識。通過專注于開源或商業模塊的正確內部開發和重用或集成,可以優化投資回報。事實上,如果一項能力變得突出,一塊軟件 IP 可能會成為重用的標準,從而打開新的收入機會。
不要:盡量在內部做所有事情
另一方面:很少有公司是制造完整產品所需的所有領域的專家,尤其是在軟件變得更加多樣化和復雜的情況下。對外部 IP 的抵制曾經被開玩笑地稱為 NIH——“不是這里發明的”——但精明的組織正在改變這種心態。
“許多公司試圖超越他們的專業知識,并在內部做所有事情。商業 IP 許可公司的存在是有原因的——它們在特定領域擁有核心專業知識,并且能夠在開發、測試和部署用于最終產品的 IP 模塊方面進行徹底的工作。最終,商業 IP 為開發人員提供了成本更低、功能強大的解決方案;更快的上市時間;減少故障排除;以及更少的客戶拒絕。”
– SoftRISC 通信解決方案首席執行官 Ashok Setty
尋找軟件進行評估
除了瑣碎的復雜性之外,從數據表中評估代碼對于模塊來說是不可行的——關于實現的質量幾乎無法收集。大多數工程師會直接閱讀手冊,將其評估為代碼質量的代表,但許多高級微控制器的文檔需要花費數百頁的時間閱讀。評估代碼,再加上硬件開發工具包甚至培訓,可以快速回答問題并推動流程向前發展。
不僅如此,32 位 ARM 生態系統提供了統一的結構,使代碼搜索變得更加容易,并使嵌入式軟件商店成為主要目的地。許多產品都提供評估版本,具有預打包配置和一鍵式許可,使查找和獲取代碼變得快速、簡單和安全。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7552瀏覽量
151421 -
處理器
+關注
關注
68文章
19286瀏覽量
229827 -
FPGA
+關注
關注
1629文章
21736瀏覽量
603368
發布評論請先 登錄
相關推薦
評論