嵌入式Linux系统实用教案_第1页
嵌入式Linux系统实用教案_第2页
嵌入式Linux系统实用教案_第3页
嵌入式Linux系统实用教案_第4页
嵌入式Linux系统实用教案_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要主要(zhyo)内容内容u嵌入式系统(xtng)u嵌入式处理器与平台的选择uLinux嵌入式操作系统(xtng)第1页/共59页第一页,共59页。主要主要(zhyo)内容内容u嵌入式系统u嵌入式处理器与平台(pngti)的选择uLinux嵌入式操作系统第2页/共59页第二页,共59页。嵌入式技术嵌入式技术(jsh)(jsh)无处不在:无处不在:第3页/共59页第三页,共59页。嵌入式技术(jsh)无处不在:第4页/共59页第四页,共59页。n嵌入式技术典型嵌入式技术典型(dinxng)应用应用第5页/共59页第五页,共59页。嵌入式产品拥有璀璨(cu cn)的明天第6页/共59页第六页,共

2、59页。嵌入式系统的定义:嵌入式系统的定义:一般定义一般定义 “以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可靠性、成本、体积、功耗严格要求的专用计算机系统。”从以下几个方面来理解对嵌入式系统的定义:从以下几个方面来理解对嵌入式系统的定义: 嵌入式系统是面向用户、面向产品、面向应用的,它必须与嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。可以这样理解上述具体应用相结合才会具有生命力、才更具有优势。可以这样理解上述三个方面的含义,

3、即嵌入式系统是与应用紧密结合的,它具有很强的三个方面的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求专用性,必须结合实际系统需求(xqi)(xqi)进行合理的裁减利用。进行合理的裁减利用。 第7页/共59页第七页,共59页。相关相关(xinggun)内容内容u嵌入式系统(xtng)u嵌入式处理器与平台的选择uLinux嵌入式操作系统(xtng)第8页/共59页第八页,共59页。常见(chn jin)的嵌入式处理器:ARM、MIPS、PowerPC、x86第9页/共59页第九页,共59页。ARM Ltd Founded in November 1990 Spun

4、out of Acorn Computers-Advanced RISC Machines Ltd, now just ARM Ltd. Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate and sell to their customers. ARM does not fabricate silicon itself Also develop technologies to assist with the design-

5、in of the ARM architecture Software tools, boards, debug hardware, application software, bus architectures, peripherals etcARM LTD第10页/共59页第十页,共59页。 ARM Partnership Model第11页/共59页第十一页,共59页。 ARM Partnership Model第12页/共59页第十二页,共59页。嵌入式处理器与平台嵌入式处理器与平台(pngti)的选择的选择 常见的嵌入式处理器:ARM、MIPS、PowerPC、x86 处理器仅仅是教

6、学的载体,多注重体系结构、设计方法 对于一个优秀(yuxi)的嵌入式系统工程师来说,各种体系结构的处理器都是一样的。第13页/共59页第十三页,共59页。为什么在嵌入式系统教学为什么在嵌入式系统教学(jio xu)中选用中选用ARM 典型的RISC体系结构 软件资源丰富、完善 编译器 操作系统 应用(yngyng)程序 调试工具 处理器廉价,种类多,应用(yngyng)广泛第14页/共59页第十四页,共59页。ARM处理器分类处理器分类(fn li) ARM微处理器目前(mqin)包括下面几个系列,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。 AR

7、M7系列 ARM9系列ARM9E系列 ARM10E系列 ARM11系列 Securcore系列 Intel的StrongARM Intel的Xscale第15页/共59页第十五页,共59页。ARM7 、ARM9 流水线流水线InstructionFetch Shift + ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeIns

8、tructionFetchFETCHDECODEEXECUTEARM7TDMI第16页/共59页第十六页,共59页。ARM 微处理器的特点(tdin)RISCRISC体系结构具有如下特点: 采用固定长度的指令格式,指令归整、简单、基本寻址方式简单; 使用单周期指令,便于(biny)(biny)流水线操作执行; 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ /存储指令可以访问存储器,以提高指令的执行效率。 ARM ARM 微处理器的特点微处理器的特点(tdin)(tdin)采用RISCRISC体系结构 第17页/共59页第十七页,共59页。 ARM嵌入式技术(jsh)ARM ARM

9、 处理器共有3737个寄存器,被分为若干个组,这些(zhxi)(zhxi)寄存器包括: 31 31个通用寄存器,包括程序计数器(PC PC 指针),均为3232位的寄存器; 6 6个状态寄存器,用以标识CPUCPU的工作状态及程序的运行状态,均为3232位。 大量大量(dling)的寄存器的寄存器第18页/共59页第十八页,共59页。各模式各模式(msh)下寄存器组织下寄存器组织模式用户系统中止未定义中断R0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R6R6R6R6R6R7R7R7R7R7R7

10、R8R8R8R8R8R8_fiqR9R9R9R9R9R9_fiqR10R10R10R10R10R10_fiqR11R11R11R11R11R11_fiqR12R12R12R12R12R12_fiqR13R13R13_abtR13_undR13_irqR13_fiqR14R14R14_abtR14_undR14_irqR14_fiqPCPCPCPCPCPCCPSRCPSRCPSRCPSRCPSRCPSRSPSR_abtSPSR_undSPSR_irqSPSR_fiq快中断管理R0R1R2R3R4R5R6R7R8R9R10R11R12R13_svcR14_svcPCCPSRSPSR_svc异常模式

11、特权模式第19页/共59页第十九页,共59页。r0r1r2r3r4r5r6r7r15 (pc)cpsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr8r9r10r11r12r13 (sp)r14 (lr)spsrCurrent Visible RegistersBanked out RegistersUserIRQSVCUndefAbortr8r9r10r11r12r13 (sp)r14 (lr)FIQ Moder0r1r2r3r4r5r6r7r8r9r10r11r12r13 (

12、sp)r14 (lr)r15 (pc)cpsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr8r9r10r11r12r13 (sp)r14 (lr)spsrFIQIRQSVCUndefAbortUser Moder0r1r2r3r4r5r6r7r8r9r10r11r12r13 (sp)r14 (lr)r15 (pc)cpsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)spsrr13 (sp)r14 (lr)sps

13、rr8r9r10r11r12r13 (sp)r14 (lr)spsrCurrent Visible RegistersBanked out RegistersFIQIRQSVCUndefAbort第20页/共59页第二十页,共59页。ARM嵌入式技术(jsh)ARMARM微处理器支持两种指令集:ARMARM指令集和ThumbThumb指令集ARMARM指令为3232位的长度,ThumbThumb指令为1616位长度。ThumbThumb指令集为ARMARM指令集的功能子集,但与等价的ARMARM代码(di m)(di m)相比较,可节省30304040以上的存储空间,同时具备3232位代码(d

14、i m)(di m)的所有优点。 高效高效(o xio)的指令系统的指令系统第21页/共59页第二十一页,共59页。相关相关(xinggun)内容内容u嵌入式系统(xtng)u嵌入式处理器与平台的选择uLinux嵌入式操作系统(xtng)第22页/共59页第二十二页,共59页。Linux的诞生的诞生(dnshng)和发展和发展 Linux 操作系统的诞生、发展和成长过程与以下五个因素密切相关: UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络 GNU计划:旨在开发一个类似 Unix、并且是自由软件的完整操作系统 : emacs 编辑系统、bash

15、 shell 程序、gcc 系列编译程序、gdb 调试程序等等 POSIX标准:该标准基于现有的UNIX 实践(shjin)和经验,描述了操作系统的调用服务 接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运 行。20世纪90年代初,在POSIX标准即将发布的时候,Linux就以该标准为指导进 行开发,做到与绝大多数UNIX系统兼容。 Linus Minix - Linux GNU/Linux 网络是Linux成长和壮大的必要环境第23页/共59页第二十三页,共59页。Linux定义定义(dngy) Linux一般是指Linux内核、Linux系统、Li nux发行版。严格意

16、义上说Linux是指由Linus Torvalds维护的并发布的内核。它的代码基只包括内核而不包括其它(qt)方面的应用。内核提供系统核心服务:进程管理,进程的调度,虚拟文件系统,内存的管理,网络接口。 嵌入式Linux,一般是指把Linux内核移植到一个专用嵌入式设备的CPU和主板上。现在有很多公司提供嵌入式Linux解决方案。通常包括一个移植好的内核和嵌入式Linux的开发工具以及根据应用需要裁减的应用程序,有时还提供实时扩展的内核。就大部分而言,嵌入式Linux和桌面Linux提供的API函数和内核源代码都是相同的。开发工具主要包括源码浏览器、交叉编译器、调试器、CVS等项目管理软件等等

17、。这些工具一般都是装在主机上。 第24页/共59页第二十四页,共59页。嵌入式嵌入式linux产品产品(chnpn)第25页/共59页第二十五页,共59页。Linux优势优势(yush) Linux是免费的 Linux的所有部分可以充分地定制 Linux可以运行在低档,便宜(biny)的硬件平台 Linux是强大的 Linux对源代码质量有一个高标准 Linux内核非常小,而且紧凑 Linux与很多常见的操作系统高度兼容 Linux有很好的支持 Linux有很多合适的工具第26页/共59页第二十六页,共59页。Linux在嵌入式领域在嵌入式领域(ln y)的优势的优势 为什么现在的嵌入式软件如

18、此热门? 现在计算业的流行趋势是嵌入式设备,而不再是桌面和服务器。移动电话、居室计算机、无线热点、车载娱乐设备及数字安全系统(xtng)等都使得嵌入式领域成为众多厂商拼杀最为激烈的战场之一。 目前有98%的计算机处理器芯片被用于嵌入式设备之中,只有2%的计算机芯片被用于桌面和服务器领域。 对于Linux而言,其在嵌入式市场领域的投资是由无数开放源码开发人员,以及以IBM、Novell和HP等为代表的行业巨头,加上强大的工业联盟,包括OSDL和CELF(Consumer Electronics Linux Forum)所驱动的。Design News最近将Linux列为嵌入式市场的领头羊。同时,

19、从去年夏天开始,VDC也将Linux列为嵌入式开发人员的首选。 第27页/共59页第二十七页,共59页。方案设计方案设计-操作系统操作系统(co zu x tn)的原则的原则嵌入式操作系统的选择嵌入式操作系统的选择(xunz)免费免费,实时性好实时性好,过于过于(guy)简单简单价格昂贵价格昂贵,实实时性好时性好价格较贵价格较贵,实实时性一般时性一般 免费,实时性较差性能稳定,硬件需求小 ,可剪裁MV-Linux KURT Red-Linux RT-Linux WinCEVxworksC/OS- Linux 进行实时性改进进行实时性改进单内核改进方案双内核改进方案RTAI-Linux 价格较贵

20、价格较贵, ,实时性好实时性好, ,不方便移植不方便移植不免费不免费,实时性好实时性好,方便移植方便移植免费免费,实时性实时性好好,方便移植方便移植第28页/共59页第二十八页,共59页。VDC统计数据统计数据第29页/共59页第二十九页,共59页。WinCE VS Linux Linux 内核源码开放 驱动程序开发更容易 软件资源丰富 Unix习惯,Windows的开发人员不容易适应 WinCE Windows习惯的开发风格 应用程序开发迅速 内核源码不开放,不容易深入(shnr)学习第30页/共59页第三十页,共59页。Linux优势统计(tngj)日期:2004.7第31页/共59页第三

21、十一页,共59页。Linux优势(yush) Windows和Linux在不同应用领域的产品(chnpn)数量(2005年7月)产品(chnpn)分类 使用嵌入式Windows的产品(chnpn)数量 使用嵌入式Linux的产品(chnpn)数量PDA、手持设备 103 40手机 36 22VoIP电话/设备 13 14机器人 无 11音频/视频播放器 20 60微终端 37 26平板PC 36 13网关、服务器、AP 无 73其他 45 54合计 290 313第32页/共59页第三十二页,共59页。第33页/共59页第三十三页,共59页。arm-linux-gcc交叉(jioch)编译器构

22、建交叉编译环境Binutils工具包包括连接器汇编器等Gcc编译器C与c的编译器和预处理器等Glibc库提供系统调用和基本函数C库等第34页/共59页第三十四页,共59页。arm-linux-gcc编译器的选择编译器的选择(xunz) Linux 2.6内核至少需要(xyo)使用,建议使用gcc 3.3以上版本 gcc 3.4开始,支持iwmmx指令和优化第35页/共59页第三十五页,共59页。如何如何(rh)学习嵌入式学习嵌入式Linux 从驱动程序入手(rshu) 利用windows的工具分析Linux内核:SourceInsight,UltraEdit 研究源码,多看少问 利用搜索引擎第

23、36页/共59页第三十六页,共59页。BLOB 引导(yndo)程序Linux 内核(ni h)Rootfs 根文件系统用户(yngh)应用程序(GUI)系统软件平台结构图实时内核改造设备驱动的编写JFFS2,YAFFS,TMPFSQT图形界面的建立第37页/共59页第三十七页,共59页。BLOB 引导(yndo)程序Linux 内核(ni h)Rootfs 根文件系统用户(yngh)应用程序(GUI)系统软件平台结构图实时内核改造设备驱动的编写JFFS2,YAFFS,TMPFSQT图形界面的建立第38页/共59页第三十八页,共59页。PXA270PXA270平台上平台上LinuxLinux的

24、引导的引导(yndo)(yndo)加载程序设计加载程序设计ViviUbootRedbootBlob支持串口下载(xi zi)功能,代码量小支持串口,网络下载功能(gngnng),代码量大支持串口,网络下载功能,代码量最大支持串口,网络下载功能,代码量小BootLoader第39页/共59页第三十九页,共59页。start.Strampoline.Smain.c第1阶段汇编代码,完成:复位处理(chl)异常中断处理(chl),处理(chl)器及外设的初始化; 复制第2阶段代码到内存第2阶段汇编代码,初始化各个(gg)操作代码的堆栈,跳转到C代码C代码(di m)的主程序,将各个功能串接起来,完成

25、应用的主要功能串口驱动FLASH驱动人机接口命令处理XMODEM,TFTP协议数据下载PXA270-S平台上平台上Linux的引导加载程序设计的引导加载程序设计第40页/共59页第四十页,共59页。BLOB 引导(yndo)程序Linux 内核(ni h)Rootfs 根文件系统用户(yngh)应用程序(GUI)系统软件平台结构图实时内核改造设备驱动的编写JFFS2,YAFFS,TMPFSQT图形界面的建立第41页/共59页第四十一页,共59页。Linux内核(ni h)的组成 第42页/共59页第四十二页,共59页。定制(dn zh)Linux内核:1. make menuconfig( m

26、ake xconfig ) 2. make zImage 第43页/共59页第四十三页,共59页。Linux的驱动程序的驱动程序 LinuxLinux下对外设的访问只能通过驱动程序下对外设的访问只能通过驱动程序 LinuxLinux对于驱动程序有统一的接口,以文件的形式定义系统的驱动程序:对于驱动程序有统一的接口,以文件的形式定义系统的驱动程序: OpenOpen、ReleaseRelease、readread、writewrite、ioctlioctl 驱动程序是内核的一部分,可以使用中断、驱动程序是内核的一部分,可以使用中断、DMADMA等操作等操作 驱动程序需要在用户态和内核态之间传递数

27、据驱动程序需要在用户态和内核态之间传递数据 uClinuxuClinux下可以在应用层直接下可以在应用层直接(zhji)(zhji)访问外设,操作寄存器口,但是无法处理访问外设,操作寄存器口,但是无法处理中断中断不推荐使用不推荐使用 对于复杂的应用可以考虑是用对于复杂的应用可以考虑是用mmapmmap第44页/共59页第四十四页,共59页。一个一个(y )简单的简单的Linux驱动程序原理驱动程序原理第45页/共59页第四十五页,共59页。Linux设备驱动设计方法:1.熟悉(shx)ARM电路设计知识2.熟悉(shx)各外设驱动芯片的特性3.熟悉(shx)Linux下设备驱动编程框架第46页

28、/共59页第四十六页,共59页。LinuxLinux的设备的设备(shbi)(shbi)驱动编程驱动编程 第47页/共59页第四十七页,共59页。BLOB 引导(yndo)程序Linux 内核(ni h)Rootfs 根文件系统用户(yngh)应用程序(GUI)系统软件平台结构图 RTAI实时内核设备驱动的编写JFFS2,YAFFS,TMPFSQT图形界面的建立第48页/共59页第四十八页,共59页。ARMARM上上LinuxLinux的文件系统设计的文件系统设计(shj) (shj) LinuxLinux支持支持(zhch)(zhch)的常见的文件系统有:的常见的文件系统有:JFSJFS、

29、ReiserFS ReiserFS、extext、ext2ext2、ext3ext3、ISO9660ISO9660、XFSXFS、MinxMinx、MSDOSMSDOS、UMSDOSUMSDOS、VFATVFAT、NTFSNTFS、HPFSHPFS、NFSNFS、SMBSMB、SysVSysV、PROCPROC等等 LinuxLinux支持支持(zhch)(zhch)的常见的嵌入式文件系统有的常见的嵌入式文件系统有: :UP-NETARM2410-SUP-NETARM2410-S选择选择CRAMFS,YAFFS,TMPFSCRAMFS,YAFFS,TMPFS三种文件系统三种文件系统第49页/共

30、59页第四十九页,共59页。嵌入式嵌入式linux下常见下常见(chn jin)的文件系统的文件系统 ramfs:利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间 cramfs:压缩只读文件系统,可以放在ROM(Flash)空间,也可以在系统的RAM中,节省存储器空间 JFFS/JFFS2:为Flash设计的日志文件系统,嵌入式Linux中常用来作根文件系统 Yaffs:专门为Nand Flash设计 NFS:网络文件系统。开发时候,可以作为根文件系统,调试更方便 proc:为内核和内核模块将信息发送给进程提供一种机制( jzh),可以查看系统模块装载的信息第50页/共59页第五十页,共59页。ARMARM上上LinuxLinux的文件系统设计的文件系统设计(shj)(shj)根文件系统:CRAMFS用户(yngh)文件系统:YAFFS临时文件系统:Ramfs第51页/共59页第五十一页,共59页。目录 习惯用法 bin 用户命令所在目录dev 硬件设备文件及其它特殊文件et系统配置文件,包括启动文件等home 多用户主目录lib 链接库文件目录mnt 装配点,用于装配临时文件系统opt 附加的软件(run jin)套件目录proc 虚拟文件系统,用来显示内核及进程信息root root用户主目录sbin系统管理员命令目录t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论