1 / 37
文档名称:

嵌入式系统课程设计-基于μCOS-II的电子词典设计与实现.doc

格式:doc   大小:168KB   页数:37页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统课程设计-基于μCOS-II的电子词典设计与实现.doc

上传人:bai1968104 2021/1/19 文件大小:168 KB

下载得到文件列表

嵌入式系统课程设计-基于μCOS-II的电子词典设计与实现.doc

文档介绍

文档介绍:目录
1系统定义与需求分析 3
3
3
任务的优先级分配 4
任务间同步与通信的规则 4
系统配置 4
2详细设计 6
系统移植 6
6
7
最小系统的运行调试 10
保证编译正确,系统启动正确 11
()··· 11
调试OSStartHighRdy() 12
调试OSCtxSw() 12
调节时钟节拍 13
调试OSIntCtxSw()和OsTickISR() 14
3 驱动程序的设计与调试 15
基于μC/OS-II的中断设计 15
基于μC/OS-II的设备驱动程序设计 15
基于μC/OS-II的设备驱动程序测试 16
4 系统集成与功能测试 17
初始化任务 17
键盘处理任务 18
触摸屏处理任务 23
系统集成测试 35
5参考文献 38
1系统定义与需求分析

电子词典是一个典型的由外部输入驱动的开环系统,由键盘或触摸屏输入信息,处理器根据输入的信息在LCD显示屏上显示相应的内容,显示完成之后系统进入空闲状态等待下一次输入。根据这一处理过程,讲电子词典应用分为3个主任务——主执行任务,键盘任务,触摸屏任务。系统的总体设计如图1-1所示。
Main()函数
初始化任务
键盘任务
主执行任务
触摸屏任务
光标任务
键盘ISR
触摸屏ISR
时钟节拍
图1-1
μC/OS-II系统总是从main()函数开始,通常在main()函数中指创建一个用户任务,即初始化任务,这样设计有利于系统管理,而且结构也会更清晰。在初始化任务中启动时钟节拍,创建各个任务以及要用到的信号量或消息。

在电子词典设计中,键盘任务和触摸屏任务负责采集输入信号,并将其转换为键值告知主处理任务。主处理任务负责根据读到的键值启动相应功能。而光标任务则是用来展现时钟节拍,让目标板上的LED灯以指定的时间间隔进行闪烁。
任务的优先级分配
系统中的优先级分配按照最经常发生的优先级最高这一原则进行,具体分配如下:
优先级0~3:分配优先级时将最高的4个优先级留给系统用户;
优先级5:主处理任务优先级最高为5级;
优先级6:键盘的使用概率大于触摸屏,其优先级定为6级;
优先级7:触摸屏的优先级为7级;
优先级8:光标每隔一个固定的时间闪烁一次,这个时间可以由用户自定义,优先级为8级;
最低优先级-1:系统统计任务(可选);
最低优先级:系统空闲任务。
任务间同步与通信的规则
需要传递消息的任务是键盘与主执行任务。触摸屏与主执行任务之间传递的都是按键值,且键值不用区分来源,所以使用一个消息邮箱即可。由于任务间不存在共享互斥资源的问题,所以不需要进行任务间的同步。
键盘与触摸屏都是由外界时间触发的,可以使用中断机制设计驱动程序。在驱动程序的设计中,遵循中断中处理的时间尽量短,讲更多的事情交给任务区完成这一原则。
系统配置
μC/OS-II并不提供列斯Linux那样的命令行形式的配置方法,而是通过对配置的内容进行条件编译来实现的。这是由于μC/OS-II提供开放的源代码,用户可以直接使用#define constants语句来更改内核的很多参数。系统中提供了以下配置项:
事件标志:包括使能或禁止事件标志及其相关功能,通常以OS_FLAG_为前缀;
消息邮箱:包括使能或禁止消息邮箱及其相关功能,通常以OS_MBOX_为前缀;
内存管理:包括使能或禁止内存管理及其相关功能,目前版本中只有两个可配置项OS_MEM_EN和OS_MEM_QUERY_EN;
互斥型信号量:包括使能或禁止互斥型信号量及其相关功能,通常以OS_MUTEX_为前缀;
消息队列:包括使能或禁止消息队列及其相关功能,通常以OS_Q_为前缀;
信号量:包括使能或禁止信号量及其相关功能,通常以OS_SEM_为前缀;
任务管理:系统提供两个任务创建函数,在配置文件中至少要对其中一个进行使能,另外还包括一些对任务其他相关属性的配置,通常以OS_TASK_为前缀;
时钟管理:μC/OS-II中用户可以使用操作系统的时钟作为演示的基准,这里包括使能或禁止使用系统时钟及其相关功能,通常以OS_TIME_为前缀;