嵌入式即嵌入式系統,IEEE(美國電氣和電子工程師協會)對其定義是用于控制、監視或者輔助操作機器和設備的裝置,是一種專用的計算機系統;國內普遍認同的嵌入式系統定義是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統;從應用對象上加以定義來說,嵌入式系統是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。
嵌入式系統作為裝置或設備的一部分,它是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。
FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
FPGA是一門技術,嵌入式是一種應用。
FPGA的開發就是邏輯實現+約束+綜合+仿真;嵌入式的開發流程是編碼+編譯+調試
ARM的就業機會很多,如果是偏軟,一般是系統工程師,薪酬一般般。做應用就和arm本身沒太大關系。優點是就業容易。fpga就比較復雜,如果走hdl的路子,分為算法和控制。控制比如做多傳感器的同時采集之類的,充分利用并行能力做到同步采集,這個收入一般般,就業渠道也一般般。算法的工資會比較有競爭力,技術含量也比控制高得多。比較適合碩士學歷。
FPGA崗位非常有限,除了一線城市少數大廠,基本沒有其它崗位(小公司你也看不上)。如果選擇了FPGA,就只能在有限的幾個公司混了。而且FPGA相對于嵌入式linux更需要懂硬件,甚至有時候要親自動手搞點硬件。但是好處就是門檻高,可替代性差。
至于嵌入式linux,崗位多門檻也較為低一點。但是想更正貼主的一個思維:不管是嵌入式linux還是純軟件,開發語言遠遠不止c/c++,由于某些原因,c系列的語言用的越來越少,現在用的更多的反而是go java rust python lua之類的。嵌入式其實跟純linux軟件并沒有多大區別,只是編譯的時候要做一下交叉編譯而已。門檻略高于純軟,但是低于FPGA。
所以總結下來,嵌入式開發較FPGA還發來說前期入門門檻較低,成長較快,對硬件基礎要求不高,適合喜歡軟硬結合的同學選擇的發展道路;fpga是用來進行數字電路設計與仿真,對數字電路底蘊要求較高,前期入門較難,成長起來較慢,學習周期會很長。所以對于大多數人來說嵌入式開發是一個不錯的職業方向選擇。