《嵌入式Linux系統(tǒng)設(shè)計》教學(xué)大綱
課程名稱:
| 嵌入式Linux系統(tǒng)設(shè)計
|
|
|
課程編號:
| 408308
| 436314
|
|
適用專業(yè):
| 計算機科學(xué)與技術(shù)
| 軟件工程
|
|
課程類別:
| 嵌入式方向限選課
| 嵌入式方向限選課
|
|
課程學(xué)分:
| 3
| 3
|
|
總學(xué)時:
| 54
| 54
|
|
其中:理論學(xué)時
| 28
| 28
|
|
式實驗學(xué)時
| 26
| 26
|
|
先修課程:
| 計算機組成原理,計算機系統(tǒng)結(jié)構(gòu)、嵌入式linux應(yīng)用程序開發(fā)、ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)
|
一、課程的性質(zhì)、目的與任務(wù)
《嵌入式Linux系統(tǒng)設(shè)計發(fā)》課程是嵌入式方向和物聯(lián)網(wǎng)方向的方向課,與具體的硬件環(huán)境緊密相關(guān)。本課程以常見的ARM 9 S3C2410平臺為例來講解。剖析了嵌入式Linux系統(tǒng)構(gòu)建的各個環(huán)節(jié),說明了建立嵌入式Linux交叉開發(fā)環(huán)境,然后分析了嵌入式Linux系統(tǒng)的引導(dǎo)程序、內(nèi)核和文件系統(tǒng)三大組成部分,最后介紹了嵌入式Linux系統(tǒng)集成和部署的方法。通過本實驗課程的學(xué)習應(yīng)達到以下幾個教學(xué)目的:
(1) 掌握一種應(yīng)用Linux的典型ARM處理器和開發(fā)板。
(2) 掌握能通過交叉編譯器和交叉調(diào)試器的制作,對嵌入式交叉開發(fā)環(huán)境進行配置,對應(yīng)用程序進行交叉開發(fā)和調(diào)試。
(3) 熟悉掌握U-Boot的使用、調(diào)試、編譯和移植,理解U-Boot的啟動過程和linux內(nèi)核之間的關(guān)系。
(4) 掌握以ARM平臺對內(nèi)核移植的基本方法,理解linux內(nèi)核啟動過程。
(5) 掌握Linux根文件系統(tǒng)的組織結(jié)構(gòu),制作根文件系統(tǒng)的方法,掌握init進程調(diào)用文件系統(tǒng)腳本初始化過程。
(6)掌握Linux系統(tǒng)部署的基本方法,理解文件系統(tǒng)和存儲介質(zhì)的特點。
二、課程教學(xué)基本內(nèi)容與要求
第一章 概述
(一)教學(xué)內(nèi)容
1.1 嵌入式系統(tǒng)定義
1.2 嵌入式操作系統(tǒng)介紹
1.3 嵌入式Linux操作系統(tǒng)
1.4 嵌入式Linux開發(fā)環(huán)境
1.5 嵌入式Linux系統(tǒng)開發(fā)要點
(二)基本要求
教學(xué)目的:了解嵌入式系統(tǒng)和嵌入式操作系統(tǒng)的概況,了解嵌入式Linux系統(tǒng)的發(fā)展歷史和開發(fā)環(huán)境,可以對嵌入式Linux系統(tǒng)有整體的認識,了解嵌入式Linux系統(tǒng)開發(fā)的特點和要點。
教學(xué)重點:嵌入式Linux的發(fā)展歷史和開發(fā)環(huán)境,嵌入式Linux系統(tǒng)開發(fā)的特點和要點。
教學(xué)難點:嵌入式Linux開發(fā)的特點和要點。
第二章 ARM處理器
(一)教學(xué)內(nèi)容
2.1 ARM體系結(jié)構(gòu)
2.2 典型的ARM處理器
2.3 S3C2410開發(fā)板介紹
(二)基本要求
教學(xué)目的:了解ARM體系結(jié)構(gòu)和ARM Linux的發(fā)展,了解幾種應(yīng)用Linux的典型ARM處理器和開發(fā)板。了解嵌入式Linux系統(tǒng)硬件平臺的基礎(chǔ)知識。
教學(xué)重點:ARM處理器體系結(jié)構(gòu)、Linux與ARM處理器、三星S3C2410開發(fā)板。
教學(xué)難點:典型ARM處理器。
第三章 Linux編程環(huán)境
(一)教學(xué)內(nèi)容
3.1 常用Linux編程工具
3.2 GNU工具鏈的使用技巧
3.3 Linux編程庫的API介紹
(二)基本要求
教學(xué)目的:本章內(nèi)容包括常用的Linux開發(fā)工具使用技巧和Linux編程技術(shù)。本章內(nèi)容比Linux編程方面的書籍簡略得多,重點介紹常用的Linux編程工具和技巧。通過本章學(xué)習可以使讀者快速掌握基本的Linux開發(fā)工具,為后續(xù)的嵌入式Linux開發(fā)打下基礎(chǔ)。
教學(xué)重點:常用Shell命令、Makefile規(guī)則語法、Binutils工具軟件使用、編譯器GCC的使用、調(diào)試器GDB的使用技巧。
教學(xué)難點:Makefile規(guī)則語法。
第四章 交叉開發(fā)環(huán)境
(一)教學(xué)內(nèi)容
4.1 交叉開發(fā)環(huán)境介紹
4.2 建立交叉開發(fā)環(huán)境
4.3 交叉調(diào)試應(yīng)用程序
(二)基本要求
教學(xué)目的:本章內(nèi)容包括嵌入式交叉開發(fā)環(huán)境的概念和配置,以及應(yīng)用程序交叉開發(fā)和調(diào)試的方法。交叉開發(fā)環(huán)境是嵌入式Linux開發(fā)的基礎(chǔ),后續(xù)的開發(fā)過程幾乎都是基于交叉開發(fā)環(huán)境的。因此,理解和掌握本章內(nèi)容會大大方便嵌入式Linux開發(fā)。
教學(xué)重點:交叉開發(fā)環(huán)境、安裝交叉編譯工具、主機開發(fā)環(huán)境配置、啟動目標板、應(yīng)用程序的遠程交叉調(diào)試。
教學(xué)難點:主機開發(fā)環(huán)境配置、應(yīng)用程序的遠程交叉調(diào)試。
第五章 交叉開發(fā)工具鏈
(一)教學(xué)內(nèi)容
5.1工具軟件的來源
5.2制作交叉編譯器
5.3制作交叉調(diào)試器
(二)基本要求
教學(xué)目的:本章內(nèi)容包括嵌入式交叉開發(fā)環(huán)境的概念和配置,以及應(yīng)用程序交叉開發(fā)和調(diào)試的方法。交叉開發(fā)環(huán)境是嵌入式Linux開發(fā)的基礎(chǔ),后續(xù)的開發(fā)過程幾乎都是基于交叉開發(fā)環(huán)境的。因此,理解和掌握本章內(nèi)容會大大方便嵌入式Linux開發(fā)。
教學(xué)重點:工具鏈軟件、工具鏈制作流程、制作交叉編譯器、制作交叉調(diào)試器。
教學(xué)難點:制作交叉編譯器、制作交叉調(diào)試器。
第六章 Bootloader
(一)教學(xué)內(nèi)容
6.1 Bootloader概況
6.2 U-Boot軟件開發(fā)
6.3 U-Boot使用技巧
(二)基本要求
教學(xué)目的:本章介紹了Bootloader的概念和類型,重點講解了U-Boot的開發(fā)調(diào)試和使用。通過學(xué)習U-Boot軟件,充分理解Bootloader的工作原理和代碼實現(xiàn)。
教學(xué)重點:Bootloader概述、U-Boot編程、U-Boot的調(diào)試、使用U-Boot。
教學(xué)難點:U-Boot編程、U-Boot的調(diào)試。
第七章 配置編譯內(nèi)核
(一)教學(xué)內(nèi)容
6.1 Bootloader概況
6.2 U-Boot軟件開發(fā)
6.3 U-Boot使用技巧
(二)基本要求
教學(xué)目的:本章介紹了Linux 2.6內(nèi)核的特點和配置編譯。通過學(xué)習本章,可以了解Linux 2.6內(nèi)核的kbuild編譯管理方式,掌握基本的配置編譯過程。
教學(xué)重點:Linux內(nèi)核特點、配置編譯內(nèi)核源碼、內(nèi)核配置選項。
教學(xué)難點:配置編譯內(nèi)核源碼、內(nèi)核配置選項。
第八章 內(nèi)核移植淺析
(一)教學(xué)內(nèi)容
8.1 內(nèi)核源碼移植
8.2 Linux內(nèi)核啟動過程分析
(二)基本要求
教學(xué)目的:本章以ARM平臺為例介紹了內(nèi)核移植的基本方法,并且詳細分析了Linux內(nèi)核啟動過程。通過本章學(xué)習,可以明確內(nèi)核哪些代碼是與平臺相關(guān)的,在內(nèi)核啟動過程中代碼的執(zhí)行順序。只有掌握了這些代碼,在內(nèi)核移植過程中才能有的放矢地去修改代碼。
教學(xué)重點:開發(fā)板內(nèi)核移植、內(nèi)核啟動流程源代碼分析、內(nèi)核自引導(dǎo)程序、內(nèi)核vmlinux入口、掛接根文件系統(tǒng)、Linux系統(tǒng)初始化、初始化設(shè)備驅(qū)動、啟動用戶空間init進程。
教學(xué)難點:內(nèi)核啟動流程源代碼分析。
第九章 內(nèi)核調(diào)試技術(shù)
(一)教學(xué)內(nèi)容
9.1 內(nèi)核調(diào)試方法
9.2 內(nèi)核打印函數(shù)
9.3 獲取內(nèi)核信息
9.4 處理出錯信息
9.5 內(nèi)核源碼調(diào)試
(二)基本要求
教學(xué)目的:章介紹了各種Linux內(nèi)核調(diào)試方法。內(nèi)核的調(diào)試需要從內(nèi)核源碼本身、調(diào)試工具等方面做好準備。通過本章的學(xué)習,可以了解不同調(diào)試方式的特點和使用方法,根據(jù)需要選擇不同的內(nèi)核調(diào)試方式。
教學(xué)重點:內(nèi)核調(diào)試方法、內(nèi)核打印函數(shù)、獲取內(nèi)核信息、處理出錯信息、內(nèi)核源碼調(diào)試。
教學(xué)難點:內(nèi)核啟動流程源代碼分析。
第十章 制作Linux根文件系統(tǒng)
(一)教學(xué)內(nèi)容
10.1根文件系統(tǒng)組織結(jié)構(gòu)
10.2 INIT系統(tǒng)初始化過程
10.3定制文件系統(tǒng)
(二)基本要求
教學(xué)目的:本章介紹了Linux根文件系統(tǒng)的組織結(jié)構(gòu),并且分析了init進程調(diào)用文件系統(tǒng)腳本初始化的過程。只有掌握了文件系統(tǒng)的基本構(gòu)成,才能自己動手定制Linux文件系統(tǒng)。
教學(xué)重點:根文件系統(tǒng)目錄結(jié)構(gòu)、添加系統(tǒng)文件、init系統(tǒng)初始化過程、定制文件系統(tǒng)。
教學(xué)難點:根文件系統(tǒng)目錄結(jié)構(gòu)、定制文件系統(tǒng)。
第十三 章 部署Linux系統(tǒng)
(一)教學(xué)內(nèi)容
13.1 文件系統(tǒng)類型
13.2 存儲設(shè)備類型
13.3 部署Linux系統(tǒng)
(二)基本要求
教學(xué)目的:本章介紹了Linux系統(tǒng)部署的基本方法,分析了文件系統(tǒng)和存儲介質(zhì)的特點。通過本章學(xué)習,可以理解文件系統(tǒng)和存儲介質(zhì)之間的關(guān)系,并且掌握一些基本的系統(tǒng)部署工具。
教學(xué)重點:部署Linux系統(tǒng)概述、文件系統(tǒng)類型、存儲設(shè)備、部署Linux系統(tǒng)。
教學(xué)難點:部署Linux系統(tǒng)。
三、課程各章節(jié)學(xué)時分配
序號
| 內(nèi)容
| 理論學(xué)時
| 實驗學(xué)時
|
計科
| 軟工
| 計科
| 軟工
|
1
| 概述
| 1
| 1
| 0
| 0
|
2
| ARM處理器
| 2
| 2
| 0
| 0
|
3
| Linux編程環(huán)境
| 2
| 2
| 0
| 0
|
4
| 交叉開發(fā)環(huán)境
| 3
| 3
| 4
| 4
|
5
| 交叉開發(fā)工具鏈
| 2
| 2
| 1
| 1
|
6
| Bootloader
| 4
| 4
| 7
| 7
|
7
| 配置編譯內(nèi)核
| 4
| 4
| 4
| 4
|
8
| 內(nèi)核移植淺析
| 4
| 4
| 2
| 2
|
9
| 內(nèi)核調(diào)試技術(shù)
| 2
| 2
| 2
| 2
|
10
| 制作Linux根文件系統(tǒng)
| 2
| 2
| 4
| 4
|
11
| 部署Linux系統(tǒng)
| 2
| 2
| 2
| 2
|
合計
| 28
| 28
| 26
| 26
|
四、本課程課外學(xué)習與修學(xué)指導(dǎo)
根據(jù)本書的指導(dǎo),可以自己動手構(gòu)建嵌入式Linux開發(fā)環(huán)境和嵌入式Linux系統(tǒng)。這對于深刻理解和掌握嵌入式Linux開發(fā)是非常重要的。嵌入式的開發(fā)與具體的硬件環(huán)境緊密相關(guān),本書的內(nèi)容以常見的ARM 9 S3C2410平臺為例來講解。對于其他硬件平臺可以觸類旁通,通過分析具體的源代碼學(xué)習。
五、本課程考核方式及成績評定標準
考核方式:閉卷考試
成績評定方法:本課程的考核是平時成績、實驗成績和期終考試成績相結(jié)合。具體比例為:上課出勤、作業(yè)占20%,實驗占20%,期末考試成績占60%。
其中期未考試總分100分,基礎(chǔ)題占50%,中等難度題占40%,較難題占10%??荚囶}型主要有:選擇題、填空題、簡答題、綜合題題等。
六、教材及參考書
1、教材:華清遠見嵌入式培訓(xùn)中心.嵌入式Linux系統(tǒng)開發(fā)標準教程(第2版)北京:人民郵電出版社,2009
2、主要參考書:
[1]杜春雷,ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社.2003
[2]劉洪濤,ARM嵌入式體系結(jié)構(gòu)與接口技術(shù).北京:人民郵電版社,2009年8月
[3]劉洪濤,孫天澤.嵌入式系統(tǒng)技術(shù)與設(shè)計.人民郵電出版社,2008
[4]華清遠見嵌入式培訓(xùn)中心.嵌入式Linux應(yīng)用程序開發(fā)標準教程(第2版).北京:人民郵電出版社,2009.
大綱撰寫人:劉澤平
大綱審閱人:袁輝勇
教學(xué)副主任:易葉青
編寫日期:2012.6