




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
21121230智能终端软件开发(智能手机软件开发)SmartphoneSoftwareDevelopment第2课智能终端Linux,陈天洲浙江大学软硬件协同设计实验室2010-9-13曹西204(理论课),曹西501(实验课),智能终端选择操作系统,ARM处理器ARMLinux等Linux系列IOSRIMX86处理器Linux微软嵌入式系列Linux可以支持各种智能终端处理器从桌面Linux演变而来案例:2007年的诺基亚N810400MHz主频的TIOMAP2420中央处理器(ARM核心)使用基于Linux内核的2008TabletEdition操作系统N900使用Maemo5操作系统,Linux与嵌入式Linux,4,Linux历史,Linux的诞生1991年芬兰大学生LinusTorvalds写的类minix操作系统第一个版本是Linux0.01版本,代码量为一万行1992年,用户为1000人1994年3月,Linux1.0发布代码量17万行随后正式采用GPL协议1996年6月,Linux2.0内核发布2.0版本内核约有40万行代码可以支持多种处理器全球大约有350万人使用1998年,RedhatLinux出现2000年及之后,Linux发展迅速从桌面到服务器到嵌入式领域市场占有率也有所提升,开源开放,知识产权任何版本的都需要遵守GPL没有独立的知识产权混乱的标准没有一个主导的厂商,6,Linux的版本,内核属于单内核不属于微内核、混合内核、外内核、无核内核版本目前最常用的版本:2.6.18,2.6.28,等最新的版本刚刚放出2.6.30Intel的Moblin2.0和谷歌的Android最终都要依据这个Linux内核版本发行版基于Debian,如Ubuntu基于RPM,如Fedora,红旗Slackware专用包,专用包,Android来自Google,以apk格式打包,采用Dalvik虚拟机提供类似Java(编程语言)的应用程序接口目前专用于HTCDream和HTCMagic等手机型号。Maemo来自诺基亚,基于Debian目前专用于诺基亚的N770、N800等网络终端。Moblin来自英特尔,现已捐给Linux基金会用于EeePC或其他上网本,支持快速启动Maemo+Moblin合并为MeeGoiPodLinux基于修改版uClinux内核,并编写有“podzilla”简单用户界面,8,嵌入式Linux,嵌入式Linux以Linux为基础的,面向嵌入式系统定制的嵌入式操作系统Linux的优点不需要支付操作系统许可证的费用体系结构是公开源代码开放系列的免费开发工具和开发环境大量的免费文档广泛的技术支持用于嵌入式系统时,Linux的缺点Linux是非实时的操作系统,而嵌入式系统一般都要求实时Linux本身需要的硬件资源较多,而嵌入式系统是资源有限的系统,9,嵌入式Linux的历史,早期的嵌入式Linux最早在1999年左右,开始出现面向嵌入式Linux的需求和相关的开发2003年以后嵌入式Linux的发展开始快速发展出发点是基于Linux的优点不同的应用行业和企业基于拥有自己平台的思想,对嵌入式Linux进行了大量的投入GoogleAndroid,2007IntelMeego,2010,10,嵌入式Linux的改进(1),嵌入式Linux基于Linux,不完全相同实时性嵌入式系统有较高的实时性的要求Linux是通用操作系统,不是实时操作系统内核不支持抢占实时特性嵌入式Linux扩展了Linux的实时性能实时调度算法功能上扩充Linux的实时处理和控制系统支持的范围更广,支持的设备更多,11,嵌入式Linux的改进(2),定制内核嵌入式系统是软硬件可裁剪适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统有较高的实时性的要求Linux是Monolithic内核,不能应用于嵌入式系统嵌入式Linux的定制内核可以采用MicroKernel内核体积小,占用的资源少面向应用的系统定制根据行业的特性对Linux进行行业化系统定制,12,嵌入式Linux的特点,继承了Linux的优点开源开放有较为成熟的技术社区体积小无许可证费用工具链越来越完整和丰富可以进行定制化的改造实时性得到了提高对嵌入式的硬件有较好的支持,13,嵌入式Linux的应用领域,嵌入式Linux的应用领域广泛移动计算工业控制军事领域需要嵌入式操作系统的地方,就可以应用嵌入式Linux,基于Linux的手机,摩托罗拉一般而言是基于MontaVistaLinux,型号很多CECE2800三星I519NokiaN810N800GoogleAndroid,15,嵌入式Linux与WindowsMobile,嵌入式Linux开放开源有开源社区的支持由多个公司开发支持嵌入式Linux的厂商众多应用领域广泛免费,WindowsMobile部分开放由微软开发维护有微软的技术支持有相关开发社区支持的厂商众多应用领域比较广泛版权/许可证费用,嵌入式Linux的主要优势在于它的免费、开放开源,ARM-Linux内存管理(略),17,ARM-Linux内存管理,存储管理是一个很大的范畴存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响,18,内存管理和MMU,MMU“内存管理单元”,其主要作用是两个方面:地址映射对地址访问的保护和限制MMU可以内置在芯片中,也可以作为协处理器ARM中的协处理器CP15(系统控制协处理器),19,ARM存储管理机制,ARM系统结构中,内存地址映射支持两种:单层的按“段(section)”映射,段大小为1M二层的按“页面(page)”映射Tinypages:1KSmallpages:4KLargepages:64K,20,ARM存储管理机制,按“段”进行地址映射方式,21,ARM存储管理机制,采用页面映射,“段映射表”就成了“首层页面映射表”,映射的过程如下(以页面大小4KB为例),22,ARM存储管理机制,凡是支持虚存的CPU必须为有关的映射表提供高速缓存,使地址映射的过程在不访问内存的前提下完成,用于这个目的高速缓存称为地址转换表(TLB)高速缓存ARM系统结构中配备了两个地址映射TLB和两个高速缓存,23,ARM存储管理机制,ARM处理器中,MMU是作为协处理器CP15的一部分实现的MMU相关的最主要的寄存器有三个:控制寄存器,控制MMU的开关、高速缓存的开关、写缓冲区的开关等(CP15:C1)地址转换表基地址寄存器(CP15:C2)域访问控制寄存器(CP15:C3),24,ARM-Linux存储机制的建立,ARM-Linux内核将4GB虚拟地址空间分为两个部分高端的1G为系统空间低端的3G为用户空间ARM将I/O也放在内存地址空间中系统空间的一部分虚拟地址不是映射到物理内存,而是映射到一些I/O设备地址,25,ARM-Linux进程的虚存空间,Linux虚拟内存的实现需要6种机制的支持:地址映射机制内存分配回收机制缓存和刷新机制请求页机制交换机制内存共享机制,26,ARM-Linux进程的虚存空间,系统中的每个进程都各有自己的首层映射表这就是它的空间没有独立的空间的就只是线程而不是进程Linux内核需要管理所有的虚拟内存地址每个进程虚拟内存中的内容在其task_struct结构中指向的vm_area_struct结构中描叙,27,ARM-Linux进程的虚存空间,task_struct结构分析图,28,ARM-Linux进程的虚存空间,由于那些虚拟内存区域来源各不相同,Linux使用vm_area_struct中指向一组虚拟内存处理过程的指针来抽象此接口为进程创建新的虚拟内存区域或处理页面不在物理内存中的情况下,Linux内核重复使用进程的vm_area_struct数据结构集合当进程请求分配虚拟内存时,Linux并不直接分配物理内存,ARM-Linux中断(略),30,ARM的中断向量表,注:表中的I和F表示不对CPSR的该位有影响。,31,ARM的CSPR,程序状态寄存器CSPR保存ALU中的当前操作信息控制允许和禁止中断设置处理器的运行模式条件码标志(ConditionCodeFlags)条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行在ARM状态下,绝大多数的指令都是有条件执行的在Thumb状态下,仅有分支指令是有条件执行的,32,U-boot的中断向量表设置,UBOOT是BOOTLOADERARM-Linux的启动代码Bootloader嵌入式系统中的OS启动加载程序引导加载程序是系统加电后运行的第一段软件代码相对于操作系统内核来说,它是一个硬件抽象层,_start:bresetldrpc,_undefined_instructionldrpc,_software_interruptldrpc,_prefetch_abortldrpc,_data_abortldrpc,_not_usedldrpc,_irqldrpc,_fiq,33,ARM的中断堆栈设置,寄存器R13在ARM指令中常用作堆栈指针,中断向量表,自由空间,SVC堆栈,IRQ堆栈,0 x00,0 x20,FIQ堆栈,R13_svc,R13_irq,R13_fiq,ARM的独立中断堆栈模式,代码段数据段,用户堆栈,R13,中断1堆栈,用户堆栈,中断2堆栈,ESP,X86任务、中断共享堆栈模式,34,ARM堆栈模式,用户模式(usr)ARM处理器正常的程序执行状态。快速中断模式(fiq)用于高速数据传输或通道处理。外部中断模式(irq)用于通用的中断处理。管理模式(svc)操作系统使用的保护模式。数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys)运行具有特权的操作系统任务。未定义指令中止模式(und)当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真,35,ARM-Linux的中断响应和处理,ARM是将中断控制器集成在CPU内部的,由外设产生的中断请求都由芯片上的中断控制器汇总成一个IRQ中断请求中断控制器向CPU提供一个中断请求寄存器和一个中断控制寄存器GPIO是一个通用的可编程的I/O接口,其接口寄存器中的每一位都可以分别在程序的控制下设置用于输入或者输出,36,ARM-Linux的中断响应和处理,在Linux中,每一个中断控制器都由structhw_interrut_type数据结构表示,37,ARM-Linux的中断响应和处理,每一个中断请求线都有一个structirqdesc数据结构表示,38,ARM-Linux的中断响应和处理,具体中断处理程序则在数据结构structirqaction三个数据结构的相互关系如图,structhw_interrupt_type,Structirqacton,指向具体的中断服务程序(ISR),irq_descNR_IRQS,39,ARM-Linux的中断响应和处理,ARMLinux的中断初始化执行函数trap_init()安装中断向量表到虚拟地址0处,40,ARM-Linux的中断响应和处理,接着搬运中断响应程序代码到0 x200处,41,ARM-Linux的中断响应和处理,trap_init()函数执行完了以后,再执行init_IRQ()通过函数init_IRQ()建立上述提及的3个数据结构及其相互联系的框架,ARM-Linux文件系统(略),智能终端存储器系统,两种固态存储器NORFLASH存储Uboot,Linux内核、文件系统NANDFLASH存储应用程序,作为系统的数据存储器硬盘电源供电存储应用程序,作为系统的数据存储器内存运行程序,44,嵌入式Linux文件系统简介,嵌入式文件系统与桌面文件系统有较大区别嵌入式文件系统要为嵌入式系统的设计目的服务不同用途的嵌入式操作系统下的文件系统在许多方面各不相同嵌入式Linux常用文件系统第二版扩展文件系统(Ext2fs)JFFSYAFFS,45,嵌入式文件系统的设计目标,使用简单方便安全可靠实时响应接口标注的开放性和可移植性可伸缩性和可配置性开放的体系结构资源有效性功能完整性热插拔支持多种文件类型,46,嵌入式Linux常用文件系统,FlashMemory简介FlashMemory上的两种技术NAND:串行;顺序读取;适合大容量;通常需MTDNOR:并行;随机读取;适合数据或程序存储;XIP;Xsbase开发平台上所使用的闪存IntelStrataFlashMemory28F128J3AExt2fs、JFFS和YAFFSext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等,47,Ext2文件系统,Ext2fs支持达4TB的内存(Ext是2G)Ext2fs文件名称最长可以到1012个字符当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择1024、2048和4096字节)Ext2fs实现快速符号链接:不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点表中,这使性能有所提高,特别是在速度上,48,JFFS和YAFFS,JFFS文件系统主要针对NORFLASH设计,是一种基于Flash的日志文件系统JFFS2的底层驱动主要完成文件系统对Flash芯片的访问控制,如读、写、擦除操作YAFFS主要针对NANDFLASH设计,和JFFS相比它减少了一些功能。自带NAND芯片驱动,并且为嵌入式系统提供了直接访问文件系统的APIYAFFS2是YAFFS的改进版本,49,Linux文件系统框架和特性,现代操作系统都提供多种访问存储设备的方法Linux文件系统有两条独立控制设备驱动的途径通过设备驱动的接口通过文件管理器接口,50,Linux文件系统框架,典型的嵌入式Linux,52,典型的嵌入式Linux,嵌入式Linux有多个不同的版本源于Linux应用于不同的领域有各自的特点典型的嵌入式LinuxMontavistaLinuxAndroidMoblin,53,嵌入式Linux-MontavistaLinux,MontavistaLinux的概述由成立于1999年的Montavista公司开发MontaVistaLinux的所有源代码对外开放Montavista公司主要提供服务MontavistaLinux的版本电信设备用的CarrierGradeEdition手机用的Mobilinux消费电子产品及其他设备用的ProfessionalEdition摩托罗拉手机的linux手机采用了Montavista早期采用symbian,后改用windowsmobile,再换成Linux,54,嵌入式Linux-MontavistaLinux(2),MontavistaLinux技术特点提供实时嵌入式Linux操作系统和嵌入式开发工具提供了很好的实时支持支持广泛的嵌入式处理器提供嵌入式设计的开放源码方案包MontavistaLinux最新版本MontavistaLinux6,注:图来自,55,嵌入式Linux-uClinux,uClinux概述Lineo公司的产品针对微控制领域而设计的Linux系统该领域的嵌入式处理器往往没有MMUuClinux的技术特点对Linux的重新配置和裁剪重写了应用程序库,进行了精简工作采用romfs文件系统通过内存或者Flash启动对用户程序采用静态连接的形式,嵌入式Linux-Qtopia,Trolltech公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台三个版本Qtopia手机版QtopiaPDA版Qtopia消费电子产品平台被诺基亚收购诺基亚出Symbian,一度市场份额超过60%收购Symbian所有股份,开源与intel合作Meego,57,嵌入式Linux-Android,AndroidGoogle+开放手机联盟2007年11月5日发布“Android是第一个完整、开放、免费的手机平台”2008年9月22日,第一款基于Android的手机发布T-MobileG1基于Android的手机GPhoneAndroid的特点包括了操作系统、中间件、用户界面和应用软件这是一个平台面向智能手机,http:/www.openhandsetalliance.corn,58,嵌入式Linux-Android(2),Android的优势开放开源提供一整套的解决方案免费!Android的冲击SymbianWindowsMobileIPhone,嵌入式Linux-Maemo,基于LinuxDebian的系统平台诺基亚公司诺基亚N770、N800、N810和N900面对智能手机及InternetTabletInternetTablet:介于个人数位助理(PDA)跟UMPC之间,略小于英特尔公司的移动互联网设备(MID)。,,60,嵌入式Linux-Moblin,Intel为MID设计启动于2007年7月,作为Moblin项目组目的是推动MID等类设备中Linux的应用和新技术的发展建立了Moblin社区目前的版本是Moblin2.0Moblin的特点优化移动用户操作界面高速的联网性能占用资源小,,61,嵌入式Linux-Moblin(2),Moblin2.0针对电源管理部分做了优化更多的是面向Intel自己的嵌入式处理器Atom可以通过软硬件结合来进行设计比较完整的全套开发工具Moblin更多的是为带数据互联功能的移动设备设计,嵌入式Linux-OpenMok,提供开源Linux软件栈与硬件硬件系统也是完全开放的允许开发者对软件和硬件任意定制三部分基本的OpenMoko软件环境建立在GNOME移动和嵌入技术基础上,包括GTK+工具包FreeRunner部分,这是一个完全开放的部分,可以让开发者任意选择第三方平台,比如Linux桌面环境,或者支持Nokia互联网平板设备的图形Shell等。包括FreeS的APIs,快速提供复杂应用。产品第一款OpenMoko硬件是Neo1973第二款OpenMoko硬件是NeoFreeRunner,/wiki/Main_Page,嵌入式Linux-WebOS,Palm公司放弃了PalmOS,改推以linux为基础的WebOS由于Palm被HP收购,webOS现收归HP旗下目前版本:版本,2010年3月31日发布SprintConfig2.4类似于chrome浏览器“沙盒”架构卡片方式,iPodLinux,内核为ModifiedClinux运行在iPod上功能文字编辑、视频播放(在iPodnano2上)、模拟器游戏、编程等功能与iPod原OS形成双系统,嵌入式linux-LiMo,LiMo基金会2007年1月创立会员数超过50LinuxPhoneStandards(LiPS)论坛GPEPhone(GPEPalmtopEnvironment)08年并入LiMo组成用WindRiver提供的Linux版本、系统架构平台和集成工具集来开发各自的终端设备支持LIMO系统手机三星I8320H1、三星I8330H2、三星I6410M1、三星I8350,/,嵌入式Linux开发,嵌入式Linux软件的四个层面,第一层为Linux操作系统内核及硬件驱动一个经过梳理和优化的Linux内核第二层为中间服务层第三层为应用开发框架智能手机通常把第二、三层合并为终端关键服务子系统包括:2D3D的图形子系统、窗口子系统、窗口应用开发框架、多媒体子系统、窗口程序的进程间通信服务、电话通信服务模块第四层为具体的应用,2D3D图形子系统与窗口子系统,硬件基础物理屏幕小部分终端带有GPU图形处理器,如IPAD功能游戏、GPS地图导航、视频共享常见屏幕效果透明窗口和透明图像:3D桌面:高清晰的2D矢量图形;2D图形在3D空间的运动,即某种动画效果。,智能终端上的窗口子系统,分成两类第一类是整个窗口子系统在同一个进程实现应用窗口通常采用线程结构,共享同一个内存地址空间。此类用户图形操作界面响应速度快,资源消耗相对小但是当某个线程出现错误时容易造成整个进程的瘫痪因此通常应用在某些实时响应要求高终端界面交互简单的终端上。第二类窗口子系统是多进程的客户端,服务器结构能够实现复杂的用户界面,具有更佳的稳定性。Linux的XWindow是其中最普遍应用的代表,OpenGLES,提供3D图形渲染输出功能功能完全独立于宿主操作系统跨平台的硬件加速iPhone3GS设备硬件支持OpenGLES2.0英特尔公司的新型MID硬件平台Moorestown中代号为Lincroft”的核心处理芯片集成了图形核心、显示单元,其中图形核心可以直接支持OpenGLES2.0OpenGLES(OpenGLforembeddedsystems)OpenGL开发接口的子集应用在手机、掌上电脑和游戏主机等嵌入式设备上,窗口应用开发框架,窗口应用开发旗帜鲜明地分成两类一类是不使用XWindow自定义图形子系统和窗口应用开发框架例如Android另一类是使用XWindow。大多使用Linux桌面系统传统的一些窗口应用开发工具例如GTK+和Qt,已经比较成熟Maemo主要使用Hildon窗口应用开发框架,同时兼
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人际传播感染微生态研究-洞察及研究
- 桂林旅游学院《临床技能实训课》2023-2024学年第二学期期末试卷
- 周口理工职业学院《肿瘤生物标志物与精准医学》2023-2024学年第二学期期末试卷
- 微纳光刻技术-洞察及研究
- 东营科技职业学院《复变函数》2023-2024学年第二学期期末试卷
- 杭州师范大学钱江学院《石油工程专业文献检索及论文写作》2023-2024学年第二学期期末试卷
- 中南林业科技大学《路桥工程施工与养护管理》2023-2024学年第二学期期末试卷
- 乐山师范学院《会计专业导论与创业基础》2023-2024学年第二学期期末试卷
- 湖北师范大学文理学院《中学德育与班级管理》2023-2024学年第二学期期末试卷
- 郑州师范学院《合唱与指挥V》2023-2024学年第二学期期末试卷
- 门诊急救室管理制度
- 2025年福建省泉州五中中考数学适应性试卷(6月份)
- 2025年佛山市南海区图书馆招聘题库带答案分析
- 中华民族共同体概论知到课后答案智慧树章节测试答案2025年春丽水学院
- 2024年浙江省中考社会试卷真题(含标准答案及评分标准)
- 河南省天一大联考高一下学期期末数学试题(解析版)
- 广州市登革热疫情应急演练方案
- GB_T 30789.8-2015 色漆和清漆 涂层老化的评价 缺陷的数量和大小以及外观均匀变化程度的标识 第8部分:划线或其他人造缺陷周边剥离和腐蚀等级的评定
- 建设工程项目管理论文范文
- 同步发电机调速系统仿真设计
- GB∕T 39953-2021 五轴联动加工中心 RTCP精度检验
评论
0/150
提交评论