歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 《嵌入式Linux定向學習》課程大綱

《嵌入式Linux定向學習》課程大綱

日期:2017/2/28 16:28:28   编辑:Linux教程

第一階段適合Linux開發零基礎學員,目的是掌握嵌入式Linux應用開發基本技能,能編寫實際有用的嵌入式Linux應用軟件;第二階段適合已經具備嵌入式Linux基本開發能力的學員,目的是掌握嵌入式Linux系統移植關鍵技術(BootLoader、Kernel、根文件系統、QT、Android等);第三階段適合已經具備嵌入式Linux基本開發能力的學員,目的是掌握嵌入式Linux內核/驅動開發技術(按鍵加LED控制、LCD設備、觸摸屏設備、網卡設備、NandFlash設備、攝像頭設備等驅動)。

第一階段(5周)《嵌入式Linux應用開發》

本階段實訓課程針對計算機、電子類相關專業,嵌入式Linux開發零基礎學員量身設計,該課程是嵌入式Linux應用開發的入 門課程,也是嵌入式Linux工程師必須要掌握的基本技能。本階段的學習目標:

√ 掌握Linux下Vi/GCC/GDB/Makefile等常用開發工具

√ 掌握Linux下的指針、結構體、數據結構等編程技能

√ 掌握嵌入式Linux系統下的文件操作編程

√ 掌握嵌入式Linux系統下的網絡應用編程

√ 掌握嵌入式Linux系統下的串口應用編程

√ 掌握嵌入式Linux系統下IPC編程

√ 掌握嵌入式Linux系統下的C++開發

√ 獨立完成一個嵌入式Linux應用工業控制應用開發項目


一、Linux開發環境

熟悉Linux系統的安裝、常用命令、SHELL編程,掌握Linux下Vi/GCC/GDB/Makefile等常用開發工具,理解編譯和鏈接的過程,區分靜態鏈接/靜態庫與動態鏈接/動態庫各自的優缺點。

C語言的嵌入式開發強化

深入學習嵌入式開發中應用C語言所需要掌握的重點和難點,包括指針(尤其是字符串指針、函數指針等疑難點)、內存
分配(分清堆、棧和全局內存,理解堆、棧和棧幀的工作原理)、位運算、結構體和聯合體等,並結合重要的數據結構知識,如鏈表、隊列、樹等來講解C語言。熟悉Linux下所用的AT&T匯編
語言

二、系統高級C編程

掌握Linux系統環境中的高級C語言編程,包括進程與線程、進程間通信(管道、命名管道、共享內存、消息隊列、信號
等)、文件I/O編程、串口編程、網絡編程(包括TCP/IP協議、socket編程、HTTP協議和WEB服務器編程等)。

三、C++語言的嵌入式開發強化

掌握嵌入式開發中所需要掌握的C++的重點和難點,包括構造函數/析構函數與內存管理、繼承與虛函數、C++對象模型、 面向對象分析與設計(OOD)及設計模式基礎知識等。

四、項目開發實踐

獨立完成一個嵌入式Linux應用開發項目,基於Linux 2.6平台,該項目在開課後提前布置給學員,綜合了第一階段學習
內容中的各個要點,學員在學習過程中就可以陸續實現該項目。通過該項目的實現情況,可以衡量學員掌握嵌入式Linux應用開發的實際水平。

第二階段(6周)《嵌入式Linux系統移植》

本階段實訓課程針對計算機、電子類相關專業,並且已經掌握第一階段內容的學員,通過該課程學習使得學員能夠掌握嵌入式Linux系統移植與開發的核心內容。
本階段學習目標:

√ 掌握ARM體系結構,基於X86/ARM平台下的Linux內核升級

√ 掌握U-boot、Linux內核的嵌入式平台移植

√ 掌握根文件系統概念,學會移植Cramfs/Yaffs文件系統

√ 掌握移植Qt/Embedded GUI庫的移植與嵌入式GUI編程

√ 掌握Android軟件平台的移植與軟件開發

√ 獨立完成一個實際移植項目,包括U-boot、kernel,根文件系統以及GUI庫移植

具體內容安排

一、ARM體系結構

掌握ARM體系結構介紹及其基本編程方法ARM指令,包括ARM體系處理器結構,指令分類寄存器,尋址方式、匯編指令集
及偽指令、存儲系統、異常中斷處理、匯編語言與C語言混合編程等知識。

二、Bootloader移植與開發

掌握如何移植U-boot到ARM平台,並掌握U-boot的具體工作原理與應用;同時通過學習Bootloader的工作原理,學習如
何開發用於ARM的簡單Bootloader。

三、內核移植

基於X86/ARM平台升級Linux內核,包括配置、編譯、安裝Linux內核。Linux內核配置,內核編譯和安裝Linux內核是嵌 入式Linux系統移植工程師必須要掌握的基本技能。本課程通過實際操作使學員完全掌握升級Linux內核技能。移植Linux 2.6 內核到ARM平台。

四、根文件系統移植

根文件系統概念,移植Jffs2文件系統。根文件系統是嵌入式Linux的重要組成部分,Jffs2文件系統是被廣泛應用於嵌
入式Linux系統的一種文件系統。本課程不僅要求學員理解根文件系統的概念,而且要掌握移植Jffs2文件系統的方法。

五、Qt/Embedded移植與開發

掌握如何移植Qt/Embedded
GUI庫到ARM平台,深入學習應用Qt/Embedded進行嵌入式GUI開發的要點,包括信號與槽、對
象模型、事件機制、國際化、進程間通信等,並應用Qt/Embedded完成一個嵌入式GUI開發的實踐項目。Qt/Embedded是基於Qt的目前最流行的嵌入式GUI和應用程序開發的工具包,它可運行多
種嵌入式設備上基於C++進行開發,主要運行在嵌入式Linux系統上,並且需要C++編譯器的支持,並為嵌入式應用程序提供Qt的標准API。本課程要求學員能獨立移植Qt/Embedded庫到嵌入 式Linux平台。

六、Android移植與開發

移植掌握Android軟件平台的移植,並熟悉Android平台的框架、掌握Android平台編程的基本概念與要點,並開發基於 Android的實踐項目。Android 是Google開發的基於Linux平台的開源手機平台操作系統。,是目前最熱門的嵌入式開發的研究領域,它包括操作系統、用戶界面和應用程序等軟件,而且不存
在任何以往阻礙移動產業創新的專有權障礙。Android平台是現在和將來手機操作系統的發展方向之一。
本課程要求學員能獨立移植Android軟件到嵌入式Linux平台。包括摩托羅拉、三星、 LG、T-Mobile、中國移動等在內的各大廠商和運行商都正在展開Android的研發工作。

七、項目開發實踐

完成一個完整的實際移植項目,基於ARM9+Linux 2.6平台,包括U-boot、kernel,根文件系統以及GUI庫移植。該項目
在開課後提前布置給學員,學員在學習過程中就可以陸續實現該項目,通過該項目的實現情況,可以衡量學員掌握嵌入式Linux系統移植的實際水平。

第三階段(6周)《嵌入式Linux驅動/內核開發》

嵌入式Linux內核驅動開發第一品牌

本階段實訓課程針對計算機、電子類相關專業,已經掌握嵌入式Linux應用開發以及熟悉嵌入式Linux系統移植 的學生。通過該課程學習,

至少能掌握以下核心技能:

√ 掌握Linux內核模塊、內核Makefile、Kconfig的組成原理;

√ 掌握Linux設備驅動模型、Linux中斷子系統實現原理;

√ 掌握Linux內核打印調試技術和KDB調試技術;

√ 學會看懂芯片手冊(datasheet)、電路原理圖;

√ 獨立編寫字符設備驅動:編寫基於ARM的GPIO驅動控制按鍵、LED等外部設備;

√ 獨立編寫基於ARM芯片Framebuffer設備驅動、觸摸屏設備驅動;

√ 獨立編寫基於ARM芯片NandFlash芯片驅動程序;

√ 獨立編寫基於ARM芯片DM9000網卡驅動程序;

√ 完成一個實際應用的ARM嵌入式Linux系統的ov9650攝像頭設備驅動開發項目,ov9650攝像頭以被廣泛應用與安防監控、手機攝像頭等領域,屬於典型的嵌入式設備
驅動。

具體內容安排:

一、Linux驅動/內核開發基礎

掌握Linux內核開發的基礎知識,包括內核/驅動開發的特點(如不能訪問C庫、沒有內存保護、同步與並發等),基本
的內核調試技術(printk, oops, gdb/kdb/kgdb等),基於Linux內核的打印調試技術和KDB調試技術。Linux內核調試是內核/驅動開發人員必須要掌握的基本技能。本課程要求學員熟練 Linux內核的多種調試技術模塊的開發、編譯、加載及卸載,Linux設備驅動模型,驅動程序與硬件、內核(通過虛擬文件系統)及應用程序(通過系統調用)如何交互。

二、字符設備驅動開發

ARM芯片的GIPO控制驅動實現,基於嵌入式Linux2.6內核的字符設備驅動開發,Linux中斷子系統的實現過程。針對具體
的實際應用字符設備驅動進行編程學習。本課程要求學員掌握Linux字符設備驅動開發的基本知識,能夠獨立編寫控制��件外設的字符設備驅動程序。

三、Framebuffer驅動、觸摸屏驅動開發

ARM嵌入式Linux下Framebuffer驅動開發,針對嵌入式設備上的LCD驅動進行編程學習,觸摸屏設備驅動的代碼實現。本
課程要求學員掌握Linux的Framebuffer設備驅動、觸摸屏設備驅動開發的基本知識,能夠獨立編寫LCD顯示設備、觸摸屏驅動程序。

四、塊設備驅動開發

基於ARM嵌入式Linux2.6內核的塊設備驅動開發,針對具體的實際應用塊設備驅動(NandFlash設備驅動)進行編程學習
,掌握Nandflash控制器的硬件接口。本課程要求學員掌握Linux塊設備驅動開發的基本知識,能夠獨立編寫塊設備驅動程序。

五、網絡設備驅動開發

基於ARM嵌入式Linux2.6內核的網絡設備驅動開發,針對具體的實際應用網卡設備(DM9000網卡芯片)驅動進行編程學
習,學習TCP/IP協議棧與網絡設備驅動的交互關系、網絡數據包從物理層到應用層的數據流程。本課程要求學員掌握Linux網絡設備驅動開發的基本知識,能夠獨立編寫網絡設備驅動程序。

六、項目開發實踐

完成一個應用廣泛的實際驅動開發項目,基於ARM9+Linux 2.6平台,實現ov9650攝像頭設備驅動程序,編寫測試和拍照
攝像頭應用程序。該項目在開課後提前布置給學員,學員在學習過程中就可以陸續實現該項目,通過該項目的實現情況,可以衡量學員掌握嵌入式Linux內核/驅動開發的實際水平。

Copyright © Linux教程網 All Rights Reserved