信号量,队列,邮箱等等,这些都是RTOS任务间的通讯方式,简称IPC。
当然,任务间通讯,我们用全局变量通讯,99%以上,是没有任何问题。但是保不齐有时候,会出问题。
因为你不能决定各个任务执行的先后顺序。
但是你用RTOS提供的IPC方式,那就能很好的避免这个问题。所以,一般在使用RTOS,任务间需要通讯,建议使用IPC,不要使用全局变量
使用OSSemCreate创建信号量
申请:voidOSSemPend释放:INT8U OSSemPost
就使用系统的API函数来创建与申请、释放
至于什么时候用,一般是在对共公资源有竞争关系的外设使用时,用信号量来进行互锁
或是来进行任务间的通讯