六、嵌入式系统软件结构设计优质PPT.ppt
《六、嵌入式系统软件结构设计优质PPT.ppt》由会员分享,可在线阅读,更多相关《六、嵌入式系统软件结构设计优质PPT.ppt(109页珍藏版)》请在冰豆网上搜索。
汉字库的实现方法;
l基本绘图函数的实现;
基本绘图函数的实现;
l其它实用其它实用APIAPI函数;
函数;
6基于COS-II扩展RTOS的体系结构71系统外围设备的硬件部分l系统外围设备的硬件部分包括:
液晶显示屏(系统外围设备的硬件部分包括:
液晶显示屏(LCDLCD)、)、USBUSB通信模通信模块、键盘、海量块、键盘、海量FlashFlash存储器、系统的时钟和日历。
外围设备的硬存储器、系统的时钟和日历。
外围设备的硬件部分是保证系统实现指定任务的最底层的部件。
件部分是保证系统实现指定任务的最底层的部件。
22、驱动程序模块l驱动程序是连接底层的硬件和上层的驱动程序是连接底层的硬件和上层的APIAPI函数的纽带,有了驱动程函数的纽带,有了驱动程序模块,就可以把操作系统的序模块,就可以把操作系统的APIAPI函数和底层的硬件分离开来。
硬函数和底层的硬件分离开来。
硬件的改变、删除或者添加,只需要随之改变、删除或者添加提供件的改变、删除或者添加,只需要随之改变、删除或者添加提供给操作系统的相应的驱动程序就可以了。
而不会影响到给操作系统的相应的驱动程序就可以了。
而不会影响到APIAPI函数的函数的功能,更不会影响到用户的应用程序。
功能,更不会影响到用户的应用程序。
83操作系统的API函数l在操作系统中提供标准的应用程序接口(在操作系统中提供标准的应用程序接口(APIAPI)函数,可以加速用)函数,可以加速用户应用程序的开发,统一应用程序的标准,同时也给操作系统版户应用程序的开发,统一应用程序的标准,同时也给操作系统版本的升级带来了方便。
在本的升级带来了方便。
在APIAPI函数中,提供了大量的常用模块,可函数中,提供了大量的常用模块,可以大大简化用户应用程序的编写。
以大大简化用户应用程序的编写。
4实时操作系统的多任务管理lC/OS-C/OS-作为操作系统的内核,主要的任务就是完成多任务之间作为操作系统的内核,主要的任务就是完成多任务之间的调度和同步。
的调度和同步。
5系统的消息队列l这里所说的系统的消息队列是以这里所说的系统的消息队列是以C/OS-C/OS-的消息队列派生出来的的消息队列派生出来的系统消息传递机制,用来实现系统的各个任务之间、用户应用程系统消息传递机制,用来实现系统的各个任务之间、用户应用程序的各个任务之间以及用户应用程序和系统的各个任务之间的通序的各个任务之间以及用户应用程序和系统的各个任务之间的通信。
信。
96系统任务l系统任务主要包括液晶显示屏(系统任务主要包括液晶显示屏(LCDLCD)的刷新任务、系统键盘扫描)的刷新任务、系统键盘扫描任务。
这两个任务是操作系统的基本任务,随着操作系统的启动任务。
这两个任务是操作系统的基本任务,随着操作系统的启动而运行。
而运行。
7用户应用程序l用户的应用程序建立在系统的主任务(用户的应用程序建立在系统的主任务(Main_TaskMain_Task)基础之上。
用)基础之上。
用户应用程序主要通过调用系统的户应用程序主要通过调用系统的APIAPI函数对系统进行操作,完成用函数对系统进行操作,完成用户的要求。
在用户的应用程序中也可以创建用户自己的任务。
任户的要求。
任务之间的协调主要依赖于系统的消息队列。
务之间的协调主要依赖于系统的消息队列。
10用户应用程序的建立l在嵌入式硬件平台的基础上,有了实时多任务操作系统来管理在嵌入式硬件平台的基础上,有了实时多任务操作系统来管理硬件资源、进行任务协调,在操作系统平台上使用操作系统所硬件资源、进行任务协调,在操作系统平台上使用操作系统所提供的提供的GUIGUI(图形用户接口)及(图形用户接口)及APIAPI(应用程序接口)函数来编(应用程序接口)函数来编制自己相应的用户应用程序了。
制自己相应的用户应用程序了。
11嵌入式系统上运行的应用程序的结构l以以ARM7TDMIARM7TDMI结构的处理器为例,它不带有结构的处理器为例,它不带有MMUMMU(内存管(内存管理单元)。
所以,操作系统和应用程序是编译在一起运理单元)。
所以,操作系统和应用程序是编译在一起运行的。
行的。
12系统的启动和运行过程嵌嵌入入式式控控制制器器硬件初始化硬件初始化操操作作系系统统初初始始化化LCDLCD初始化初始化装载字库装载字库调调用用系系统统配配置置文件文件创建任务创建任务初初始始化化用用户户界界面、时钟面、时钟启启动动多多任任务务调调度度主主任任务务用用户户程序程序消消息息处理处理任任务务11任任务务nn13本节提要本节提要113322554466基于基于COS-IICOS-II扩展扩展RTOSRTOS图形用户接口设计图形用户接口设计外设及驱动外设及驱动文件系统的设计文件系统的设计系统的消息系统的消息嵌入式嵌入式GUI简介简介14图形用户接口函数基于基于3232位嵌入式处理器的硬件平台,有着较高的运算位嵌入式处理器的硬件平台,有着较高的运算速度和大容量的内存。
为人机交互建立速度和大容量的内存。
为人机交互建立GUIGUI无疑为最无疑为最首选的方式。
本小节将建立针对常用的图形界面的应首选的方式。
本小节将建立针对常用的图形界面的应用建立相应的用建立相应的APIAPI函数。
主要包括:
函数。
l基本绘图函数。
基本绘图函数。
l基于基于UnicodeUnicode的汉字字库的汉字字库l典型的控件典型的控件15绘图API函数l绘图是操作系统的图形界面的基础,本系统为绘图是操作系统的图形界面的基础,本系统为图形界面提供了丰富的绘图函数。
图形界面提供了丰富的绘图函数。
l在多任务操作系统中,绘图设备上下文(在多任务操作系统中,绘图设备上下文(DCDC)是绘图的关键。
绘图设备上下文(是绘图的关键。
绘图设备上下文(DCDC)保存了)保存了每一个绘图对象的相关参数(比如:
绘图画笔每一个绘图对象的相关参数(比如:
绘图画笔的宽度、绘图的原点坐标等)。
在多任务操作的宽度、绘图的原点坐标等)。
在多任务操作系统中,通过绘图设备上下文(系统中,通过绘图设备上下文(DCDC)来绘图,)来绘图,可以保证在不同的任务绘图的参数是相互独立可以保证在不同的任务绘图的参数是相互独立的,不会互相影响。
的,不会互相影响。
16DC的定义typedefstructintDrawPointx;
intDrawPointy;
/绘图所使用的坐标点绘图所使用的坐标点intPenWidth;
/画笔宽度画笔宽度U32PenMode;
/画笔模式画笔模式U32PenColor;
/画笔的颜色画笔的颜色intDrawOrgx;
/绘图的坐标原点位置绘图的坐标原点位置intDrawOrgy;
intDrawRangex;
/绘图的区域范围绘图的区域范围intDrawRangey;
U8bUpdataBuffer;
/是否更新后台缓冲区是否更新后台缓冲区U32Fontcolor;
/字符颜色字符颜色DC,*PDC;
17DC的初始化l在绘图设备上下文(在绘图设备上下文(DCDC)中保存了每一个绘图对)中保存了每一个绘图对象的相关参数。
在系统启动的时候,通过调用象的相关参数。
在系统启动的时候,通过调用initOSDCinitOSDC()()函数初始化绘图设备上下文(函数初始化绘图设备上下文(DCDC),为以后创),为以后创建绘图设备上下文(建绘图设备上下文(DCDC)分配存储空间。
)分配存储空间。
18DC的使用19典型的绘图函数(a)lvoidvoidinitOSDCinitOSDC();
();
lPDCPDCCreateDCCreateDC();
lvoidvoidDestoryDC(PDCDestoryDC(PDCpdcpdc);
);
lvoidvoidMoveTo(PDCMoveTo(PDCpdcpdc,intintx,x,intinty);
y);
lvoidvoidLineTo(PDCLineTo(PDCpdcpdc,intintx,x,intinty);
lvoidvoidDrawRectFrame(PDCDrawRectFrame(PDCpdcpdc,intintleft,intleft,inttop,top,intintright,right,intintbottom);
bottom);
lvoidvoidCircle(PDCCircle(PDCpdcpdc,intintx0,x0,intinty0,y0,intintr);
r);
20典型的绘图函数(b)lvoidvoidSetDrawOrg(PDCSetDrawOrg(PDCpdcpdc,intintx,intx,inty,y,intint*oldxoldx,intint*oldyoldy)l设置绘图设备上下文(设置绘图设备上下文(DCDC)的原点)的原点21典型的绘图函数(c)lvoidvoidSetDrawRange(PDCSetDrawRange(PDCpdcpdc,intintx,intx,inty,y,intint*oldxoldx,intint*oldyoldy)l设置绘图设备上下文(设置绘图设备上下文(DCDC)的绘图范围)的绘图范围lx,yx,y:
设定的横向、纵向绘图的范围,如果:
设定的横向、纵向绘图的范围,如果xx(或者(或者yy)为为11,则表示,则表示xx(或者(或者yy)方向的比例随着)方向的比例随着yy(或者(或者xx)方)方向的范围按比例缩放。
如果参数为向的范围按比例缩放。
如果参数为-1-1,表示方向相反,表示方向相反22DC创建PDCpdc;
pdc=CreateDC();
23DC设置举例lPDCPDCpdcpdc;
lpdcpdc=CreateDCCreateDC();
lSetDrawOrg(pdc,170,50,&
oldx,&
oldy);
SetDrawOrg(pdc,170,50,&
lSetDrawRange(pdc,800,-1,&
oldxrange,&
oldyrange);
SetDrawRange(pdc,800,-1,&
l上面的程序代码创建一个绘图设备上下文(上面的程序代码创建一个绘图设备上下文(DCDC),将原),将原点坐标设定在液晶屏设备坐标的点坐标设定在液晶屏设备坐标的(170,50)(170,50),并把绘图的,并把绘图的逻辑坐标的水平值