如果我們把嵌入式這個行業(yè)分為上游和下游,那我的苦逼生活更側(cè)重下游部分,主要是購買芯片商的方案,利用原廠提供的參考設(shè)計進行應(yīng)用開發(fā),恰好答主畢業(yè)后在半導(dǎo)體公司待了兩年,我來補充另外一部分。
半導(dǎo)體公司作為嵌入式行業(yè)的上游,很大一部分的人是做芯片本身(前端、后端、測試),當然由于需要給芯片做參考設(shè)計,因此半導(dǎo)體公司同樣也會存在嵌入式開發(fā)。
我們的主要工作是根據(jù)芯片的應(yīng)用場景給客戶提供固件以及SDK,在SDK中修復(fù)各種芯片的問題(比如不同批次,體質(zhì)的差異,本身的bug,幫助客戶解決問題(這有點像是FAE)。另外你手上拿到的datasheet, programming guide有可能也是我們寫的。
嵌入式的開發(fā)部分基本相同,由于能獲取到芯片的一手資料,一些更底層的驅(qū)動,bootloader,一般是我們內(nèi)部完成,另外除了要和硬件工程師合作還要和芯片設(shè)計的同事溝通, 因為有時候除了板子不對之外,也可能是踩到了芯片的bug.
題主主要問我們的生活是什么樣子的,我感覺嵌入式行業(yè)大家的生活都差不多吧,我是實現(xiàn)feature的時間和debug的時間對半開,另外測試也要占用我一部分時間。長期項目是維護SDK, 短期項目比如做一個JTAG高速下載器,做一些內(nèi)部調(diào)試用的工具。
嵌入式系統(tǒng)工程師。我來說說我一天是怎么過的吧。
08:20 起床,洗澡,穿衣服
08:40 開車去公司
09:00 到達公司,項目經(jīng)理主持開早會,說說項目進度,再問問我們有什么需要
09:20 開完會。沖杯咖啡,一邊吃早飯,一邊查昨晚歐洲和中國分公司同事發(fā)來的郵件
09:40 開始正式工作。最近比較忙,剛發(fā)布的軟件有好多bug,check out,慢慢開始找原因
11:00 某個項目討論會,電話會議,各種撕逼略過不表。
12:00 和同事吃午飯+交流各種小道消息去。有時候在公司一樓的餐廳吃,有時候出去吃
13:00 吃飯回來,刷會微博和知乎。
13:20 繼續(xù)debug。期間和項目經(jīng)理討論了下個release的需求文檔
16:00 終于找到問題了,去實驗室里做測試
17:00 該下班了。不過測試沒做完啊!只有加班了
18:00 測試完成,bug修復(fù),check in,寫開發(fā)日志和故障分析
18:30 下班回家,路過商店買點菜
19:00 做飯,吃飯,看看視頻
21:00 去游泳館游泳,再不多健健身就要跪了
22:00 游完泳回家,最近在補操作系統(tǒng)方面的知識(上學(xué)時候沒學(xué)好傷不起啊),下了伯克利的CS162課件和Nachos,還在熟悉中
24:00 睡覺。想著這生活實在是太TM無聊了。
我真不知道自己算是做什么的了,反正芯片代碼是自己一行行寫的,寫完芯片又要自己一行行寫代碼和腳本做仿真,寫完仿真自己一行行寫約束出fpga工程做原型驗證,寫完fpga工程又自己一行行寫軟件底層的驅(qū)動,包括芯片的初始化代碼和各種外設(shè)控制的驅(qū)動程序,在我的手里永遠沒有一樣?xùn)|西可以確定是ready的,所以但凡出了一個問題,首先我要做的就是確認這個問題是芯片設(shè)計寫錯了,還是fpga工程約束沒弄好,還是板子上的連接不可靠,還是軟件的驅(qū)動沒寫對。
好多人說日常工作經(jīng)常就是和同事相互扯皮,你們真幸運,以上問題不管我遇到哪一個都是我一個人的鍋,因為全都是我一個人串起來的,到這個大的流程基本跑通之前,其他同事都還無法全面參與分擔(dān)我的工作。所以我只求早點分析出原因搞定問題可以繼續(xù)往下推進。日常我的桌子旁邊總是有各種示波器,開發(fā)板,萬用表,其實我更喜歡芯片設(shè)計出問題,因為找原因快狠準,硬件不穩(wěn)定的情況debug太痛苦了。
我曾經(jīng)為了一個電源不穩(wěn)定的原因找了2個禮拜的問題,都要崩潰了。我感覺做純軟件開發(fā)的人應(yīng)該遇不到這些惡心人的麻煩。
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68556
發(fā)布評論請先 登錄
相關(guān)推薦
評論