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

評(píng)論