嵌入式系統(tǒng)設(shè)計中的“團隊技能”

2013-09-16 10:54 來源:互聯(lián)網(wǎng) 作者:洛小辰

前一陣看了幾本有關(guān)嵌入式系統(tǒng)設(shè)計的書,包括RTOS,算法,硬件設(shè)計、數(shù)據(jù)結(jié)構(gòu)等,感覺這個系統(tǒng)是相當(dāng)復(fù)雜的,所以在此分享一些心得。

首先,嵌入式系統(tǒng)的設(shè)計經(jīng)常是一項很艱巨的任務(wù)。一個復(fù)雜的系統(tǒng)。例如,一個電機控制的嵌入式系統(tǒng)在由一個開發(fā)團隊來負(fù)責(zé)的時候,有的工程師會負(fù)責(zé)RTOS的移植、調(diào)度等工作,有的專門負(fù)責(zé)硬件電路和接口設(shè)計,有的專門負(fù)責(zé)電機的控制等等。對于其中的軟件工程師來說,他可以熟練掌握C、C++等編程語言和RTOS的設(shè)計等,但是對于電機的控制就未必了解很多了(看我們國內(nèi)現(xiàn)狀,很多是計算機專業(yè)的來從事這方面工作)。而對于控制工程師來說,電機的控制他很熟練,而C++里面那些復(fù)雜的面向?qū)ο缶幊逃治幢睾苁煜?。這樣在工作中,就不可避免地存在一些交流、溝通上的“鴻溝”。為了不至于在出現(xiàn)一些難以調(diào)試的問題時,大家互相指責(zé)對方是“豬一樣的隊友”,就需要隊員們對開發(fā)一個嵌入式系統(tǒng)需要的技能有一些宏觀的了解;對于初學(xué)者來說,了解開發(fā)這樣的一個復(fù)雜系統(tǒng)需要哪些技能,也是非常有幫助的。這些技能從宏觀上講,可以分為5大類:

1. 閱讀數(shù)據(jù)手冊(即datasheet)

做產(chǎn)品開發(fā)的工程師和做研究的工程師有一個比較明細(xì)的區(qū)別,就是做研究往往不會把時間定的特別緊迫,或者說研究的往往是至少1-2年以后采用的技術(shù)。而做產(chǎn)品的就不行,產(chǎn)品往往就是工程師們的“催命鬼”,每天看看時間進度表,哪還有時間去沉下心來去仔細(xì)閱讀datasheet?但是datasheet確實是很關(guān)鍵的,它相當(dāng)于芯片或者器件的接口“API”。在設(shè)計開始之前,至少要通過讀最新的datasheet來確認(rèn)選擇的器件滿足工作環(huán)境的要求,并且知道那些最有可能出現(xiàn)各種奇怪現(xiàn)象的部分在哪里,以便在發(fā)現(xiàn)問題時快速定位。

2. 了解所使用的處理器

1) 處理器往往是復(fù)雜的,但是學(xué)習(xí)資源也是非常豐富的,我們可以使用很多資源來加速學(xué)習(xí),例如入門指南和初學(xué)者套件:一般的公司都會提供這些東西,而且初學(xué)者套件一般并不貴

2) 論壇,以及處理器制造廠商的wiki

3) 培訓(xùn)活動

4) 用戶指南和應(yīng)用指南

一般在學(xué)習(xí)一個新的處理器之前,把上面這些資料備齊,學(xué)習(xí)條件就很充分了。

3. 閱讀原理圖

一部分純軟件工程師并不需要去閱讀原理圖,但是大部分團隊成員還是需要了解的。例如,一個bug可能表現(xiàn)為軟件里某個變量的值異常,但是這有可能是硬件電路某個電平不對,導(dǎo)致了后面的一系列異常。

4. 調(diào)試

調(diào)試工具既包含軟件里的debugger,也包含包括硬件調(diào)試使用的鉗子、刀、膠帶、放大鏡、螺絲刀、萬用表、示波器、邏輯分析儀等。

5. 測試

為了不讓重大隱患或者煩人的bug在用戶手里頻繁出現(xiàn),測試工作的重要性自然是不言而喻的。國外有測試相關(guān)的專門職位,例如qualification工程師和verification工程師,往往都是由一些年紀(jì)比較大但是富有經(jīng)驗的工程師擔(dān)任,但是國內(nèi)貌似還不怎么重視這部分工作。

引用一句名言,“越是不經(jīng)意的錯誤,越有可能需要花費相當(dāng)長的時間去查找和修復(fù)”。所以,整個團隊的工程師都首先要把自己負(fù)責(zé)的部分測試好,然后再進行組合測試。

最后說明,這里的幾個技巧是從O’REILLY出版的《Making Embeded Systems》一書里面提煉的。

處理器 嵌入式 測試 datasheet 調(diào)試

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門