登录 注册
当前位置:主页 > 资源下载 > 50 > 查询EMC DataDomain 2500存储设备维护手册中关于信号量状态的信息

查询EMC DataDomain 2500存储设备维护手册中关于信号量状态的信息

  • 更新:2024-11-04 13:34:44
  • 大小:4.33MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:OS - 操作系统
  • 格式:PDF

资源介绍

程序清单 L6.13 查询一个信号量的状态 INT8U OSSemQuery (OS_EVENT *pevent, OS_SEM_DATA *pdata) { INT8U i; INT8U *psrc; INT8U *pdest; OS_ENTER_CRITICAL(); if (pevent->OSEventType != OS_EVENT_TYPE_SEM) { (1) OS_EXIT_CRITICAL(); return (OS_ERR_EVENT_TYPE); } pdata->OSEventGrp = pevent->OSEventGrp; (2) psrc = &pevent->OSEventTbl[0]; pdest = &pdata->OSEventTbl[0]; for (i = 0; i < OS_EVENT_TBL_SIZE; i++) { *pdest++ = *psrc++; } pdata->OSCnt = pevent->OSEventCnt; (3) OS_EXIT_CRITICAL(); return (OS_NO_ERR); } 6.6 邮箱 邮箱是µC/OS-II中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个任务 发送一个指针型的变量。该指针指向一个包含了特定“消息”的数据结构。为了在µC/OS-II中 使用邮箱,必须将 OS_CFG.H中的 OS_MBOX_EN常数置为 1。 使用邮箱之前,必须先建立该邮箱。该操作可以通过调用 OSMboxCreate()函数来完成(见 下节),并且要指定指针的初始值。一般情况下,这个初始值是 NULL,但也可以初始化一个邮 箱,使其在最开始就包含一条消息。如果使用邮箱的目的是用来通知一个事件的发生(发送一 条消息),那么就要初始化该邮箱为 NULL,因为在开始时,事件还没有发生。如果用户用邮箱 来共享某些资源,那么就要初始化该邮箱为一个非 NULL的指针。在这种情况下,邮箱被当成一 个二值信号量使用。 µC/OS-II 提供了 5 种对邮箱的操作:OSMboxCreate(),OSMboxPend(),OSMboxPost(), OSMboxAccept()和 OSMboxQuery()函数。图 F6.6描述了任务、中断服务子程序和邮箱之间的关