目前面前嵌入式軟件工程師的知識體系
嵌入式目前最流行的就是基于ARM9的開發,相關學習的資料也非常的全。但是嵌入式的開發是個非常長的戰線。想一個人把全線貫通至少需要兩年的時間.我目前只能在某些點上做到精通。對于整個線上的知識我現在做下總結,留給我以后各個擊破。
嵌入式設備的用途非常的廣闊。小到遙控器、游戲機,大到坦克、航天飛機都有著它的身影,正是以為這個特點它深深的吸引了我。但是所有的技術萬變不離其宗。核心技術只占20%。最核心的飛機上的嵌入式和游戲機上的嵌入式產品只是功能上的一點點差異。核心硬件差別不大。
按我的理解它的技術大致分三層。底層基于硬件的開發、軟件平臺的特性開發、應用場景和市場的分析。
底層基于硬件的開發,需要電路知識,數電、模電、微機原理、單片機原理、匯編、C語言。這部分學習的特點是技術相對穩定。硬件平臺包含多個器件。但是在平臺的搭建上,每個器件廠家都會給出相關的建議方案。一般產品基于一個平臺開發都是兩年以上的開發。核心變化不會太大。在初始設計的時候就要充分考慮幾年內不會有大的變動。因為一旦開版投產成本都相當高的。包含了電路設計和驅動開發兩方面的工作。硬件的換代一般3到5年。有的甚至更長時間。
軟件平臺的特性開發,對于簡單邏輯的一般沒有操作系統很簡單時序的運算。常使用8位一下的硬件。擴展性比較低。一般通過匯編直接編寫。對于越來越多的電子產品支持多種功能的集成,使得軟件平臺越來越復雜。于是出現了操作系統來管理協調多個程序之間的調度協調。讓嵌入式平臺在硬件不變的情況下提高了功能和性能。需要的知識,操作系統、TCP/IP協議、高級編程語言(C/C++/JAVA/Dephie)、軟件工程、數據結構、圖象處理、數據庫等。實際在正規的大公司中只需要了解這里的兩到三點就可以完全勝任平時的工作了。畢竟要研究透所有的知識要花大量的時間。很多公司也只希望你把一部分工作做好就可以了。太強了留不住人的。根據實際需求和崗位使用不同的技術。
應用場景和市場的分析,這部分是站在最前沿的。它引導著整個產業鏈的發展方向。對于現有技術可以實現的應用場景,并不一定滿足實際需求。這里需要的知識就很大程度基于經驗了。要了解用戶的真正需求。了解市場的發展趨勢。還要了解目前硬件技術到達什么程度,是否可以滿足需求。這里需要考驗人的眼光。要在競爭對手之前看到商機。引導客戶使用現有技術。一般做這一部分工作的都是技術型企業的老總。要對行業的走向作出清晰的判斷。這些決定非常重要。
目前我之前做過的技術主要集中于軟件層,語言上只是精通C語言因為它在嵌入式開發有著天生的優勢。能夠看懂簡單的匯編(大學一年單片機的結果)。硬件系統的架構和軟件系統的架構非常熟悉。目前的能力只有軟件上的提高自己才是最現實的。是我的近期目標。
【編輯推薦】