Part04嵌入式Linux开发环境的搭建课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Part04嵌入式Linux开发环境的搭建课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Part04 嵌入式 Linux 开发 环境 搭建 课件
- 资源描述:
-
1、【学习目标】了解嵌入式Linux系统的移植l了解Bootloader的原理l掌握嵌入式交叉编译环境的搭建l学会编译Linux内核 l学会搭建Linux的文件系统11/21/20221一、嵌入式Linux系统的移植二、Bootloader的构成原理三、嵌入式交叉编译环境的搭建四、Linux内核和文件系统的烧写五、Linux内核 的配置和编译六、linux文件系统的搭建七、NFS文件系统的配置和使用11/21/20222一、嵌入式Linux系统的移植 Linux操作系统的移植主要包括移植操作系统的移植主要包括移植Bootloader、移植、移植Linux内核、移植相应内核、移植相应的驱动程序和构建
2、文件系统。的驱动程序和构建文件系统。11/21/20223嵌入式系统与主机的连接方式 JTAG接口接口 JTAG仿真器与主机连接,将引导程序固化到仿真器与主机连接,将引导程序固化到FLASH中。中。串口串口 主机通过主机通过minicom或或Windows超级终端等工具获超级终端等工具获得目标板程序运行、调试信息。得目标板程序运行、调试信息。网络网络 一般采用一般采用NFS、TFTP等协议传输文件。等协议传输文件。USB 主机为主机为USB主设备端,目标板为主设备端,目标板为USB从设备端,从设备端,用于下载程序到目标板中。用于下载程序到目标板中。11/21/20224Windows超级终端的
3、使用11/21/20225minicom的使用11/21/20226二、Bootloader的构成原理 简单地说,简单地说,Bootloader就是在操作系统内核运行就是在操作系统内核运行之前运行的一段程序,它类似于之前运行的一段程序,它类似于PC机中的机中的BIOS程序。通过这段程序,可以完成硬件设备的初始程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。统内核做好准备。通常,通常,Bootloader比较依赖于硬件平
4、台,建立一比较依赖于硬件平台,建立一个通用的个通用的Bootloader是一件比较困难的事情。是一件比较困难的事情。11/21/20227Bootloader的操作模式(一)系统加电或者复位以后,系统加电或者复位以后,CPU从厂家预设的从厂家预设的某个地址上取指执行,某个地址上取指执行,Bootloader通常被通常被固化在这个地址上。在嵌入式开发时,通固化在这个地址上。在嵌入式开发时,通常要使用各种命令操作常要使用各种命令操作Bootloader,一般,一般使用串口来连接使用串口来连接PC和开发板,通过串口输和开发板,通过串口输入各种命令和观察运行结果。用户使用产入各种命令和观察运行结果。用
5、户使用产品时,不需操作品时,不需操作Bootloader。11/21/20228Bootloader的操作模式(二)启动加载(启动加载(Boot Loading)模式:)模式:上电后,上电后,Bootloader将操作系统从固态存将操作系统从固态存储设备中加载到储设备中加载到RAM中执行,用户不需介中执行,用户不需介入操作。是最终产品发布的模式,也叫入操作。是最终产品发布的模式,也叫“自主自主”模式。模式。下载(下载(Down Loading)模式:)模式:开发人员使用各种命令,通过串口、网口、开发人员使用各种命令,通过串口、网口、USB等方式从主机下载内核镜像和文件系等方式从主机下载内核镜像
6、和文件系统等,将其固化至固态存储设备。统等,将其固化至固态存储设备。11/21/20229Bootloader的启动流程 由于由于Bootloader的实现依赖于的实现依赖于CPU的体系的体系结构,因此大多数结构,因此大多数Bootloader都分为都分为Stage1和和Stage2两大部分。依赖于两大部分。依赖于CPU体体系结构的代码,如设备初始化代码等,通系结构的代码,如设备初始化代码等,通常都放在常都放在Stage1中,而且通常都用汇编语中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而言来实现,以达到短小精悍的目的。而Stage2则通常用则通常用C语言来实现,这样可以语言来实现,
7、这样可以实现复杂的功能,而且代码具有更好的可实现复杂的功能,而且代码具有更好的可读性和可移植性。读性和可移植性。11/21/202210Bootloader的启动流程Stage1 基本的硬件初始化,包括屏蔽所有的中断、设置基本的硬件初始化,包括屏蔽所有的中断、设置CPU的速度和时钟频率、的速度和时钟频率、RAM初始化、初始化外初始化、初始化外围设备、关闭围设备、关闭CPU内部指令和数据内部指令和数据cache等。等。为加载为加载stage2准备准备RAM空间,通常为了获得更快空间,通常为了获得更快的执行速度,通常把的执行速度,通常把stage2加载到加载到RAM空间中来空间中来执行,因此必须为
8、加载执行,因此必须为加载Bootloader的的stage2准备准备好一段可用的好一段可用的RAM空间。空间。拷贝拷贝stage2到到RAM中,在这里要确定两点:中,在这里要确定两点:stage2的可执行映像在固态存储设备的存放起的可执行映像在固态存储设备的存放起始地址和终止地址;始地址和终止地址;RAM空间的起始地址。空间的起始地址。设置堆栈指针设置堆栈指针sp,这是为执行,这是为执行stage2的的C语言代语言代码做好准备。码做好准备。11/21/202211Bootloader的启动流程Stage2 用汇编语言跳转到用汇编语言跳转到main入口函数(入口函数(bl main)由于由于st
9、age2的代码通常用的代码通常用C语言来实现,目的是实现更复语言来实现,目的是实现更复杂的功能和取得更好的代码可读性和可移植性。但是与普杂的功能和取得更好的代码可读性和可移植性。但是与普通通C语言应用程序不同的是,在编译和链接语言应用程序不同的是,在编译和链接Bootloader这这样的程序时,不能使用样的程序时,不能使用glibc库中的任何支持函数。库中的任何支持函数。初始化本阶段要使用到的硬件设备,包括初始化串口、初初始化本阶段要使用到的硬件设备,包括初始化串口、初始化计时器等。在初始化这些设备之前、可以输出一些打始化计时器等。在初始化这些设备之前、可以输出一些打印信息。印信息。检测系统的
10、内存映射,所谓内存映射就是指在整个检测系统的内存映射,所谓内存映射就是指在整个4GB物物理地址空间中指出哪些地址范围被分配用来寻址系统的内理地址空间中指出哪些地址范围被分配用来寻址系统的内存。存。加载内核映像和根文件系统映像,这里包括规划内存占用加载内核映像和根文件系统映像,这里包括规划内存占用的布局和从的布局和从Flash上拷贝数据。上拷贝数据。设置内核的启动参数。设置内核的启动参数。11/21/202212三、嵌入式交叉编译环境的搭建 交叉开发模式就是指在主机上编辑、编译交叉开发模式就是指在主机上编辑、编译程序,然后在目标板上运行、验证程序的程序,然后在目标板上运行、验证程序的过程。在裁减
11、和定制过程。在裁减和定制Linux内核用于嵌入式内核用于嵌入式系统之前,由于一般嵌入式开发系统的资系统之前,由于一般嵌入式开发系统的资源有限,通常都要在源有限,通常都要在PC上建立一个用于目上建立一个用于目标机的交叉编译工具链,用该交叉编译工标机的交叉编译工具链,用该交叉编译工具链在具链在PC上编译目标机上要运行的程序。上编译目标机上要运行的程序。11/21/202213交叉编译工具链的组成 binutils:是一组二进制处理工具的集合,是一组二进制处理工具的集合,包括连接器,汇编器和其他用于目标文件包括连接器,汇编器和其他用于目标文件和档案的工具,如和档案的工具,如objdump、as、ld
12、等。等。gcc:用来生成交叉编译器,主要生成:用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具。交叉编译工具。glibc:主要是提供用户程序所使用的一些:主要是提供用户程序所使用的一些基本的函数库。基本的函数库。11/21/202214交叉编译工具链的安装(一)安装交叉编译器,只需将该编译器的解压安装交叉编译器,只需将该编译器的解压缩文件放在指定的目录下边,缩文件放在指定的目录下边,linux2.6.12 内核使用的编译器为内核使用的编译器为3.4.1 版本。版本。指定目录为:指定目录为:/usr/local/arm 根目录下执行根目录下执行 tar-jxvf cross-3
13、.4.1.tar.bz2 11/21/202215交叉编译工具链的安装(二)在使用的时候有两种方式:(以编译在使用的时候有两种方式:(以编译hello.c 程程序为例,生成可执行文件序为例,生成可执行文件hello)1./usr/local/arm/3.4.1/bin/arm-linux-gcc hello.c o hello2.编辑编辑/etc/bashrc 文件,在最后增加路径:文件,在最后增加路径:export PATH=/usr/local/arm/3.4.1/bin:$PATH 这样就把这样就把/usr/local/arm/3.4.1/bin 添加到命令的添加到命令的默认路径,在编译
14、的时候则可直接用如下的命令:默认路径,在编译的时候则可直接用如下的命令:arm-linux-gcc hello.c o hello11/21/202216四、Linux内核和文件系统的烧写 1.Bootloader的的Linux启动设置启动设置 2.USB驱动及驱动及DNW软件的安装软件的安装 3.内核和文件系统的烧写内核和文件系统的烧写11/21/202217Bootloader的Linux启动设置 进入进入Bootloader 菜单,选择菜单,选择7 进入参数设进入参数设置菜单,将参数置菜单,将参数0的值改为的值改为2(1 为分区为分区application中的程序,中的程序,2 为自启动
15、为自启动linux,3 为自启动为自启动wince)。)。11/21/202218USB驱动及DNW软件的安装(一)驱动程序:驱动程序:PC机需要安装的驱动程序机需要安装的驱动程序USB驱动驱动_用于用于DNW下载程序下载程序.rar 设备名称:设备名称:Witech SEC SOC Test Board 11/21/202219USB驱动及DNW软件的安装(二)DNW 软件是三星公司为软件是三星公司为S3C2440A 芯片配置的芯片配置的一款专用软件,可以在一款专用软件,可以在Windows 下用下用USB方式方式来烧写来烧写FLASH。文件位置:文件位置:实用工具实用工具串口工具串口工具D
16、NW Configuration:COM1,115200,Download Address:0 x3080000011/21/202220内核和文件系统的烧写 11/21/202221五、Linux内核的配置和编译 Linux内核是指内核是指Linux源代码经过编译和链源代码经过编译和链接生成的映像文件(接生成的映像文件(Image)。通常编译)。通常编译嵌入式嵌入式Linux内核都是通过不同的内核都是通过不同的make命命令来实现的令来实现的,它的执行配置文件就是它的执行配置文件就是Makefile,而不同的而不同的Makefile又通过互相的又通过互相的依赖关系构成一个统一的整体去完成建立
展开阅读全文