![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
ucos3 osinithook是哪个文件里的
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
相对于uCOS-II,使用uCOS-III中的钩子函数注意事项
使用uCOS-II的钩子函数时,一般都是直接使能:
#define OS_APP_HOOKS_EN 1u
就可以在钩子函数中写代码了。
=================================
但是对于uCOS-III函数,除了使能:
#define OS_CFG_APP_HOOKS_EN DEF_ENABLED
以外,还要初始化函数App_OS_SetAllHooks();
这样在钩子函数中写的代码才可以被系统所调用。另外就是这个函数要放在函数OSInit()后面。
因为这个函数会做一次钩子函数路径清除操作:
#if (OS_CFG_APP_HOOKS_EN == DEF_ENABLED)
#if (OS_CFG_TASK_STK_REDZONE_EN == DEF_ENABLED)
OS_AppRedzoneHitHookPtr = DEF_NULL;
#endif
OS_AppTaskCreateHookPtr = DEF_NULL;
OS_AppTaskDelHookPtr = DEF_NULL;
OS_AppTaskReturnHookPtr = DEF_NULL;
使用uCOS-II的钩子函数时,一般都是直接使能:
#define OS_APP_HOOKS_EN 1u
就可以在钩子函数中写代码了。
=================================
但是对于uCOS-III函数,除了使能:
#define OS_CFG_APP_HOOKS_EN DEF_ENABLED
以外,还要初始化函数App_OS_SetAllHooks();
这样在钩子函数中写的代码才可以被系统所调用。另外就是这个函数要放在函数OSInit()后面。
因为这个函数会做一次钩子函数路径清除操作:
#if (OS_CFG_APP_HOOKS_EN == DEF_ENABLED)
#if (OS_CFG_TASK_STK_REDZONE_EN == DEF_ENABLED)
OS_AppRedzoneHitHookPtr = DEF_NULL;
#endif
OS_AppTaskCreateHookPtr = DEF_NULL;
OS_AppTaskDelHookPtr = DEF_NULL;
OS_AppTaskReturnHookPtr = DEF_NULL;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询