1244_FreeRTOS的钩子函数

69 篇文章 11 订阅
本文介绍了FreeRTOS中的空闲钩子函数和Tick钩子函数,这两个函数在系统运行中的关键作用。空闲钩子函数用于资源回收,而Tick钩子函数则提供了一个硬件定时器功能。此外,还提到了存储分配的钩子函数,对于理解内存管理和任务删除有重要作用。守护任务与定时器服务任务的关系也进行了说明,其启动钩子函数可用于系统初始化。
摘要由CSDN通过智能技术生成

全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.

空闲钩子函数是一个可选功能,如果要使用的话需要配置一个配置参数,同时给出函数的定义。这个空闲钩子函数是重复执行的,这个也容易理解,空闲肯定不是一次性的。如果要使用任务删除的API,需要让这个空闲任务的钩子函数周期性返回,用以支持资源回收。

关于资源回收,是一个之前没了解过的功能点。后面花时间好好了解一下,一般来说感觉这个功能更加贴近于PC端这样的运行环境。

Tick钩子函数,这个是每次tick中断发生之后激活的一个钩子函数。这样,就提供了一个便捷的定时器功能处理的位置。但是,这个功能是从tick中断中执行的,因此执行必须短并且不要调用非FROM_ISR结尾的API。

前面看了软件定时器,但是从之前软件定时器的描述看总觉得这俩并没有什么关系。毕竟这里的定时器没有加上software的限定,因此我觉得这里可能意在说明硬件定时器。

这是两个存储分配相关的钩子函数的介绍,其中第二部分没有介绍,得等到看到后面的相关内容的时候再补充相应的只是。存储的申请部分,如果失败可以用以提示heap是否分配的足够。之前我在使用FreeRTOS的时候,heap的分配究竟该使用多少一直没有弄得很清楚,这次学习中如果调试到这部分内容的时候必须得把所有的信息全都获取到这样能够弄清楚具体的分配机制。

守护任务其实是跟定时器服务任务是同一个任务,这样的话,是不是说定时器的服务任务必须配置使用的时候这个才会有效?看起来,应该有这样的逻辑关系。

这次我们关注的内容还是钩子函数,上面的这个概念只是说明一下这个任务的位置或者概念。这个守护任务启动的钩子函数如果要使用需要配置相应的使能参数为1,同时需要提供相应的函数原型。这个钩子函数一个很好的用途是用于部分功能的初始化,在这个接口中初始化可以调用FreeRTOS的一些API来简化设计。从上面的介绍看,其实这个钩子函数调用的时候调度器其实是已经运行起来了,而且守护任务已经运行了一次了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值