This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

tasksEvents[idx]中的值是从哪里来?



请问各位前辈, 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朋友!