嵌入式Linux知识培训

上传人:仙*** 文档编号:244347243 上传时间:2024-10-04 格式:PPT 页数:34 大小:121.50KB
返回 下载 相关 举报
嵌入式Linux知识培训_第1页
第1页 / 共34页
嵌入式Linux知识培训_第2页
第2页 / 共34页
嵌入式Linux知识培训_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版样式,单击此处编辑幻灯片母版样式,第二层,第三层,第四层,第五层,2021/9/27,*,*,嵌入式Linux知识培训,主要包括以下四部分内容:,一、嵌入式Linux开发的基本知识,二、Linux下使用C语言进行系统开发,三、面向嵌入式Linux的GUI系统的体系结构及二次开发,四、基于Linux OS Smart Phone的体系结构及开发内容,李玉东,2021/9/27,1,第一部分,基础知识,2021/9/27,2,嵌入式Linux有关知识培训(基础部分),嵌入式Linux软件系统的构成,1.BootLoader,2.Kernel,3.FileSystem,4.GUI,5.Application,2021/9/27,3,嵌入式Linux有关知识培训(基础部分),嵌入式Linux系统的构成(BootLoader),1.PC机的系统引导过程,系统加电,跳转到固定地址BIOSMBRKernel,2.嵌入式系统中的bootloader与PC机的引导程序是类似的,系统加电跳转到固定的地址读入bootloader程序初始化系统加载kernel,将系统的控制权转到kernel.,3.bootloader与机器硬件紧密相关。,4.有一定通用性的bootloader程序uboot,http:/ 4 MTD partitions on PXA Cerf Flash:,0 x00000000-0 x00040000:Bootloader,0 x00040000-0 x000c0000:Partition Tables,0 x000c0000-0 x001c0000:Kernel,0 x001c0000-0 x02000000:Filesystem,2021/9/27,5,嵌入式Linux有关知识培训(基础部分),Multi Stage BootLoader,由于BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。,依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。,而stage2则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性,。,2021/9/27,6,嵌入式Linux有关知识培训(基础部分),BootLoader Stage1,Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序):硬件设备初始化。为加载 Boot Loader 的 stage2 准备 RAM 空间。拷贝 Boot Loader 的 stage2 到 RAM 空间中。设置好堆栈。跳转到 stage2 的 C 入口点。,2021/9/27,7,嵌入式Linux有关知识培训(基础部分),BootLoader Stage2,Boot Loader 的 stage2 通常包括以下步骤:,初始化本阶段要使用到的硬件设备。检测系统内存映射(memory map)。将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。为内核设置启动参数。调用内核。,2021/9/27,8,嵌入式Linux有关知识培训(基础部分),BootLoader 调用内核,Boot Loader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处开始执行,如果系统显示,Uncompressing Linux.done,booting the kernel.,说明Bootloader已成功加载了kernel,Kernel开始启动,2021/9/27,9,嵌入式Linux有关知识培训(基础部分),2021/9/27,10,嵌入式Linux有关知识培训(基础部分),Kernel 启动过程,检查root device mount root file system.,如果root file system中,/linuxrc存在的话,就会被执行。,/linuxrc就是一般所说的linux 的启动脚本,#!/bin/sh,export PATH=/bin:/sbin:/usr/bin,echo Setting up RAMFS,please wait.,mount tmpfs/mnt/ramfs-t tmpfs,tar zxvf/.ramfs.tar.gz-C/mnt/ramfs /dev/null 2&1,mount-n/proc/proc-t proc,echo-en show the pictures,/usr/local/bin/fbctl 2&/setup background light,echo done,echo Executing/sbin/init.,exec/sbin/init,2021/9/27,11,嵌入式Linux有关知识培训(基础部分),Kernel 启动过程,exec/sbin/init,Init根据/etc/inittab中的内容启动相应的程序,这里有一个重要参数:RunLevel,例:id:2:initdefault:,则RunLevel为2,执行的内容为:/etc/rc2.d下面的内容,实际上rc*.d下的内容都是符号链接,都指向/etc/init.d下面的内容,Rc*.d下的程序是按字母顺序执行的,2021/9/27,12,嵌入式Linux有关知识培训(基础部分),开发环境的建立,服务器的安装,客户端需安装的程序,2021/9/27,13,嵌入式Linux有关知识培训(基础部分),开发环境的建立,Linux,服务器,Windows,工作站,开发板,2021/9/27,14,嵌入式Linux有关知识培训(基础部分),交叉编译器,为什么要安装交叉编译器,ARM-LINUX交叉编译器的下载与安装,下载地址:,ftp:/ftp.arm.linux.org.uk/pub/armlinux/toolchain/,2.6.6内核编译器,http:/www.scratchbox.org/index.html?id=4,2021/9/27,15,嵌入式Linux有关知识培训(基础部分),内核的下载,1、内核的版本号,2、内核的下载地址,http:/www.kernel.org/pub/linux/kernel/,3、ARM Patch 的下载地址,ftp:/ftp.arm.linux.org.uk/pub/armlinux/kernel/,4、OMAP Patch的下载地址,http:/ Kerenl的下载方法,BitKeeper工具,以下文档中有详细介绍,http:/ ctName=swpa011,2021/9/27,16,嵌入式Linux有关知识培训(基础部分),内核的解压及Patch的使用方法,以Innovator Development Kit for OMAP Platform为例:,1、解压内核包:,tar xzvf linux-2.4.19.tar.gz,2、使用Patch,patch p1/root/patch-2.4.19-rmk7,patch p1/root/patch-2.4.19-rmk7-omap1,注:使用Patch以后将修改内核源代码中的部分内容,2021/9/27,17,嵌入式Linux有关知识培训(基础部分),内核的编译,不同内核版本的编译方法有一些不同,1、以2.4.18 的内核的编译为例:,make menuconfig,make dep,make clean,make zImage,make modules,make modules_install,2、P2 sample (OMAP 730)内核的编译方法,cp$(LinuxPath)/arch/arm/configs/omap_perseus2_730_defconfig,$(LinuxPath)/.config,make old_config,make zImage,make modules,make modules_install,INSTALL_MOD_PATH=,2021/9/27,18,嵌入式Linux有关知识培训(基础部分),内核的编译,内核生成后,位于以下的路径中:,$(linux_path)/arch/boot/zImage,可将生成的内核image文件直接下载到嵌入式开发板中,2021/9/27,19,嵌入式Linux有关知识培训(基础部分),Linux 根文件系统(Rootfs),Linux支持的文件系统包括:,ext2、ext3、vfat、iso9660、proc.,嵌入式Linux中常用的文件系统包括:,Cramfs RamDisk,Jffs2The Journalling Flash File System,version 2,http:/ root(jffs2 filesystem),将jffs2文件系统mount 到VFS,Linux文件管理系统调用接口,VFS,Ext2,VFAT,NFS,Proc,2021/9/27,21,嵌入式Linux有关知识培训(基础部分),虚拟文件系统VFS,在/etc/fstab文件中,列出了系统启动时自动mount的文件系统。,例如:,#,/dev/mtdblock3 /jffs2 defaults 1 1,ramdisk mnt/ramdisk tmpfs size=10m 0 0,proc /proc proc defaults 0 0,注:其中将jffs2文件系统mount到VFS的“/”上,而对应的设备是:/dev/mtdblock3,重新Mount,Root fs,2021/9/27,22,嵌入式Linux有关知识培训(基础部分),设备驱动程序,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件,一样对硬件设备进行操作,设备驱动程序是内核的一部分,设备驱动程序是在核心态执行的,驱动程序或者在编译内容时直接编译到内核中,或者在生成内核以后将驱动程序编译成模块,然后通过insmod加入到内核中,2021/9/27,23,嵌入式Linux有关知识培训(基础部分),设备驱动程序一般结构,struct file_operations,int(*seek)(struct inode*,struct file*,off_t,int);,int(*read)(struct inode*,struct file*,char,int);,int(*write)(struct inode*,struct file*,off_t,int);,int(*readdir)(struct inode*,struct file*,struct dirent*,int);,int(*select)(struct inode*,struct file*,int,select_table*);,int(*ioctl)(struct inode*,struct file*,unsined int,unsigned long,int(*mmap)(struct inode*,struct file*,struct vm_area_struct*);,int(*open)(struct inode*,struct file*);,int(*release)(struct inode*,struct file*);,int(*fsync)(struct inode*,struct file*);,int(*fasync)(struct inode*,struct file*,int);,int(*check_media_change)(struct inode*,struct file*);,int(*revalidate)(dev_t dev);,驱动程序的主要任务就是填充这个结构,2021/9/27,24,嵌
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!