嵌入式Linux知识培训.ppt

上传人:sccc 文档编号:5398561 上传时间:2023-07-03 格式:PPT 页数:34 大小:140.53KB
返回 下载 相关 举报
嵌入式Linux知识培训.ppt_第1页
第1页 / 共34页
嵌入式Linux知识培训.ppt_第2页
第2页 / 共34页
嵌入式Linux知识培训.ppt_第3页
第3页 / 共34页
嵌入式Linux知识培训.ppt_第4页
第4页 / 共34页
嵌入式Linux知识培训.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《嵌入式Linux知识培训.ppt》由会员分享,可在线阅读,更多相关《嵌入式Linux知识培训.ppt(34页珍藏版)》请在三一办公上搜索。

1、嵌入式Linux知识培训,主要包括以下四部分内容:一、嵌入式Linux开发的基本知识二、Linux下使用C语言进行系统开发三、面向嵌入式Linux的GUI系统的体系结构及二次开发四、基于Linux OS Smart Phone的体系结构及开发内容,李玉东,第一部分,基础知识,嵌入式Linux有关知识培训(基础部分),嵌入式Linux软件系统的构成,1.BootLoader2.Kernel3.FileSystem4.GUI5.Application,嵌入式Linux有关知识培训(基础部分),嵌入式Linux系统的构成(BootLoader),1.PC机的系统引导过程系统加电跳转到固定地址BIOS

2、MBRKernel2.嵌入式系统中的bootloader与PC机的引导程序是类似的系统加电跳转到固定的地址读入bootloader程序初始化系统加载kernel,将系统的控制权转到kernel.3.bootloader与机器硬件紧密相关。4.有一定通用性的bootloader程序uboothttp:/,嵌入式Linux有关知识培训(基础部分),典型的空间分配结构,Creating 4 MTD partitions on PXA Cerf Flash:0 x00000000-0 x00040000:Bootloader0 x00040000-0 x000c0000:Partition Table

3、s0 x000c0000-0 x001c0000:Kernel0 x001c0000-0 x02000000:Filesystem,嵌入式Linux有关知识培训(基础部分),Multi Stage BootLoader,由于BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。,嵌入式Linux有关知识培

4、训(基础部分),BootLoader Stage1,Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序):硬件设备初始化。为加载 Boot Loader 的 stage2 准备 RAM 空间。拷贝 Boot Loader 的 stage2 到 RAM 空间中。设置好堆栈。跳转到 stage2 的 C 入口点。,嵌入式Linux有关知识培训(基础部分),BootLoader Stage2,Boot Loader 的 stage2 通常包括以下步骤:初始化本阶段要使用到的硬件设备。检测系统内存映射(memory map)。将 kernel 映像和根文件系统映像从 flas

5、h 上读到 RAM 空间中。为内核设置启动参数。调用内核。,嵌入式Linux有关知识培训(基础部分),BootLoader 调用内核,Boot Loader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处开始执行 如果系统显示Uncompressing Linux.done,booting the kernel.说明Bootloader已成功加载了kernel,Kernel开始启动,嵌入式Linux有关知识培训(基础部分),嵌入式Linux有关知识培训(基础部分),Kernel 启动过程,检查root device mount root file system.如果root fil

6、e system中,/linuxrc存在的话,就会被执行。/linuxrc就是一般所说的linux 的启动脚本#!/bin/shexport PATH=/bin:/sbin:/usr/binecho Setting up RAMFS,please wait.mount tmpfs/mnt/ramfs-t tmpfstar zxvf/.ramfs.tar.gz-C/mnt/ramfs/dev/null 2&1mount-n/proc/proc-t procecho-en show the pictures/usr/local/bin/fbctl 2&/setup background light

7、echo doneecho Executing/sbin/init.exec/sbin/init,嵌入式Linux有关知识培训(基础部分),Kernel 启动过程,exec/sbin/initInit根据/etc/inittab中的内容启动相应的程序这里有一个重要参数:RunLevel例:id:2:initdefault:则RunLevel为2执行的内容为:/etc/rc2.d下面的内容实际上rc*.d下的内容都是符号链接,都指向/etc/init.d下面的内容Rc*.d下的程序是按字母顺序执行的,嵌入式Linux有关知识培训(基础部分),开发环境的建立,服务器的安装客户端需安装的程序,嵌入式

8、Linux有关知识培训(基础部分),开发环境的建立,Linux服务器,Windows工作站,开发板,嵌入式Linux有关知识培训(基础部分),交叉编译器,为什么要安装交叉编译器ARM-LINUX交叉编译器的下载与安装下载地址:ftp:/ftp.arm.linux.org.uk/pub/armlinux/toolchain/2.6.6内核编译器http:/www.scratchbox.org/index.html?id=4,嵌入式Linux有关知识培训(基础部分),内核的下载,1、内核的版本号2、内核的下载地址http:/www.kernel.org/pub/linux/kernel/3、ARM

9、 Patch 的下载地址ftp:/ftp.arm.linux.org.uk/pub/armlinux/kernel/4、OMAP Patch的下载地址http:/Kerenl的下载方法BitKeeper工具以下文档中有详细介绍http:/ctName=swpa011,嵌入式Linux有关知识培训(基础部分),内核的解压及Patch的使用方法,以Innovator Development Kit for OMAP Platform为例:1、解压内核包:tar xzvf linux-2.4.19.tar.gz2、使用Patchpatch p1/root/patch-2.4.19-rmk7patch

10、 p1/root/patch-2.4.19-rmk7-omap1注:使用Patch以后将修改内核源代码中的部分内容,嵌入式Linux有关知识培训(基础部分),内核的编译,不同内核版本的编译方法有一些不同 1、以2.4.18 的内核的编译为例:make menuconfigmake depmake cleanmake zImagemake modules make modules_install 2、P2 sample(OMAP 730)内核的编译方法cp$(LinuxPath)/arch/arm/configs/omap_perseus2_730_defconfig$(LinuxPath)/.

11、configmake old_configmake zImagemake modulesmake modules_install INSTALL_MOD_PATH=,嵌入式Linux有关知识培训(基础部分),内核的编译,内核生成后,位于以下的路径中:$(linux_path)/arch/boot/zImage可将生成的内核image文件直接下载到嵌入式开发板中,嵌入式Linux有关知识培训(基础部分),Linux 根文件系统(Rootfs),Linux支持的文件系统包括:ext2、ext3、vfat、iso9660、proc.嵌入式Linux中常用的文件系统包括:Cramfs RamDiskJ

12、ffs2The Journalling Flash File System,version 2http:/,嵌入式Linux有关知识培训(基础部分),虚拟文件系统VFS,系统启动过程中可以看到:VFS:Mounted root(jffs2 filesystem)将jffs2文件系统mount 到VFS,Linux文件管理系统调用接口VFS,Ext2,VFAT,NFS,Proc,嵌入式Linux有关知识培训(基础部分),虚拟文件系统VFS,在/etc/fstab文件中,列出了系统启动时自动mount的文件系统。例如:#/dev/mtdblock3/jffs2 defaults 1 1ramdis

13、k mnt/ramdisk tmpfs size=10m 0 0proc/proc proc defaults 0 0注:其中将jffs2文件系统mount到VFS的“/”上,而对应的设备是:/dev/mtdblock3,重新MountRoot fs,嵌入式Linux有关知识培训(基础部分),设备驱动程序,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作设备驱动程序是内核的一部分设备驱动程序是在核心态执行的驱动程序或者在编译内容时直接编译到内核中,或者在生成内核

14、以后将驱动程序编译成模块,然后通过insmod加入到内核中,嵌入式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(*se

15、lect)(struct inode*,struct file*,int,select_table*);int(*ioctl)(struct inode*,struct file*,unsined int,unsigned longint(*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*);i

16、nt(*fasync)(struct inode*,struct file*,int);int(*check_media_change)(struct inode*,struct file*);int(*revalidate)(dev_t dev);,驱动程序的主要任务就是填充这个结构,嵌入式Linux有关知识培训(基础部分),设备驱动程序中两个重要函数,int init_module(void)就是向系统的字符设备表登记了一个设备当使用insmod加入模块时,该函数被调用void cleanup_module(void)它释放字符设备在系统设备表中占有的表项在用rmmod卸载模块时,clea

17、nup_module函数被调用,嵌入式Linux有关知识培训(基础部分),设备驱动程序,编译设备驱动程序gcc-DMODULE-D_KERNEL_-c test.c得到的test.o就是设备驱动程序设备文件与设备号设备被加入到系统中后,系统会为其分配设备号在/proc/devices可以看到设备的设备号通过mknod命令建立设备节点。通过打开设备节点就可以操作对应的设备了,第二部分,C语言开发,嵌入式Linux知识培训(C语言的开发),编辑工具 vi kate编译、链接工具 gccLinux下的编译器(C语言)是cc,汇编器是as,链接器是ld调试工具 gdb举例,Linux 下C语言开发基本

18、知识,嵌入式Linux知识培训(C语言的开发),Makefile的使用(举例)动态链接库的生成及使用方法(举例)多线程编程线程的同步技术,Linux下的高级开发技术,嵌入式Linux知识培训(C语言的开发),线程的同步技术互斥量(mutex)条件变量守候条件变量向条件变量发出信号信号量(P,V操作),Linux下的高级开发技术,嵌入式Linux知识培训(C语言的开发),IPC(进程间通信)消息队列共享内存管道.GUI中通常使用的是domain_socket,Linux下的高级开发技术,嵌入式Linux知识培训(C语言的开发),关键设备的访问方法framebufferFramebuffer简介 Linux下的framebuffer是一个抽象的图形设备,它可以使应用程序直接访问图形硬件设备。设备节点是/dev/fb*面向嵌入式Linux的GUI系统基本上都是基于Framebuffer,Linux下的高级开发技术,嵌入式Linux知识培训(C语言的开发),BOOL InitFrameBuffer()_lGUI_iFrameBuffer=open(/dev/fb0,O_RDWR);ioctl(_lGUI_iFrameBuffer,FBIOGET_VSCREENINFO,嵌入式Linux知识培训(C语言的开发),关键设备的访问方法串口操作示例,Linux下的高级开发技术,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号