學習目標通過今天課程的學習,學員能掌握嵌入式Linux交叉開發環境的搭建、交叉編譯工具鏈的使用、u-boot燒寫內核、文件系統、內核的引導和應用程序的調試。
1.嵌入式Linux開發環境構建
1.1 交叉開發環境介紹
1.2 配置主機開發環境
1.3 建立交叉開發環境
1.4 編譯器和二進制工具詳解
1.5 bootloader介紹
1.6 u-boot介紹
【實驗】
1、安裝開發工具
2、配置TFTP網絡服務
3、配置NFS網絡服務
4、引導目標板啟動Linux內核
5、安裝gcc交叉編譯工具鏈
6、u-boot命令練習
7、交叉調試應用程序
學習目標理解嵌入式linux引導程序的原理,掌握如何在基于Cortex-A9 4核心的FS4412硬件平臺上移植u-boot。
2.開發系統引導程序
2.1 u-boot目錄介紹
2.2 u-boot的和配置和編譯
2.3 u-boot啟動代碼分析
2.4 u-boot命令的添加
【實驗】
1、設置u-boot環境變量
2、配置編譯u-boot
3、移植u-boot-2013.01(u-boot-2016)到FS4412開發板
● 支持dm9000網卡、串口
● 支持從eMMC啟動
● 支持eMMC燒寫
● 支持uImage的引導
4、添加u-boot新命令
學習目標熟悉內核的源碼結構和Makefile語法;掌握和內核、驅動模塊編譯相關的原理及方法。
3.配置編譯Linux內核
3.1 Linux內核介紹
3.2 Linux內核特點
3.3 Linux內核源代碼結構
3.4 Linux內核選項解析
3.5 Linux內核編譯鏈接
3.6 內核模塊編譯、使用方法
【實驗】
1、熟悉菜單配置文件的組織結構
2、熟悉內核配置過程選項
3、加入Kconfig新選項
4、編譯開發板所需要的內核
5、在內核中加入自己的字符設備程序
學習目標熟悉內核啟動流程、掌握內核移植的一般方法、分析平臺相關代碼結構、分析設備樹結構,并能夠自己動手移植Linux3.14內核支持Cortex-A9 4核心FS4412開發板。
4.移植Linux內核
4.1 Linux內核源碼Makefile分析
4.2 Linux內核移植平臺相關代碼分析
4.3 動手修改Linux內核源代碼
4.4 分析編譯過程錯誤和宏定義的關系
4.5 Linux啟動過程代碼分析
4.6 Linux-3.14內核平臺設備結構介紹
4.7 Linux-3.14內核設備樹結構介紹
【實驗】
1、配置編譯高版本的Linux內核
2、移植Linux-3.14內核支持FS4412開發板
● 添加網卡驅動
● 添加eMMC驅動
● 添加SD卡驅動
● 添加LCD驅動
● 添加USB驅動
3、分析解決移植過程中出現的錯誤
學習目標掌握內核調試的常用方法和根文件系統的制作。
5.調試Linux內核
5.1 Linux內核調試概述
5.2 Linux內核的打印函數
5.3 Linux內核啟動過程錯誤分析
5.4 解析oops信息
5.5 常用調試方法和工具
6.集成部署Linux文件系統
6.1 Linux根文件系統制作(busybox工具)
6.2 文件系統和存儲設備的選擇
6.3 通過ramdisk掛載根文件系統
6.4 部署EXT2文件系統的過程
【實驗】
1、通過基本調試手段解決內核啟動過程錯誤
2、分析、處理oops錯誤
3、制作基本的根文件系統
4、通過ramdisk掛載根文件系統
5、制作EXT2鏡像并測試
6、添加udev支持