嵌入式系统设计与实例开发优秀PPT.ppt
嵌入式系统设计与实例开发嵌入式系统设计与实例开发你现在浏览的是第一页,共112页uCOS-IIuCOS-II的不足之处的不足之处l只有多任务调度的简单内核只有多任务调度的简单内核l内存管理过于简单,几乎没有动态内存管理功能内存管理过于简单,几乎没有动态内存管理功能l文件系统和图形界面需要外挂文件系统和图形界面需要外挂l对于设备驱动程序没有专门统一的接口对于设备驱动程序没有专门统一的接口你现在浏览的是第二页,共112页对COS-II进行必要的扩展要想实现一个相对完整、实用的嵌入式操作系统,还需要相当多要想实现一个相对完整、实用的嵌入式操作系统,还需要相当多的扩展性的工作。如:的扩展性的工作。如:l建立了建立了FATFAT兼容的文件系统兼容的文件系统l外设及驱动程序的实现外设及驱动程序的实现l基于基于UnicodeUnicode的汉字库的汉字库l基本绘图函数的实现基本绘图函数的实现l其它实用其它实用APIAPI函数函数你现在浏览的是第三页,共112页基于COS-II扩展RTOS的体系结构你现在浏览的是第四页,共112页1系统外围设备的硬件部分l系统外围设备的硬件部分包括:液晶显示屏(系统外围设备的硬件部分包括:液晶显示屏(LCDLCD)、)、USBUSB通信模通信模块、键盘、海量块、键盘、海量FlashFlash存储器、系统的时钟和日历。外围设备的硬存储器、系统的时钟和日历。外围设备的硬件部分是保证系统实现指定任务的最底层的部件。件部分是保证系统实现指定任务的最底层的部件。2 2、驱动程序模块l驱动程序是连接底层的硬件和上层的驱动程序是连接底层的硬件和上层的APIAPI函数的纽带,有了驱动程函数的纽带,有了驱动程序模块,就可以把操作系统的序模块,就可以把操作系统的APIAPI函数和底层的硬件分离开来。硬函数和底层的硬件分离开来。硬件的改变、删除或者添加,只需要随之改变、删除或者添加提供件的改变、删除或者添加,只需要随之改变、删除或者添加提供给操作系统的相应的驱动程序就可以了。而不会影响到给操作系统的相应的驱动程序就可以了。而不会影响到APIAPI函数的函数的功能,更不会影响到用户的应用程序。功能,更不会影响到用户的应用程序。你现在浏览的是第五页,共112页3操作系统的API函数l在操作系统中提供标准的应用程序接口(在操作系统中提供标准的应用程序接口(APIAPI)函数,可以加速用)函数,可以加速用户应用程序的开发,统一应用程序的标准,同时也给操作系统版户应用程序的开发,统一应用程序的标准,同时也给操作系统版本的升级带来了方便。在本的升级带来了方便。在APIAPI函数中,提供了大量的常用模块,可函数中,提供了大量的常用模块,可以大大简化用户应用程序的编写。以大大简化用户应用程序的编写。4实时操作系统的多任务管理l C/OS-C/OS-作为操作系统的内核,主要的任务就是完成多任务之间作为操作系统的内核,主要的任务就是完成多任务之间的调度和同步。的调度和同步。5系统的消息队列l这里所说的系统的消息队列是以这里所说的系统的消息队列是以 C/OS-C/OS-的消息队列派生出来的的消息队列派生出来的系统消息传递机制,用来实现系统的各个任务之间、用户应用程系统消息传递机制,用来实现系统的各个任务之间、用户应用程序的各个任务之间以及用户应用程序和系统的各个任务之间的通序的各个任务之间以及用户应用程序和系统的各个任务之间的通信。信。你现在浏览的是第六页,共112页6系统任务l系统任务主要包括液晶显示屏(系统任务主要包括液晶显示屏(LCDLCD)的刷新任务、系统键盘扫描)的刷新任务、系统键盘扫描任务。这两个任务是操作系统的基本任务,随着操作系统的启动任务。这两个任务是操作系统的基本任务,随着操作系统的启动而运行。而运行。7用户应用程序l用户的应用程序建立在系统的主任务(用户的应用程序建立在系统的主任务(Main_TaskMain_Task)基础之上。用)基础之上。用户应用程序主要通过调用系统的户应用程序主要通过调用系统的APIAPI函数对系统进行操作,完成用函数对系统进行操作,完成用户的要求。在用户的应用程序中也可以创建用户自己的任务。任户的要求。在用户的应用程序中也可以创建用户自己的任务。任务之间的协调主要依赖于系统的消息队列。务之间的协调主要依赖于系统的消息队列。你现在浏览的是第七页,共112页嵌入式文件系统嵌入式文件系统你现在浏览的是第八页,共112页什么是文件系统(File System)文件系统的定义 处理文件的操作系统的部分称为文件系统处理文件的操作系统的部分称为文件系统.是操作系统中统一管理是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用的共享和保护手段,并且方便用户使用文件系统的功能 文件的构造、命名、存取、保护等。文件的构造、命名、存取、保护等。文件系统的存储媒质 磁盘(软盘、硬盘)、光盘、磁盘(软盘、硬盘)、光盘、FLASHFLASH(盘)、(盘)、RAMRAM、ROMROM、网络、网络甚至设备等甚至设备等你现在浏览的是第九页,共112页基于NAND FLASH的嵌入式文件系统你现在浏览的是第十页,共112页FLASH读写的特点(1 1)必须以)必须以PagePage为单位进行读写;为单位进行读写;(2 2)写之前必须先擦除原有内容;)写之前必须先擦除原有内容;(3 3)擦除操作必须对)擦除操作必须对BlockBlock进行,即一次至少擦除一个进行,即一次至少擦除一个BlockBlock的内容的内容 针对这种情况,将针对这种情况,将FlashFlash的一个的一个PagePage定为定为1 1个扇区,将其个扇区,将其1 1个个BlockBlock,3232个扇区定为一个簇,这样,簇的容量刚好为个扇区定为一个簇,这样,簇的容量刚好为512512323216K16K,满,满足足FAT16FAT16对簇大小的要求对簇大小的要求 你现在浏览的是第十一页,共112页FLASH文件系统的要求(1 1)掉电安全:掉电安全:嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的可嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的可靠性。这就对靠性。这就对FLASHFLASH文件系统进出了较高的要求,无论程序崩溃或系统掉电,都文件系统进出了较高的要求,无论程序崩溃或系统掉电,都不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对系统不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对系统异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和选用时异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和选用时应考虑;应考虑;(2 2)平均使用(平均使用(wear-leveling)wear-leveling):由于由于FLASHFLASH扇区的擦除次数有限制,要求能够均扇区的擦除次数有限制,要求能够均匀使用各扇区,以延长匀使用各扇区,以延长FLASHFLASH的使用寿命;的使用寿命;(3 3)高效垃圾回收(高效垃圾回收(garbage collection)garbage collection):任何存储器在分配使用一段时间后,任何存储器在分配使用一段时间后,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,再擦除整个扇区;再擦除整个扇区;(4 4)低空间消耗(低空间消耗(lov overhead)lov overhead):指文件系统管理结构在指文件系统管理结构在FLASHFLASH存储器上的空间存储器上的空间消耗,该空间用于消耗,该空间用于FSFS建立,而不能用于实际数据的存储,可以提高有用数据的存建立,而不能用于实际数据的存储,可以提高有用数据的存储空间储空间你现在浏览的是第十二页,共112页FLASH文件系统的分类(1 1)集中管理文件系统)集中管理文件系统特点:存储器空间的使用信息集中存放在存储器的某个地方,存储器的其它区特点:存储器空间的使用信息集中存放在存储器的某个地方,存储器的其它区域用于存放数据,数据必须依赖关键信息区才能被索引和使用域用于存放数据,数据必须依赖关键信息区才能被索引和使用缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备份到缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备份到RAMRAM中,再进行擦除操作,最后将修改后的备份写入中,再进行擦除操作,最后将修改后的备份写入FLASHFLASH,难以保证掉,难以保证掉电安全,不能均匀使用存储器空间,特别是关键信息区,对文件系统的电安全,不能均匀使用存储器空间,特别是关键信息区,对文件系统的使用都会改写该区,导致使用都会改写该区,导致FLASHFLASH快速损坏;快速损坏;你现在浏览的是第十三页,共112页FLASH文件系统的分类(2 2)线性文件系统)线性文件系统概述:每个文件相关的信息都连续存放在存储器中,实现简单,读写快速,概述:每个文件相关的信息都连续存放在存储器中,实现简单,读写快速,文件系统的关键信息分布存放;文件系统的关键信息分布存放;优点:安全性好;能保证存储器的平均使用,延长了优点:安全性好;能保证存储器的平均使用,延长了FLASHFLASH的使用寿命;的使用寿命;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;你现在浏览的是第十四页,共112页FLASH文件系统的分类(3 3)日志文件系统)日志文件系统概述:日志结构的文件系统使用顺序的、只增的日志作为磁盘上唯一的组织概述:日志结构的文件系统使用顺序的、只增的日志作为磁盘上唯一的组织文件系统数据的结构文件系统数据的结构 ,文件的描述可以仍采用传统的索引组织方式。方文件的描述可以仍采用传统的索引组织方式。方法是在内存中将几次法是在内存中将几次 FSFS的修改汇集成一个大的日志条目的修改汇集成一个大的日志条目(被称为段映被称为段映像像 ),),然后动态分配磁盘空间并通过一次写操作写到磁盘上的一然后动态分配磁盘空间并通过一次写操作写到磁盘上的一个连续的、固定大小的日志段个连续的、固定大小的日志段 (Segment)(Segment)中。并定时或当系统发出同中。并定时或当系统发出同步写请求时保证日志同步写到磁盘上;步写请求时保证日志同步写到磁盘上;优点:恢复快速优点:恢复快速不会产生丢失的簇、也不会因为掉电而破坏文件系统。不会产生丢失的簇、也不会因为掉电而破坏文件系统。你现在浏览的是第十五页,共112页几种开源的文件系统你现在浏览的是第十六页,共112页jffs/jffs2jffs/jffs2文件系统的优缺点文件系统的优缺点lJFFS(Journaling Flash File SystemJFFS(Journaling Flash File System)概述:由瑞典概述:由瑞典AxisAxis通信公司开发的文件系统,主要针对通信公司开发的文件系统,主要针对NORNOR型型FlashFlash存储器设计,提供了掉电安全,平均使用等特性,是基于存储器设计,提供了掉电安全,平均使用等特性,是基于LinuxLinux,由于遵循由于遵循GPLGPL开放源代码,易实现移植;开放源代码,易实现移植;l日志文件系统日志文件系统l提供了更好的崩溃、掉电安全保护提供了更好的崩溃、掉电安全保护ljffs2jffs2支持对支持对flashflash的均匀磨损的均匀磨损l在扇区级别上执行闪存擦除写读操作功能较好在扇区级别上执行闪存擦除写读操作功能较好l文件系统接近满时,文件系统接近满时,JFFS2 JFFS2 会大大放慢运行速度会大大放慢运行速度垃圾收集垃圾收集你现在浏览的是第十七页,共112页NandNand上上yaffsyaffs文件系统的优势文件系统的优势l专门为专门为Nand flashNand flash设计的日志文件系统设计的日志文件系统ljffsjffsjffs2jffs2不适合大容量的不适合大容量的Nand flashNand flashljffsjffs的日志通过的日志通过jffs_nodejffs_node建立在建立在RAMRAM中,占用中,占用RAMRAM空间:对于空间:对于128MB128MB的的NandNand大概需要大概需要4MB4MB的空间来维护的空间来维护节点节点l启动的时候需要扫描日志节点,不适合大容量的启动的时候需要扫描日志节点,不适合大容量的Nand flashNand flashlFATFAT系统没有日志系统没有日志你现在浏览的是第十八页,共112页FAT文件系统的发展DOS 1.0(1981)DOS 3.0(1984)Win 95(1995)Win 95 Osr2(1996)Win 98(1998)Win 3.1(1992)FAT12FAT16VFATFAT32你现在浏览的是第十九页,共112页FAT12/FAT16/FAT32的比较FAT12FAT16FAT32Size of FAT entry12 bits16 bits32 bitsMax num of clusters4,08665,526268,435,456Cluster size used0.5 KB-4 KB2 KB-32 KB4 KB-32 KB最大磁盘容量16,736,256(16M)2,147,123,200(2G)about 241(2T)你现在浏览的是第二十页,共112页FAT16文件系统基本结构lFAT 文件系统由下面四部分组成文件系统由下面四部分组成l保留区保留区 Reserved regionl存放引导记录,存放引导记录,BIOS信息等信息等lFAT 区区lFAT信息列表信息列表(12/16/32 bits)l根目录区根目录区l目录信息列表目录信息列表(32 bytes)l文件和目录区文件和目录区l存放簇信息存放簇信息reservedFAT(p)FAT(b)Root dirFile and directory 你现在浏览的是第二十一页,共112页保留区 Reserved Regionl引引导记录导记录l基本信息基本信息 l引导代码引导代码lBIOS参数块参数块(BPB)l字节字节/扇区扇区(512,1024,2048,4096)l扇区扇区/簇簇(1,2,4,8,16,32,64,128)l根目录数根目录数l总扇区值总扇区值l介质类型介质类型(硬盘硬盘,软盘,软盘,FLASH)reservedFAT(p)FAT(b)Root dirFile and directory 你现在浏览的是第二十二页,共112页FAT 区l通常有通常有 FAT(P)(primary)和和FAT(B)(backup)l每一每一个个簇都有一簇都有一个个对应对应的的FAT目目录录Cluster 2Cluster 3Cluster n-1Cluster nFAT数数据据区区reservedFAT(p)FAT(b)Root dirFile and directory 你现在浏览的是第二十三页,共112页lFAT 链表链表(FAT16)目目录树你现在浏览的是第二十四页,共112页典型FLASH文件系统的结构系统纪录系统纪录(SR,System Record)文件分配表文件分配表(FAT,File Allocation Table)文件登记表文件登记表(FRT,File Register Table)数据区域数据区域(Data Area)(1)系统记录(SR,System Record)存放媒质信息和最重要的文件系统信息。媒质信息诸如存放媒质信息和最重要的文件系统信息。媒质信息诸如FlashFlash存储器的存储器的类型、容量,划分成多少个区块,每区块包含多少个页面等。文件系统信息类型、容量,划分成多少个区块,每区块包含多少个页面等。文件系统信息包括版本信息、保留区块的数目和位置、文件分配表和文件登记表所在的位包括版本信息、保留区块的数目和位置、文件分配表和文件登记表所在的位置和大小、数据区域的位置和大小等。置和大小、数据区域的位置和大小等。(2)文件分配表(FAT,File Allocation Table)存放着存放着FlashFlash存储器上所有区块的占用与空闲情况以及每个文件存储器上所有区块的占用与空闲情况以及每个文件的存储连接结构。采用的存储连接结构。采用FAT16FAT16文件格式文件格式你现在浏览的是第二十五页,共112页(3)文件登记表(FRT,File Register Table)存放着存放着FlashFlash文件系统中每一个文件的文件代号、文件长度、文件文件系统中每一个文件的文件代号、文件长度、文件属性以及该文件的存储链在文件分配表中的入口。属性以及该文件的存储链在文件分配表中的入口。(4)数据区域(Data Area)用于存放文件的数据内容。本用于存放文件的数据内容。本FlashFlash文件系统中,数据分配的最小文件系统中,数据分配的最小单位是单位是FlashFlash存储器的一个基本擦除单元,即一个物理区块存储器的一个基本擦除单元,即一个物理区块(BlockBlock)。)。FLASH文件系统的结构你现在浏览的是第二十六页,共112页文件系统的实现FILE结构体typedef structU8 BufferBLOCK_SIZE;/文件缓冲区文件缓冲区U32 fileblock;/文件当前的簇的位置文件当前的簇的位置U32 filemode;/打开文件的模式打开文件的模式U32 filebufnum;/文件缓冲区中已经读取文件缓冲区中已经读取/写入的写入的字节数字节数U32 fileCurpos;/读写的当前位置读写的当前位置U32 filesize;/文件的大小文件的大小FILE;你现在浏览的是第二十七页,共112页与FLASH存储器的接口函数块擦除块擦除unsigned char Erase_Cluster(unsigned int cluster)页写入页写入int WritePage(unsigned int block,unsigned int page,unsigned char*pPage)页读出页读出void ReadPage(unsigned int block,unsigned int page,unsigned char*pPage)你现在浏览的是第二十八页,共112页OpenOSFile的工作的流程图你现在浏览的是第二十九页,共112页文件系统的相关函数文件系统的相关函数l始始化文件系统始始化文件系统 void initOSFile(char filename,U32 OpenMode)l读文件到缓冲区读文件到缓冲区 U32 ReadOSFile(FILE*pfile,U8*ReadBuffer,U32 nReadbyte)l把缓冲区内容写入文件把缓冲区内容写入文件 U32 WriteOSFile(FILE*pfile,U8*WriteBuffer,U32 nWritebyte)l关闭文件,释放缓冲区关闭文件,释放缓冲区 void CloseOSFile(FILE*Pfile)你现在浏览的是第三十页,共112页ReadOSFile函数的程序流程图l ReadOSFile函数的程序流程图函数的程序流程图 你现在浏览的是第三十一页,共112页WriteOSFile函数的程序流程图lWriteOSFile函数的程序流程图函数的程序流程图 你现在浏览的是第三十二页,共112页CloseOSFile函数的程序流程图lCloseOSFile函数的程序流程图函数的程序流程图 你现在浏览的是第三十三页,共112页嵌入式嵌入式GUIGUI技术技术你现在浏览的是第三十四页,共112页GUI的概念GUI的定义 Graphics User Interface,Graphics User Interface,是指计算机与其使用者之间的图形化对是指计算机与其使用者之间的图形化对话接口。话接口。GUI的主要特征:WindowsWindows,采用窗口界面,每个窗口是用户或系统的一个工作,采用窗口界面,每个窗口是用户或系统的一个工作区域。一个屏幕上可以有多个窗口。区域。一个屏幕上可以有多个窗口。IconsIcons,采用形象化的图标或图符,易于操作者理解与操作。,采用形象化的图标或图符,易于操作者理解与操作。MenuMenu,采用菜单,可供用户选择的功能提示,采用菜单,可供用户选择的功能提示 Pointing Devices Pointing Devices,指鼠标器、触摸屏等,便于用户直接对,指鼠标器、触摸屏等,便于用户直接对屏幕对象进行操作。屏幕对象进行操作。你现在浏览的是第三十五页,共112页嵌入式GUI的特点l体积小体积小l功能强;功能强;l图形算法简洁、快速图形算法简洁、快速,占用系统资源少占用系统资源少l可靠性高;可靠性高;l模块结构,便于移植和定制模块结构,便于移植和定制你现在浏览的是第三十六页,共112页嵌入式GUI的实现方法1 1)按照需求开发满足自身特定需要的)按照需求开发满足自身特定需要的GUIGUI系统;系统;2 2)将)将GUIGUI作为一个软件层从应用程序中剥离,作为一个软件层从应用程序中剥离,GUIGUI的支持逻辑由应用程序的支持逻辑由应用程序自己负责;自己负责;3 3)设计一个支持大多数常见的)设计一个支持大多数常见的GUIGUI对象的应用编程接口库,使其具有与其他通用开发对象的应用编程接口库,使其具有与其他通用开发工具相类似的调用方法工具相类似的调用方法(如如Win32)Win32)的的GUIGUI系统系统你现在浏览的是第三十七页,共112页几种典型的嵌入式GUIlCompact X-Window System:Compact X-Window System:可扩展性好、可移植性好,代码尺寸大可扩展性好、可移植性好,代码尺寸大 lMicrowindows Microwindows:开放源码的嵌入式:开放源码的嵌入式GUIGUI软件,可移植性好,图形功能出色。软件,可移植性好,图形功能出色。lOpenGUI OpenGUI:自由软件。汇编实现的内核,并利用:自由软件。汇编实现的内核,并利用MMXMMX指令进行了优化,指令进行了优化,OpenGUIOpenGUI运行速度非常快。支持运行速度非常快。支持 32 32 位处理器,可以在位处理器,可以在MS-DOSMS-DOS,QNXQNX和和LinuxLinux下运行。主要用来在这些系统中开发图形应用程序和游戏下运行。主要用来在这些系统中开发图形应用程序和游戏 lQt/EmbeddedQt/Embedded:QT QT 库开发商库开发商Trolltech Trolltech 推出的面向嵌入式系统的推出的面向嵌入式系统的 QT QT 版本。版本。可移植性好,价格较贵。可移植性好,价格较贵。lMiniGUIMiniGUI:自由软件,面向嵌入式系统或者实时系统的图形用户界面支持系统。:自由软件,面向嵌入式系统或者实时系统的图形用户界面支持系统。它主要运行于它主要运行于 Linux Linux,还可以运行在任何一种具有,还可以运行在任何一种具有 POSIX POSIX 线程支持的线程支持的 POSIX POSIX 兼容系统上兼容系统上 你现在浏览的是第三十八页,共112页Qt/Embeddedl可移植性好可移植性好l模块化设计模块化设计l开放源代码开放源代码l图形界面漂亮图形界面漂亮你现在浏览的是第三十九页,共112页GTKFBGTKFBl不需不需 X Server X Server 直接与直接与 FrameBuffer FrameBuffer 连接连接 lAPI API 与与 Desktop Desktop 版相容。版相容。l采用采用 LGPL LGPL 授权方式授权方式 l体积小体积小 你现在浏览的是第四十页,共112页MicrowindowsMicrowindowsl跨平台跨平台 l不需不需 X Server X Server l采用采用 FLTK Toolkits FLTK Toolkits l支持支持 TrueType TrueType 字型字型 你现在浏览的是第四十一页,共112页Tiny X Server Tiny X Server lTiny X Server Tiny X Server 为为 XFree86 Project XFree86 Project 的一部分,体积比较大的一部分,体积比较大你现在浏览的是第四十二页,共112页MiniGUIMiniGUIl支持支持 GB2312 GB2312 与与 BIG5 BIG5 字集字集l支持多种格式字体,例如:支持多种格式字体,例如:TrueTypeTrueType、Adobe Type1Adobe Type1等。等。lGUIGUI函数函数 (MoveTo(MoveTo、LineToLineTo、FillBoxFillBox、RectangleRectangle、CircleCircle、TextOutTextOut、DrawText.DrawText.等等 )你现在浏览的是第四十三页,共112页MiniGUIl面向实时嵌入式系统的轻量级图形用户界面支持系统面向实时嵌入式系统的轻量级图形用户界面支持系统l1999 1999 年初以年初以 GPL GPL 条款发布了第一个版本,国际知名的自由软件项目条款发布了第一个版本,国际知名的自由软件项目l已广泛应用于数控系统、手持信息终端产品、彩票机、已广泛应用于数控系统、手持信息终端产品、彩票机、DVR DVR 系统、金系统、金融终端、融终端、KTV KTV 点播系统、点播系统、POS POS 机等等机等等l已成为跨操作系统的图形用户界面支持系统:可在已成为跨操作系统的图形用户界面支持系统:可在Linux/uClinuxLinux/uClinux、eCOSeCOS、uC/OS-IIuC/OS-II、VxWorksVxWorks、pSOS pSOS 等操作系统上运行等操作系统上运行l已验证硬件平台:已验证硬件平台:Intel x86,ARM(ARM7/AMR9 Intel x86,ARM(ARM7/AMR9/StrongARM/xScale),PowerPC,MIPS,M68K,ColdFire/StrongARM/xScale),PowerPC,MIPS,M68K,ColdFire你现在浏览的是第四十四页,共112页MiniGUI MiniGUI 和嵌入式操作系统的关系和嵌入式操作系统的关系你现在浏览的是第四十五页,共112页MiniGUIMiniGUI 的功能特色的功能特色(1)(1)l完备的多窗口机制和消息传递机制完备的多窗口机制和消息传递机制 l提供对话框、消息框和常用的控件类提供对话框、消息框和常用的控件类 l菜单、滚动条、加速键、插入符、定时器等菜单、滚动条、加速键、插入符、定时器等 GUI GUI 元素元素l完善的完善的 GDI GDI 图形接口支持图形接口支持l位图、光标和图标等位图、光标和图标等WindowsWindows资源文件支持各种流行的图像文件的支资源文件支持各种流行的图像文件的支持,包括持,包括JPEGJPEG、GIFGIF、PNGPNG、BMPBMP等等 你现在浏览的是第四十六页,共112页MiniGUIMiniGUI 的功能特色的功能特色(2)(2)l支持支持 ISO8859-1ISO8859-1ISO8859-15ISO8859-15、GB2312GB2312、GBKGBK、GB18030GB18030、BIG5BIG5、EUCKREUCKR、EUCJPEUCJP、Shift-JISShift-JIS、UNICODE UNICODE 等字符集等字符集l非非UNICODE UNICODE 内码实现,更加适合嵌入式系统内码实现,更加适合嵌入式系统l支持点阵字体(包括支持点阵字体(包括 QPFQPF),),TrueType TrueType 以及以及Adobe Type1 Adobe Type1 等矢量字等矢量字体体l汉字输入法支持,包括内码、全拼、智能拼音、五笔、自然码、手写汉字输入法支持,包括内码、全拼、智能拼音、五笔、自然码、手写输入法等输入法等l支持高级多媒体界面设计的支持高级多媒体界面设计的“皮肤皮肤”技术技术你现在浏览的是第四十七页,共112页MiniGUI MiniGUI 的技术优势的技术优势(1)(1)l轻型、占用资源少轻型、占用资源少l可在可在CPUCPU运算能力为运算能力为 10 MIPS10 MIPS,仅有,仅有 4MB RAM 4MB RAM 的系的系统上正常运行统上正常运行l整个系统的占用空间最少为整个系统的占用空间最少为 500KB500KBl高性能、高可靠性高性能、高可靠性lMiniGUI MiniGUI 体系结构及优化的图形接口,可确保最快体系结构及优化的图形接口,可确保最快的图形绘制速度的图形绘制速度l已在许多实际产品,尤其是工控系统中得到应用,已在许多实际产品,尤其是工控系统中得到应用,总装机量达总装机量达 5 5 万台以上万台以上你现在浏览的是第四十八页,共112页MiniGUI MiniGUI 的技术优势的技术优势(2)(2)l可配置可配置l可根据需求进行配置,获得满足应用需求的最小系统可根据需求进行配置,获得满足应用需求的最小系统l可伸缩性强可伸缩性强l可用于基于可用于基于 DragonBall DragonBall 的低端产品中的低端产品中l亦可用于基于亦可用于基于 StrongARM StrongARM 或或 xScale xScale 的高端产品中的高端产品中你现在浏览的是第四十九页,共112页MiniGUI 的技术优势的技术优势(3)l跨操作系统支持跨操作系统支持l理论上可支持任意多任务的嵌入式操作系统理论上可支持任意多任务的嵌入式操作系统l实际已支持实际已支持 Linux/uClinux,eCos,uC/OS-II,VxWorks Linux/uClinux,eCos,uC/OS-II,VxWorks 等嵌等嵌入式操作系统入式操作系统l在不同操作系统上的在不同操作系统上的 MiniGUIMiniGUI,提供完全兼容的,提供完全兼容的 API API 接口接口你现在浏览的是第五十页,共112页MiniGUI vs.Qt/Embeddedl典型系统配置:典型系统配置:l10 MIPS 10 MIPS 以上以上l8MB FLASH8MB FLASHl16MB RAM16MB RAMl产品范围:产品范围:l高、中、低端高、中、低端l许可费:许可费:l8RMB20RMB/8RMB20RMB/副本副本l本地技术支持及服务本地技术支持及服务l跨操作系统支持跨操作系统支持l典型系统配置:典型系统配置:l200MIPS 200MIPS 以上以上l16MB FLASH16MB FLASHl32MB RAM32MB RAMl产品范围:产品范围:l多用于高端产品中多用于高端产品中l许可费:许可费:l30RMB/30RMB/副本副本l非本地技术支持非本地技术支持l仅支持嵌入式仅支持嵌入式 LinuxLinux你现在浏览的是第五十一页,共112页MiniGUI vs.MicroWindowsl典型系统配置:典型系统配置:l10 MIPS 10 MIPS 以上以上l8MB FLASH8MB FLASHl16MB RAM16MB RAMl产品范围:产品范围:l高、中、低端高、中、低端l许可费:许可费:l8RMB/8RMB/副本副本l本地技术支持及服务本地技术支持及服务l跨操作系统支持跨操作系统支持l典型系统配置:典型系统配置:l30MIPS 30MIPS 以上以上l16MB FLASH16MB FLASHl16MB RAM16MB RAMl产品范围:产品范围:l高、中端高、中端l许可费:许可费:l免费免费l无技术支持,无担保无技术支持,无担保l仅支持仅支持 Linux/uClinuxLinux/uClinux你现在浏览的是第五十二页,共112页MiniGUIMiniGUI在在 uC/OS-II uC/OS-II 上的移植上的移植(1)(1)luC/OS-II uC/OS-II 提供了基本的任务管理及同步机制提供了基本的任务管理及同步机制l缺少标准缺少标准 I/O I/O 函数(函数(printf printf 等)等)l缺少内存管理函数(缺少内存管理函数(malloc/freemalloc/free等)等)l缺少缺少 POSIX POSIX 标准兼容的线程接口标准兼容的线程接口你现在浏览的是第五十三页,共112页MiniGUIMiniGUI在在 uC/OS-II uC/OS-II 上的移植上的移植(2)(2)l实现了实现了 ANSI C ANSI C 的标准的标准 I/O I/O 函数函数l实现了实现了 ANSI C ANSI C 的标准内存管理函数的标准内存管理函数l实现了实现了 POSIX POSIX 标准兼容的线程接口标准兼容的线程接口l在在 MiniGUI MiniGUI 的图形抽象层及输入抽象层之下实现对图形和输入的的图形抽象层及输入抽象层之下实现对图形和输入的支持支持你现在浏览的是第五十四页,共112页MiniGUIMiniGUI的三种运行模式的三种运行模式lMiniGUI-ThreadsMiniGUI-Threads。运行在。运行在 MiniGUI-Threads MiniGUI-Threads 上的程序可以在不上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程或者地址空同的线程中建立多个窗口,但所有的窗口在一个进程或者地址空间中运行。这种运行模式非常适合于大多数传统意义上的嵌入式间中运行。这种运行模式非常适合于大多数传统意义上的嵌入式操作系统,比如操作系统,比如 uC/OS-IIuC/OS-II、eCoseCos、VxWorksVxWorks、pSOS pSOS 等等。当然,等等。当然,在在 Linux Linux 和和 uClinux uClinux 上,上,MiniGUI MiniGUI 也能以也能以 MiniGUI-Threads MiniGUI-Threads 的的模式运行。模式运行。lMiniGUI-LiteMiniGUI-Lite。和。和 MiniGUI-ThreadsMiniGUI-Threads相反,相反,MiniGUI-Lite MiniGUI-Lite 上的每上的每个程序是单独的进程,每个进程也可以建立多个窗口。个程序是单独的进程,每个进程也可以建立多个窗口。MiniGUI-MiniGUI-Lite Lite 适合于具有完整适合于具有完整 UNIX UNIX 特性的嵌入式操作系统,比如嵌入式特性的嵌入式操作系统,比如嵌入式 LinuxLinux。lMiniGUI-StandaloneMiniGUI-Standalone。这种运行模式下,。这种运行模式下,MiniGUI MiniGUI 可以以独立进可以以独立进程的方式运行,既不需要多线程也不需要多进程的支持,这种运程的方式运行,既不需要多线程也不需要多进程的支持,这种运行模式适合功能单一的应用场合。比如在一些使用行模式适合功能单一的应用场合。比如在一些使用 uClinux uClinux 的嵌的嵌入式产品中,因为各种原因而缺少线程支持,这时,就可以使用入式产品中,因为各种原因而缺少线程支持,这时,就可以使用 MiniGUI-Standalone MiniGUI-Standalone 来开发应用软件。来开发应用软件。你现在浏览的是第五十五页,共112页基于基于uC/OSuC/OS的的MiniGUIMiniGUI的应用软件流程的应用软件流程你现在浏览的是第五十六页,共112页嵌入式GUI的结构模型窗口模型显示模型用户模型显示模型:图形在窗口上的基本显示模式显示模型:图形在窗