手把手教你学UCOS—UCOSIII中断和时间管理_第1页
手把手教你学UCOS—UCOSIII中断和时间管理_第2页
手把手教你学UCOS—UCOSIII中断和时间管理_第3页
手把手教你学UCOS—UCOSIII中断和时间管理_第4页
手把手教你学UCOS—UCOSIII中断和时间管理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 n UCOSIII中断和时间管理 STM32F1xx开发板(正点原子) STM32F4xx开发板(正点原子)适用平台适用平台目录目录 UCOSIII中断中断1 UCOSIII临界段代码保护临界段代码保护2 UCOSIII时间管理时间管理3UCOSIII中断和时间管理中断和时间管理n 参考资料:参考资料:l 战舰战舰/精英精英/Mini STM32/STM32F4开发板开发板 STM32F4 UCOS开发手册开发手册-第八章第八章 UCOSIII中断和时间管理中断和时间管理 STM32F1 UCOS开发手册开发手册-第八章第八章 UCOSIII中断和时间管理中断和时间管理1、UCOSIII中断

2、管理中断管理 中断:应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要求的任务的过程叫做中断。 我们学习的重点就是-如何在UCOSIII下编写中断服务函数!1.1、UCOSIII中断:void USART1_IRQHandler(void) OSIntEnter(); /中断服务程序 OSIntExit(); 1、UCOSIII中断管理中断管理1.2、进入和退出中断服务函数、进入和退出中断服务函数:void OSIntEnter (void) if (OSRunning != OS_STATE_OS_RUNNING) return if (OSIntNestingCtr = (OS_

3、NESTING_CTR)250u) return; OSIntNestingCtr+; OSIntNestingCtr来记录中断嵌套次数,UCOSIII最多支持250级的中断嵌套。退出中断服务函数时要调用函数OSIntExit()。进入中断服务函数以后使用函数OSIntEnter()2、UCOSIII临界段代码保护临界段代码保护 临界段代码也叫做临界区,是指那些必须完整连续运行,不可被打断的代码段。当访问这些临界段代码的时候需要对这些临界段代码进行保护。 当宏OS_CFG_ISR_POST_DEFERRED_EN为0时,UCOSIII使用关中断的方式来保护临界段代码,当设置为1的时候就会采用给

4、调度器上锁的方式来保护临界段代码。 UCOSIII定义了一个进入临界段代码的宏:OS_CRITICAL_ENTER(),定义了两个退出临界段代码的宏:OS_CRITICAL_EXIT和OS_CRITICAL_EXIT_NO_SCHED()。3、UCOSIII时间管理时间管理 UCOSIII中的任务是一个无限循环并且还是一个抢占式内核,为了使高优先级的任务不至于独占CPU,可以给其他优先级较低任务获取CPU使用权的机会,UCOSIII中除空闲任务外的所有任务必须在合适的位置调用系统提供的延时函数,让当前的任务暂停运行一段时间并进行一个任务切换。3.1、任务延时、任务延时:延时函数有两种,OSTimeDly()和OSTimeDlyHMSM()。 OSTimeDly()函数有三种工作模式:相对模式、周期模式和绝对模式。 OSTimeDlyHMSM()函数仅在相对模式下工作。3、UCOSIII时间管理时间管理 延时任务任务可通过在其他任务中调用函数OSTimeDlyResume()取消延时而进入就绪状态,此函数最后会引发一次任务调度。3.2、取消任务的延时、取消任务的延时:3.3、获取和设置系统时间、获取和设置系统时间: UCOSIII定义了一个CPU_INT32U类型的全局变量OSTickCtr来记录系统时钟节拍数,在调用OSInit()时被初始化为0,以后每发生1个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论