FreeRTOS学习笔记之钩子

参考链接:
lipeionline
strongerHuang
天山脚下

最近在看一份公司代码里面用到了很多HOOK函数(钩子函数),就想研究一下RTOS中钩子函数的含义及用途。


钩子与回调:

  • 钩子实际上是一个处理消息的程序段,通过系统的调用,把它挂入系统。每当特定的消息发出,在没有到达目的的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
  • 回调函数其实是调用者将回调函数的指针传递给了调用函数,当调用函数执行完毕后,通过函数指针来调用回调函数。

钩子函数是操作系统中都会具备的功能,需要使用就自己编写函数中的具体内容,如果不需要就不用管它**


FreeRTOS中的钩子:

FreeRTOS中的Hook函数也可以在"FreeRTOSConfig.h"中进行裁剪:

#define configUSE_IDLE_HOOK        0  
*空闲任务钩子函数
*由于RTOS中每个时刻都必须有任务在运行所以空闲任务函数不可堵塞和挂起
*(它本身优先级最低所有不悔和*其他任务冲突)


#define configUSE_IDLE_HOOK        0  
*时间片钩子函数,xTaskIncremenTick()会调用此钩子函数。
*此钩子函数最终会被节拍中断服务函数调用,
*对于STM32来说就是滴答定时器中断服务函数。

#define configUSE_MALLOC_FAILED_HOOK   0
*内存申请失败钩子函数,
*当使用函数pvPortMalloc()申请内存失败的时候就会调用此钩子函数。

#define configUSE_DAEMON_TASK_STARTUP_HOOK
*守护(Daemon)任务启动钩子函数,守护任务也就是定时器服务任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值