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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统
第六讲 基于C/OS-Ⅱ的软件设计
1
本节提要
1 基于COS-II扩展RTOS 2 图形用户接口设计 3 文件系统的设计 4 系统的消息 5 外设及驱动
6 嵌入式GUI简介
2
基于COS-II扩展RTOS
将COS-II移植到自己的硬件平台以后,接下来的工 作就是对操作系统本身的扩充。
int DrawRangex; //绘图的区域范围
int DrawRangey;
U8 bUpdataBuffer; //是否更新后台缓冲区
U32 Fontcolor; //字符颜色
}DC,*PDC;
16
DC的初始化
在绘图设备上下文(DC)中保存了每一个绘图对 象的相关参数。在系统启动的时候,通过调用 initOSDC()函数初始化绘图设备上下文(DC), 为以后创建绘图设备上下文(DC)分配存储空间 。
3.操作系统的API函数
在操作系统中提供标准的应用程序接口(API)函数,可以加速用 户应用程序的开发,统一应用程序的标准,同时也给操作系统版 本的升级带来了方便。在API函数中,提供了大量的常用模块,可 以大大简化用户应用程序的编写。
4.实时操作系统的多任务管理
C/OS-Ⅱ作为操作系统的内核,主要的任务就是完成多任务之间 的调度和同步。
17
DC的使用
创建DC CreatDC
设置DC Set…
利用DC绘图
5.系统的消息队列
这里所说的系统的消息队列是以C/OS-Ⅱ的消息队列派生出来的 系统消息传递机制,用来实现系统的各个任务之间、用户应用程 序的各个任务之间以及用户应用程序和系统的各个任务之间的通 信。
8
6.系统任务
系统任务主要包括液晶显示屏(LCD)的刷新任务、系统键盘扫描 任务。这两个任务是操作系统的基本任务,随着操作系统的启动 而运行。
消息 队列
LCD刷新 系统任务
任务调 度模块
用户任务n
用户任务2 用户任务1
动态内 基于uCOS-II 存管理 的RTOS内核
6
1.系统外围设备的硬件部分
系统外围设备的硬件部分包括:液晶显示屏(LCD)、USB通信模 块、键盘、海量Flash存储器、系统的时钟和日历。外围设备的硬 件部分是保证系统实现指定任务的最底层的部件。

务பைடு நூலகம்


1
n
用户 程序
……
调用系统配置 文件
消息 处理
12
本节提要
1 基于COS-II扩展RTOS 2 图形用户接口设计 3 文件系统的设计 4 系统的消息 5 外设及驱动
6 嵌入式GUI简介
13
图形用户接口函数
基于32位嵌入式处理器的硬件平台,有着较高的运 算速度和大容量的内存。为人机交互建立GUI无疑为 最首选的方式。本小节将建立针对常用的图形界面的 应用建立相应的API函数。主要包括: 基本绘图函数。 基于Unicode的汉字字库 典型的控件
7.用户应用程序
用户的应用程序建立在系统的主任务(Main_Task)基础之上。用 户应用程序主要通过调用系统的API函数对系统进行操作,完成用 户的要求。在用户的应用程序中也可以创建用户自己的任务。任 务之间的协调主要依赖于系统的消息队列。
9
用户应用程序的建立
在嵌入式硬件平台的基础上,有了实时多任务操作系统来管理 硬件资源、进行任务协调,在操作系统平台上使用操作系统所 提供的GUI(图形用户接口)及API(应用程序接口)函数来编 制自己相应的用户应用程序了。
文件管理函数 File.h
双向链表函数 List.h
系统控件函数 Control.h
键盘扫描
系统消息
系统 消息队列 OSMessage.h
主任务
信号量
驱动 程序 drv.h LCD240.h
USB.h
Flash.h
Keyboard16.h
Rtc.h


LCD
USB
键盘
海量 存储器
时钟 日历
信号量
邮箱
4
具体的扩展工作
建立文件系统; 外设及驱动程序的实现; 基于Unicode汉字库的实现方法; 基本绘图函数的实现; 其它实用API函数;
5
基于COS-II扩展RTOS的体系结构
用户应用程序
用户界面
任务之间 的通讯
API 函数
绘图函数 Display.h
后台 缓冲区
文件读写函数 OSFile.h
10
嵌入式系统上运 行的应用程序的结构
以ARM7TDMI结构的处理器为例,它不带有MMU(内存管 理单元)。所以,操作系统和应用程序是编译在一起运 行的。
11
系统的启动和运行过程
嵌入式控制器 硬件初始化 操作系统初始 化
LCD初始化
装载字库
启动多任务调 度
初始化用户界 面、时钟
创建任务
主任 任
15
DC的定义
typedef struct{
int DrawPointx;
int DrawPointy; //绘图所使用的坐标点
int PenWidth;
//画笔宽度
U32 PenMode; //画笔模式
U32 PenColor; //画笔的颜色
int DrawOrgx; //绘图的坐标原点位置
int DrawOrgy;
14
绘图API函数
绘图是操作系统的图形界面的基础,本系统为 图形界面提供了丰富的绘图函数。
在多任务操作系统中,绘图设备上下文(DC) 是绘图的关键。绘图设备上下文(DC)保存了 每一个绘图对象的相关参数(比如:绘图画笔 的宽度、绘图的原点坐标等)。在多任务操作 系统中,通过绘图设备上下文(DC)来绘图, 可以保证在不同的任务绘图的参数是相互独立 的,不会互相影响。
2、驱动程序模块
驱动程序是连接底层的硬件和上层的API函数的纽带,有了驱动程 序模块,就可以把操作系统的API函数和底层的硬件分离开来。硬 件的改变、删除或者添加,只需要随之改变、删除或者添加提供 给操作系统的相应的驱动程序就可以了。而不会影响到API函数的 功能,更不会影响到用户的应用程序。
7
介绍如何对COS-II进行必要的扩展,建立一个简单 实用的实时操作系统(RTOS)
3
为什么要扩展uCOS-II
COS-II仅仅一个实时多任务的内核,移植了COS-II 以后,离实际的应用还是有一段距离的。要想实现一 个相对完整、实用的嵌入式的实时多任务操作系统( RTOS),还需要相当多的扩展性的工作。
相关文档
最新文档