UCOSIII 中的钩子函数、中断服务函数、 临界区和延时函数

一、钩子函数

   功能: 扩展任务功能,被其他任务调用  算是消息机制

  •  1、OSIdleTaskHook(),空闲任务调用这个函数,可以用来让CPU进入低功耗模式
  •     2、OSInitHook(), 系统初始化函数OSInit()调用此函数。
  •     3、OSStatTaskHook(),统计任务每秒中都会调用这个函数,此函数允许你向统计任务中添加自己的应用函数。
  •     4、OSTaskCreateHook(),任务创建的钩子函数。
  •     5、OSTaskDelHook(), 任务删除的钩子函数。
  •     6、OSTaskReturnHook(),任务意外返回时调用的钩子函数,比如删除某个任务
  •     7、OSTaskSwHook(), 任务切换时候调用的钩子函数。
  •     8、OSTimeTickHook(),滴答定时器调用的钩子函数。

    流程:  使能宏,OS_CFG_APP_HOOKS_EN置1


二、中断服务函数

  功能:应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要求的任务的过程叫做中断。

  •     1、进入中断: OSIntEnter();
  •     2、退出中断: OSIntExit(); 中断级任务调度器

三、临界区

功能: 保护代码运行,不能打断,例如初始化.

  • 1、保护方式:  关中断/调度器上锁
  • 2、宏:OS_CFG_ISR_POST_DEFERRED_EN
  • 3、定义为1: 调度器上锁, (延迟发布)
  • 4、定义为0: 关中断, (直接发布)
  • 5、对比: 
  •              直接发布下, 通过关中断保护临界段代码,
  •              延迟发布下, 通过锁定任务调度保护临界段代码
  •             延迟发布下, UCOS iii访问中断队列时,仍需关闭中断,但时间短.

四、延时函数

功能:任务延迟操作

  • 1、OSTimeDly(dly,opt,err);   //dly:时间长度,单位时间节拍.opt:延时选项,
  • 2、OSTimeDlyHMSM(h,m,s,m,opt,err);   //小时,分钟,秒,毫秒,选项.
  • 3、恢复因为延迟函数进入等待态的任务
  • 4、OSTimeDlyResume(p_tcb,*p_err);   //p_tcb:需要恢复的任务控制块,p_err:错误码
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值