如果從應用層的應用開發出發,建議先熟悉API函數。如果從應用層的界面開發出發,則建議學習Qt,WinCE或Android等。
但真實的嵌入式開發,熟悉以上還是遠遠不夠的,建議如下學習曲線:
學習Linux操作系統的概念和安裝方法,理解Linux下的基本命令、管理配置和編輯器,包括VI編輯器,GCC編譯器,GDB調試器和 Make 項目管理工具等知識。
第二階段 精通linux下C語言
通過大量編程實例重點學習C語言的高級編程知識,包括函數與程序結構、指針、數組、常用算法、庫函數的使用等知識,另外,還要學習數據結構的基礎內容,包括鏈表、隊列、棧、樹、哈希表、圖等內容。
第三階段 嵌入式Linux應用編程
精通嵌入式Linux下的程序設計,精通嵌入式Linux開發環境,強化對Linux應用開發的理解和編碼調試的能力,包括系統編程、文件I/O、多進程和多線程、網絡編程、GUI圖形界面編程、數據庫。
第四階段 嵌入式入門階段-ARM體系結構
ARM處理器體系結構、編程環境、指令集、尋址方式、調試、匯編和混合編程。ARM的常用接口開發及硬件電路設計基礎(包括IO、串口、看門狗、實時時鐘、SPI、IIC、掃描鍵盤、FLASH操作等),為以后的設備驅動的學習打好基礎。
第五階段 嵌入式高級階段-Linux內核和驅動開發
深入內核細節,了解Linux相關運行機理,為后面的驅動開發打好理論基礎,內容包括內核源碼結構、內存管理、進程管理、中斷管理、系統調用、內核同步、時鐘和定時器管理、信號、調度、進程間通信、文件系統和I/O設備管理等方面的內容。
第六階段 嵌入式硬件開發(學軟件的可以不學,但了解硬件對學嵌入式軟件有更深入的了解,尤其對系統的理解更深入。)
內容包括單片機的學習,電路分析和電路的原理,PCB設計,主要包括Altium Designed,電子設計基礎知識,原理圖初步設計,進階,提高,深入,pcb庫的設計,集成庫的作用和制作,pcb設計初步,PCB設計提高,PCB深入,對FPGA和CPLD系統的相關基礎概念等
第七階段 嵌入式深入階段
變成高手,你還要進一步學習內核和系統,內容包括計算機系統結構和匯編,linux內核編程,linux內核的基礎知識,匯編及保護模式,linux內核體系結構,linux引導程序分析,linux內核代碼分析,linux塊設備驅動程序分析等
第八階段 實踐階段
其實就是循序漸進,先學好基礎理論知識,然后動手試驗,最后總結試驗結果,驗證所學知識并積累經驗
最近在工作上,給做算法的兄弟介紹系統工程師的作用,沒有講明白,大家看看是不是我理解錯了?我的講解:
系統工程師是研究系統的,系統很復雜,但是他理解的系統工程師搞得很雜,沒有深度,就是打雜的,我卻不知如何解釋。
例如:
1. 想實現一個10ms定時讀取某個傳感器的數值的問題,怎么判斷是否能夠達成?
需要考慮系統響應時間,調度機制,各種信號的影響,內存分配等原理,信號量原理,中斷相應,系統調用原理等......
2. nuttx中timer是用signal實現的,請問可以改成中斷方式嗎?一個進程發送了signal,另外一個進程立刻會響應嗎?signal底層實現機制是什么?
3. 系統能否滿足要求?例如,5ms控制精度能達到否?涉及到系統調度,優先級,中斷響應時間等等......,多任務切換......., IO性能,計算瓶頸等
-
嵌入式
+關注
關注
5082文章
19126瀏覽量
305201 -
Linux
+關注
關注
87文章
11304瀏覽量
209503
原文標題:搞嵌入式應用層開發要學習什么?看這里
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論