Linux内核与驱动开发实验教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内核与驱动开发实验教材
中程在线
实验一嵌入式开发环境的建立
实验目的
掌握嵌入式开发环境的构建,熟悉课程实验的开发板
掌握安装交叉编译工具的安装方法
掌握的烧写方法
掌握的编译方法
实验内容
安装交叉编译工具
编译
烧写
生成映像
基础知识
交叉编译工具
嵌入式系统的开发中,开发环境被称为主机。因为嵌入式目标系统的资源局限性,不可能完成构建系统的任务,所以需要主机使用交叉编译工具来构建目标系统。
实验使用交叉编译器,与桌面系统采用的编译器是不同,因为实验开发板采用的是处理器。
编译器将使用下列工具
,
与通常在平台上使用的工具不同,交叉编译工具编译处理的执行文件只能够在平台上运行。
嵌入式系统构建
一个嵌入式系统从软件的角度看通常可以分为四个层次:
.引导加载程序()。引导加载程序是系统加电后运行的第一段软件代码。
. 内核。特定于嵌入式板子的定制内核以及内核的启动参数。
. 文件系统。包括根文件系统和建立于内存设备之上文件系统。通常用来作为。
.用户应用程序。特定于用户的应用程序。
主要的功能有:
初始化硬件,初始化, , , , 。
启动,这是最重要的功能,保存内核映像到中,并跳转到内核起始地址。
映像下载,下载内核映像和文件系统到,下载只能通过以太网进行。如命令完成文件下载。
内存控制,如命令可以烧写。
机中的引导加载程序由(其本质就是一段固件程序)和位于硬盘中的(比如,和等)一起组成。在完成硬件检测和资源分配后,将硬盘中的读到系统的中,然后将控制权交给。的主要运行任务就是将内核映象从硬盘上读到中,然后跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像那样的固件程序(注,有的嵌入式也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由来完成。在实验开发板(基于3C)的嵌入式系统中,系统在上电或复位时都从地址处开始执行,而在这个地址处安排的通常就是系统的程序。
简单地说,就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
通常,是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的几乎是不可能的。尽管如此,我们仍然可以对归纳出一些通用的概念来,以指导用户特定的设计与实现。
内核是所有系统的中心软件组件。整个系统的能力完全受内核本身能力的限制。
由于内核支持多个架构,由于架构的差异性,每种架构都有不同的团队在维护,所以必须根据架构来选择供应内核的网站。见下表:
架构最合适的内核网站下载方式
等
内核源代码目录树结构说明如下:
:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和位相关的代码存放在目录下,其中比较重要的包括(内核核心部分)、(内存管理)、(浮点单元仿真)、(硬件相关工具函数)、(引导程序)、(总线)和(相关状态)。
:常用加密和散列算法(如、等),还有一些压缩和校验算法。
:关于内核各部分的通用解释和注释。
:设备驱动程序,每个不同的驱动占用一个子目录。
:各种支持的文件系统,如、、等。
:头文件。其中,和系统相关的头文件被放置在子目录下。
:内核初始化代码(注意不是系统引导代码)。
:进程间通信的代码。
:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在*目录下。:库文件代码。
:内存管理代码,和平台相关的一部分代码放在*目录下。
:网络相关代码,实现了各种常见的网络协议。
:用于配置内核文件的脚本文件。
:主要是一个的模块。
:常用音频设备的驱动程序等。
:实现了一个。
内核在系统启动期间进行的最后操作之一就是安装根文件系统。根文件系统一直都是所有系统不可缺少的组件。
根文件系统的顶层目录说明见下表。其中, , , , , 和,都是不可缺少的目录。
目录内容
必要的用户命令(二进制文件)
设备文件和其它特殊文件
系统配置文件,包括启动文件
用户主目录
必要的链接库,包括链接库、内核模块
安装点,用于暂时安装文件系统
用来提供内核与进程信息的虚拟文件系统
用户的主目录
必要的系统管理员命令(二进制文件)
在第二层包含对大多数用户都有用的应用程序和文件,包括
服务器等。
暂时性的文件
和目录下存放了很多常见的操作命令。这些命令参数多、功能强,同样每个命令文件都比较大,这对嵌入式系统来说是不合适的。因此嵌入式系统中,通常采用工具来实现的常见操作。是一个集成了一百多个最常用命令和工具的软件,它甚至还集成了服务器和服务器,而软件大小仅1M左右。
常见的文件系统类型有:
:只读文件系统,未压缩。多用于和较低速的(如无)
:只读文件系统,压缩,可用于较高速的。
:可读写文件系统,可支持压缩或不压缩,较适用于和容量较小的
:可读写文件系统,未压缩。较适用于
实验步骤:
安装
把光盘目录\中的3.4.1 拷贝到虚拟机的系统中。
在文件所在目录进行解压缩,命令如下:
3.4.1 –
更改虚拟机系统的路径,把工具链加入到搜索路径中。
#
#
在文件中加入下面语句:
$3.4.1
最后执行命令,使设置的路径信息生效。命令如下:
#