|
嵌入式自學(xué)指南_復(fù)雜的嵌入式開發(fā)項目是否也會走向平臺式開發(fā),
每當開始一個新的嵌入式項目時,空氣中都會充滿期待和興奮。對于工程師來說,世界上幾乎沒有什么事情比從無到有創(chuàng)造一項工程更令人興奮了。
不幸的是,在項目啟動后不久,工程師的熱情可能很快就會消散,因為他們不得不編寫微控制器驅(qū)動程序、集成實時操作系統(tǒng)(RTOS)和第三方插件,可能還需要造一些“螺絲”“螺母”… 這些瑣碎繁雜的任務(wù)消耗時間和精力,常常會抑制工程師對產(chǎn)品的創(chuàng)新。
為了將嵌入式工程師從瑣碎繁雜的無趣工作中解放出來,嵌入式系統(tǒng)開發(fā)平臺開始出現(xiàn)。它是一種開發(fā)平臺(Platform-Based Development),一般會提供很多小工具供嵌入式工程師使用,初衷是提高開發(fā)工具的復(fù)用率,提高開發(fā)效率。
嵌入式系統(tǒng)開發(fā)平臺包含開發(fā)人員在短時間內(nèi)快速啟動和運行微控制器的所有構(gòu)建模塊,這樣可以節(jié)約開發(fā)人員相當多的精力。在此之前,為了讓微控制器軟件正常運行,開發(fā)人員常常需要花費很多時間編寫驅(qū)動程序。該平臺的宗旨是提供驅(qū)動程序、框架、庫、調(diào)度程序,可能有時還會提供應(yīng)用程序代碼,這樣一來,開發(fā)人員就可以把精力專注于開發(fā)產(chǎn)品特性上,而不是簡單重復(fù)的軟件代碼編寫上了。
嵌入式開發(fā)的難度,以及所花費的時間常常來自于設(shè)備驅(qū)動的難以理解、維護困難以及移植困難,這些問題歸根結(jié)底都來自于對硬件的了解不夠透徹。因此,嵌入式系統(tǒng)開發(fā)平臺一般還會提供可重用的硬件抽象層(HAL),以方便跨項目跨平臺的維護和使用。
也就是說,平臺為開發(fā)人員提供了便利,通過利用現(xiàn)有的HAL和API,可以將開發(fā)周期縮短幾個月。開發(fā)人員不再需要了解所有硬件細節(jié)便能輕松開發(fā),HAL和API抽象較低級別的硬件,使開發(fā)類似于在PC上編寫軟件,只不過開發(fā)人員仍然需要記住自己是在資源受限(嵌入式設(shè)備一般資源比較匱乏)的環(huán)境中工作。
試想一下,簡單調(diào)用 UART HAL,立刻就能獲得串行數(shù)據(jù),而不用再針對各種硬件,編寫不同的驅(qū)動程序,這是一件多么愜意的事。稍稍總結(jié)一下,應(yīng)該能夠發(fā)現(xiàn)基于開發(fā)平臺開展嵌入式項目,具有以下優(yōu)點:平臺保證了工具復(fù)用率,避免開發(fā)人員花費過多精力重復(fù)“造輪子”開發(fā)周期縮短,產(chǎn)品上市更快降低總體項目成本增強了固件的健壯性當然,開發(fā)人員也應(yīng)該關(guān)注一些潛在的問題:
平臺的授權(quán)問題如果未來產(chǎn)品方向發(fā)生變化,更換平臺的成本產(chǎn)品開發(fā)過多依賴第三方平臺由于項目進展順利,空閑時間過多小結(jié)隨著微控制器的性能成倍增加,嵌入式項目的開發(fā)逐年復(fù)雜。開發(fā)人員的精力總是有限的,基本上不太可能了解所有的硬件細節(jié),但是如果只用自己熟悉的硬件設(shè)備,自己熟悉的技術(shù)開發(fā)項目,又可能會導(dǎo)致最終做出的產(chǎn)品落后。
因此,嵌入式系統(tǒng)開發(fā)平臺其實是一種取舍,以舍棄完全了解底層的代價,換來開發(fā)上的便利,以及產(chǎn)品系統(tǒng)的健壯性和完整性。但是考慮到時間、預(yù)算時,應(yīng)該會發(fā)現(xiàn),基本上嵌入式項目的開發(fā)也是要走向平臺式的開發(fā)的。 |
|