嵌入式技术实验及设计.ppt
文本预览下载声明
实验二 uC/OS-II的优先级调度 一、实验目的 1、理解任务优先级调度的基本原理 2、掌握uC/OS-II中掌握优先级调度函数 3、掌握嵌入式实时多任务系统中,出现优先级反转的原因。 二 、实验内容及要求 设计3个优先级不同的任务Task1,Task2,Task3。其分别为20、25、30,通过访问一资源,实现优先级反转 。 要求: (1)资源必须被互斥使用 (2)程序的运行结果必须跟优先级反转的理论分析结果一致 (3)出现反转效果后,修改程序,避免出现优先级反转,并给出理论和实验结果的对比分析。 一、实验目的 掌握uC/OS-II的进程的同步和通信的机制和方法。 二 、实验内容及要求 编程实现哲学家就餐问题。问题的描述: 有5个哲学家,其生活方式是交替的进行思考和吃进餐。他们共用一张圆桌,分别坐在周围的5张椅子上,在圆桌上有五个碗和五支筷子,平时一个哲学家进行思考,饥饿时便试图取其左、右靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐毕,放下筷子继续思考 要求: (1)键盘上的1-5数字键分别代表5个哲学家申请吃饭 (2)要求大家列出所有可能出现的状况,而且屏幕上必须将最新的状态显示出来,如: (1)哲学家X正在进餐 (2)哲学家X申请进餐未果 (3)哲学家X正在思考…….. 注:申请进餐未果维持显示5s后改为显示正在思考 (3)每位哲学家的进餐时间为1分钟,进餐次数不做限定 哲学家1正在进餐 倒计时:52s 哲学家2正在思考 哲学家3正在进餐 倒计时:32s 哲学家4申请进餐未果 哲学家5正在思考 一、实验目的 掌握uC/OS-II的中断和时钟的使用。 二 、实验内容及要求 (1)设计程序,要求通过此程序能够得到精确的时钟节拍频率,并显示出来。在此基础上,实现0.1s精确定时。 (2)设计有3个任务(TA,TB,TC)的应用程序,编写时钟节拍钩子函数OSTimeTickHook (), 实现时钟节拍中断10000次时,触发TA任务打印字符串“ABC”,否则,在时钟节拍中断不到10000次时,TA和TB任务交替运行,打印出ABABAB。注意TA和TB每次调度时,分别打印出A和B。 一、实验目的 掌握uC/OS-II的内存分配和回收功能 二 、实验内容及要求 设计一个有3个任务(TA,TB,TC)的应用程序,在应用程序中创建动态内存区(包含4个内存块,长度是4个字节),TA和TB任务完成数学运算(加、减等)工作,并将运算后的结果存入TC任务申请的内存块中,存入后,TC任务分别向TA、TB任务发出信号,将该运算结果传给TA、TB任务,TA和TB任务打印出该运算结果。 要求: (1)使用信号量 (2)给出TA、TB、TC任务在信号量不同时的结果。 一、实验目的 掌握uC/OS-II中消息队列机制的基本原理和使用方法 熟悉uC/OS-II的消息队列创建、发送及请求函数 二 、实验内容及要求 设计一个有3个任务(TA,TB,TC)的应用程序,实现TA创建TB和TC任务,TB任务向TC任务发送消息,TC任务收到消息后并打印出来 要求: 使用信号量,TB发送一条,TC打印一条,打印完毕后,才能发送下一条。TB发送10条后。TA任务挂起TB和TC任务。 * * 实验一 任务的创建与多任务设计 一、实验目的 1、理解任务管理的基本原理 2、掌握uC/OS-II中多任务设计和调度的基本方法 二 、实验内容及要求 1、编写一个有3个任务的应用程序,每个任务均会在显示器上显 示一个字符,并让3个任务具有不同的等待时间,观察应用程序运 行中任务被调度的情况。 2、编写一个有2个任务的应用程序,每个任务均会在显示器上显 示一个字符,当调度器进行5次调度之后,这些显示的字符会在显 示器上构成一个字符串“Hello World”。 3、设计Task1, Task2两个任务,Task1不断地挂起自己,再被任 务Task2解挂,解挂时,输出Task1被Task2解挂的信息,两个任务 不断地切换执行。观察两个任务的调度情况,并给出解释和说明。 实验一 任务的创建与多任务设计 实验二 uC/OS-II的优先级调度 实验三 uC/OS-II进程的同步和通信 实验三 uC/OS-II进程的同步和通信 实验三 uC/OS-II进程的同步和通信 实现效果举例: 实验四 uC/OS-II的中断和定时器 实验四 uC/OS-II的中断和定时器 实验五 uC/OS-II的内存管理 实验五 uC/OS-II的内存管理 实验五 uC/OS-II的的消息队列 实验五 uC/OS-I
显示全部