嵌入式系统学习课件C8说课讲解.ppt

上传人:豆**** 文档编号:65277125 上传时间:2022-12-04 格式:PPT 页数:90 大小:860.50KB
返回 下载 相关 举报
嵌入式系统学习课件C8说课讲解.ppt_第1页
第1页 / 共90页
嵌入式系统学习课件C8说课讲解.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《嵌入式系统学习课件C8说课讲解.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统学习课件C8说课讲解.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1嵌入式系统学习课件C82uCOS-IIuCOS-II的不足之处的不足之处l只有多任务调度的简单内核只有多任务调度的简单内核l内存管理过于简单,几乎没有动态内存管理功能内存管理过于简单,几乎没有动态内存管理功能l文件系统和图形界面需要外挂文件系统和图形界面需要外挂l对于设备驱动程序没有专门统一的接口对于设备驱动程序没有专门统一的接口3具体的扩展工作l建立文件系统;建立文件系统;l外设及驱动程序的实现;外设及驱动程序的实现;l基于基于UnicodeUnicode汉字库的实现方法;汉字库的实现方法;l基本绘图函数的实现;基本绘图函数的实现;l其它实用其它实用APIAPI函数;函数;4基于COS-I

2、I扩展RTOS的体系结构51系统外围设备的硬件部分l系统外围设备的硬件部分包括:液晶显示屏(系统外围设备的硬件部分包括:液晶显示屏(LCDLCD)、)、USBUSB通信模通信模块、键盘、海量块、键盘、海量FlashFlash存储器、系统的时钟和日历。外围设备的硬存储器、系统的时钟和日历。外围设备的硬件部分是保证系统实现指定任务的最底层的部件。件部分是保证系统实现指定任务的最底层的部件。2 2、驱动程序模块l驱动程序是连接底层的硬件和上层的驱动程序是连接底层的硬件和上层的APIAPI函数的纽带,有了驱动程函数的纽带,有了驱动程序模块,就可以把操作系统的序模块,就可以把操作系统的APIAPI函数和

3、底层的硬件分离开来。硬函数和底层的硬件分离开来。硬件的改变、删除或者添加,只需要随之改变、删除或者添加提供件的改变、删除或者添加,只需要随之改变、删除或者添加提供给操作系统的相应的驱动程序就可以了。而不会影响到给操作系统的相应的驱动程序就可以了。而不会影响到APIAPI函数的函数的功能,更不会影响到用户的应用程序。功能,更不会影响到用户的应用程序。63操作系统的API函数l在操作系统中提供标准的应用程序接口(在操作系统中提供标准的应用程序接口(APIAPI)函数,可以加速用)函数,可以加速用户应用程序的开发,统一应用程序的标准,同时也给操作系统版户应用程序的开发,统一应用程序的标准,同时也给操

4、作系统版本的升级带来了方便。在本的升级带来了方便。在APIAPI函数中,提供了大量的常用模块,可函数中,提供了大量的常用模块,可以大大简化用户应用程序的编写。以大大简化用户应用程序的编写。4实时操作系统的多任务管理l C/OS-C/OS-作为操作系统的内核,主要的任务就是完成多任务之间作为操作系统的内核,主要的任务就是完成多任务之间的调度和同步。的调度和同步。5系统的消息队列l这里所说的系统的消息队列是以这里所说的系统的消息队列是以 C/OS-C/OS-的消息队列派生出来的的消息队列派生出来的系统消息传递机制,用来实现系统的各个任务之间、用户应用程系统消息传递机制,用来实现系统的各个任务之间、

5、用户应用程序的各个任务之间以及用户应用程序和系统的各个任务之间的通序的各个任务之间以及用户应用程序和系统的各个任务之间的通信。信。76系统任务l系统任务主要包括液晶显示屏(系统任务主要包括液晶显示屏(LCDLCD)的刷新任务、系统键盘扫描)的刷新任务、系统键盘扫描任务。这两个任务是操作系统的基本任务,随着操作系统的启动任务。这两个任务是操作系统的基本任务,随着操作系统的启动而运行。而运行。7用户应用程序l用户的应用程序建立在系统的主任务(用户的应用程序建立在系统的主任务(Main_TaskMain_Task)基础之上。用)基础之上。用户应用程序主要通过调用系统的户应用程序主要通过调用系统的AP

6、IAPI函数对系统进行操作,完成用函数对系统进行操作,完成用户的要求。在用户的应用程序中也可以创建用户自己的任务。任户的要求。在用户的应用程序中也可以创建用户自己的任务。任务之间的协调主要依赖于系统的消息队列。务之间的协调主要依赖于系统的消息队列。8本节提要本节提要1 13 32 25 54 46 6基于基于 COS-IICOS-II扩展扩展RTOSRTOS图形用户接口设计图形用户接口设计外设及驱动外设及驱动文件系统的设计文件系统的设计系统的消息系统的消息嵌入式嵌入式GUI简介简介9图形用户接口函数 基于基于3232位嵌入式处理器的硬件平台,有着较高的运算位嵌入式处理器的硬件平台,有着较高的运

7、算速度和大容量的内存。为人机交互建立速度和大容量的内存。为人机交互建立GUIGUI无疑为最无疑为最首选的方式。本小节将建立针对常用的图形界面的应首选的方式。本小节将建立针对常用的图形界面的应用建立相应的用建立相应的APIAPI函数。主要包括:函数。主要包括:l基本绘图函数。基本绘图函数。l基于基于UnicodeUnicode的汉字字库的汉字字库l典型的控件典型的控件10绘图API函数l绘图是操作系统的图形界面的基础,本系统为绘图是操作系统的图形界面的基础,本系统为图形界面提供了丰富的绘图函数。图形界面提供了丰富的绘图函数。l在多任务操作系统中,绘图设备上下文(在多任务操作系统中,绘图设备上下文

8、(DCDC)是绘图的关键。绘图设备上下文(是绘图的关键。绘图设备上下文(DCDC)保存了)保存了每一个绘图对象的相关参数(比如:绘图画笔每一个绘图对象的相关参数(比如:绘图画笔的宽度、绘图的原点坐标等)。在多任务操作的宽度、绘图的原点坐标等)。在多任务操作系统中,通过绘图设备上下文(系统中,通过绘图设备上下文(DCDC)来绘图,)来绘图,可以保证在不同的任务绘图的参数是相互独立可以保证在不同的任务绘图的参数是相互独立的,不会互相影响。的,不会互相影响。11DC的定义typedef structint DrawPointx;int DrawPointy;/绘图所使用的坐标点绘图所使用的坐标点in

9、t PenWidth;/画笔宽度画笔宽度U32 PenMode;/画笔模式画笔模式U32 PenColor;/画笔的颜色画笔的颜色int DrawOrgx;/绘图的坐标原点位置绘图的坐标原点位置int DrawOrgy;int DrawRangex;/绘图的区域范围绘图的区域范围int DrawRangey;U8 bUpdataBuffer;/是否更新后台缓冲区是否更新后台缓冲区U32 Fontcolor;/字符颜色字符颜色DC,*PDC;12DC的初始化l在绘图设备上下文(在绘图设备上下文(DCDC)中保存了每一个绘图对)中保存了每一个绘图对象的相关参数。在系统启动的时候,通过调用象的相关参

10、数。在系统启动的时候,通过调用initOSDCinitOSDC()()函数初始化绘图设备上下文(函数初始化绘图设备上下文(DCDC),为以后创),为以后创建绘图设备上下文(建绘图设备上下文(DCDC)分配存储空间。)分配存储空间。13DC的使用14典型的绘图函数(a)lvoid initOSDC();void initOSDC();lPDC CreateDC();PDC CreateDC();lvoid DestoryDC(PDC pdc);void DestoryDC(PDC pdc);lvoid MoveTo(PDC pdc,int x,int y);void MoveTo(PDC pdc

11、,int x,int y);lvoid LineTo(PDC pdc,int x,int y);void LineTo(PDC pdc,int x,int y);lvoid DrawRectFrame(PDC pdc,int left,int void DrawRectFrame(PDC pdc,int left,int top,int right,int bottom);top,int right,int bottom);lvoid Circle(PDC pdc,int x0,int y0,int void Circle(PDC pdc,int x0,int y0,int r);r);15典

12、型的绘图函数(b)lvoid SetDrawOrg(PDC pdc,int x,int y,int*void SetDrawOrg(PDC pdc,int x,int y,int*oldx,int*oldy)oldx,int*oldy)l设置绘图设备上下文(设置绘图设备上下文(DCDC)的原点)的原点 16典型的绘图函数(c)lvoid SetDrawRange(PDC pdc,int x,int y,int*void SetDrawRange(PDC pdc,int x,int y,int*oldx,int*oldy)oldx,int*oldy)l设置绘图设备上下文(设置绘图设备上下文(DC

13、DC)的绘图范围)的绘图范围 lx,yx,y:设定的横向、纵向绘图的范围,如果:设定的横向、纵向绘图的范围,如果x x(或者(或者y y)为为1 1,则表示,则表示x x(或者(或者y y)方向的比例随着)方向的比例随着y y(或者(或者x x)方)方向的范围按比例缩放。如果参数为向的范围按比例缩放。如果参数为-1-1,表示方向相反,表示方向相反 17DC创建PDC pdc;pdc=CreateDC();18DC设置举例lPDC pdc;PDC pdc;lpdc=CreateDC();pdc=CreateDC();lSetDrawOrg(pdc,170,50,&oldx,&oldy);SetD

14、rawOrg(pdc,170,50,&oldx,&oldy);lSetDrawRange(pdc,800,-1,&oldxrangeSetDrawRange(pdc,800,-1,&oldxrange,&oldyrange);&oldyrange);l上面的程序代码创建一个绘图设备上下文(上面的程序代码创建一个绘图设备上下文(DCDC),将原),将原点坐标设定在液晶屏设备坐标的点坐标设定在液晶屏设备坐标的(170,50)(170,50),并把绘图的,并把绘图的逻辑坐标的水平值设置成逻辑坐标的水平值设置成800800,垂直范围按照液晶屏实,垂直范围按照液晶屏实际的横纵比例缩放。际的横纵比例缩放。

15、l l实验实验1 1 绘图的绘图的APIAPI函数函数19字符集与字体模块l矢量字体 基于矢量的的字体,称之为可缩放的字体,轮廓字体,或矢量字体。基于矢量的的字体,称之为可缩放的字体,轮廓字体,或矢量字体。由于这些字体在存储时亦只存储了其轮廓,因此,在不同的缩放大小下依然能由于这些字体在存储时亦只存储了其轮廓,因此,在不同的缩放大小下依然能保持美观而不会出现保持美观而不会出现“锯齿锯齿”。这点是很适合其完整地在。这点是很适合其完整地在WebWeb上传输。一般说上传输。一般说来,来,LogoLogo、线形艺术作品、图表、动画、抽象艺术作品等凡较容易定义颜色区、线形艺术作品、图表、动画、抽象艺术作

16、品等凡较容易定义颜色区域的图形,用矢量图都能产生很好的效果。域的图形,用矢量图都能产生很好的效果。l计算机是以处理数字为基础,如果要处理文字就需要规定一个编码系统用不同计算机是以处理数字为基础,如果要处理文字就需要规定一个编码系统用不同的数字来表示相应的字符。我们较为熟悉的有的数字来表示相应的字符。我们较为熟悉的有GBGB、GBKGBK、BIG5BIG5、ASCIIASCII等等。由等等。由于编码不统一,这些编码系统之间经常相互冲突。事实上,两种编码可能使用于编码不统一,这些编码系统之间经常相互冲突。事实上,两种编码可能使用相同的数字代表两个不同的字符;或者使用不同的数字代表相同的字符。相同的

17、数字代表两个不同的字符;或者使用不同的数字代表相同的字符。l在在UnicodeUnicode的双字节版本中(的双字节版本中(UTF-16UTF-16)使用的是)使用的是1616位编码方式,可提供位编码方式,可提供65,00065,000多多个字符代码指针。其编码容量可涵盖世界上几乎所有的语言,不仅包括拉丁语,个字符代码指针。其编码容量可涵盖世界上几乎所有的语言,不仅包括拉丁语,希腊语,斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语,还包括中文,日文和希腊语,斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语,还包括中文,日文和韩文这样的象形文字,以及平假名,片假名,孟加拉语,泰米尔语,泰国语,韩文这样的象形文

18、字,以及平假名,片假名,孟加拉语,泰米尔语,泰国语,老挝语等。目前还有大约老挝语等。目前还有大约80008000个代码指针未用,可供扩展。个代码指针未用,可供扩展。20基于Unicode的字库 l什么是什么是UnicodeUnicodel使用使用UnicodeUnicode的优点的优点 l字符的存储方式字符的存储方式l编写编写UnicodeUnicode的程序的程序 lUnicodeUnicode字模的提取字模的提取lUnicodeUnicode字库的显示及相关函数字库的显示及相关函数 21什么是UnicodeUnicode Unicode 是是 统一编码的紧缩写法统一编码的紧缩写法l世世界界

19、上上常常用用的的编编码码系系统统有有数数百百种种之之多多,但但所所有有的的这这些些编编码码系系统统,没没有有哪哪一一个个能能有有足足够够的的字字符符,可可以以适适用用于于多种语言文本多种语言文本l由于编码不统一,这些编码系统之间经常相互冲突由于编码不统一,这些编码系统之间经常相互冲突lUnicodeUnicode出现改变了这一切出现改变了这一切l在在UnicodeUnicode的的双双字字节节版版本本中中(UTF-16UTF-16)使使用用的的是是1616位位编编码方式,可提供码方式,可提供65,00065,000多个字符代码指针多个字符代码指针 22使用Unicode的优点 l使使用用Uni

20、codeUnicode避避免免了了乱乱码码的的产产生生,使使得得国国际际间间文文本本数数据交换成为可能据交换成为可能l解决了多语言文本同平面共存的问题解决了多语言文本同平面共存的问题l实实现现了了软软件件的的全全球球化化,避避免免了了软软件件产产品品在在贯贯穿穿多多个个平台、语言和国家时的重建平台、语言和国家时的重建 23字符的存储方式l在在图图形形操操作作系系统统中中,字字符符(包包括括:中中文文、英英文文)通通常常有有2 2种存储方式。种存储方式。l一种方式存储的是字符的图形点阵一种方式存储的是字符的图形点阵 l另一种方式是存储汉字的矢量图形另一种方式是存储汉字的矢量图形 l在在嵌嵌入入式

21、式处处理理中中,因因为为处处理理器器的的性性能能和和嵌嵌入入式式系系统统资资源源还还不不如如PCPC机机,而而且且,嵌嵌入入式式只只是是针针对对专专一一控控制制而而应应用用的的系统。基本上,没有必要使用矢量字库。系统。基本上,没有必要使用矢量字库。24Unicode字库分配 l本系统中编码采用双字节版本的本系统中编码采用双字节版本的UnicodeUnicode格式格式l收集了收集了ASCIIASCII字符(字符(0 x0000-0 x00ff0 x0000-0 x00ff)256256个个l特特殊殊图图形形符符号号(0 x2600-0 x267f0 x2600-0 x267f和和0 x2700

22、-0 x27bf0 x2700-0 x27bf)320320个个l中文字符(中文字符(0 x4e00-0 x9fff0 x4e00-0 x9fff)2099220992个。个。25Unicode字库相关函数 l转换函数转换函数lvoid Int2Unicode(int number,U16 str);lint Unicode2Int(U16 str);lvoid strChar2Unicode(U16 ch2,const char ch1);l输出函数输出函数lvoid TextOut(PDC pdc,int x,int y,U16*ch,U8 bunicode,U8 fnt);lvoid T

23、extOutRect(PDC pdc,structRECT*prect,U16*ch,U8 bunicode,U8 fnt)26典型的控件 控件是可视化开发的基础。对于开发应用程序的用户来说,控控件是可视化开发的基础。对于开发应用程序的用户来说,控件是一个独立的组件,它有着自己的显示方式,自己的动态内件是一个独立的组件,它有着自己的显示方式,自己的动态内存管理模式,甚至有的控件还可以向系统发送自己的消息。用存管理模式,甚至有的控件还可以向系统发送自己的消息。用户不需要掌握控件的内部到底是如何工作的,用户只需要通过户不需要掌握控件的内部到底是如何工作的,用户只需要通过控件提供的控件提供的APIA

24、PI函数,改变控件相应的属性,从而改变控件的函数,改变控件相应的属性,从而改变控件的显示方式。显示方式。l控件的引入可以方便用户的开发,加速用户应用程序界面控件的引入可以方便用户的开发,加速用户应用程序界面的编写速度。的编写速度。l为运行在操作系统上的应用程序的界面提供了统一的标准,为运行在操作系统上的应用程序的界面提供了统一的标准,方便了使用。方便了使用。27系统中的控件l文本框控件文本框控件l列表框控件列表框控件l图片框控件图片框控件l按钮控件按钮控件l窗体窗体28控件的使用流程29通用的系统控件 对一个通用的系统控件,包含了如下的数据结构:对一个通用的系统控件,包含了如下的数据结构:ty

25、pedef structU32 CtrlType;/控件的类型控件的类型U32 CtrlID;/控件的控件的IDstructRECT ListCtrlRect;/控件的位置和大小控件的位置和大小U32 FontSize;/控件的字符大小控件的字符大小U32 style;/控件的的边框风格控件的的边框风格U8 bVisible;/是否可见是否可见OS_Ctrl;30主要函数介绍主要函数介绍l列表框控件列表框控件lCreateTextCtrll定义定义:PTextCtrl CreateTextCtrl(U32 CtrlID,structRECT*prect,U32 FontSize,U32 sty

26、le,char*KeyTable,PWnd parentWnd)l功能功能:创建文本框控件创建文本框控件,返回指向文本控件的指针返回指向文本控件的指针l参数说明参数说明:lCtrlID:创建的文本框控件的创建的文本框控件的ID,此控件此控件ID必须是唯一的必须是唯一的lrect:指向文本框控件大小和位置的指针指向文本框控件大小和位置的指针lFontSize:文本框的字体大小文本框的字体大小,可以是表可以是表1-1数值中的一种数值中的一种lstyle:文本框的风格文本框的风格,可以是表可以是表3-1中的一种中的一种lKeyTable:文本框的字符映射表文本框的字符映射表,即按键对应的在文本框中显

27、示的字符即按键对应的在文本框中显示的字符.如如果是果是NJLL,表示使用默认的字符映射表表示使用默认的字符映射表.lparentWnd:指向控件父窗口的指针指向控件父窗口的指针,如果是如果是NJLL,表示没有父窗口表示没有父窗口,空间空间属于桌面属于桌面 31 DestoryTextCtrl 定义定义:void DestoryTextCtrl(PTextCtrl pTextCtrl)l功能功能:删除文本框控件删除文本框控件l参数说明参数说明:lpTextCtrl:指向文本框的指针指向文本框的指针 SetTextCtrlText 定义定义:void SetTextCtrlText(PTextCt

28、rl pTextCtrl,U16*pch)l功能功能:设置文本框的文本设置文本框的文本l参数说明参数说明:lpTextCtrl:指向文本框的指针指向文本框的指针lpch:指向文本框显示文字的字符串指针指向文本框显示文字的字符串指针 GetTextCtrlText 定义定义:U16*GetTextCtrlText(PTextCtrl pTextCtrl)功能功能:返回指向文本框文字的指针返回指向文本框文字的指针 32l实验实验2 文本框控件,列表框控件文本框控件,列表框控件33本节提要本节提要1 13 32 25 54 46 6基于基于 COS-IICOS-II扩展扩展RTOSRTOS图形用户接

29、口设计图形用户接口设计外设及驱动外设及驱动文件系统的设计文件系统的设计系统的消息系统的消息嵌入式嵌入式GUI简介简介34什么是文件系统(File System)文件系统的定义 处理文件的操作系统的部分称为文件系统处理文件的操作系统的部分称为文件系统.是操作系统中统一管理是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用的共享和保护手段,并且方便用户使用文件系统的功能 文件的构造、命名、存取、采用、保护和实现等。文件的构造、命名、存取、采用、保护和实现等。文件系统的存储媒质

30、 磁盘、软盘、光盘、磁盘、软盘、光盘、FLASHFLASH盘等等盘等等35文件系统的发展DOS 1.0(1981)DOS 3.0(1984)Win 95(1995)Win 95 Osr2(1996)Win 98(1998)Win 3.1(1992)FAT12FAT16VFATFAT3236FAT12/FAT16/FAT32的比较FAT12FAT12FAT16FAT16FAT32FAT32Size of FAT Size of FAT entryentry12 bits12 bits16 bits16 bits32 bits32 bitsMax num of Max num of cluster

31、sclusters4,0864,08665,52665,526268,435,456268,435,456Cluster size Cluster size usedused0.5 KB-4 KB0.5 KB-4 KB2 KB-32 KB2 KB-32 KB4 KB-32 KB4 KB-32 KB最大磁盘容量最大磁盘容量16,736,25616,736,256(16M)(16M)2,147,123,2002,147,123,200(2G)(2G)about 241about 241(2T)(2T)37基于FLASH的嵌入式文件系统38FLASH读写的特点(1 1)必须以)必须以PagePage

32、为单位进行读写;为单位进行读写;(2 2)写之前必须先擦除原有内容;)写之前必须先擦除原有内容;(3 3)擦除操作必须对)擦除操作必须对BlockBlock进行,即一次至少擦除一个进行,即一次至少擦除一个BlockBlock的内容的内容 针对这种情况,将针对这种情况,将FlashFlash的一个的一个PagePage定为定为1 1个扇区,将其个扇区,将其1 1个个BlockBlock,3232个扇区定为一个簇,这样,簇的容量刚好为个扇区定为一个簇,这样,簇的容量刚好为512512323216K16K,满,满足足FAT16FAT16对簇大小的要求对簇大小的要求 39FLASH文件系统的要求(1

33、1)掉电安全:掉电安全:嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的可靠性。这就对可靠性。这就对FLASHFLASH文件系统进出了较高的要求,无论程序崩溃或系统掉电,文件系统进出了较高的要求,无论程序崩溃或系统掉电,都不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对都不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对系统异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和系统异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和选用时应考虑;选用时应考虑;(2 2)平均使用(

34、平均使用(wear-leveling)wear-leveling):由于由于FLASHFLASH扇区的擦除次数有限制,要求能够扇区的擦除次数有限制,要求能够均匀使用各扇区,以延长均匀使用各扇区,以延长FLASHFLASH的使用寿命;的使用寿命;(3 3)高效垃圾回收(高效垃圾回收(garbage collection)garbage collection):任何存储器在分配使用一段时间后,任何存储器在分配使用一段时间后,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,再擦除整个扇区;再擦除整个扇区;(4

35、 4)低空间消耗(低空间消耗(lov overhead)lov overhead):指文件系统管理结构在指文件系统管理结构在FLASHFLASH存储器上的空存储器上的空间消耗,该空间用于间消耗,该空间用于FSFS建立,而不能用于实际数据的存储,可以提高有用数据建立,而不能用于实际数据的存储,可以提高有用数据的存储空间的存储空间40FLASH文件系统的分类(1 1)集中管理文件系统)集中管理文件系统特点:存储器空间的使用信息集中存放在存储器的某个地方,存特点:存储器空间的使用信息集中存放在存储器的某个地方,存 储器的其它区域用于存放数据,数据必须依赖关键信息区才能被储器的其它区域用于存放数据,数

36、据必须依赖关键信息区才能被索引和使用索引和使用缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备份到份到RAMRAM中,再进行擦除操作,最后将修改后的备份写入中,再进行擦除操作,最后将修改后的备份写入FLASHFLASH,缺点是难以保证掉电安全,不能均匀使用存储器空间,特别是关缺点是难以保证掉电安全,不能均匀使用存储器空间,特别是关键信息区,对文件系统的使用个性都会改写该区,导致键信息区,对文件系统的使用个性都会改写该区,导致FLASHFLASH快快速损坏;速损坏;41FLASH文件系统的分类(2 2)线性文件系统)线性文件系统

37、概述:每个文件相关的信息都连续存放在存储器中,实现简单,读概述:每个文件相关的信息都连续存放在存储器中,实现简单,读写快速,文件系统的关键信息分布存放;写快速,文件系统的关键信息分布存放;优点:安全性好;能保证存储器的平均使用,延长了优点:安全性好;能保证存储器的平均使用,延长了FLASHFLASH的使用寿的使用寿命;命;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;42FLASH文件系统的分类(3 3)日志文件系统)日志文件系统概述:日志结构的文件系统使用顺序的、只增的日志作为磁盘上唯概述:日志结构的文件系统使用顺序的、只增的

38、日志作为磁盘上唯一的组织文件系统数据的结构一的组织文件系统数据的结构,文件的描述可以仍采用传统的索文件的描述可以仍采用传统的索引组织方式。方法是在内存中将几次引组织方式。方法是在内存中将几次 FS FS的修改汇集成一个大的日的修改汇集成一个大的日志条目志条目(被称为段映像被称为段映像),),然后动态分配磁盘空间并通过一次写操然后动态分配磁盘空间并通过一次写操作写到磁盘上的一个连续的、固定大小的日志段作写到磁盘上的一个连续的、固定大小的日志段(Segment)(Segment)中。中。并定时或当系统发出同步写请求时保证日志同步写到磁盘上;并定时或当系统发出同步写请求时保证日志同步写到磁盘上;优点

39、:恢复快速。优点:恢复快速。43几种开源的FLASH文件系统TFSTFS(Tiny File System)Tiny File System)概述:概述:TFSTFS是由原是由原LucentLucent公司的公司的Ed SutterEd Sutter开发的嵌入式系统引导平开发的嵌入式系统引导平台台UmonUmon的一部分。的一部分。TFSTFS是一种线性结构的文件系统,由多个存放是一种线性结构的文件系统,由多个存放 的文件块组成。一个文件块包含一个文件的所有信息。的文件块组成。一个文件块包含一个文件的所有信息。优点:优点:TFSTFS提供了掉电安全机制和垃圾回收机制,需要额外的辅助空提供了掉电

40、安全机制和垃圾回收机制,需要额外的辅助空间,用于垃圾回收时的文件缓存和过程状态,如果出现终止,系间,用于垃圾回收时的文件缓存和过程状态,如果出现终止,系统根据辅助空间的信息进行文件系统的恢复;统根据辅助空间的信息进行文件系统的恢复;缺点:文件的插入、剪切和个性需要较大的运行开销,即使是很小缺点:文件的插入、剪切和个性需要较大的运行开销,即使是很小的修改,也要求将整修文件重写的修改,也要求将整修文件重写44几种开源的FLASH文件系统lJFFS(Journaling Flash File SystemJFFS(Journaling Flash File System)概述:由瑞典概述:由瑞典Ax

41、isAxis通信公司开发的文件系统,主要针对通信公司开发的文件系统,主要针对NORNOR型型FlashFlash存储器设计,提供了掉电安全,平均使用等特性,是基于存储器设计,提供了掉电安全,平均使用等特性,是基于LinuxLinux,由于遵循由于遵循GPLGPL开放源代码,易实现移植;开放源代码,易实现移植;45FAT16文件系统基本结构lFAT 文件系统由下面四部分组成文件系统由下面四部分组成l保留区保留区 Reserved regionl存放引导记录,存放引导记录,BIOS信息等信息等lFAT 区区lFAT信息列表信息列表(12/16/32 bits)l根目录区根目录区l目录信息列表目录信

42、息列表(32 bytes)l文件和目录区文件和目录区l存放簇信息存放簇信息reservedFAT(p)FAT(b)Root dirFile and directory 46保留区 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

43、 47FAT 区l通常有通常有 FAT(P)(primary)和和FAT(B)(backup)l每一每一个个簇都有一簇都有一个个对应对应的的FAT目目录录Cluster 2Cluster 3Cluster n-1Cluster nFAT数数据据区区reservedFAT(p)FAT(b)Root dirFile and directory 48lFAT 链表链表(FAT16)目目录树49建立文件系统 COS-IICOS-II本身不提供文件系统,针对嵌入式的应本身不提供文件系统,针对嵌入式的应用,为适应大容量数据存储的需要,参考用,为适应大容量数据存储的需要,参考FAT16FAT16的格式,的格

44、式,可以建立起一套简单的文件系统。可以建立起一套简单的文件系统。50文件系统简介 l此文件系统可以保存最多此文件系统可以保存最多512512个文件个文件l文件数据以簇为单位进行存储。文件数据以簇为单位进行存储。l为了便于管理和提高访问速度,文件系统中不提供存为了便于管理和提高访问速度,文件系统中不提供存储子目录的管理。储子目录的管理。l文件名的格式为文件名的格式为8.38.3的格式的格式l文件名称均为大写文件名称均为大写51文件系统的组织形式 52文件的访问l读取文件的时候,首先在文件目录表中找到相应的文件读取文件的时候,首先在文件目录表中找到相应的文件所对应的首簇的号码,读取完成一个簇以后,

45、如果文件所对应的首簇的号码,读取完成一个簇以后,如果文件的长度大于的长度大于16KB16KB(一个簇),就从文件分配表中查找到(一个簇),就从文件分配表中查找到下一个簇的号码,然后继续读取,直到文件分配表中的下一个簇的号码,然后继续读取,直到文件分配表中的下一个簇号码为下一个簇号码为FFFFHFFFFH时为止时为止 53文件系统实现过程 文件相关的文件相关的APIAPI函数函数l文件的打开文件的打开l文件的读取文件的读取l文件的写入文件的写入l文件的关闭文件的关闭l文件的列表文件的列表54文件结构体 文件结构体的定义如下:文件结构体的定义如下:typedef structU8 BufferBL

46、OCK_SIZE;/文件缓冲区文件缓冲区U32 fileblock;/文件当前的簇的位置文件当前的簇的位置U32 filemode;/打开文件的模式打开文件的模式U32 filebufnum;/文件缓冲区中已经读取文件缓冲区中已经读取/写入的字节数写入的字节数U32 fileCurpos;/读写的当前位置读写的当前位置U32 filesize;/文件的大小文件的大小FILE;可见,在可见,在FILE结构中包括了文件的缓冲区和其他的相关信息。结构中包括了文件的缓冲区和其他的相关信息。55文件系统的相关函数文件系统的相关函数l始始化文件系统始始化文件系统 void initOSFile(char

47、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)l实验实验3 文件的操作文件的操作56本节提要本节提要1 13 32 25 54 46 6基于基于 COS-IICOS-II扩展扩展RTOSRTOS图形用户接

48、口设计图形用户接口设计外设及驱动外设及驱动文件系统的设计文件系统的设计系统的消息系统的消息嵌入式嵌入式GUI简介简介57系统消息在多任务操作系统中,各个任务之间,用户应用程在多任务操作系统中,各个任务之间,用户应用程序的各个任务之间以及用户应用程序和系统的各个任务序的各个任务之间以及用户应用程序和系统的各个任务之间的通常是通过消息来传递信息和同步的。之间的通常是通过消息来传递信息和同步的。58消息与任务59本节提要本节提要1 13 32 25 54 46 6基于基于 COS-IICOS-II扩展扩展RTOSRTOS图形用户接口设计图形用户接口设计外设及驱动外设及驱动文件系统的设计文件系统的设计

49、系统的消息系统的消息嵌入式嵌入式GUI简介简介60外设及驱动程序l外设驱动程序可以对系统提供访问外围设备的接口,把外设驱动程序可以对系统提供访问外围设备的接口,把操作系统(软件)和外围设备(硬件)分离开来。操作系统(软件)和外围设备(硬件)分离开来。l当外围设备改变的时候,只需更换相应的驱动程序,不当外围设备改变的时候,只需更换相应的驱动程序,不必修改操作系统的内核以及运行在操作系统中的软件。必修改操作系统的内核以及运行在操作系统中的软件。l本小节中,将建立几种典型外设的驱动程序标准接口。本小节中,将建立几种典型外设的驱动程序标准接口。61串行口串行口符合串行口符合RS-232标准,通讯的最高

50、速度可以达到标准,通讯的最高速度可以达到115200bps。串行口的接口函数如下:。串行口的接口函数如下:lvoid Uart_Init(int Uartnum,int mclk,int baud);lvoid Uart_Printf(char*fmt,.);lchar Uart_Getch(char*Revdata,int Uartnum,int timeout);lvoid Uart_SendByte(int Uartnum,int data);l实验实验4 串行口通信串行口通信62液晶显示驱动程序l液晶屏是内部有控制电路的液晶模块液晶屏是内部有控制电路的液晶模块 l分辨率分辨率320 x

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁