《嵌入式Linux系统设计》教学大纲
课程名称:
| 嵌入式Linux系统设计
|
|
|
课程编号:
| 408308
| 436314
|
|
适用专业:
| 计算机科学与技术
| 软件工程
|
|
课程类别:
| 嵌入式方向限选课
| 嵌入式方向限选课
|
|
课程学分:
| 3
| 3
|
|
总学时:
| 54
| 54
|
|
其中:理论学时
| 28
| 28
|
|
式实验学时
| 26
| 26
|
|
先修课程:
| 计算机组成原理,计算机系统结构、嵌入式linux应用程序开发、ARM嵌入式体系结构与接口技术
|
一、课程的性质、目的与任务
《嵌入式Linux系统设计发》课程是嵌入式方向和物联网方向的方向课,与具体的硬件环境紧密相关。本课程以常见的ARM 9 S3C2410平台为例来讲解。剖析了嵌入式Linux系统构建的各个环节,说明了建立嵌入式Linux交叉开发环境,然后分析了嵌入式Linux系统的引导程序、内核和文件系统三大组成部分,最后介绍了嵌入式Linux系统集成和部署的方法。通过本实验课程的学习应达到以下几个教学目的:
(1) 掌握一种应用Linux的典型ARM处理器和开发板。
(2) 掌握能通过交叉编译器和交叉调试器的制作,对嵌入式交叉开发环境进行配置,对应用程序进行交叉开发和调试。
(3) 熟悉掌握U-Boot的使用、调试、编译和移植,理解U-Boot的启动过程和linux内核之间的关系。
(4) 掌握以ARM平台对内核移植的基本方法,理解linux内核启动过程。
(5) 掌握Linux根文件系统的组织结构,制作根文件系统的方法,掌握init进程调用文件系统脚本初始化过程。
(6)掌握Linux系统部署的基本方法,理解文件系统和存储介质的特点。
二、课程教学基本内容与要求
第一章 概述
(一)教学内容
1.1 嵌入式系统定义
1.2 嵌入式操作系统介绍
1.3 嵌入式Linux操作系统
1.4 嵌入式Linux开发环境
1.5 嵌入式Linux系统开发要点
(二)基本要求
教学目的:了解嵌入式系统和嵌入式操作系统的概况,了解嵌入式Linux系统的发展历史和开发环境,可以对嵌入式Linux系统有整体的认识,了解嵌入式Linux系统开发的特点和要点。
教学重点:嵌入式Linux的发展历史和开发环境,嵌入式Linux系统开发的特点和要点。
教学难点:嵌入式Linux开发的特点和要点。
第二章 ARM处理器
(一)教学内容
2.1 ARM体系结构
2.2 典型的ARM处理器
2.3 S3C2410开发板介绍
(二)基本要求
教学目的:了解ARM体系结构和ARM Linux的发展,了解几种应用Linux的典型ARM处理器和开发板。了解嵌入式Linux系统硬件平台的基础知识。
教学重点:ARM处理器体系结构、Linux与ARM处理器、三星S3C2410开发板。
教学难点:典型ARM处理器。
第三章 Linux编程环境
(一)教学内容
3.1 常用Linux编程工具
3.2 GNU工具链的使用技巧
3.3 Linux编程库的API介绍
(二)基本要求
教学目的:本章内容包括常用的Linux开发工具使用技巧和Linux编程技术。本章内容比Linux编程方面的书籍简略得多,重点介绍常用的Linux编程工具和技巧。通过本章学习可以使读者快速掌握基本的Linux开发工具,为后续的嵌入式Linux开发打下基础。
教学重点:常用Shell命令、Makefile规则语法、Binutils工具软件使用、编译器GCC的使用、调试器GDB的使用技巧。
教学难点:Makefile规则语法。
第四章 交叉开发环境
(一)教学内容
4.1 交叉开发环境介绍
4.2 建立交叉开发环境
4.3 交叉调试应用程序
(二)基本要求
教学目的:本章内容包括嵌入式交叉开发环境的概念和配置,以及应用程序交叉开发和调试的方法。交叉开发环境是嵌入式Linux开发的基础,后续的开发过程几乎都是基于交叉开发环境的。因此,理解和掌握本章内容会大大方便嵌入式Linux开发。
教学重点:交叉开发环境、安装交叉编译工具、主机开发环境配置、启动目标板、应用程序的远程交叉调试。
教学难点:主机开发环境配置、应用程序的远程交叉调试。
第五章 交叉开发工具链
(一)教学内容
5.1工具软件的来源
5.2制作交叉编译器
5.3制作交叉调试器
(二)基本要求
教学目的:本章内容包括嵌入式交叉开发环境的概念和配置,以及应用程序交叉开发和调试的方法。交叉开发环境是嵌入式Linux开发的基础,后续的开发过程几乎都是基于交叉开发环境的。因此,理解和掌握本章内容会大大方便嵌入式Linux开发。
教学重点:工具链软件、工具链制作流程、制作交叉编译器、制作交叉调试器。
教学难点:制作交叉编译器、制作交叉调试器。
第六章 Bootloader
(一)教学内容
6.1 Bootloader概况
6.2 U-Boot软件开发
6.3 U-Boot使用技巧
(二)基本要求
教学目的:本章介绍了Bootloader的概念和类型,重点讲解了U-Boot的开发调试和使用。通过学习U-Boot软件,充分理解Bootloader的工作原理和代码实现。
教学重点:Bootloader概述、U-Boot编程、U-Boot的调试、使用U-Boot。
教学难点:U-Boot编程、U-Boot的调试。
第七章 配置编译内核
(一)教学内容
6.1 Bootloader概况
6.2 U-Boot软件开发
6.3 U-Boot使用技巧
(二)基本要求
教学目的:本章介绍了Linux 2.6内核的特点和配置编译。通过学习本章,可以了解Linux 2.6内核的kbuild编译管理方式,掌握基本的配置编译过程。
教学重点:Linux内核特点、配置编译内核源码、内核配置选项。
教学难点:配置编译内核源码、内核配置选项。
第八章 内核移植浅析
(一)教学内容
8.1 内核源码移植
8.2 Linux内核启动过程分析
(二)基本要求
教学目的:本章以ARM平台为例介绍了内核移植的基本方法,并且详细分析了Linux内核启动过程。通过本章学习,可以明确内核哪些代码是与平台相关的,在内核启动过程中代码的执行顺序。只有掌握了这些代码,在内核移植过程中才能有的放矢地去修改代码。
教学重点:开发板内核移植、内核启动流程源代码分析、内核自引导程序、内核vmlinux入口、挂接根文件系统、Linux系统初始化、初始化设备驱动、启动用户空间init进程。
教学难点:内核启动流程源代码分析。
第九章 内核调试技术
(一)教学内容
9.1 内核调试方法
9.2 内核打印函数
9.3 获取内核信息
9.4 处理出错信息
9.5 内核源码调试
(二)基本要求
教学目的:章介绍了各种Linux内核调试方法。内核的调试需要从内核源码本身、调试工具等方面做好准备。通过本章的学习,可以了解不同调试方式的特点和使用方法,根据需要选择不同的内核调试方式。
教学重点:内核调试方法、内核打印函数、获取内核信息、处理出错信息、内核源码调试。
教学难点:内核启动流程源代码分析。
第十章 制作Linux根文件系统
(一)教学内容
10.1根文件系统组织结构
10.2 INIT系统初始化过程
10.3定制文件系统
(二)基本要求
教学目的:本章介绍了Linux根文件系统的组织结构,并且分析了init进程调用文件系统脚本初始化的过程。只有掌握了文件系统的基本构成,才能自己动手定制Linux文件系统。
教学重点:根文件系统目录结构、添加系统文件、init系统初始化过程、定制文件系统。
教学难点:根文件系统目录结构、定制文件系统。
第十三 章 部署Linux系统
(一)教学内容
13.1 文件系统类型
13.2 存储设备类型
13.3 部署Linux系统
(二)基本要求
教学目的:本章介绍了Linux系统部署的基本方法,分析了文件系统和存储介质的特点。通过本章学习,可以理解文件系统和存储介质之间的关系,并且掌握一些基本的系统部署工具。
教学重点:部署Linux系统概述、文件系统类型、存储设备、部署Linux系统。
教学难点:部署Linux系统。
三、课程各章节学时分配
序号
| 内容
| 理论学时
| 实验学时
|
计科
| 软工
| 计科
| 软工
|
1
| 概述
| 1
| 1
| 0
| 0
|
2
| ARM处理器
| 2
| 2
| 0
| 0
|
3
| Linux编程环境
| 2
| 2
| 0
| 0
|
4
| 交叉开发环境
| 3
| 3
| 4
| 4
|
5
| 交叉开发工具链
| 2
| 2
| 1
| 1
|
6
| Bootloader
| 4
| 4
| 7
| 7
|
7
| 配置编译内核
| 4
| 4
| 4
| 4
|
8
| 内核移植浅析
| 4
| 4
| 2
| 2
|
9
| 内核调试技术
| 2
| 2
| 2
| 2
|
10
| 制作Linux根文件系统
| 2
| 2
| 4
| 4
|
11
| 部署Linux系统
| 2
| 2
| 2
| 2
|
合计
| 28
| 28
| 26
| 26
|
四、本课程课外学习与修学指导
根据本书的指导,可以自己动手构建嵌入式Linux开发环境和嵌入式Linux系统。这对于深刻理解和掌握嵌入式Linux开发是非常重要的。嵌入式的开发与具体的硬件环境紧密相关,本书的内容以常见的ARM 9 S3C2410平台为例来讲解。对于其他硬件平台可以触类旁通,通过分析具体的源代码学习。
五、本课程考核方式及成绩评定标准
考核方式:闭卷考试
成绩评定方法:本课程的考核是平时成绩、实验成绩和期终考试成绩相结合。具体比例为:上课出勤、作业占20%,实验占20%,期末考试成绩占60%。
其中期未考试总分100分,基础题占50%,中等难度题占40%,较难题占10%。考试题型主要有:选择题、填空题、简答题、综合题题等。
六、教材及参考书
1、教材:华清远见嵌入式培训中心.嵌入式Linux系统开发标准教程(第2版)北京:人民邮电出版社,2009
2、主要参考书:
[1]杜春雷,ARM体系结构与编程.北京:清华大学出版社.2003
[2]刘洪涛,ARM嵌入式体系结构与接口技术.北京:人民邮电版社,2009年8月
[3]刘洪涛,孙天泽.嵌入式系统技术与设计.人民邮电出版社,2008
[4]华清远见嵌入式培训中心.嵌入式Linux应用程序开发标准教程(第2版).北京:人民邮电出版社,2009.
大纲撰写人:刘泽平
大纲审阅人:袁辉勇
教学副主任:易叶青
编写日期:2012.6