我的第二份工作算是搞軟件的,招聘的時候說是 軟件工程師,但上班后發現,在公司里大家叫我 FW ,漢語發音為 fen wei(分位),這是相對于HW 的叫法。剛開始的時候,我一直沒弄明白什么是FW?就像很多外行的人聽到這個名字一樣。那么 FW 到底是什么樣子的職位?一個優秀的 FW工程師 應該具有什么樣的品質?
FW 實際上是 FirmWare 的縮寫,就像 HW 是 HardWare 的縮寫一樣,但是很多人都明白 HW 是硬件工程師,是每天和電路原理圖、PCB板子以及電烙鐵、示波器打交道的工作。在現代詞典里,HardWare的解釋是:硬件;FirmWare的解釋是:(計算機的)固件(指存儲在存儲器而非軟件中的指令)。由此可以理解成:在電子系統中,存儲在如Flash里面的,開機后自動啟動,控制電子系統以響應用戶操作,也就是嵌入式軟件工程師職位的一個分支。但是,這樣的理解卻并不是對 FW工程師 的準確表述,他們有著自己特殊處境,有著自己獨特于嵌入式軟件工程師的特殊點。
做一個縱向的對比以幫助我們更好理解 FW工程師。實際上,FW工程師 是夾在軟件工程師(SW)和硬件工程師(HW)中間的那個職位。
軟件工程師(SW)的工作是寫程序產品,他們的工作就是根據系統架構完成特定模塊中的特定部分的編程工作,是一種純粹的寫代碼的工作。即便是底層程序開發人員,他們的編碼工作也僅僅需要理解目標硬件接口的特性,只需要弄明白在什么情況下需要用控制位將硬件設定在正確的狀態,就可以安心的去寫他們的代碼了。
硬件工程師(HW)的工作主要是把一個電路原理圖,做成一個正確的硬件電路板。這中間又有更進一步的分工,電路原理圖有專門的設計人員,PCB實現有專門的Layout人員,以及EMC等等,他們各司其職。普通意義上的 HW工程師 實際上就是根據電路原理圖,協調Layout、EMC以及工廠方面人員,完成產品設計,主導期間出現的問題,并與FW工程師配合,完成產品設計,并編制BOM,將產品導入工廠進行批量生產。
FW工程師 就是SW和HW中間的那個角色。他們不需要編寫大量的代碼,因為他們的Source Code是芯片商的軟件開發團隊開發好的,基本上已經實現的所有的功能,他們不需要自己動手編寫。所以稱他們嵌入式軟件工程師是十分勉強的。但他們的工作是在一個已經能夠正常工作的Source Code的基礎上,根據特定的需要完成一些改變(就整個Source Code來講,這些改變實在是小的可憐)。在某種意義上,他們的工作和軟件維護人員的工作差不多。他們和軟件開發人員有著明顯的界限,在遇到困難的時候都可以尋求軟件開發人員的幫助(對于FW工程師,就是找芯片商的技術支持部門,如果其技術支持人員搞不定,他們會進一步尋求其軟件開發團隊的幫助);他們都需要對整個Source Code有個大概上的認識,要知道代碼在運行期間的主流程,要清楚Source Code有多少模塊和這些模塊的作用。他們在日常工作中,常常會根據產品差異化的需求而改變OSD(On Screen Display),有時候需要對UI控制方面做比較大的手術;常常會為一個不同供應商的硬件做一些正確的初始化設定,因而要細心閱讀其datasheet,確保正確控制其按預期的方式工作;常常會細心的調節個別Register的值,反復驗證以得到期望的最佳效果;常常要根據HW的改動,而修給必要的GPIO通道的設定;常常為了一個Bug而苦思冥想數日,不斷的反復的嘗試以定位對應的代碼段……
他們不需要有十分扎實的程序基礎,不需要有出色的程序設計能力,不需要知道數據庫,不需要知道復雜的數據結構……他們需要熟悉的就是這個Source Code使用的語言(一般是C),需要能夠看懂代碼,可能需要了解操作系統原理(某些Source Code的底層是多任務的嵌入式操作系統),需要能看懂常見的電路(要能夠基本理解整個硬件系統的工作原理,實際就是了解HW上的信號流),需要熟練使用示波器(某些Bug的分析常常需要使用示波器分析波形)。
最為重要的是他們需要一定的理解能力,需要有比較好的想象力。他們只有比較透徹地理解整個Source Code才能迅速的定位Bug,需要通過想象來猜測被打包封裝的部分代碼的功能。
他們不是真正意義上的程序員,也算不上真正意義上的嵌入式軟件開發人員,他們是程序員和硬件工程師中間的那個人,那個配合硬件工程師和專業的軟件工程師之間的過渡體,一邊是從專業程序員那里取得軟件成品,再根據項目需要配合HW改造出自己需要的Firmware,燒錄到Flash里面的“固件”。
如何成為一個優秀的FW工程師?優秀的FW工程師應該具有哪些品質?請關注后續文章。
FW工程師 是一個基本上可以說是個低級的職業,在薪水鏈條里面處于底層。那么他們的出路在哪里?在職業規劃上,他們應該怎樣向薪水鏈條的上游過度?
-
工程師
+關注
關注
59文章
1589瀏覽量
69387
發布評論請先 登錄






FW2-24S15C3 FW2-24S15C3

FW1-12S09B FW1-12S09B







評論