TI中文支持网
TI专业的中文技术问题搜集分享网站

ICall_wait诸多疑问

各位好,

我在看SimpleBLEPeripheral工程中看见等待信号量的函数有一些疑问:

1.ICall_Errno errno = ICall_wait(ICALL_TIMEOUT_FOREVER);

这个函数没有带SEM handle ,任何信号量都能触发它?当信号量很多时,会不会造成任务混乱。

2.我还想问一下,CC2640 的RTOS的任务优先级是序号越高优先级越高,还是序号越低优先级越低?

Yue TANG:

Q1: 有带,可以往下看到ICALL.c里的ICall_primWait()函数。 使用的是信号量。底层用了队列来管理具体的消息,可以看ICall_primFetchMsg函数

Q2: the bigger the number, the higher the priority 

Frank Mei:

回复 Yue TANG:

HI TY,

           底层确实有Handle,但是应用层没有呀,所有的Task都执行ICall_wait不带任何 ID ,随意一个信号量就能触发。

例如:TaskA 延迟 5s后,发送Sem1,触发TaskB

            TaskC 延迟 10s后,发送Sem2,触发TaskD

由于TaskB 和TaskD都判断ICall_wait而已,在5s的时候,会不会SEM1 触发TaskD???  在  10s的时候,会不会SEM2 触发 TaskB ??

要是不会,如何区分是SEM1 还是SEM2?

Frank Mei:

回复 Yue TANG:

HI TY,

      我明白代码中的意思了,实际上为了区分是哪个任务发出来的SEM,借助了events全局变量

Jason hu1:

回复 Yue TANG:

你好,请问哪个文档有详细介绍icall这块的?请告知,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » ICall_wait诸多疑问
分享到: 更多 (0)