关于ICALL和 BLE protocol stack
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)
好的 感谢回复,其它问题能继续帮助我吗 ?谢谢
Q2&Q3:
2: 管道
3. rtos 关于task的源代码,目录如下。不过,由于使用了xdc tool,你直接从工程里是没法看到源码的。
C:\ti\tirtos_cc13xx_cc26xx_2_21_00_06\products\bios_6_46_01_37\packages\ti\sysbios\knl
Q4:
我认为M3执行了一部分,M0执行了一部分。 M3执行的是逻辑,M0是射频的动作。看不到底层,我是猜测,比如扫描,这个完全可能都在M0完成。新一代支持链式操作,所以频道切换,超时等逻辑都能由M0完成。
Q5:
这个从代码来看, 比如扫描,你每次调用这个命令,而命令内部是阻塞的,即要扫描结束才能返回。多个调用应该是FIFO的关系。
关于问题5手册提到说命令执行结果是异步返回的,在这没有结果返回期间再次发送命令是fifo关系还是会同时执行?有些问题我只能猜测