在過去,嵌入式開發(fā)人員和團隊中存在一種趨勢,這種趨勢非常令人不安。這種趨勢包括開發(fā)功能性的(最好的)嵌入式系統(tǒng),但不是為生產(chǎn)環(huán)境構(gòu)建或測試的。
這種“簡單功能”趨勢的主要原因似乎是由于三個因素:示例代碼的利用、倉促的開發(fā)周期以及缺乏對構(gòu)建生產(chǎn)嵌入式系統(tǒng)的理解。
第一個因素,利用示例代碼,實際上是啟動嵌入式軟件開發(fā)的關(guān)鍵一步。示例代碼有助于啟動和運行嵌入式系統(tǒng),以及獲得對目標(biāo)硬件的重要見解。許多微控制器供應(yīng)商為開發(fā)人員提供了非常需要的樣例代碼,說明如何設(shè)置外設(shè)以及如何與微控制器交互。
但是對于這個示例代碼,有兩個問題是許多開發(fā)人員經(jīng)常不考慮的。第一,示例代碼只是一個例子;它不是用于生產(chǎn)的。它只是關(guān)于如何設(shè)置和與各種外設(shè)交互的指南。然而,開發(fā)人員會采用這些代碼,一旦示例代碼被引入系統(tǒng),它通常會留在系統(tǒng)中。
仔細檢查來自不同微控制器供應(yīng)商的示例代碼通常會發(fā)現(xiàn)一個免責(zé)聲明,即所提供的代碼不保證適合任何用途。它甚至不保證用于任何目的,而只是“按原樣”提供僅僅閱讀免責(zé)聲明就會讓嵌入式開發(fā)人員在考慮采用該代碼時感到不安。軟件的生產(chǎn)者沒有足夠的信心來支持他們的示例,那么是什么讓人們認(rèn)為示例代碼產(chǎn)品已經(jīng)可以生產(chǎn)了呢?
導(dǎo)致構(gòu)建功能性而非生產(chǎn)性嵌入式系統(tǒng)趨勢的第二個因素是倉促的開發(fā)周期。開發(fā)一個嵌入式系統(tǒng)會給企業(yè)帶來巨大的管理費用,這使得企業(yè)想在昨天就進入市場。此外,初創(chuàng)企業(yè)、小企業(yè)和銷售團隊因樂觀地設(shè)定生產(chǎn)日期,他們沒有檢查開發(fā)一個健壯的生產(chǎn)就緒系統(tǒng)所需的真正努力。在這種情況下,許多工程師要么拒絕與管理層對抗,要么發(fā)現(xiàn)他們的擔(dān)憂被置若罔聞。最終的結(jié)果是為了滿足不切實際的最后期限而偷工減料,這導(dǎo)致設(shè)計只包含功能代碼,只在一系列嚴(yán)格控制的條件下工作。
導(dǎo)致功能性而非生產(chǎn)性嵌入式系統(tǒng)發(fā)布的最后一個因素是缺乏對怎么構(gòu)建面向生產(chǎn)的嵌入式系統(tǒng)的了解。嵌入式開發(fā)人員供不應(yīng)求,這種情況導(dǎo)致公司用剛從學(xué)校畢業(yè)的學(xué)生或來自不同學(xué)科的工程師來填補關(guān)鍵職位,如web或應(yīng)用程序開發(fā)。結(jié)果是在如何正確設(shè)計和實現(xiàn)健壯的嵌入式系統(tǒng)方面存在知識缺口,這些系統(tǒng)不需要每天更新來修補錯誤和修復(fù)安全問題。
然而,綠色和跨學(xué)科工程師并不是故事的全部,導(dǎo)致人們對生產(chǎn)嵌入式系統(tǒng)的真正含義缺乏了解。訓(xùn)練有素且經(jīng)驗豐富的工程師通常會被要求開發(fā)原型或概念驗證。為了向管理層演示,工程師們展示了一個基于功能示例代碼的漂亮功能原型。演示效果很好,但該系統(tǒng)僅在受控條件下工作。但由于演示進行得很順利,管理層希望立即交付系統(tǒng),而不了解要使系統(tǒng)投入生產(chǎn)還需要做很多工作。
嵌入式系統(tǒng)正在進入我們生活的每一個角落。對于在受控條件下運行的一些設(shè)備來說,嵌入式開發(fā)人員僅使用功能代碼可能是好的。但是,隨著物聯(lián)網(wǎng)和自主智能社會的快速發(fā)展,發(fā)布功能性代碼而不是生產(chǎn)性代碼的危險趨勢是一場遲早會發(fā)生的事故。