微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > tasksEvents中的值是从哪里来?

tasksEvents中的值是从哪里来?

时间:10-02 整理:3721RD 点击:

请问各位前辈, osal_run_system( void )函数中,tasksEvents[idx]中的值是从哪里来的?  因为初始值都是0了,是在哪个函数里此值改变的?谢谢。

const pTaskEventHandlerFn tasksArr[] =
{
LL_ProcessEvent, // task 0
Hal_ProcessEvent, // task 1
HCI_ProcessEvent, // task 2
#if defined ( OSAL_CBTIMER_NUM_TASKS )
OSAL_CBTIMER_PROCESS_EVENT( osal_CbTimerProcessEvent ), // task 3
#endif
L2CAP_ProcessEvent, // task 4
GAP_ProcessEvent, // task 5
GATT_ProcessEvent, // task 6
SM_ProcessEvent, // task 7
GAPRole_ProcessEvent, // task 8
GAPBondMgr_ProcessEvent, // task 9
GATTServApp_ProcessEvent, // task 10

}

这里面的排序号 

非常感谢这个论坛里有热心的技术朋友。

我想知道 ;

既然主函数不断通过osal_run_system( void )在检测tasksEvents[idx]的值,以便执行相应的动作处理。

我想了解SimpleBLEPeriphereral范例的程序工作原理是不是如下这样:

tasksEvents[idx] 的值是当某一事件发生时,程序进入中断后的函数将tasksEvents[idx] 赋值了,这样当中断完毕返回

   osal_run_system( void )时,就可以根据asksEvents[idx]的值执行相应的任务了?

这些代码是osal实现RTOS功能的,具体原理可以看RTOS的概念介绍,内核的东西最好不要修改。

非常感谢Fred朋友!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top