《uCOS嵌入式开发》PPT课件

《uCOS嵌入式开发》PPT课件

ID:37689422

大小:432.60 KB

页数:50页

时间:2019-05-28

《uCOS嵌入式开发》PPT课件_第1页
《uCOS嵌入式开发》PPT课件_第2页
《uCOS嵌入式开发》PPT课件_第3页
《uCOS嵌入式开发》PPT课件_第4页
《uCOS嵌入式开发》PPT课件_第5页
资源描述:

《《uCOS嵌入式开发》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1WhatisuC/OS?u:MicroC:controluC/OS:适合于小的、控制器的操作系统小巧公开源代码,详细的注解可剥夺实时内核可移植性强多任务确定性2TheStoryofuC/OS美国人JeanLabrosse1992年编写的商业软件的昂贵应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等www.uCOS-II.comμCOS不但提供了一个完整的嵌入式实时内核的源代码,而且对这些代码的细节作了详尽的解释,它不仅告诉读者这个实时内核是怎么写的,还解释了为什么要这样写。而商业上的

2、实时操作系统软件不但价格昂贵(一般都在5千到2万美元的价位上),而且其中很多都是所谓黑盒子,即不提供源代码。l源代码的绝大部分是用C语言写的,经过简单的编译,读者就能在PC机上运行,边读书、边实践。由于用汇编语言写的部分只有200行左右,该实时内核可以方便地移植到几乎所有的嵌入式应用类CPU上。移植范例的源代码可以从因特网上下载。l从最老版本的实时内核μCOS,以及后来的μC/OS,到新版本的μC/OS-II,已经有多年的历史。许多行业上都有成功应用该实时源代码.实时内核移植.内核实时内核的实例,这些应用的实践是该内核实用性、无误

3、性的最好证据。345概要内核结构-任务以及调度机制任务间通信uC/OS的移植在PC机上运行uC/OS6任务task典型的一个无限循环。voidmytask(void*pdata){for(;;){dosomething;waiting;dosomething;}}支持64个任务,每个任务一个特定的优先级。优先级越高,数字越小系统占用了两个任务,空闲任务和统计任务。任务优先级每个任务按其重要性被赋予一定的优先级。μC/OS-Ⅱ可以管理多达64个任务,但目前版本的μC/OS-Ⅱ有两个任务已经被系统占用了。作者保留了优先级为0、1、2、

4、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI0这8个任务以被将来使用。OS_LOWEST_PRI0是作为定义的常数在OS_CFG.H文件中用定义常数语句#defineconstant定义的。因此用户可以有多达56个应用任务。必须给每个任务赋以不同的优先级,优先级可以从0到OS_LOWEST_PR10-2。优先级号越低,任务的优先级越高。μC/OS-Ⅱ总是运行进入就绪态的优先级最高的任务。目前版本的μC/OS-Ⅱ中,任务的优先级号就是任务编号(

5、ID)。优先级号(或任务的ID号)也被一些内核服务函数调用,如改变优先级函数OSTaskChangePrio(),以及任务删除函数OSTaskDel()。7任务状态休眠态(dormant):指任务驻留在程序空间中,还没有交给内核管理。把任务交给内核是通过调用OSTaskCreate()或OSTaskCreatExt()实现的。就绪(Ready):当任务一旦建立,这个任务就处于就绪态准备运行。任务可以动态的被另一个程序建立,也可以在系统运行开始之前建立。如果一个任务是被另一个任务建立的,而这个任务的优先级高于建立它的那个任务,则这个

6、刚刚建立的任务将立即得到CPU的控制权。通过调用OSTaskDel()使任务返回到休眠态。就绪态的任务都放在就绪列表中。在任务调度时,指针OSTCBHighRdy指向优先级最高的就绪任务,也就是立刻就要运行的任务。8运行(Running):准备就绪的最高优先级的任务获得CPU的控制权,从而处于运行态。指针OSTCBCur指向正在运行的任务。等待或挂起(Pending):正在运行的任务由于调用延时函数OSTimeDly()或等待事件信号量的来临而将自身挂起,因而处于等待或挂起态。因为等待某事件而被挂起的任务注册在该事件的等待列表中。

7、中断态(Interrupt):正在运行的任务可以被中断,除非是该任务将中断关闭。被中断的任务进入中断服务程序(ISR)。如果中断服务程序使一个更高优先级的任务准备就绪,则中断服务程序结束后,更高优先级的任务开始运行程序。910任务堆栈在µC/OS-Ⅱ中,每个任务都有自己的堆栈空间。为方便使用,在µC/OS-Ⅱ中专门定义了一个OS_STK类型的数据,这样在应用程序中定义任务的堆栈就非常方便。例如:程序8‑5#defineTASK_STK_SIZE200OS_STKTaskStartStk[TASK_STK_SIZE];1112任务的

8、数据结构—任务控制块任务控制块OS_tcb,包括任务堆栈指针,状态,优先级,任务表位置,任务链表指针等。所有的任务控制块分为两条链表,空闲链表和使用链表。OSTCBFreeListTCB0TCB1TCBn新任务TCB(1)空(2)(3)prenex

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

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

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