RTOS 钩子函数
1、空闲任务钩子函数
宏开关 configUSE_IDLE_HOOK 配置1
void vApplicationIdleHook( void )
钩子函数中不能调用任何会导致任务阻塞的API
2、节拍中断钩子函数
宏开关 configUSE_TICK_HOOK 配置1
void vApplicationTickHook( void )
这个钩子函数必须很短且占用堆栈空间很少,因为这是在中断中调用的函数,同时,只能调用以FromISR结尾的API函数。
3、内存分配失败钩子函数
宏开关 configUSE_MALLOC_FAILED_HOOK 配置1
void vApplicationMallocFailedHook( void )
申请RTOS的动态内存
4、栈溢出钩子函数
宏开关 configCHECK_FOR_STACK_OVERFLOW 配置1或2
void vApplicationStackOverflowHook( TaskHandle_t xTask,
signed char *pcTaskName );
两种不同方法检测,但使用方法2会同时使用方法1
5、守护任务启动钩子函数
宏开关 configUSE_DAEMON_TASK_STARTUP_HOOK 配置1
void vApplicationDaemonTaskStartupHook( void )
RTOS内核的守护任务(daemon task)与软件定时器服务任务一样,之所以称为守护任务,是因为它不仅仅提供软件定时器服务任务的功能。
这个钩子函数会在守护任务首次开始时得到执行,而且只执行一次。这个特性,很适合在这个钩子函数中做一些初始化的任务。