六、嵌入式系统软件结构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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),还需要相当多的扩展性的工作。
第六讲 基于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),还需要相当多的扩展性的工作。