一個小碼農對嵌入式的理解

 

 

今年畢業剛工做半年,稍微寫一下本身的看法。前端

嵌入式工程師簡直就是硬件工程師與軟件工程師的合體!別問我是哪一類軟件工程師,反正不是前端、後端、APP、測試、運維。也別問我是什麼硬件工程師,電源、單片機、高頻、通訊……你會作你就上!給你個嵌入式工程師的頭銜你就是軟件硬件小能手,堪比全棧工程師。後端

 

先從硬件提及:電路圖!原理圖!(OS:電路圖和原理圖就是同一種東西好麼...)以及這電路圖是否有人實現過。服務器

好了,會看電路圖了,總要作出來給老闆看的吧?因而必須會焊接。作嵌入式硬件的絕對離不開主控芯片,否則還叫什麼嵌入式工程師啊?因此該芯片的最小系統是要會焊接出來的。網絡

最小系統實現了,那麼就能夠搭接各類傳感器,往智能硬件方向走;或者移植一個操做系統,往人機界面(UI)方向走。運維

固然,你也能夠到此爲止,不去作產品,而是作各類硬件模塊或開發板,再拿出去賣。若是我沒有理解錯,這個叫方案提供商。ide

固然,也有的硬件公司是出售自家生產芯片及模塊,附送自家的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。但是做爲電子專業出身的我,套用老師總結出的概念,我能發現不少東西都屬於嵌入式:MP三、手機、ATM、好記星等等。學嵌入式爲何偏要去學ARM+Linux呢,並且還難!還不必定找的到工做!

因此,若是你是想進入嵌入式行業的人,請把握好本身的學習方向,不要被培訓機構的炒做而迷途。

 

[1] http://www.sohu.com/a/15795557_115186

相關文章
相關標籤/搜索