例程为SimpleBLEPeripheral 芯片2540
开启POWER_SAVING后调试
断点osal_pwrmgr_device( PWRMGR_BATTERY );程序试行此句后,pwrmgr_attribute.pwrmgr_device变为0x01(PWRMGR_BATTERY )没有问题。
继续向下执行到处理任务events = (tasksArr[idx])( idx, events );时,程序又再次跳转到osal_pwrmgr_device函数,并将0x01改为0x00(PWRMGR_ALWAYS_ON)
导致后面判断if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON )出错,,,无法进入sleep.
我watch执行任务处理函数events = (tasksArr[idx])( idx, events );时,idx=0;events=128
请问为什么会再次跳到osal_pwrmgr_device函数?是哪里问题导致无法进入sleep.
谢谢
bevis:
回复 kqian0327:
您好,我用的是ti的例程。在此基础上有所修改,增加了按键显示处理等应用层程序,增加部分我感觉应该不会影响协议栈。
我想知道的是 为什么 处理任务函数指针events = (tasksArr[idx])( idx, events );会跳转到osal_pwrmgr_device函数?
是因为调用的LL_ProcessEvents函数进入的吗?