嵌入式系統設計中的“團隊技能”
前一陣看了幾本有關(guān)嵌入式系統設計的書(shū),包括RTOS,算法,硬件設計、數據結構等,感覺(jué)這個(gè)系統是相當復雜的,所以在此分享一些心得。
本文引用地址:http://dyxdggzs.com/article/164528.htm首先,嵌入式系統的設計經(jīng)常是一項很艱巨的任務(wù)。一個(gè)復雜的系統。例如,一個(gè)電機控制的嵌入式系統在由一個(gè)開(kāi)發(fā)團隊來(lái)負責的時(shí)候,有的工程師會(huì )負責RTOS的移植、調度等工作,有的專(zhuān)門(mén)負責硬件電路和接口設計,有的專(zhuān)門(mén)負責電機的控制等等。對于其中的軟件工程師來(lái)說(shuō),他可以熟練掌握C、C++等編程語(yǔ)言和RTOS的設計等,但是對于電機的控制就未必了解很多了(看我們國內現狀,很多是計算機專(zhuān)業(yè)的來(lái)從事這方面工作)。而對于控制工程師來(lái)說(shuō),電機的控制他很熟練,而C++里面那些復雜的面向對象編程又未必很熟悉。這樣在工作中,就不可避免地存在一些交流、溝通上的“鴻溝”。為了不至于在出現一些難以調試的問(wèn)題時(shí),大家互相指責對方是“豬一樣的隊友”,就需要隊員們對開(kāi)發(fā)一個(gè)嵌入式系統需要的技能有一些宏觀(guān)的了解;對于初學(xué)者來(lái)說(shuō),了解開(kāi)發(fā)這樣的一個(gè)復雜系統需要哪些技能,也是非常有幫助的。這些技能從宏觀(guān)上講,可以分為5大類(lèi):
1. 閱讀數據手冊(即datasheet)
做產(chǎn)品開(kāi)發(fā)的工程師和做研究的工程師有一個(gè)比較明細的區別,就是做研究往往不會(huì )把時(shí)間定的特別緊迫,或者說(shuō)研究的往往是至少1-2年以后采用的技術(shù)。而做產(chǎn)品的就不行,產(chǎn)品往往就是工程師們的“催命鬼”,每天看看時(shí)間進(jìn)度表,哪還有時(shí)間去沉下心來(lái)去仔細閱讀datasheet?但是datasheet確實(shí)是很關(guān)鍵的,它相當于芯片或者器件的接口“API”。在設計開(kāi)始之前,至少要通過(guò)讀最新的datasheet來(lái)確認選擇的器件滿(mǎn)足工作環(huán)境的要求,并且知道那些最有可能出現各種奇怪現象的部分在哪里,以便在發(fā)現問(wèn)題時(shí)快速定位。
2. 了解所使用的處理器
1) 處理器往往是復雜的,但是學(xué)習資源也是非常豐富的,我們可以使用很多資源來(lái)加速學(xué)習,例如入門(mén)指南和初學(xué)者套件:一般的公司都會(huì )提供這些東西,而且初學(xué)者套件一般并不貴
2) 論壇,以及處理器制造廠(chǎng)商的wiki
3) 培訓活動(dòng)
4) 用戶(hù)指南和應用指南
一般在學(xué)習一個(gè)新的處理器之前,把上面這些資料備齊,學(xué)習條件就很充分了。
3. 閱讀原理圖
一部分純軟件工程師并不需要去閱讀原理圖,但是大部分團隊成員還是需要了解的。例如,一個(gè)bug可能表現為軟件里某個(gè)變量的值異常,但是這有可能是硬件電路某個(gè)電平不對,導致了后面的一系列異常。
4. 調試
調試工具既包含軟件里的debugger,也包含包括硬件調試使用的鉗子、刀、膠帶、放大鏡、螺絲刀、萬(wàn)用表、示波器、邏輯分析儀等。
5. 測試
為了不讓重大隱患或者煩人的bug在用戶(hù)手里頻繁出現,測試工作的重要性自然是不言而喻的。國外有測試相關(guān)的專(zhuān)門(mén)職位,例如qualification工程師和verification工程師,往往都是由一些年紀比較大但是富有經(jīng)驗的工程師擔任,但是國內貌似還不怎么重視這部分工作。
引用一句名言,“越是不經(jīng)意的錯誤,越有可能需要花費相當長(cháng)的時(shí)間去查找和修復”。所以,整個(gè)團隊的工程師都首先要把自己負責的部分測試好,然后再進(jìn)行組合測試。
最后說(shuō)明,這里的幾個(gè)技巧是從O’REILLY出版的《Making Embeded Systems》一書(shū)里面提煉的。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)c++相關(guān)文章:c++教程
評論