教育教学

当前位置: 网站首页 -> 教育教学 -> 教学工作 -> 人才培养 -> 本科生培养 -> 教学大纲 -> 正文

《嵌入式Linux系统设计》教学大纲

信息来源: 发布日期:2015-09-25

《嵌入式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