八、嵌入式系统软件结构设计

上传人:j****9 文档编号:57311387 上传时间:2018-10-20 格式:PPT 页数:112 大小:1.36MB
返回 下载 相关 举报
八、嵌入式系统软件结构设计_第1页
第1页 / 共112页
八、嵌入式系统软件结构设计_第2页
第2页 / 共112页
八、嵌入式系统软件结构设计_第3页
第3页 / 共112页
八、嵌入式系统软件结构设计_第4页
第4页 / 共112页
八、嵌入式系统软件结构设计_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《八、嵌入式系统软件结构设计》由会员分享,可在线阅读,更多相关《八、嵌入式系统软件结构设计(112页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统设计与实例开发 基于32位微处理器与实时操作系统 第八讲 基于C/OS-的软件设计,uCOS-II的不足之处,只有多任务调度的简单内核 内存管理过于简单,几乎没有动态内存管理功能 文件系统和图形界面需要外挂 对于设备驱动程序没有专门统一的接口,对COS-II进行必要的扩展,要想实现一个相对完整、实用的嵌入式操作系统,还需要相当多的扩展性的工作。如: 建立了FAT兼容的文件系统 外设及驱动程序的实现 基于Unicode的汉字库 基本绘图函数的实现 其它实用API函数,基于COS-II扩展RTOS的体系结构,1系统外围设备的硬件部分 系统外围设备的硬件部分包括:液晶显示屏(LCD)、US

2、B通信模块、键盘、海量Flash存储器、系统的时钟和日历。外围设备的硬件部分是保证系统实现指定任务的最底层的部件。2、驱动程序模块 驱动程序是连接底层的硬件和上层的API函数的纽带,有了驱动程序模块,就可以把操作系统的API函数和底层的硬件分离开来。硬件的改变、删除或者添加,只需要随之改变、删除或者添加提供给操作系统的相应的驱动程序就可以了。而不会影响到API函数的功能,更不会影响到用户的应用程序。,3操作系统的API函数 在操作系统中提供标准的应用程序接口(API)函数,可以加速用户应用程序的开发,统一应用程序的标准,同时也给操作系统版本的升级带来了方便。在API函数中,提供了大量的常用模块

3、,可以大大简化用户应用程序的编写。 4实时操作系统的多任务管理 C/OS-作为操作系统的内核,主要的任务就是完成多任务之间的调度和同步。 5系统的消息队列 这里所说的系统的消息队列是以C/OS-的消息队列派生出来的系统消息传递机制,用来实现系统的各个任务之间、用户应用程序的各个任务之间以及用户应用程序和系统的各个任务之间的通信。,6系统任务 系统任务主要包括液晶显示屏(LCD)的刷新任务、系统键盘扫描任务。这两个任务是操作系统的基本任务,随着操作系统的启动而运行。7用户应用程序 用户的应用程序建立在系统的主任务(Main_Task)基础之上。用户应用程序主要通过调用系统的API函数对系统进行操

4、作,完成用户的要求。在用户的应用程序中也可以创建用户自己的任务。任务之间的协调主要依赖于系统的消息队列。,嵌入式文件系统,什么是文件系统(File System),文件系统的定义处理文件的操作系统的部分称为文件系统.是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用文件系统的功能文件的构造、命名、存取、保护等。文件系统的存储媒质磁盘(软盘、硬盘)、光盘、FLASH(盘)、RAM、ROM、网络甚至设备等,基于NAND FLASH的嵌入式文件系统,FLASH读写的特点,(1)必须以Page为单位进行读写; (2)写之前必须先擦除原有内

5、容; (3)擦除操作必须对Block进行,即一次至少擦除一个Block的内容针对这种情况,将Flash的一个Page定为1个扇区,将其1个Block,32个扇区定为一个簇,这样,簇的容量刚好为5123216K,满足FAT16对簇大小的要求,FLASH文件系统的要求,(1)掉电安全:嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的可靠性。这就对FLASH文件系统进出了较高的要求,无论程序崩溃或系统掉电,都不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对系统异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和选用时应考虑; (2)平均使用(wear-leveli

6、ng):由于FLASH扇区的擦除次数有限制,要求能够均匀使用各扇区,以延长FLASH的使用寿命; (3)高效垃圾回收(garbage collection):任何存储器在分配使用一段时间后,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,再擦除整个扇区; (4)低空间消耗(lov overhead):指文件系统管理结构在FLASH存储器上的空间消耗,该空间用于FS建立,而不能用于实际数据的存储,可以提高有用数据的存储空间,FLASH文件系统的分类,(1)集中管理文件系统特点:存储器空间的使用信息集中存放在存储器的某个地方,存储器的其它区域用于存放数据,数据必须依赖关键信息

7、区才能被索引和使用缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备份到RAM中,再进行擦除操作,最后将修改后的备份写入FLASH,难以保证掉电安全,不能均匀使用存储器空间,特别是关键信息区,对文件系统的使用都会改写该区,导致FLASH快速损坏;,FLASH文件系统的分类,(2)线性文件系统概述:每个文件相关的信息都连续存放在存储器中,实现简单,读写快速,文件系统的关键信息分布存放;优点:安全性好;能保证存储器的平均使用,延长了FLASH的使用寿命;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;,FLASH文件系统的分类,(3)日志文件系统概述:日志结构的文件系统使用顺序的、

8、只增的日志作为磁盘上唯一的组织文件系统数据的结构 ,文件的描述可以仍采用传统的索引组织方式。方法是在内存中将几次 FS的修改汇集成一个大的日志条目(被称为段映像 ) ,然后动态分配磁盘空间并通过一次写操作写到磁盘上的一个连续的、固定大小的日志段 (Segment)中。并定时或当系统发出同步写请求时保证日志同步写到磁盘上; 优点:恢复快速不会产生丢失的簇、也不会因为掉电而破坏文件系统。,几种开源的文件系统,TFS(Tiny File System)概述:TFS是由原Lucent公司的Ed Sutter开发的嵌入式系统引导平台Umon的一部分。TFS是一种线性结构的文件系统,由多个存放 的文件块组

9、成。一个文件块包含一个文件的所有信息。 优点:TFS提供了掉电安全机制和垃圾回收机制。需要额外的辅助空间,用于垃圾回收时的文件缓存和过程状态,如果出现终止,系统根据辅助空间的信息进行文件系统的恢复 缺点:文件的插入、剪切和个性需要较大的运行开销,即使是很小的修改,也要求将整个文件重写,jffs/jffs2文件系统的优缺点,JFFS(Journaling Flash File System)概述:由瑞典Axis通信公司开发的文件系统,主要针对NOR型Flash存储器设计,提供了掉电安全,平均使用等特性,是基于Linux,由于遵循GPL开放源代码,易实现移植;日志文件系统 提供了更好的崩溃、掉电安

10、全保护 jffs2支持对flash的均匀磨损 在扇区级别上执行闪存擦除写读操作功能较好 文件系统接近满时,JFFS2 会大大放慢运行速度垃圾收集,Nand上yaffs文件系统的优势,专门为Nand flash设计的日志文件系统 jffsjffs2不适合大容量的Nand flash jffs的日志通过jffs_node建立在RAM中,占用 RAM空间:对于128MB的Nand大概需要4MB的空间来维护节点 启动的时候需要扫描日志节点,不适合大容量的Nand flash FAT系统没有日志,FAT文件系统的发展,DOS 1.0 (1981),DOS 3.0 (1984),Win 95 (1995)

11、,Win 95 Osr2 (1996),Win 98 (1998),Win 3.1 (1992),FAT12,FAT16,VFAT,FAT32,FAT12/FAT16/FAT32的比较,FAT16文件系统基本结构,FAT 文件系统由下面四部分组成 保留区 Reserved region 存放引导记录,BIOS信息等 FAT 区 FAT信息列表 (12/16/32 bits) 根目录区 目录信息列表 (32 bytes) 文件和目录区 存放簇信息,保留区 Reserved Region,引导记录 基本信息 引导代码 BIOS参数块 (BPB) 字节/扇区 (512,1024,2048,4096)

12、 扇区/簇 (1,2,4,8,16,32,64,128) 根目录数 总扇区值 介质类型 (硬盘,软盘,FLASH),FAT 区,通常有 FAT(P)(primary)和FAT(B)(backup) 每一个簇都有一个对应的FAT目录,FAT,数据区,FAT 链表 (FAT16),目录树,典型FLASH文件系统的结构,(1)系统记录(SR,System Record)存放媒质信息和最重要的文件系统信息。媒质信息诸如Flash存储器的类型、容量,划分成多少个区块,每区块包含多少个页面等。文件系统信息包括版本信息、保留区块的数目和位置、文件分配表和文件登记表所在的位置和大小、数据区域的位置和大小等。(

13、2)文件分配表(FAT,File Allocation Table)存放着Flash存储器上所有区块的占用与空闲情况以及每个文件的存储连接结构。采用FAT16文件格式,(3)文件登记表(FRT,File Register Table) 存放着Flash文件系统中每一个文件的文件代号、文件长度、文件属性以及该文件的存储链在文件分配表中的入口。(4)数据区域(Data Area) 用于存放文件的数据内容。本Flash文件系统中,数据分配的最小单位是Flash存储器的一个基本擦除单元,即一个物理区块(Block)。,FLASH文件系统的结构,文件系统的实现FILE结构体,typedef struct

14、U8 BufferBLOCK_SIZE; /文件缓冲区U32 fileblock; /文件当前的簇的位置U32 filemode; /打开文件的模式U32 filebufnum; /文件缓冲区中已经读取/写入的字节数U32 fileCurpos; /读写的当前位置U32 filesize; /文件的大小 FILE;,与FLASH存储器的接口函数,块擦除unsigned char Erase_Cluster(unsigned int cluster)页写入int WritePage(unsigned int block,unsigned int page,unsigned char *pPage

15、)页读出void ReadPage(unsigned int block,unsigned int page,unsigned char *pPage),OpenOSFile的工作的流程图,文件系统的相关函数,始始化文件系统 void initOSFile(char filename,U32 OpenMode) 读文件到缓冲区 U32 ReadOSFile(FILE* pfile,U8* ReadBuffer,U32 nReadbyte) 把缓冲区内容写入文件 U32 WriteOSFile(FILE* pfile,U8* WriteBuffer,U32 nWritebyte) 关闭文件,释放

16、缓冲区 void CloseOSFile(FILE* Pfile),ReadOSFile函数的程序流程图,ReadOSFile函数的程序流程图,WriteOSFile函数的程序流程图,WriteOSFile函数的程序流程图,CloseOSFile函数的程序流程图,CloseOSFile函数的程序流程图,嵌入式GUI技术,GUI的概念,GUI的定义Graphics User Interface, 是指计算机与其使用者之间的图形化对话接口。GUI的主要特征:Windows,采用窗口界面,每个窗口是用户或系统的一个工作区域。一个屏幕上可以有多个窗口。 Icons,采用形象化的图标或图符,易于操作者理解与操作。Menu,采用菜单,可供用户选择的功能提示Pointing Devices ,指鼠标器、触摸屏等,便于用户直接对屏幕对象进行操作。,嵌入式GUI的特点,体积小 功能强; 图形算法简洁、快速,占用系统资源少 可靠性高; 模块结构,便于移植和定制,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号