3、任务协作与通信

  1)信号量OS_SEM.C

    OSSemCreate()创建信号量

    OSSemDel()删除信号量

    OSSemQuery()查询信号量状态

    OSSemPendAbort()等待该信号量的所有任务就绪

    OSSemSet()设置信号量的值

    OSSemPost()释放信号量

    OSSemPend()请求信号量

  2)互斥信号量OS_MUTEX.C

   OSMutexCreate()创建一个互斥型信号量

   OSMutexPend()/OSMutexAccept()请求互斥信号量,保护共享资源

   OSMutexPost()释放互斥型信号量

   OSMutexDel()删除互斥型信号量

   OSMutexQuery()查询互斥信号量的信息

  3)消息邮箱OS_MBOX.C

   OSMboxCreate()创建一个消息邮箱

   OSMboxPend()/OSMboxAccept()请求邮箱消息

   OSMboxPendAbort()将使等待该邮箱的任务都放弃等待而进入就绪态

   OSMboxPost()/OSMboxPostOpt()向邮箱发送一则消息

   OSMboxDel()删除邮箱

   OSMboxQuery()查询消息邮箱的信息

  4)消息队列OS_Q.C

   OSQCreate()创建消息队列

   OSQPost()/OSQPostFront()/OSQPostOpt()释放消息至消息队列中

   OSQPend()/OSQAccept()请求消息

   OSQPendAbort()取消请求消息队列的任务的等待状态

   OSQFlush()清空消息队列中的消息

   OSQQuery()查询消息队列的信息

   OSQDel()删除消息队列

 5)事件标志OS_FLAG.C

   OSFlagCreate()创建一个事件标志变量

   OSFlagPost()释放事件标志

   OSFlagPend()/ OSFlagAccept()请求事件标志

   OSFlagPendGetFlagsRdy()获知事件标志满足的条件

   OSFlagQuery()查询一个事件标志

   OSFlagDel()删除一个事件标志

   OSFlagNameSet()/OSFlagNameGet()

6)多事件处理请求

  OSEventPendMulti()多事件一任务请求

  OSSchedLock()/ OSSchedUnlock()给当前任务加锁或解锁