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