CC2640协议栈是基于TI-RTOS基础上实现的,中间还加了个ICall,代码中间还加了n层宏定义,好像故意绕来绕去,又没有详细的注释,让人学习的难度加大,真的是无fu-ck可说了。
现在有几大疑问想请教一下TI工程师:
1、关于每个thread里的ICall_Errno errno = ICall_wait(ICALL_TIMEOUT_FOREVER);我知道发送信号量和队列消息,它都能接收到,然后执行后面的程序,但是后面代码里的
if (ICall_fetchServiceMsg(&src, &dest,(void **)&pMsg) == ICALL_ERRNO_SUCCESS)
作用是什么呢,什么时候会判断为true?自己创建的thread,是否也一定需要这个语句?
2、我自己创建了一个新thread,在手机连接上蓝牙以后,在这个thread里,定时1秒调用一次notify函数,把数据发送给手机。但是一调用,程序必定死掉。但是,在SimpleBLEPeripheral_taskFxn里面调用,程序就一切正常,请问这个问题,是否跟SimpleBLEPeripheral_init里面调用的GAP_RegisterForMsgs(selfEntity); GATT_RegisterForMsgs(selfEntity);有关系呢?
谢谢!
hao wu10:
你好有解决吗~!我也遇到同样问题。