1. gzyueqian
      13352868059

      嵌入式培訓(xùn)學(xué)校分享:嵌入式學(xué)習(xí)路線推薦

      更新時間: 2018-11-27 15:19:39來源: 武漢嵌入式培訓(xùn)瀏覽量:5965

          知識要求:

          看懂電路圖
          看懂芯片手冊
          有編寫,移植驅(qū)動的能力
          懂內(nèi)核的實現(xiàn)機(jī)制
          懂C語言,C++, JAVA等

          嵌入式 linux 學(xué)習(xí)路線


          嵌入式 linux 系統(tǒng)里含有bootloader、內(nèi)核、驅(qū)動程序、根文件系統(tǒng)、應(yīng)用程序(C/C++、Android)這5大塊??偨Y(jié)嵌入式Linux+Android系統(tǒng)包含以下部分內(nèi)容:

          ARM
          Bootloader
          Linux內(nèi)核
          驅(qū)動程序
          根文件系統(tǒng)
          Android Framework
          使用C/C++編寫的應(yīng)用程序
          Android APP

          1. ARM
          學(xué)習(xí)硬件知識的目的在于能看懂原理圖,看懂通信協(xié)議,看懂芯片手冊。這里推薦一些書:
          《微機(jī)原理》,可以理解一個計算機(jī)的組成原理
          《數(shù)字電路》,掌握一些邏輯運算,理解各種門電路的原理
          《ARM體系結(jié)構(gòu)與編程》,對ARM的運行原理解釋的很到位
          我相信看完這些書對ARM和硬件知識的掌握足夠了,對于初學(xué)者只想淺嘗輒止的了解,我推薦之前的一個chat《一小時教你學(xué)會 ARM 架構(gòu)》。
          2. Bootloader
          bootloader有很多種,vivi、u-boot等等,常用的是u-boot。 u-boot功能強(qiáng)大、源碼比較多,對于編程經(jīng)驗不豐富、閱讀代碼經(jīng)驗不豐富的人,一開始可能會覺得難以掌握。但是,u-boot的主要功能就是:啟動內(nèi)核。它涉及:讀取內(nèi)核到內(nèi)存、設(shè)置啟動參數(shù)、啟動內(nèi)核。按照這個主線,我們嘗試自己從零編寫一個bootloader,這個程序相對簡單,可以讓我們快速理解u-boot主要功能的實現(xiàn)。相關(guān)內(nèi)容有:

          u-boot分析之編譯體驗
          u-boot分析之Makefile結(jié)構(gòu)分析
          u-boot分析之源碼第1階段
          u-boot分析之源碼第2階段
          u-boot分析之u-boot命令實現(xiàn)
          u-boot分析_uboot啟動內(nèi)核
          3. Linux內(nèi)核

          內(nèi)核在工作中的作用可以說是潛移默化的,雖然看起來沒有直接性的工作項目,但是走向架構(gòu)師的必經(jīng)之路。

          Linux總線,設(shè)備,驅(qū)動模型的探究
          Linux設(shè)備樹的深入理解
          Linux的啟動流程
          Linux設(shè)備和驅(qū)動的相遇
          動手定制一個開發(fā)板

          推薦《linux內(nèi)核設(shè)計與實現(xiàn)》。
          4. 驅(qū)動程序
          驅(qū)動程序=Linux驅(qū)動程序軟件框架+ARM開發(fā)板硬件操作
          有了ARM的知識和閱讀數(shù)據(jù)手冊電路圖的能力,再加上Linux內(nèi)核的運行原理,基本上寫驅(qū)動就是API調(diào)用的體力活了。這里推薦宋寶華老師的《linux設(shè)備驅(qū)動開發(fā)詳解》。后續(xù)關(guān)于驅(qū)動的內(nèi)容暫定如下:

          LCD驅(qū)動程序
          觸摸屏驅(qū)動程序
          USB驅(qū)動程序
          NAND FLASH驅(qū)動程序
          NOR FLASH驅(qū)動程序
          網(wǎng)卡驅(qū)動程序
          聲卡驅(qū)動程序

          5. 根文件系統(tǒng)
          在開發(fā)應(yīng)用程序時,也需要搭建文件系統(tǒng),把各種庫、配置文件放進(jìn)去; 在發(fā)布產(chǎn)品時,你還需要修改配置文件,使得產(chǎn)品可以自動運行程序; 甚至你想實現(xiàn)插上U盤后自動啟動某個程序,這也要要修改配置文件; 這一切,都需要你理解根文件系統(tǒng)的構(gòu)成,理解內(nèi)核啟動后是根據(jù)什么配置文件來啟動哪些應(yīng)用程序。根文件系統(tǒng)相對比較簡單,可以根據(jù)以下路線學(xué)習(xí):

          Linux根文件系統(tǒng)目錄結(jié)構(gòu)
          移植Busybox
          init進(jìn)程介紹及用戶程序啟動過程
          使用glibc庫
          制作/使用文件系統(tǒng)映象文件

          嵌入式應(yīng)用開發(fā)
          C語言編程基礎(chǔ)
          嵌入式開發(fā)基礎(chǔ)(Linux、Shell命令、VI編輯器、GCC、Makefile、交叉開發(fā)環(huán)境構(gòu)建)
          嵌入式Linux系統(tǒng)編程(shell編程、文件編程、串口編程、進(jìn)程編程、線程編程、網(wǎng)絡(luò)編程)
          嵌入式底層系統(tǒng)開發(fā)
          ARM體系結(jié)構(gòu)(Arm體系|指令、Thumb指令、匯編程序設(shè)計、裸機(jī)程序開發(fā))
          Linux內(nèi)核移植(bootloader、內(nèi)核配置、文件系統(tǒng))
          驅(qū)動程序開發(fā)(驅(qū)動模型架構(gòu)、字符設(shè)備驅(qū)動、塊設(shè)備驅(qū)動、網(wǎng)絡(luò)驅(qū)動)
          嵌入式圖形應(yīng)用開發(fā)
          C++語言編程基礎(chǔ)
          QT編程開發(fā)(Qt開發(fā)基礎(chǔ)|布局與控件|繪圖|事件|網(wǎng)絡(luò)通訊|數(shù)據(jù)庫|移植)

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 尤物福利在线观看永久视频 | 日韩欧美一区二区三区久久婷婷 | 在线观看国产日韩亚洲中 | 亚洲男女Av中文字幕 | 日本一本之道高清不卡免 | 五月丁香婷中文 |