第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt

第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt

ID:58697193

大小:4.93 MB

页数:68页

时间:2020-10-04

第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt_第1页
第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt_第2页
第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt_第3页
第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt_第4页
第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt_第5页
资源描述:

《第8讲(嵌入式实时操作系统ucosII程序设计①)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、uC/OS-Ⅱ是一个免费的源代码公开的实时嵌入式内核,它提供了实时系统所需的基本功能。其包含全部功能的核心部分代码只占用8.3K字节,而且由于uC/OS-Ⅱ是可裁剪的,所以用户系统中实际的代码最少可达2.7K字节,可谓短小精悍。uC/OS-Ⅱ不仅使用户得到廉价的解决方案,而且由于uC/OS-Ⅱ的开源特性,用户还可以针对自己的硬件优化代码,以获得更好的性能。uC/OS-Ⅱ实际上是一个实时操作系统内核,只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。没有提供输入输出管理、文件系统、网络之类的额外服务。但是由于uC/OS-Ⅱ的可移植性和开源性,用户可以自己添加所需的

2、各种服务。目前,已经出现了第三方为uC/OS-Ⅱ开发的文件系统、TCP/IP协议栈、用户显示接口等。uC/OS-Ⅱ的任务调度是按抢占式多任务系统设计的,即它总是执行处于就绪条件下优先级最高的任务。为了简化系统的设计,uC/OS-Ⅱ规定所有任务的优先级必须不同,任务的优先级同时也唯一地标识了该任务。即使两个任务的重要性是相同的,它们也必须有优先级上的差异,这也就意味着高优先级的任务在处理完成后必须进入等待或挂起状态,否则低优先级的任务永远也不可能执行。系统通过两种方法进行任务调度:一是时钟节拍或其它硬件中断到来后,系统会调用函数OSIntCtxSw()执行切换功能;二是任务主动进入挂起或等待

3、状态,这时系统通过发软中断命令或依靠处理器执行陷阱指令来完成任务切换,中断服务例程或陷阱处理程序的向量地址必须指向函数OSCtxSw()。uC/OS-Ⅱ最多可以管理64个任务,这些任务通常都是一个无限循环的函数。在目前的版本中,作者保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO的任务,所以用户可以同时拥有56个任务。uC/OS-Ⅱ提供了任务管理的各种函数调用,包括创建任务、删除任务、改变任务的优先级、挂起和恢复任务等。系统初始化时会自动产生两个任务:一是空闲任务OSTaskId

4、le(),它的优先级最低为OS_LOWEST_PRIO,该任务只是不停地给一个32位的整型变量加一;另一个是统计任务OSTaskStat(),它的优先级为OS_LOWEST_PRIO-1,该任务每秒运行一次,负责计算当前CPU的利用率。uC/OS-Ⅱ要求用户提供一个称为时钟节拍的定时中断,该中断每秒发生10至100次,时钟节拍的实际频率是由用户控制的。任务申请延时或超时控制的计时基准就是该时钟节拍。该时钟节拍同时还是任务调度的时间基准。uC/OS-Ⅱ提供了与时钟节拍相关的系统服务,允许任务延时一定数量的时钟节拍或按时、分、秒、毫秒进行延时。uC/OS-Ⅱ的大部分代码是用ANSIC写成的,只

5、有与处理器硬件相关的一部分代码用汇编语言编写。所以uC/OS-Ⅱ的移植性很强,可以在绝大多数8位、16位、32位微处理器、数字信号处理器上运行。uC/OS-Ⅱ的移植并不复杂,只要编写4个汇编语言的函数、6个C函数再定义3个宏和1个常量,这些宏和函数都非常简单,其中的5个C函数甚至只需声明不必包含代码。用户可以根据需要自己编写移植代码UCOS-II的体系结构:1、内核代码A、OS_Core.c:os内核文件,提供一些内核最基本的服务B、OS_Task.c:任务管理文件,提供建立任务服务C、OS_Timer.c:时间管理文件,提供系统时间服务D、OS_Sem.c:信号量文件,提供建立信号量、等

6、待和发生信号量服务。2、移植代码A、OS_CPU_C.c:移植代码C语言部分B、OS_CPU_A.S:移植代码汇编部分C、OS_CPU.h:移植代码头文件D、irq.inc:移植代码与芯片无关的中断处理接口3、配置头文件A、INCLUDES.h:内核需要的头文件,一般不需要修改B、OS_CFG.h:内核配置头文件,需要根据程序来修改。定义任务控制块数目、任务数等4、配置头文件A、INCLUDES.h:内核需要的头文件,一般不需要修改B、OS_CFG.h:内核配置头文件,需要根据程序来修改。定义任务控制块数目、任务数等5、函数介绍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。