欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式Linux知识培训.ppt

    • 资源ID:5398561       资源大小:140.53KB        全文页数:34页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式Linux知识培训.ppt

    嵌入式Linux知识培训,主要包括以下四部分内容:一、嵌入式Linux开发的基本知识二、Linux下使用C语言进行系统开发三、面向嵌入式Linux的GUI系统的体系结构及二次开发四、基于Linux OS Smart Phone的体系结构及开发内容,李玉东,第一部分,基础知识,嵌入式Linux有关知识培训(基础部分),嵌入式Linux软件系统的构成,1.BootLoader2.Kernel3.FileSystem4.GUI5.Application,嵌入式Linux有关知识培训(基础部分),嵌入式Linux系统的构成(BootLoader),1.PC机的系统引导过程系统加电跳转到固定地址BIOSMBRKernel2.嵌入式系统中的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 Tables0 x000c0000-0 x001c0000:Kernel0 x001c0000-0 x02000000:Filesystem,嵌入式Linux有关知识培训(基础部分),Multi Stage BootLoader,由于BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。,嵌入式Linux有关知识培训(基础部分),BootLoader Stage1,Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序):硬件设备初始化。为加载 Boot Loader 的 stage2 准备 RAM 空间。拷贝 Boot Loader 的 stage2 到 RAM 空间中。设置好堆栈。跳转到 stage2 的 C 入口点。,嵌入式Linux有关知识培训(基础部分),BootLoader Stage2,Boot Loader 的 stage2 通常包括以下步骤:初始化本阶段要使用到的硬件设备。检测系统内存映射(memory map)。将 kernel 映像和根文件系统映像从 flash 上读到 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 file 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 lightecho 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有关知识培训(基础部分),开发环境的建立,服务器的安装客户端需安装的程序,嵌入式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 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 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)/.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 RamDiskJffs2The 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 1ramdisk mnt/ramdisk tmpfs size=10m 0 0proc/proc proc defaults 0 0注:其中将jffs2文件系统mount到VFS的“/”上,而对应的设备是:/dev/mtdblock3,重新MountRoot fs,嵌入式Linux有关知识培训(基础部分),设备驱动程序,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作设备驱动程序是内核的一部分设备驱动程序是在核心态执行的驱动程序或者在编译内容时直接编译到内核中,或者在生成内核以后将驱动程序编译成模块,然后通过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(*select)(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*);int(*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卸载模块时,cleanup_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语言开发基本知识,嵌入式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下的高级开发技术,

    注意事项

    本文(嵌入式Linux知识培训.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开