將產(chǎn)品投入市場(chǎng)的速度對(duì)產(chǎn)品的成功與否至關(guān)重要。對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)和小規(guī)模企業(yè)來(lái)說(shuō),面對(duì)在盡可能短的時(shí)間發(fā)布嵌入式軟件項(xiàng)目的壓力也就更大。下面所闡述的5個(gè)加速固件開(kāi)發(fā)的小貼士,盡管它們顯而易見(jiàn),但是在實(shí)踐中很少得到很好的應(yīng)用。
1指定一個(gè)可行的計(jì)劃
在過(guò)去的幾年內(nèi),我曾遇到很多的這樣的項(xiàng)目,從項(xiàng)目的開(kāi)始階段,開(kāi)發(fā)人員的進(jìn)度往往落后于計(jì)劃數(shù)個(gè)星期。項(xiàng)目管理者在對(duì)功能的復(fù)雜性和可能遇到的技術(shù)難點(diǎn)預(yù)計(jì)不足情況下,就為產(chǎn)品設(shè)定了一個(gè)交付日期,如果產(chǎn)品在設(shè)定的時(shí)間內(nèi)沒(méi)有交付,他們就認(rèn)為項(xiàng)目是失敗的。
造成總是落后于進(jìn)度的原因在于開(kāi)發(fā)人員常常在壓力下工作。在高壓力的環(huán)境下,人體會(huì)分泌腎上腺皮質(zhì)醇供給給大腦。腎上腺皮質(zhì)醇將會(huì)降低人的推理和判斷的能力。為了趕進(jìn)度,而讓團(tuán)隊(duì)在高壓力下工作,這樣往往達(dá)不到你所想要的結(jié)果。制定一個(gè)合理的計(jì)劃,將有效的緩解壓力,讓工程師更高效的工作。從而保證項(xiàng)目按照計(jì)劃完成。
2優(yōu)先設(shè)計(jì)架構(gòu)
當(dāng)交付的時(shí)間很短時(shí),開(kāi)發(fā)人員的第一反應(yīng)是跳過(guò)架構(gòu)設(shè)計(jì)階段,直接開(kāi)始軟件開(kāi)發(fā)。之所以這樣想,是因?yàn)闀r(shí)間很緊迫,進(jìn)行軟件架構(gòu)固然好,但是太費(fèi)時(shí)了。
為了更快交付軟件,開(kāi)發(fā)人員需要仔細(xì)思考軟件的設(shè)計(jì),并計(jì)劃好所要做的事項(xiàng)。架構(gòu)是軟件產(chǎn)品的藍(lán)圖。沒(méi)有架構(gòu),開(kāi)發(fā)人員是無(wú)法交付正確的固件,就如同沒(méi)有藍(lán)圖,建筑工人是無(wú)法建造樓房一樣。
3不要重復(fù)制作自己的調(diào)度器
對(duì)于嵌入式軟件開(kāi)發(fā)者來(lái)說(shuō),編寫一個(gè)實(shí)時(shí)調(diào)度器或者實(shí)時(shí)操作系統(tǒng)(RTOS)是讓人興奮的有益的嘗試。問(wèn)題是從零開(kāi)始設(shè)計(jì)一個(gè)調(diào)度器,要讓這個(gè)調(diào)度器在所有操作條件下都正常工作,需要很大的努力可以做到的。開(kāi)發(fā)人員需要浪費(fèi)大量的時(shí)間用在設(shè)計(jì)固件組件,而這些組件已經(jīng)存在于許多市面上的實(shí)時(shí)操作系統(tǒng)上了。一些實(shí)時(shí)操作系統(tǒng),例如 FreeRTOS,是免費(fèi)的。其他的也就需要很少的費(fèi)用。利用商業(yè)化現(xiàn)成的調(diào)度器,而不是自己開(kāi)發(fā),這樣可以縮短開(kāi)發(fā)周期,甚至有可能大大提高系統(tǒng)的質(zhì)量和穩(wěn)定性。
4利用現(xiàn)有的中間件和驅(qū)動(dòng)框架
微控制器已經(jīng)變得極其復(fù)雜,其功能已經(jīng)和90年代中期的通用計(jì)算機(jī)的處理單元相當(dāng)。高端的微控制器有板載緩存、DMA和大量的外圍設(shè)備,并以超出200MHz的時(shí)鐘頻率運(yùn)行。從新開(kāi)始設(shè)計(jì)開(kāi)發(fā)這樣復(fù)雜的設(shè)備將會(huì)耗費(fèi)大把的時(shí)間。
應(yīng)該把時(shí)間花在尋找設(shè)備供應(yīng)商或者第三方組件提供者,這樣可以把注意力從硬件設(shè)計(jì)轉(zhuǎn)移到軟件實(shí)施階段。利用現(xiàn)有的中間件和驅(qū)動(dòng)程序的框架,可以讓開(kāi)發(fā)人員把精力放在產(chǎn)品差異性和特性的開(kāi)發(fā)上,而不是放在研究硬件如何工作上。
5找對(duì)人
軟件工程師是高智商的人群,他們無(wú)所不能。問(wèn)題是如果工程師是對(duì)某個(gè)應(yīng)用領(lǐng)域不熟悉,他們往往會(huì)花很多的時(shí)間,盡管他們無(wú)所不能。
當(dāng)交付時(shí)間很短,不要把沒(méi)有經(jīng)驗(yàn)的菜鳥放入項(xiàng)目組中,取而代之的是某個(gè)領(lǐng)域的專家。也許大家都知道要用專家,但是由于時(shí)間緊迫,許多團(tuán)隊(duì)隨便調(diào)配一些人加入項(xiàng)目組。這樣做的結(jié)果會(huì)使項(xiàng)目失去推動(dòng)力,造成延遲交付。從短期來(lái)看,使用領(lǐng)域?qū)<倚枰嗟腻X,但是從長(zhǎng)遠(yuǎn)看,項(xiàng)目可以按時(shí)交付,開(kāi)發(fā)的功能正確,這些遠(yuǎn)遠(yuǎn)超出了付出的金錢。
最后一些想法:也許有人會(huì)認(rèn)為這些如何緩解項(xiàng)目時(shí)間壓力、按時(shí)交付項(xiàng)目的貼士說(shuō)起來(lái)很顯而易見(jiàn),做起來(lái)難。以上五個(gè)貼士看起來(lái)都是常識(shí)。但是當(dāng)壓力來(lái)臨,這些常識(shí)經(jīng)常會(huì)被拋出九霄云外。只有認(rèn)真和紀(jì)律性強(qiáng)的工程師和團(tuán)隊(duì)才能時(shí)刻保持警醒,按照這些常識(shí)來(lái)行事。
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5094文章
19183瀏覽量
307763 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6896瀏覽量
123761 -
固件
+關(guān)注
關(guān)注
10文章
561瀏覽量
23165 -
RTOS
+關(guān)注
關(guān)注
22文章
819瀏覽量
119891
原文標(biāo)題:分享 5 條實(shí)用建議,助你加速嵌入式固件開(kāi)發(fā)。
文章出處:【微信號(hào):工程師進(jìn)階筆記,微信公眾號(hào):工程師進(jìn)階筆記】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
關(guān)于嵌入式固件開(kāi)發(fā)方法的探討
嵌入式系統(tǒng)固件的開(kāi)發(fā)與調(diào)試相關(guān)資料分享
基于ARM的嵌入式開(kāi)發(fā)
嵌入式LINUX開(kāi)發(fā)基礎(chǔ)知識(shí)
嵌入式開(kāi)發(fā)
![<b class='flag-5'>嵌入式開(kāi)發(fā)</b>](https://file1.elecfans.com//web2/M00/A6/18/wKgZomUMO7OAEKfdAABxPwNFQtI656.jpg)
AI開(kāi)發(fā)平臺(tái)如何幫助嵌入式開(kāi)發(fā)者加速應(yīng)用產(chǎn)品化落地
![AI<b class='flag-5'>開(kāi)發(fā)</b>平臺(tái)如何幫助<b class='flag-5'>嵌入式開(kāi)發(fā)</b>者<b class='flag-5'>加速</b>應(yīng)用產(chǎn)品化落地](https://file.elecfans.com/web1/M00/C2/FE/o4YBAF8iPNqAMgdCAAGka4hAMWw965.png)
嵌入式的固件燒錄方式
![<b class='flag-5'>嵌入式</b>的<b class='flag-5'>固件</b>燒錄方式](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式開(kāi)發(fā)資料免費(fèi)分享
![<b class='flag-5'>嵌入式開(kāi)發(fā)</b>資料免費(fèi)分享](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
uefi 嵌入式Linux,面向嵌入式平臺(tái)的高級(jí)UEFI開(kāi)發(fā)環(huán)境.PDF
![uefi <b class='flag-5'>嵌入式</b>Linux,面向<b class='flag-5'>嵌入式</b>平臺(tái)的高級(jí)UEFI<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境.PDF](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
視頻教程-嵌入式Linux開(kāi)發(fā)基礎(chǔ)-嵌入式
![視頻教程-<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>開(kāi)發(fā)</b>基礎(chǔ)-<b class='flag-5'>嵌入式</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
python做嵌入式開(kāi)發(fā)_Python和嵌入式的區(qū)別是什么?可以做嵌入式開(kāi)發(fā)嗎?
![python做<b class='flag-5'>嵌入式開(kāi)發(fā)</b>_Python和<b class='flag-5'>嵌入式</b>的區(qū)別是什么?可以做<b class='flag-5'>嵌入式開(kāi)發(fā)</b>嗎?](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論