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

嵌入式學(xué)習(xí)建議
嵌入式工控機(jī)如何使用?嵌入式工控機(jī)操作方法及注意事項(xiàng)
脈沖式充電器的使用注意事項(xiàng)
繞線電感定制的注意事項(xiàng)
共模電感定制的注意事項(xiàng)
LiFePO4設(shè)計(jì)注意事項(xiàng)

人機(jī)接口電感式觸摸按鈕的設(shè)計(jì)注意事項(xiàng)

采用高側(cè)N-MOSFET的堆疊式BQ769x2設(shè)計(jì)注意事項(xiàng)

評論