亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_mbox.lst

?? uCos-ii 2.86 在C8051F410單片機上移植成功!!! 其中包括:UART驅動
?? LST
?? 第 1 頁 / 共 3 頁
字號:
                      case OS_DEL_ALWAYS:                                /* Always delete the mailbox                */
                           while (pevent->OSEventGrp != 0) {             /* Ready ALL tasks waiting for mailbox      */
                               (void)OS_EventTaskRdy(pevent, (void *)0, OS_STAT_MBOX, OS_STAT_PEND_OK);
                           }
              #if OS_EVENT_NAME_SIZE > 1
                           pevent->OSEventName[0] = '?';                 /* Unknown name                             */
                           pevent->OSEventName[1] = OS_ASCII_NUL;
              #endif
                           pevent->OSEventType    = OS_EVENT_TYPE_UNUSED;
                           pevent->OSEventPtr     = OSEventFreeList;     /* Return Event Control Block to free list  */
                           pevent->OSEventCnt     = 0;
                           OSEventFreeList        = pevent;              /* Get next free event control block        */
                           OS_EXIT_CRITICAL();
                           if (tasks_waiting == OS_TRUE) {               /* Reschedule only if task(s) were waiting  */
                               OS_Sched();                               /* Find highest priority task ready to run  */
                           }
                           *perr         = OS_ERR_NONE;
                           pevent_return = (OS_EVENT *)0;                /* Mailbox has been deleted                 */
                           break;
              
                      default:
                           OS_EXIT_CRITICAL();
                           *perr         = OS_ERR_INVALID_OPT;
                           pevent_return = pevent;
                           break;
                  }
                  return (pevent_return);
              }
              #endif
              
C51 COMPILER V8.17   OS_MBOX                                                               03/26/2009 14:24:24 PAGE 5   

              /*$PAGE*/
              /*
              *********************************************************************************************************
              *                                      PEND ON MAILBOX FOR A MESSAGE
              *
              * Description: This function waits for a message to be sent to a mailbox
              *
              * Arguments  : pevent        is a pointer to the event control block associated with the desired mailbox
              *
              *              timeout       is an optional timeout period (in clock ticks).  If non-zero, your task will
              *                            wait for a message to arrive at the mailbox up to the amount of time
              *                            specified by this argument.  If you specify 0, however, your task will wait
              *                            forever at the specified mailbox or, until a message arrives.
              *
              *              perr          is a pointer to where an error message will be deposited.  Possible error
              *                            messages are:
              *
              *                            OS_ERR_NONE         The call was successful and your task received a
              *                                                message.
              *                            OS_ERR_TIMEOUT      A message was not received within the specified 'timeout'
             -.
              *                            OS_ERR_PEND_ABORT   The wait on the mailbox was aborted.
              *                            OS_ERR_EVENT_TYPE   Invalid event type
              *                            OS_ERR_PEND_ISR     If you called this function from an ISR and the result
              *                                                would lead to a suspension.
              *                            OS_ERR_PEVENT_NULL  If 'pevent' is a NULL pointer
              *                            OS_ERR_PEND_LOCKED  If you called this function when the scheduler is locked
              *
              * Returns    : != (void *)0  is a pointer to the message received
              *              == (void *)0  if no message was received or,
              *                            if 'pevent' is a NULL pointer or,
              *                            if you didn't pass the proper pointer to the event control block.
              *********************************************************************************************************
              */
              /*$PAGE*/
              void  *OSMboxPend (OS_EVENT *pevent, INT16U timeout, INT8U *perr) reentrant
              {
                  void      *pmsg;
              #if OS_CRITICAL_METHOD == 3                           /* Allocate storage for CPU status register      */
                  OS_CPU_SR  cpu_sr = 0;
              #endif
              
              
              
              #if OS_ARG_CHK_EN > 0
                  if (perr == (INT8U *)0) {                         /* Validate 'perr'                               */
                      return ((void *)0);
                  }
                  if (pevent == (OS_EVENT *)0) {                    /* Validate 'pevent'                             */
                      *perr = OS_ERR_PEVENT_NULL;
                      return ((void *)0);
                  }
              #endif
                  if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) {  /* Validate event block type                     */
                      *perr = OS_ERR_EVENT_TYPE;
                      return ((void *)0);
                  }
                  if (OSIntNesting > 0) {                           /* See if called from ISR ...                    */
                      *perr = OS_ERR_PEND_ISR;                      /* ... can't PEND from an ISR                    */
                      return ((void *)0);
                  }
                  if (OSLockNesting > 0) {                          /* See if called with scheduler locked ...       */
C51 COMPILER V8.17   OS_MBOX                                                               03/26/2009 14:24:24 PAGE 6   

                      *perr = OS_ERR_PEND_LOCKED;                   /* ... can't PEND when locked                    */
                      return ((void *)0);
                  }
                  OS_ENTER_CRITICAL();
                  pmsg = pevent->OSEventPtr;
                  if (pmsg != (void *)0) {                          /* See if there is already a message             */
                      pevent->OSEventPtr = (void *)0;               /* Clear the mailbox                             */
                      OS_EXIT_CRITICAL();
                      *perr = OS_ERR_NONE;
                      return (pmsg);                                /* Return the message received (or NULL)         */
                  }
                  OSTCBCur->OSTCBStat     |= OS_STAT_MBOX;          /* Message not available, task will pend         */
                  OSTCBCur->OSTCBStatPend  = OS_STAT_PEND_OK;
                  OSTCBCur->OSTCBDly       = timeout;               /* Load timeout in TCB                           */
                  OS_EventTaskWait(pevent);                         /* Suspend task until event or timeout occurs    */
                  OS_EXIT_CRITICAL();
                  OS_Sched();                                       /* Find next highest priority task ready to run  */
                  OS_ENTER_CRITICAL();
                  switch (OSTCBCur->OSTCBStatPend) {                /* See if we timed-out or aborted                */
                      case OS_STAT_PEND_OK:
                           pmsg =  OSTCBCur->OSTCBMsg;
                          *perr =  OS_ERR_NONE;
                           break;
              
                      case OS_STAT_PEND_ABORT:
                           pmsg = (void *)0;
                          *perr =  OS_ERR_PEND_ABORT;               /* Indicate that we aborted                      */
                           break;
              
                      case OS_STAT_PEND_TO:
                      default:
                           OS_EventTaskRemove(OSTCBCur, pevent);
                           pmsg = (void *)0;
                          *perr =  OS_ERR_TIMEOUT;                  /* Indicate that we didn't get event within TO   */
                           break;
                  }
                  OSTCBCur->OSTCBStat          =  OS_STAT_RDY;      /* Set   task  status to ready                   */
                  OSTCBCur->OSTCBStatPend      =  OS_STAT_PEND_OK;  /* Clear pend  status                            */
                  OSTCBCur->OSTCBEventPtr      = (OS_EVENT  *)0;    /* Clear event pointers                          */
              #if (OS_EVENT_MULTI_EN > 0)
                  OSTCBCur->OSTCBEventMultiPtr = (OS_EVENT **)0;
              #endif
                  OSTCBCur->OSTCBMsg           = (void      *)0;    /* Clear  received message                       */
                  OS_EXIT_CRITICAL();
                  return (pmsg);                                    /* Return received message                       */
              }
              /*$PAGE*/
              /*
              *********************************************************************************************************
              *                                      ABORT WAITING ON A MESSAGE MAILBOX
              *
              * Description: This function aborts & readies any tasks currently waiting on a mailbox.  This function 
              *              should be used to fault-abort the wait on the mailbox, rather than to normally signal
              *              the mailbox via OSMboxPost() or OSMboxPostOpt().
              *
              * Arguments  : pevent        is a pointer to the event control block associated with the desired mailbox.
              *
              *              opt           determines the type of ABORT performed:
              *                            OS_PEND_OPT_NONE         ABORT wait for a single task (HPT) waiting on the
              *                                                     mailbox
              *                            OS_PEND_OPT_BROADCAST    ABORT wait for ALL tasks that are  waiting on the
              *                                                     mailbox
C51 COMPILER V8.17   OS_MBOX                                                               03/26/2009 14:24:24 PAGE 7   

              *
              *              perr          is a pointer to where an error message will be deposited.  Possible error
              *                            messages are:
              *
              *                            OS_ERR_NONE         No tasks were     waiting on the mailbox.
              *                            OS_ERR_PEND_ABORT   At least one task waiting on the mailbox was readied
              *                                                and informed of the aborted wait; check return value 
              *                                                for the number of tasks whose wait on the mailbox 
              *                                                was aborted.
              *                            OS_ERR_EVENT_TYPE   If you didn't pass a pointer to a mailbox.
              *                            OS_ERR_PEVENT_NULL  If 'pevent' is a NULL pointer.
              *
              * Returns    : == 0          if no tasks were waiting on the mailbox, or upon error.
              *              >  0          if one or more tasks waiting on the mailbox are now readied and informed.
              *********************************************************************************************************
              */
              
              #if OS_MBOX_PEND_ABORT_EN > 0
              INT8U  OSMboxPendAbort (OS_EVENT *pevent, INT8U opt, INT8U *perr) reentrant
              {
                  INT8U      nbr_tasks;
              #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
                  OS_CPU_SR  cpu_sr = 0;
              #endif
              
              
              
              #if OS_ARG_CHK_EN > 0
                  if (perr == (INT8U *)0) {                              /* Validate 'perr'                          */
                      return (0);
                  }
                  if (pevent == (OS_EVENT *)0) {                         /* Validate 'pevent'                        */
                      *perr = OS_ERR_PEVENT_NULL;
                      return (0);
                  }
              #endif
                  if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) {       /* Validate event block type                */
                      *perr = OS_ERR_EVENT_TYPE;
                      return (0);
                  }
                  OS_ENTER_CRITICAL();
                  if (pevent->OSEventGrp != 0) {                         /* See if any task waiting on mailbox?      */
                      nbr_tasks = 0;
                      switch (opt) {
                          case OS_PEND_OPT_BROADCAST:                    /* Do we need to abort ALL waiting tasks?   */
                               while (pevent->OSEventGrp != 0) {         /* Yes, ready ALL tasks waiting on mailbox  */
                                   (void)OS_EventTaskRdy(pevent, (void *)0, OS_STAT_MBOX, OS_STAT_PEND_ABORT);
                                   nbr_tasks++;
                               }
                               break;
                           
                          case OS_PEND_OPT_NONE:
                          default:                                       /* No,  ready HPT       waiting on mailbox  */
                               (void)OS_EventTaskRdy(pevent, (void *)0, OS_STAT_MBOX, OS_STAT_PEND_ABORT);
                               nbr_tasks++;
                               break;
                      }
                      OS_EXIT_CRITICAL();
                      OS_Sched();                                        /* Find HPT ready to run                    */
                      *perr = OS_ERR_PEND_ABORT;
                      return (nbr_tasks);
                  }
C51 COMPILER V8.17   OS_MBOX                                                               03/26/2009 14:24:24 PAGE 8   

                  OS_EXIT_CRITICAL();
                  *perr = OS_ERR_NONE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图第一区| 成人在线综合网站| 丰满放荡岳乱妇91ww| 欧美日韩一区久久| 国产精品午夜电影| 老司机免费视频一区二区三区| 91麻豆国产在线观看| 久久久久久久久久电影| 丝袜美腿亚洲一区二区图片| gogogo免费视频观看亚洲一| 欧美精品一区二区三区蜜桃| 肉色丝袜一区二区| 欧美伊人精品成人久久综合97| 中文字幕av一区二区三区| 激情小说亚洲一区| 日韩精品中文字幕在线不卡尤物 | 国产日韩欧美一区二区三区综合| 亚洲va天堂va国产va久| 色呦呦网站一区| 亚洲人成网站在线| 97久久久精品综合88久久| 中文字幕av在线一区二区三区| 国产伦精品一区二区三区在线观看| 3d成人动漫网站| 一区二区三区小说| 在线观看av一区二区| 亚洲免费三区一区二区| 99国产麻豆精品| 亚洲日本一区二区三区| 一本久久精品一区二区| 亚洲色图视频网站| 99视频精品在线| 亚洲精品视频免费看| 色激情天天射综合网| 亚洲小说春色综合另类电影| 欧美日韩国产高清一区二区| 偷窥少妇高潮呻吟av久久免费| 69堂精品视频| 久久精品国产网站| 久久久国产综合精品女国产盗摄| 国产91丝袜在线播放九色| 国产精品久久久久一区二区三区| 99视频精品免费视频| 一区二区在线观看免费视频播放| 欧美在线观看视频一区二区| 丝袜脚交一区二区| 欧美精品一区二区三区一线天视频| 国产不卡在线视频| 亚洲视频网在线直播| 欧美午夜精品久久久久久超碰 | 亚洲精品成人少妇| 欧美裸体一区二区三区| 久久精品国产一区二区三| 日本一区二区三区四区| 欧美性猛片aaaaaaa做受| 日本中文在线一区| 国产精品午夜在线观看| 欧美日韩国产在线播放网站| 久久99精品一区二区三区| 国产精品萝li| 欧美一区二区美女| 96av麻豆蜜桃一区二区| 日韩av网站免费在线| 中文字幕精品一区二区三区精品| 一本久道中文字幕精品亚洲嫩| 日韩和欧美一区二区| 国产精品欧美一区二区三区| 欧美人妖巨大在线| 波多野结衣中文字幕一区| 五月天激情综合| 国产精品电影一区二区| 欧美va日韩va| 91极品美女在线| 国产高清精品网站| 日韩高清在线一区| 亚洲人成亚洲人成在线观看图片| 日韩欧美一二三四区| 色婷婷综合激情| 成人性生交大片免费| 免费观看30秒视频久久| 亚洲欧美偷拍卡通变态| 国产网站一区二区三区| 69堂精品视频| 欧美日韩免费观看一区二区三区 | 7777精品伊人久久久大香线蕉经典版下载 | 精品欧美一区二区三区精品久久| 不卡高清视频专区| 国产在线播放一区二区三区| 亚洲一级片在线观看| 中文av一区特黄| xvideos.蜜桃一区二区| 91精品国产日韩91久久久久久| 91亚洲国产成人精品一区二三 | 欧美电影影音先锋| 日本韩国精品在线| 成人免费的视频| 国产高清视频一区| 紧缚奴在线一区二区三区| 日韩成人免费电影| 无码av免费一区二区三区试看 | 99久久精品国产精品久久| 国模冰冰炮一区二区| 美国十次综合导航| 日韩高清在线观看| 天堂午夜影视日韩欧美一区二区| 亚洲精品菠萝久久久久久久| 中文字幕一区二区三区色视频| 精品国产91亚洲一区二区三区婷婷| 欧美一区二区免费观在线| 69堂精品视频| 日韩欧美国产1| 精品日韩一区二区三区免费视频| 日韩一区和二区| 欧美mv和日韩mv的网站| 精品sm在线观看| 久久久精品国产免费观看同学| 久久夜色精品一区| 欧美国产精品一区| 成人免费一区二区三区在线观看| 国产精品毛片久久久久久久| 国产精品动漫网站| 一区二区三区在线视频免费观看| 一区二区三区中文在线| 亚洲va中文字幕| 久久精品国产精品亚洲精品| 韩国在线一区二区| 99视频精品免费视频| 欧美性生活久久| 欧美大度的电影原声| 国产亚洲欧美激情| 中文字幕一区二区在线播放| 亚洲国产日韩综合久久精品| 免费在线看成人av| 国产成人精品一区二区三区四区 | 国产一区二区三区久久久| 成人97人人超碰人人99| 91久久精品一区二区二区| 欧美亚洲一区二区在线| 日韩精品专区在线| 18涩涩午夜精品.www| 天天操天天干天天综合网| 精品一区二区三区日韩| 91婷婷韩国欧美一区二区| 欧美日韩国产一二三| 国产色婷婷亚洲99精品小说| 亚洲综合男人的天堂| 韩国av一区二区三区四区| 日本道免费精品一区二区三区| 91精品国产综合久久香蕉的特点 | 色综合色综合色综合色综合色综合| 欧美日韩一区二区三区不卡| 精品久久久网站| 一卡二卡三卡日韩欧美| 国产在线国偷精品免费看| 欧美在线三级电影| 国产亚洲欧美日韩在线一区| 亚洲v日本v欧美v久久精品| 国产成人av一区| 这里只有精品免费| 国产精品成人免费精品自在线观看 | 成人在线视频一区二区| 欧美久久久久久久久| 中文字幕视频一区二区三区久| 奇米影视在线99精品| 91在线国产观看| 久久中文娱乐网| 日韩不卡免费视频| 色诱亚洲精品久久久久久| 国产日韩av一区二区| 麻豆国产一区二区| 欧美日韩小视频| 亚洲色图欧洲色图| 不卡视频免费播放| 欧美精品一区二| 麻豆精品在线看| 欧美日韩综合在线| 亚洲精品国产成人久久av盗摄| 丁香激情综合国产| 久久久www免费人成精品| 美腿丝袜一区二区三区| 欧美另类久久久品| 亚洲精品videosex极品| 99国产精品视频免费观看| 日本一区二区免费在线观看视频| 狂野欧美性猛交blacked| 日韩一区二区在线观看视频| 亚洲福利国产精品| 欧美日韩精品一区二区三区四区| 亚洲欧美日韩国产中文在线| 99精品视频在线观看免费| 国产日韩v精品一区二区| 激情综合五月天| 精品国产免费人成电影在线观看四季| 丝袜诱惑制服诱惑色一区在线观看| 欧美少妇一区二区| 天天综合色天天| 日韩精品综合一本久道在线视频| 免费美女久久99| 久久久久久免费毛片精品| 国产精品一区专区|