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


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師


從單片機初學(xué)者邁向單片機工程師



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達半導(dǎo)體

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技

當(dāng)硬件工程師穿越到霸總?。?以他性格肯定忍不到第二集? #硬件工程師 #電路設(shè)計 #晶振 #揚興科技

當(dāng)你的工程師朋友失聯(lián)時,別氣,ta真的是在忙工作 #搞笑 #電子愛好者 #硬件工程師 #晶振 #揚興科技



評論