嵌入式的坑在哪方面?
關注、星標公眾號,直達精彩內容
來源:知乎
整理:韋啟發
在知乎看到的,覺得見解不錯,看完我覺得會對嵌入式有些見解,分享給大家。
今年畢業剛工作半年,稍微寫一下自己的見解。
======================================
嵌入式就個萬金油!干得活可以涉及硬件和軟件!永遠學不完的知識。
嵌入式工程師簡直就是硬件工程師與軟件工程師的合體!別問我是哪一類軟件工程師,反正不是前端、后端、APP、測試、運維。也別問我是什么硬件工程師,電源、單片機、高頻、通信……你會做你就上!給你個嵌入式工程師的頭銜你就是軟件硬件小能手,堪比全棧工程師。
先從硬件說起:
硬件要做一款產品很不容易,要考慮各種方案的選型,而硬件方案的選型可不像移動開發一樣是選Android呢還是iOS,是用Java還是Delphi那么簡單,哦,你問我用什么框架?我還想問框架是什么意思呢!硬件工程師眼中只有電路圖!原理圖!(OS:電路圖和原理圖就是同一種東西好么...)以及這電路圖是否有人實現過。
好了,會看電路圖了,總要做出來給老板看的吧?于是必須會焊接。做嵌入式硬件的絕對離不開主控芯片,不然還叫什么嵌入式工程師啊?所以該芯片的最小系統是要會焊接出來的。
最小系統實現了,那么就可以搭接各種傳感器,往智能硬件方向走;或者移植一個操作系統,往人機界面(UI)方向走。
當然,你也可以到此為止,不去做產品,而是做各種硬件模塊或開發板,再拿出去賣。如果我沒有理解錯,這個叫方案提供商。
「我們公司是賣方案的。」——一個小工程師這么介紹自己的公司。
當然,也有的硬件公司是出售自家生產芯片及模塊,附送自家的SDK(軟件開發包)。我們這些客戶(用戶、工程師、二次開發者)稱這硬件公司為原廠(官方),代碼稱為原廠的代碼(或者官方的代碼)。賣芯片的公司,叫芯片供應商。
我想說的是,還有公司是拿原廠的芯片做最小系統模塊,再賣給我們這些二次開發者(三次開發者)用……像這些賣方案賣芯片的公司,嵌入式硬件工程師最多了!
我喜歡把嵌入式分為四個層次,硬件層、驅動層、系統層和應用層,前面說完了硬件,下面說軟件。
如果某個人在單片機上寫過定時器、數碼管、溫度傳感器的程序,用過UART、SPI、IIC、CAN等通信方式、更厲害的話接觸過藍牙協議棧或者TCP/IP協議棧,稱其為驅動工程師應該沒什么不妥吧?都是底層代碼,雖然有難有易。
系統層。一般個人或小公司是寫不了的,聽說Windows某版本用了300人寫了2年。只有大公司才會想著自己寫系統,比如最近的新聞:華為推自主物聯網操作系統Liteos 對全球免費開放
而我們個人所能做的是把操作系統移植到芯片上去。
另外補充一個知識點:一個操作系統,一般來說有五樣東西:內存管理、進程管理、文件系統、設備硬件接口和網絡通信。在嵌入式領域里,可能會針對不同的應用情況而對系統層進行裁減,比如裁減掉文件系統和網絡通信,只留下內存、進程和硬件接口就可以了。
如果你現在干的活硬件層是ARM芯片、系統層是Linux。
那么就是ARM+Linux嵌入式工程師,但是你以為你是要做上面的活嗎?不!
你只是在ARM+Linux上面修修改改,上面所說的硬件和驅動的活都交給其他人或上游公司做了,但是那些人也可以說是在做嵌入式!
然后呢,安卓本質上不也是Linux么?所以如果你是在做安卓底層開發,安卓APP開發,本質上也是在做嵌入式!而且Android和iOS不是常常相提并論嗎?于是iOS開發也是嵌入式開發了……真是讓人不可思議!
另外,除了ARM+Linux/Android,還有其他的芯片+系統,比如:STM32+uCOS,ARM+WinCE。
按照目前社會對嵌入式這個詞語的理解,可能就在這個范圍內。像我這樣電子專業出身的人,對嵌入式的理解就沒那么狹隘。
我還想說的是:驅動層和系統層這一類的工程師,因為不需要大篇幅的修改而市場需求量少,因為需要閱讀大量的代碼和要有很多Debug經驗而人才稀少。
近年來嵌入式這三個字那么火,但還是一個被培訓機構炒作出來的概念!最重要的還是要回到現實中具體是做什么的!你在這一家公司做嵌入式工程師,可能根本就不能擔任另一家的嵌入式工程師!所以……
嵌入式最大的坑,就是定義未清!
嵌入式定義未清,又被商家炒作,就會有一大堆人趨之若鶩(包括我),接觸之后發覺并不是自己想象的那樣,想退出卻發現自己除了嵌入式其他什么也不會,想去互聯網行業,發現自己HTML、CCS、JavaScript、PHP、Delphi、C#一概不知!
互聯網只要一臺電腦+一個服務器就能賺錢,軟件還是零成本;而嵌入式,你們知道我媽看了我做的畢業設計之安卓手機藍牙遙控三色燈,第一句話說了什么嗎?這屬于制造業嗎?
2015-10-08補充:
后來想了想不能說定義未清,應該說是定義太廣泛。
嵌入式系統在書本上的定義很明確,也很長,具體可查某百科。我的嵌入式老師只用了三個詞語就總結了嵌入式系統的精髓:專用的?可裁剪的?計算機系統。
目前社會上對嵌入式的理解,也就是商家炒作出來的概念:嵌入式=ARM+Linux。可是作為電子專業出身的我,套用老師總結出的概念,我能發現很多東西都屬于嵌入式:MP3、手機、ATM、好記星等等。學嵌入式為什么偏要去學ARM+Linux呢,而且還難!還不一定找的到工作!
所以,如果你是想進入嵌入式行業的人,請把握好自己的學習方向,不要被培訓機構的炒作而迷途。
作者:閼男秀
鏈接:https://www.zhihu.com/question/28111300/answer/64780548
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
-END-
|?整理文章為傳播相關技術,版權歸原作者所有?|
|?如有侵權,請聯系刪除?|
往期好文合集
干貨 | 怎么能學好嵌入式Linux ?
狀態機思路在嵌入式開發中的應用詳解
知乎熱議:嵌入式開發中C++好用嗎?
??最 后??
?若覺得文章不錯,轉發分享,也是我們繼續更新的動力。
5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等!
在公眾號內回復「更多資源」,即可免費獲取,期待你的關注~
總結
以上是生活随笔為你收集整理的嵌入式的坑在哪方面?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天线的起源与发展历史
- 下一篇: 硬核,这个充电宝居然烧煤气!