從事嵌入式開發,因爲嵌入式是軟硬件結合的,所以要熟練掌握開發相關內容並不容易,能夠參考下面這個學習曲線:
一、熟練使用Linux操做系統:學習Linux操做系統的概念和安裝方法,理解Linux下的基本命令、管理配置和編輯器,包括VI編輯器,GCC編譯器,GDB調試器和Make項目管理工具等知識。linux
二、精通linux下C語言:經過大量編程實例重點學習C語言的高級編程知識,包括函數與程序結構、指針、數組、經常使用算法、庫函數的使用等知識,另外,還要學習數據結構的基礎內容,包括鏈表、隊列、棧、樹、哈希表、圖等內容。
三、嵌入式Linux應用編程:精通嵌入式Linux下的程序設計,精通嵌入式Linux開發環境,強化對Linux應用開發的理解和編碼調試的能力,包括系統編程、文件I/O、多進程和多線程、網絡編程、GUI圖形界面編程、數據庫。
四、嵌入式入門階段-ARM體系結構:ARM處理器體系結構、編程環境、指令集、尋址方式、調試、彙編和混合編程。ARM的經常使用接口開發及硬件電路設計基礎(包括IO、串口、看門狗、實時時鐘、SPI、IIC、掃描鍵盤、FLASH操做等),爲之後的設備驅動的學習打好基礎。
五、嵌入式高級階段-Linux內核和驅動開發:深刻內核細節,瞭解Linux相關運行機理,爲後面的驅動開發打好理論基礎,內容包括內核源碼結構、內存管理、進程管理、中斷管理、系統調用、內核同步、時鐘和定時器管理、信號、調度、進程間通訊、文件系統和I/O設備管理等方面的內容。
六、嵌入式硬件開發:內容包括單片機的學習,電路分析和電路的原理,PCB設計,主要包括AltiumDesigned,電子設計基礎知識,原理圖初步設計,進階,提升,深刻,pcb庫的設計,集成庫的做用和製做,pcb設計初步,PCB設計提升,PCB深刻,對FPGA和CPLD系統的相關基礎概念等(主攻軟件的能夠省略)。
七、嵌入式深刻階段:內容包括計算機系統結構和彙編,linux內核編程,linux內核的基礎知識,彙編及保護模式,linux內核體系結構,linux引導程序分析,linux內核代碼分析,linux塊設備驅動程序分析等
八、實踐階段:其實就是按部就班,先學好基礎理論知識,而後動手試驗,買個開發板本身搗鼓吧,最後總結試驗結果,驗證所學知識並積累經驗。
做爲「軟硬兼施」的嵌入式開發,要求你們不只要了解較底層軟件的工做過程和工做原理,在軟件開發的專業水平上也須要充分考慮軟件設計的時間和空間效率,這樣才能設計出高性能嵌入式程序。所以在粵嵌學習的過程當中,要知其然,更要知其因此然。算法