Linux内核与驱动开发实验教材

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

内核与驱动开发实验教材

中程在线

实验一嵌入式开发环境的建立

实验目的

掌握嵌入式开发环境的构建,熟悉课程实验的开发板

掌握安装交叉编译工具的安装方法

掌握的烧写方法

掌握的编译方法

实验内容

安装交叉编译工具

编译

烧写

生成映像

基础知识

交叉编译工具

嵌入式系统的开发中,开发环境被称为主机。因为嵌入式目标系统的资源局限性,不可能完成构建系统的任务,所以需要主机使用交叉编译工具来构建目标系统。

实验使用交叉编译器,与桌面系统采用的编译器是不同,因为实验开发板采用的是处理器。

编译器将使用下列工具

,

与通常在平台上使用的工具不同,交叉编译工具编译处理的执行文件只能够在平台上运行。

嵌入式系统构建

一个嵌入式系统从软件的角度看通常可以分为四个层次:

.引导加载程序()。引导加载程序是系统加电后运行的第一段软件代码。

. 内核。特定于嵌入式板子的定制内核以及内核的启动参数。

. 文件系统。包括根文件系统和建立于内存设备之上文件系统。通常用来作为。

.用户应用程序。特定于用户的应用程序。

主要的功能有:

初始化硬件,初始化, , , , 。

启动,这是最重要的功能,保存内核映像到中,并跳转到内核起始地址。

映像下载,下载内核映像和文件系统到,下载只能通过以太网进行。如命令完成文件下载。

内存控制,如命令可以烧写。

机中的引导加载程序由(其本质就是一段固件程序)和位于硬盘中的(比如,和等)一起组成。在完成硬件检测和资源分配后,将硬盘中的读到系统的中,然后将控制权交给。的主要运行任务就是将内核映象从硬盘上读到中,然后跳转到内核的入口点去运行,也即开始启动操作系统。

而在嵌入式系统中,通常并没有像那样的固件程序(注,有的嵌入式也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由来完成。在实验开发板(基于3C)的嵌入式系统中,系统在上电或复位时都从地址处开始执行,而在这个地址处安排的通常就是系统的程序。

简单地说,就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

通常,是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的几乎是不可能的。尽管如此,我们仍然可以对归纳出一些通用的概念来,以指导用户特定的设计与实现。

内核是所有系统的中心软件组件。整个系统的能力完全受内核本身能力的限制。

由于内核支持多个架构,由于架构的差异性,每种架构都有不同的团队在维护,所以必须根据架构来选择供应内核的网站。见下表:

架构最合适的内核网站下载方式

内核源代码目录树结构说明如下:

:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和位相关的代码存放在目录下,其中比较重要的包括(内核核心部分)、(内存管理)、(浮点单元仿真)、(硬件相关工具函数)、(引导程序)、(总线)和(相关状态)。

:常用加密和散列算法(如、等),还有一些压缩和校验算法。

:关于内核各部分的通用解释和注释。

:设备驱动程序,每个不同的驱动占用一个子目录。

:各种支持的文件系统,如、、等。

:头文件。其中,和系统相关的头文件被放置在子目录下。

:内核初始化代码(注意不是系统引导代码)。

:进程间通信的代码。

:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在*目录下。:库文件代码。

:内存管理代码,和平台相关的一部分代码放在*目录下。

:网络相关代码,实现了各种常见的网络协议。

:用于配置内核文件的脚本文件。

:主要是一个的模块。

:常用音频设备的驱动程序等。

:实现了一个。

内核在系统启动期间进行的最后操作之一就是安装根文件系统。根文件系统一直都是所有系统不可缺少的组件。

根文件系统的顶层目录说明见下表。其中, , , , , 和,都是不可缺少的目录。

目录内容

必要的用户命令(二进制文件)

设备文件和其它特殊文件

系统配置文件,包括启动文件

用户主目录

必要的链接库,包括链接库、内核模块

安装点,用于暂时安装文件系统

用来提供内核与进程信息的虚拟文件系统

用户的主目录

必要的系统管理员命令(二进制文件)

在第二层包含对大多数用户都有用的应用程序和文件,包括

服务器等。

暂时性的文件

和目录下存放了很多常见的操作命令。这些命令参数多、功能强,同样每个命令文件都比较大,这对嵌入式系统来说是不合适的。因此嵌入式系统中,通常采用工具来实现的常见操作。是一个集成了一百多个最常用命令和工具的软件,它甚至还集成了服务器和服务器,而软件大小仅1M左右。

常见的文件系统类型有:

:只读文件系统,未压缩。多用于和较低速的(如无)

:只读文件系统,压缩,可用于较高速的。

:可读写文件系统,可支持压缩或不压缩,较适用于和容量较小的

:可读写文件系统,未压缩。较适用于

实验步骤:

安装

把光盘目录\中的3.4.1 拷贝到虚拟机的系统中。

在文件所在目录进行解压缩,命令如下:

3.4.1 –

更改虚拟机系统的路径,把工具链加入到搜索路径中。

在文件中加入下面语句:

$3.4.1

最后执行命令,使设置的路径信息生效。命令如下:

相关文档
最新文档