按目前這個IT市場行情來給大家講解的話,隨著IT技術的高速發(fā)展和不斷的更新使得互聯(lián)網(wǎng)開始逐漸步入物聯(lián)網(wǎng)的科技時代。物聯(lián)網(wǎng)(物聯(lián)網(wǎng)的目的則是讓所有的物品都具有計算機的智能但并不以通用計算機的形式出現(xiàn),并把這些物品與網(wǎng)絡連接在一起),可以說嵌入式開發(fā)技術應用為,廣泛的領域之一。
很多人以為搞嵌入式就是隨便找本書看看,借鑒書本上的內(nèi)容在電腦上編寫幾個程序就完事兒了,但事實并非如此,其實嵌入式的門檻還是比較高的,但只要我們找到合適的應對方法,同樣可以很好地掌握所學知識和相關內(nèi)容。其實嵌入式只是一個籠統(tǒng)的概念,它是一門交叉性比較強的技術,包含了電子、計算機、接口技術、軟件工程、系統(tǒng)工程等技術。現(xiàn)在的嵌入式技術主要分這么幾塊:arm是目前的嵌入式技術, 另外還有單片機、DSP、CPLD和FPGA也屬于嵌入式領域的技術。
ARM嵌入式方面的工作可以分為:嵌入式硬件、嵌入式系統(tǒng)、嵌入式驅動、嵌入式軟件這四個工作類型。其中嵌入式硬件是和底層電路相關的,需要完成設計整個系統(tǒng)電路原理圖和pcb的layout工作,這個不僅僅是需要模電和數(shù)電基礎,還需要有豐富的電路設計經(jīng)驗及pcb layout經(jīng)驗才行的,硬件又可以細分成兩個工作:硬件工程師和layout工程師,硬件工程師負責硬件芯片選型和硬件工程設計。layout工程師負責PCB板的繪制,一般都是四層以上的板子,而且好要考慮到高速串擾等問題。所以說嵌入式硬件沒有5-6年的經(jīng)驗是很難勝任的。
如果想做系統(tǒng)和驅動方面的工作,模、數(shù)電知識也都必須掌握一些,你得了解底層芯片的工作原理才能把驅動和系統(tǒng)跑起來,arm的匯編指令集是必須掌握的,因為初始化代碼都是用匯編寫的。另外還需要知道一些總線的知識,例如:I2C、SPI、SATA、串口、USB等,然后還要對Linux系統(tǒng)架構比較熟悉,比如它內(nèi)核配置選項、內(nèi)核驅動結構、啟動過程、還有它的文件系統(tǒng)配置等等,還有就是C語言功底扎實,因為Linux以及bootloader都是用C++寫的,你必須先能看懂才能去移植它。其實bootloader就是把arm當單片機去使用了,如果你有單片機開發(fā)的經(jīng)驗就更有利于你去理解和移植了。
如果是嵌入式軟件就比較簡單了,就完全和底層絕緣了,只需要會用Linux的api進行編程就可以了,再掌握一些編程方法,如:多進程、多線程,socket編程,及管道、信號量、共享內(nèi)存等同步機制,然后再掌握一下QT及數(shù)據(jù)庫的編程就基本上夠用了。你想往哪方面發(fā)展就學習對應的技能就可以了,反正技多不壓身,多學點對自己以后的發(fā)展也有好處。