嵌入式工程師,電腦+萬用表+示波器+電烙鐵+各種電源線數據線+老虎鉗+螺絲刀+美工刀+焊錫絲+各種舍不得扔又好像沒什么用的電子垃圾。收拾干凈挺難的,而且弄整齊了工作起來未必順手。
工作幾年了,先交代點背景。
我和我的同事,也自稱為嵌入式工程師,不過只搞軟件,畫板子焊元件這些活兒我不會做,能用個示波器萬用表啥的。
芯片方面,沒有用過單片機,一開始工作接觸的就是MPU或者SoC,mips系arm系都用過不少。
做過的系統,有帶屏幕需要GUI的也有不帶的;有以while(1) 開始的裸奔系統,也有uC/OS II 這樣輕量級的,也有芯片商不知道在eCOS還是什么上面定制修改的。uCLinux當初咱也花功夫學了,結果還沒用上,新出的一批芯片都是帶MMU的了,直接跑linux了。再后來,android 爛大街了。
題主的問題可以再修改一下,補充一下說明,也許我可以更有針對性地回答。
你所說的生活,我覺得應該是指工作狀態吧?你所提到的程序員應該是專指PC軟件或者web程序員吧?其實我們嵌入式軟件工程師也是程序員啊。
好,現在回答你的問題:嵌入式 軟件 工程師 的工作狀況是怎樣的,很大程度上取決于你在一個什么樣的公司,與你合作的同事水平怎么樣,公司的技術架構和積累是怎么樣的,項目所采用的方案是怎么樣的。
1. 硬件工程師同事的水平會決定你的工作狀態
如果硬件工程師靠譜,照著demo板改改畫出來的板子,打板回來,焊好元件,燒上demo程序,上電就能正常跑起來。否則,軟件就放假慢慢等著吧。
如果硬件粗心,把線連錯了,漏接了,你也許不得不自己從頭看datasheet,挨個檢查信號,幾天的時間也許就這么過去了。發現問題要幾個小時幾天,解決只需要幾秒鐘或者幾分鐘。問題解決得差不多了,板子也被飛線鋪滿了。
還有一次,我們兩個同事,坐飛機到芯片公司總部出差請求支援,結果被人家發現只是一根排線虛焊了呀,丟死人呀。
后來我長心了,開始軟件調試工作前一定要檢查硬件。
2. 單位早期的系統架構設計技術人員水平會決定你的工作狀態
曾經一家公司,一個while(1)開頭的裸奔系統,帶自己設計的消息機制,帶沒有DC的GUI,還自己擴展了一套中文編碼。在這套系統上有一系列的產品,每個新產品為了縮短開發時間,都沿用已有產品的代碼,又不敢做大的改動,應屆生在上面添加了新的糟糕的代碼,又遺傳到下一個產品中。每個新產品的bug數都在3000左右,軟件開發人員都痛苦無比。這種狀況一直到公司請來一個高水平的CTO,果斷引入uC/OS II 系統,移植MiniGUI,全面采用GBK和Unicode才有所改善。
你想知道后來怎么樣了嗎?后來當然是這套全新的系統又被一幫低水平的程序員給改亂了呀,又有一批新手接過了這套讓人痛苦的歷史包袱啊。
3. 公司財力、領導的眼光和氣魄決定了你的工作狀態
公司有錢,或者領導有決斷,買參考板,買幾萬塊的調試器,買個好用的示波器、邏輯分析儀,不知道能提高多少工作的效率。一幫軟件吭哧吭哧加串口打印,調試幾個星期或一兩個月,問題還不一定能解決,發的工資、浪費的時間、錯過的市場機會,不也是錢嗎?
4.方案公司的方案以及支持力度決定了你的工作狀態
如果采用的芯片比較簡單,尤其早期的芯片,有的還不帶MMU,不能采用linux或者android這樣的高級系統,甚至不能移植uC/OS 這樣的多線程系統,一些像低電檢測這樣的任務實現起來是很別扭的。現在的芯片都強大多了,很多以前在舊平臺上引以為豪的奇技淫巧都不需要了。
不同公司方案的風格也很不一樣。我的總體印象,美國的芯片給你開放的東西很多,你可以做很靈活的定制開發,遇到問題你有能力可以自己嘗試解決。但是如果不是大客戶,支持力度很有限。***的芯片方案基本上把什么就給你做好了,你換個logo做成產品,跟別家打價格戰去吧;但是很多模塊代碼是不開放的,你在上面能做的東西很有限,遇到問題需要上報,然后苦苦地等他們解決,發sdk新版本,也是很讓人頭疼的事。國內的方案接觸過的不多,用過一些小公司的小芯片,參差不齊,大部分給的datasheet顯得非常業余。
現在我的工作基本上都采用linux系統,總體印象就是:
你需要懂的東西非常多:計算機架構,指令集特征,啟動模式,io,i2c,spi總線,bootloader,kernel,rootfs,工具鏈,交叉編譯。
但是你能做的事情其實又很少:你幾乎沒有機會自己寫bootloader,從頭制作整個系統。大部分工作人家都已經替你做好了,你只需要簡單地修改就可以了。
你所能做的工作和PC上軟件開發的差別越來越小,內存越來越大,flash或者sd卡空間越來越大,對內存和存儲空間斤斤計較越來越沒有必要。在嵌入式設備上用python或者其他高級語言開發也越來越不稀奇了。更何況,有的平臺會提供非常方便的模擬器,你幾乎可以將大部分應用邏輯都在模擬器上開發調試好,你有時都會忘了你是為嵌入式設備在開發程序。
-
電子工程師
+關注
關注
252文章
777瀏覽量
95738 -
單片機
+關注
關注
6044文章
44632瀏覽量
639245
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
![](https://file1.elecfans.com/web1/M00/F3/FA/wKgaoWciDI6ABdEhAAJtvu-cw_c556.jpg)
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
![](https://file1.elecfans.com/web2/M00/FF/40/wKgaomahti2AV26dAAMiNIjdnKg435.jpg)
![](https://file1.elecfans.com/web2/M00/FE/5C/wKgaomaaQAGASltQAAbqv2SgV1E642.png)
![](https://file1.elecfans.com/web2/M00/EB/14/wKgaomZXAd-AWEwjAAuV2RdwuSM130.png)
![](https://file1.elecfans.com/web2/M00/E8/59/wKgZomZPBTWAe2iJAAq3ELF_EPE035.png)
嵌入式軟件工程師和硬件工程師的區別?
![](https://file1.elecfans.com/web2/M00/E5/09/wKgZomZB1aqAfoLMAALwKMk88bw153.jpg)
![](https://file1.elecfans.com/web2/M00/DF/FB/wKgZomY1H9uAdzzJAAMwQMmJ0js548.jpg)
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
![](https://file1.elecfans.com/web2/M00/C5/1E/wKgaomXxdsmAENR6AAKEdyutPEU736.jpg)
![](https://file1.elecfans.com/web2/M00/C1/DF/wKgZomXfAbCATSsHAA8xXbkMaK8112.png)
![](https://file1.elecfans.com/web2/M00/C1/46/wKgaomXUeXuAXDwNAAJ_XqvplMU996.jpg)
評論