OS_EVENT *OSSemCreate (INT16U cnt)
{
OS_EVENT *pevent;
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr = 0;
#endif
if (OSIntNesting > 0) { /* See if called from ISR ... */
return ((OS_EVENT *)0); /* ... can't CREATE from an ISR */
}//如果是中断服务子程序调用创建信号量函数,则返回空指针
OS_ENTER_CRITICAL();//关中断
pevent = OSEventFreeList;//如果不是中断服务子程序调用,则将下一个空闲事件控制块链表指针赋给当前指针 /* Get next free event control block */
if (OSEventFreeList != (OS_EVENT *)0) { /* See if pool of free ECB pool was empty */
OSEventFreeList = (OS_EVENT *)OSEventFreeList->OSEventPtr;
}//
信号量之创建信号量——OSSemCreate()
最新推荐文章于 2023-05-26 20:53:04 发布