我和我的同事,也自稱為嵌入式工程師,不過只搞軟體,畫板子焊元件這些活兒我不會做,能用個示波器萬用表啥的,
芯片方面,沒有用過單片機,一開始作業接觸的就是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或者其他高級語言開發也越來越不稀奇了,更何況,有的平臺會提供非常方便的模擬器,你幾乎可以將大部分應用邏輯都在模擬器上開發除錯好,你有時都會忘了你是為嵌入式設備在開發程式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289807.html
標籤:其他
