博创嵌入式培训PPT—第3章 嵌入式Linux内核文件系统与存储(模板)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章嵌入式Linux内核文件系统与存储第三章嵌入式Linux内核文件系统与存储主要内容第一节Linux内核定制、裁剪和添加第二节嵌入式引导系统(BootLoader)技术第三节文件系统的构建学习方法与建议本章主要介绍了三个部分,分别是嵌入式linux内核、引导系统介绍和文件系统等相关内容。该章节详细介绍了关于嵌入式系统如何构建以及内核部分的应用操作等内容,可以更好的帮助理解嵌入式系统的相关内容,具有一定的应用价值。内容:一、概述二、内核目录介绍三、配置文件和配置工具四、内核的编译命令第一节Linux内核定制、裁剪和添加第一节Linux内核定制、裁剪和添加——一、概述操作系统结构操作系统(OperatingSystem,OS)是一组能够管理电脑软硬件资源的程序,它能够管理内存、决定系统资源分配、控制输入输出设备以及管理网络文件等。作为计算机软硬件之间的纽带,操作系统能够使计算机系统资源得到最大限度的利用。利用运行在某台计算机(宿主机)上的编译器编译某个源程序,生成在另一台机器(目标机)上运行的目标代码的过程。操作系统是一套复杂的管理控制程序,包括五个方面的管理功能:进程与处理机管理、存储管理、设备管理、文件管理与用户管理。一般来说,操作系统具有四个共同特征:并发性(concurrence)、共享性(sharing)、虚拟性(virtual)和不确定性(asynchronism)。其中,并发是指两个或者多个事件在同一时间间隔之内发生;共享指系统中的资源能够供多个用户(用户程序)共同使用;虚拟指通过某种技术把一个物理上的实体映射为若干个逻辑上的对应;而不确定性则指内存中的多个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的自动控制,因此是无法预知的。一个操作系统至少具有如下图所示的结构。引导系统就是在操作系统内核运行之前运行的一段小程序,其作用是初始化硬件设备、建立内存空间的映射图,并且为最终调用操作系统内核准备好正确的环境;内核是一个操作系统的核心,负责管理系统的进程、存储、设备和文件等,它决定着系统的性能和稳定性;根文件系统并不是一个具体的文件类型,而是一个理论性的概念,它作为VFS(VirtualFilesystemSwitcher)的根节点,可以帮助后者管理文件系统。VFS是内核中提供的一种软件机制,能够提供实际各个文件系统的挂载点。引导系统BootLoader内核Kernel根文件系统Rootfs第一节Linux内核定制、裁剪和添加——一、概述内核源码安装将ARMLinux系统内核源码安装到操作系统之中不仅可以方便学习内核的相应内容,而且具有帮助编译驱动程序等功能。完整的内核一般规模较大,可以从官方网站下载。下载的内核一般是tar.gz或者是.bz2压缩文件,使用时需要解压。在编译内核注意需要root权限。以下为内核源码的安装步骤:1)将需要升级的内核拷贝到/usr/src/下:#cplinux-2.4.18.tar.gz/usr/src2)解压下载的源程序文件,命令如下所示:#tar-zxvflinux-2.4.18.tar.gz3)文件将解压到/usr/src/linux目录中,建立链接:#ln-slinux-2.4.18linux第一节Linux内核定制、裁剪和添加——一、概述第一节Linux内核定制、裁剪和添加——一、概述内核版本号说明可以使用uname–a命令或者cat/proc/version命令来查看系统的内核版本号,如下图所示。该系统内核版本号为2.4.20-8。其中第一个数字为主版本号,第二个数字为次版本号,第三个数字为修订号。如果次版本号为偶数,则表明是该版本是稳定发行版本;如果次版本号是奇数,则说明该系统内核仍在开发中。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等几个功能模块组成。Linux内核源码的各个目录大致与此相对应,如下图所示。第一节Linux内核定制、裁剪和添加——二、内核目录介绍内核源码目录说明目录名称目录功能arch包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构。include包括编译内核所需要的大部分头文件。init包含内核的初始化代码(不是系统的引导代码mm包含所有的内存管理代码。drivers包含系统中所有的设备驱动程序。ipc包含核心进程间的通信代码。fs存放Linux支持的文件系统代码。kernel包含内核管理的核心代码。net内核的网络部分代码。lib包含核心的库代码。scripts包含用于配置核心的脚本文件。Documentation一些文档,是对每个目录作用的具体说明。第一节Linux内核定制、裁剪和添加——二、内核目录介绍1.配置文件给用户提供配置选择的功能,主要包括如下配置文件第一节Linux内核定制、裁剪和添加——三、配置文件和配置工具配置文件名功能各级Makefile和.depend文件各级目录的make文件和依赖工具.config内核配置文件,保存配置结果Rules.make规则文件2.配置工具用来进行相关配置的工具,包括配置命令解释器,其中配置用户界面如下:(1)基于字符的界面使用命令:Makeconfig该方法简单且不需要调用Xwindows,不过操作麻烦,用户界面不友好。第一节Linux内核定制、裁剪和添加——三、配置文件和配置工具(2)基于Ncurses的文本模式图形用户界面使用命令:makemenuconfig该方法简单且不需要调用Xwindows,而且操作简单,用户界面友好后面的实验就使用该方法进行内核的相关配置。第一节Linux内核定制、裁剪和添加——三、配置文件和配置工具(3)基于Xwindows图形界面的用户配置界面使用命令:Makexconfig第一节Linux内核定制、裁剪和添加——三、配置文件和配置工具1.在该级目录下的Config.in中添加对该模块的编译条件,该变量可以设置为三种状态Y---将该功能模块编译进内核N---不将该功能模块编译进内核M---将该功能编译成模块方式,可以在需要时动态插入到内核中的模块第一节Linux内核定制、裁剪和添加——四、内核的编译命令2.内核的编译操作下面给出了用于内核编译的主要命令:#makemenuconfig-----配置编译选项#makedep-----提供变量依赖关系信息.#makeclean-----删除生成的模块和目标文件.#makezImage-----编译内核生成压缩的映象.#makemodules-----编译模块.#makemodules_install-----安装编译完成的模块.编译完成之后最终生成的压缩内核映象的路径为arch/arm/boot/zImage,之后拷贝新内核文件zImage到启动目录,并改为合适的名字,即可启动新完成的内核镜像。第一节Linux内核定制、裁剪和添加——四、内核的编译命令内容:一、引导系统概述简单介绍引导系统的概念和模式二、Linux的Bootloader——vivi与ubootvivi和uboot作为ARM平台常用的引导程序,具有结构简单但是功能强大的特点第二节嵌入式引导系统(BootLoader)技术1.引导系统介绍所谓的引导程序(BootLoader),即系统加电后运行的第一段软件代码。一般来说嵌入式系统的Bootloader负责加载整个启动任务。整个过程包括初始化硬件设备、建立内存空间的映射图、配置合适的软硬件环境以便能够调用操作系统的内核。第二节嵌入式引导系统(BootLoader)技术——一、引导系统概述2.引导系统的操作模式大多数引导系统都包含两种不同的操作模式:•启动加载模式•下载模式1)启动加载模式启动加载模式也称为“自主”(autonomous)模式。引导系统从目标机上的某个固态存储设备中将操作系统加载到RAM中运行。这种模式是引导系统的正常工作模式。2)下载模式在下载模式下,目标机上的引导系统将通过串口连接或网络连接等通信手段从主机下载文件。从主机下载的文件通常首先被引导系统保存到目标机的RAM中,然后再被引导系统写到目标机上的FLASH类固态存储设备中。这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用引导系统的这种工作模式。第二节嵌入式引导系统(BootLoader)技术——一、引导系统概述3.引导系统的主要任务与典型结构框架大多数引导系统都分为stage1和stage2两大部分。依赖于处理器体系结构和板级初始化的代码通常都放在stage1中,用汇编实现;而stage2则通常用C语言来实现,这样可以实现更复杂的功能,同时代码具有更好的可读性和可移植性。第二节嵌入式引导系统(BootLoader)技术——一、引导系统概述引导系统的stage1:1)硬件设备初始化。2)为加载引导系统的stage2准备RAM空间。3)拷贝引导系统的stage2到RAM空间中。4)设置好堆栈。5)跳转到stage2的C入口点引导系统的stage2:1)初始化本阶段要用到的硬件设备。2)检测系统内存映射(memorymap)。3)将内核映像和根文件系统映像从flash上读到RAM空间中。4)为内核设置启动参数。5)调用内核。1.vivi的常用命令•帮助命令vivihelp•显示启动参数viviparamshow•启动参数帮助viviparamhelp•设置参数viviparamsetboot_delay10000000Change'boot_delay'value.0x00989680(10000000)to0x00989680(10000000)viviparamsave第二节嵌入式引导系统(BootLoader)技术——二、Linux的Bootloader——vivi与uboot1.vivi的常用命令•显示分区帮助viviparthelp•显示分区vivipartshow•存储器分区vivibonhelp•引导帮助viviboothelp•启动操作系统viviboot第二节嵌入式引导系统(BootLoader)技术——二、Linux的Bootloader——vivi与uboot2.Uboot的常用命令1)protect:protect命令用于对Flash进行写保护,可以使能和解除写保护。2)erase:erase命令可以擦除Flash。3)setenv:setenv命令可以设置环境变量。4)printenv:printenv命令可以打印全部环境变量,也可以只打印参数中列出的环境变量。5)tftpboot:tftpboot命令能够使用TFTP协议通过网络下载二进制格式的文档。另外,使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。其命令格式为:tftpboot[loadAddress][bootfilename]6)bootm:bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。其命令格式为:bootm[addr[arg...]]第二节嵌入式引导系统(BootLoader)技术——二、Linux的Bootloader——vivi与uboot2.Uboot的常用命令6)bootm:bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。其命令格式为:bootm[addr[arg...]]7)go:go命令能够执行应用程序。其命令格式为:goaddr[arg...]8)loadb:loadb命令能够通过串口线下载二进制格式的文档。其命令格式为:loadb[off][baud]9)loads:loads命令可以通过串口线下载S-Record格式的文件。10)flinfo:flinfo命令打印全部Flash组的信息,也可以只打印其中某个组的信息。一般嵌入式系统的Flash只有一个组。11)cp:cp命令可以在内存中复制数据块,包括对Flash的读写操作。第二节

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功