1.手册中注解app使用icall给协议栈发送命令时会使APP阻塞,因为协议栈任务优先级是最高的,请问这个任务是何时被创建的?app端优先级调整会不会超过协议栈的优先级?
2.ICALL与OSAL在源码实现上应该理解为管道还是任务?
3.ti rtos有没有提供任务创建部分的源码?
4.协议栈在执行扫描或链接时app端并没有阻塞,是否是cortex m0在执行该任务?
5.向协议栈连续发送扫描和链接等命令,协议栈是否都会执行还是只关系当前命令?
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.
1.手册中注解app使用icall给协议栈发送命令时会使APP阻塞,因为协议栈任务优先级是最高的,请问这个任务是何时被创建的?app端优先级调整会不会超过协议栈的优先级?
2.ICALL与OSAL在源码实现上应该理解为管道还是任务?
3.ti rtos有没有提供任务创建部分的源码?
4.协议栈在执行扫描或链接时app端并没有阻塞,是否是cortex m0在执行该任务?
5.向协议栈连续发送扫描和链接等命令,协议栈是否都会执行还是只关系当前命令?
Q1:
搜索如下函数
ICall_createRemoteTasks
关于优先级,如下:
Considering the simple_peripheral project as an example, these tasks are listed by priority. A higher task number corresponds to a higher priority task:
• 5: Bluetooth low energy protocol stack task
• 3: GapRole task (peripheral role)
• 1: Application task (simple_peripheral)
Q4:
我认为M3执行了一部分,M0执行了一部分。 M3执行的是逻辑,M0是射频的动作。看不到底层,我是猜测,比如扫描,这个完全可能都在M0完成。新一代支持链式操作,所以频道切换,超时等逻辑都能由M0完成。
Q5:
这个从代码来看, 比如扫描,你每次调用这个命令,而命令内部是阻塞的,即要扫描结束才能返回。多个调用应该是FIFO的关系。