一个小码农对嵌入式的理解
今年畢業剛工作半年,稍微寫一下自己的見解。
嵌入式工程師簡直就是硬件工程師與軟件工程師的合體!別問我是哪一類軟件工程師,反正不是前端、后端、APP、測試、運維。也別問我是什么硬件工程師,電源、單片機、高頻、通信……你會做你就上!給你個嵌入式工程師的頭銜你就是軟件硬件小能手,堪比全棧工程師。
先從硬件說起:電路圖!原理圖!(OS:電路圖和原理圖就是同一種東西好么...)以及這電路圖是否有人實現過。
好了,會看電路圖了,總要做出來給老板看的吧?于是必須會焊接。做嵌入式硬件的絕對離不開主控芯片,不然還叫什么嵌入式工程師啊?所以該芯片的最小系統是要會焊接出來的。
最小系統實現了,那么就可以搭接各種傳感器,往智能硬件方向走;或者移植一個操作系統,往人機界面(UI)方向走。
當然,你也可以到此為止,不去做產品,而是做各種硬件模塊或開發板,再拿出去賣。如果我沒有理解錯,這個叫方案提供商。
當然,也有的硬件公司是出售自家生產芯片及模塊,附送自家的SDK(軟件開發包)。我們這些客戶(用戶、工程師、二次開發者)稱這硬件公司為原廠(官方),代碼稱為原廠的代碼(或者官方的代碼)。賣芯片的公司,叫芯片供應商。
我想說的是,還有公司是拿原廠的芯片做最小系統模塊,再賣給我們這些二次開發者(三次開發者)用……像這些賣方案賣芯片的公司,嵌入式硬件工程師最多了!
我喜歡把嵌入式分為四個層次,硬件層、驅動層、系統層和應用層,前面說完了硬件,下面說軟件。
如果某個人在單片機上寫過定時器、數碼管、溫度傳感器的程序,用過UART、SPI、IIC、CAN等通信方式、更厲害的話接觸過藍牙協議棧或者TCP/IP協議棧,稱其為驅動工程師應該沒什么不妥吧?都是底層代碼,雖然有難有易。
系統層。一般個人或小公司是寫不了的,聽說Windows某版本用了300人寫了2年。只有大公司才會想著自己寫系統,比如最近的新聞:華為推自主物聯網操作系統Liteos 對全球免費開放
另外補充一個知識點:一個操作系統,一般來說有五樣東西:內存管理、進程管理、文件系統、設備硬件接口和網絡通信。在嵌入式領域里,可能會針對不同的應用情況而對系統層進行裁減,比如裁減掉文件系統和網絡通信,只留下內存、進程和硬件接口就可以了。
如果你現在干的活硬件層是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呢,而且還難!還不一定找的到工作!
所以,如果你是想進入嵌入式行業的人,請把握好自己的學習方向,不要被培訓機構的炒作而迷途。
[1]?http://www.sohu.com/a/15795557_115186
轉自:
https://www.zhihu.com/question/28111300/answer/64780548
掃碼或長按關注
回復「?加群?」進入技術群聊
總結
以上是生活随笔為你收集整理的一个小码农对嵌入式的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Activiti6自学之路(一)—— A
- 下一篇: 计算机专业的学生该选择日后的人生道路?继