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

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

?? os_core.lst

?? 在C8051F120內移植uCOS-II
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE OS_CORE
OBJECT MODULE PLACED IN OS_CORE.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE OS_CORE.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                                uC/OS-II
   4          *                                          The Real-Time Kernel
   5          *                                             CORE FUNCTIONS
   6          *
   7          *                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
   8          *                                           All Rights Reserved
   9          *
  10          *                                                  V2.00
  11          *
  12          * File : OS_CORE.C
  13          * By   : Jean J. Labrosse
  14          *********************************************************************************************************
  15          */
  16          
  17          
  18          #define  OS_CORE_GLOBALS
  19          #include "INCLUDES.H"
  20          
  21          /*
  22          *********************************************************************************************************
  23          *                                         LOCAL GLOBAL VARIABLES
  24          *********************************************************************************************************
  25          */
  26                                                 
  27          static  INT8U  xdata      OSIntExitY;               /* Variable used by 'OSIntExit' to prevent using local
             -s */
  28          
  29          static  OS_STK xdata      OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE];       /* Idle       task stack            
             -  */
  30          
  31          #if     OS_TASK_STAT_EN
              static  OS_STK xdata      OSTaskStatStk[OS_TASK_STAT_STK_SIZE];      /* Statistics task stack             
             -  */
              #endif
  34          
  35          static  OS_TCB xdata      OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS];   /* Table of TCBs                     
             -  */
  36          
  37          /*$PAGE*/
  38          /*
  39          *********************************************************************************************************
  40          *                              MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
  41          *
  42          * Note: Index into table is desired bit position, 0..7
  43          *       Indexed value corresponds to bit mask
  44          *********************************************************************************************************
  45          */
  46          
  47          INT8U const code OSMapTbl[]   = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
  48          
  49          /*
  50          *********************************************************************************************************
  51          *                                       PRIORITY RESOLUTION TABLE
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 2   

  52          *
  53          * Note: Index into table is bit pattern to resolve highest priority
  54          *       Indexed value corresponds to highest priority bit position (i.e. 0..7)
  55          *********************************************************************************************************
  56          */
  57          
  58          INT8U const code OSUnMapTbl[] = {
  59              0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  60              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  61              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  62              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  63              6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  64              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  65              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  66              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  67              7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  68              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  69              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  70              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  71              6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  72              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  73              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
  74              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
  75          };
  76          
  77          /*$PAGE*/
  78          /*
  79          *********************************************************************************************************
  80          *                             MAKE TASK READY TO RUN BASED ON EVENT OCCURING
  81          *
  82          * Description: This function is called by other uC/OS-II services and is used to ready a task that was
  83          *              waiting for an event to occur.
  84          *
  85          * Arguments  : pevent    is a pointer to the event control block corresponding to the event.
  86          *
  87          *              msg       is a pointer to a message.  This pointer is used by message oriented services
  88          *                        such as MAILBOXEs and QUEUEs.  The pointer is not used when called by other
  89          *                        service functions.
  90          *
  91          *              msk       is a mask that is used to clear the status byte of the TCB.  For example,
  92          *                        OSSemPost() will pass OS_STAT_SEM, OSMboxPost() will pass OS_STAT_MBOX etc.
  93          *
  94          * Returns    : none
  95          *
  96          * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
  97          *********************************************************************************************************
  98          */
  99          #if  (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_Sem_EN
 100          void  OSEventTaskRdy (OS_EVENT *pevent, void *msg, INT8U msk)reentrant
 101          {
 102   1          OS_TCB *ptcb;
 103   1          INT8U   x;
 104   1          INT8U   y;
 105   1          INT8U   bitx;
 106   1          INT8U   bity;
 107   1          INT8U   prio;
 108   1      
 109   1      
 110   1          y    = OSUnMapTbl[pevent->OSEventGrp];            /* Find highest prio. task waiting for message   */
 111   1          bity = OSMapTbl[y];
 112   1          x    = OSUnMapTbl[pevent->OSEventTbl[y]];
 113   1          bitx = OSMapTbl[x];
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 3   

 114   1          prio = (INT8U)((y << 3) + x);                     /* Find priority of task getting the msg         */
 115   1          if ((pevent->OSEventTbl[y] &= ~bitx) == 0) {      /* Remove this task from the waiting list        */
 116   2              pevent->OSEventGrp &= ~bity;
 117   2          }
 118   1          ptcb                 =  OSTCBPrioTbl[prio];       /* Point to this task's OS_TCB                   */
 119   1          ptcb->OSTCBDly       =  0;                        /* Prevent OSTimeTick() from readying task       */
 120   1          ptcb->OSTCBEventPtr  = (OS_EVENT *)0;             /* Unlink ECB from this task                     */
 121   1      #if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN
                  ptcb->OSTCBMsg       = msg;                       /* Send message directly to waiting task         */
              #else
 124   1          msg                  = msg;                       /* Prevent compiler warning if not used          */ 
             -   
 125   1      #endif    
 126   1          ptcb->OSTCBStat     &= ~msk;                      /* Clear bit associated with event type          */
 127   1          if (ptcb->OSTCBStat == OS_STAT_RDY) {             /* See if task is ready (could be susp'd)        */
 128   2              OSRdyGrp        |=  bity;                     /* Put task in the ready to run list             */
 129   2              OSRdyTbl[y]     |=  bitx;
 130   2          }
 131   1      }
 132          #endif
 133          /*$PAGE*/
 134          /*
 135          *********************************************************************************************************
 136          *                                   MAKE TASK WAIT FOR EVENT TO OCCUR
 137          *
 138          * Description: This function is called by other uC/OS-II services to suspend a task because an event has
 139          *              not occurred.
 140          *
 141          * Arguments  : pevent   is a pointer to the event control block for which the task will be waiting for.
 142          *
 143          * Returns    : none
 144          *
 145          * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
 146          *********************************************************************************************************
 147          */
 148          #if  (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_Sem_EN
 149          void  OSEventTaskWait (OS_EVENT *pevent)reentrant
 150          {
 151   1          OSTCBCur->OSTCBEventPtr = pevent;            /* Store pointer to event control block in TCB        */
 152   1          if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) {      /* Task no longer ready      */
 153   2              OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
 154   2          }
 155   1          pevent->OSEventTbl[OSTCBCur->OSTCBY] |= OSTCBCur->OSTCBBitX;          /* Put task in waiting list  */
 156   1          pevent->OSEventGrp                   |= OSTCBCur->OSTCBBitY;
 157   1      }
 158          #endif
 159          /*$PAGE*/
 160          /*
 161          *********************************************************************************************************
 162          *                              MAKE TASK READY TO RUN BASED ON EVENT TIMEOUT
 163          *
 164          * Description: This function is called by other uC/OS-II services to make a task ready to run because a
 165          *              timeout occurred.
 166          *
 167          * Arguments  : pevent   is a pointer to the event control block which is readying a task.
 168          *
 169          * Returns    : none
 170          *
 171          * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
 172          *********************************************************************************************************
 173          */
 174          #if  (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_Sem_EN
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 4   

 175          void  OSEventTO (OS_EVENT *pevent)reentrant
 176          {
 177   1          if ((pevent->OSEventTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) {
 178   2              pevent->OSEventGrp &= ~OSTCBCur->OSTCBBitY;
 179   2          }
 180   1          OSTCBCur->OSTCBStat     = OS_STAT_RDY;       /* Set status to ready                                */
 181   1          OSTCBCur->OSTCBEventPtr = (OS_EVENT *)0;     /* No longer waiting for event                        */
 182   1      }
 183          #endif
 184          /*$PAGE*/
 185          /*
 186          *********************************************************************************************************
 187          *                                 INITIALIZE EVENT CONTROL BLOCK'S WAIT LIST
 188          *
 189          * Description: This function is called by other uC/OS-II services to initialize the event wait list.
 190          *
 191          * Arguments  : pevent    is a pointer to the event control block allocated to the event.
 192          *
 193          * Returns    : none
 194          *
 195          * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
 196          *********************************************************************************************************
 197          */
 198          #if  (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_Sem_EN
 199          void  OSEventWaitListInit (OS_EVENT *pevent)reentrant
 200          {
 201   1          INT8U i;
 202   1          
 203   1          
 204   1          pevent->OSEventGrp = 0x00;                   /* No task waiting on event                           */
 205   1          for (i = 0; i < OS_EVENT_TBL_SIZE; i++) {
 206   2              pevent->OSEventTbl[i] = 0x00;
 207   2          }
 208   1      }
 209          #endif
 210          /*$PAGE*/
 211          /*
 212          *********************************************************************************************************
 213          *                                             INITIALIZATION
 214          *
 215          * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
 216          *              creating any uC/OS-II object and, prior to calling OSStart().
 217          *
 218          * Arguments  : none

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影在线观看不卡 | 一道本成人在线| 国产午夜精品一区二区三区视频 | 激情综合色综合久久| 欧美变态口味重另类| 久久99精品久久只有精品| 欧美精品一区二区三区蜜臀| 国产伦精品一区二区三区免费 | 裸体歌舞表演一区二区| 欧美xxx久久| 国产成人免费视频网站| 亚洲九九爱视频| 欧美日韩国产乱码电影| 久久精品国产成人一区二区三区| 国产日韩欧美麻豆| 91传媒视频在线播放| 日韩精品视频网| 国产亚洲污的网站| 日本道色综合久久| 久久国产欧美日韩精品| 亚洲天堂中文字幕| 欧美精品第1页| 91精品国产入口| 日韩女优电影在线观看| 国产成人高清在线| 日韩美女一区二区三区四区| 国产91露脸合集magnet| 亚洲高清免费在线| 久久精品一区二区三区不卡牛牛| 色婷婷av一区二区三区之一色屋| 日本欧美在线看| 中文字幕一区二区三区不卡在线| 欧美一区二视频| gogo大胆日本视频一区| 日本不卡视频在线| 亚洲欧美一区二区久久| 久久久噜噜噜久久人人看| 欧美亚洲国产bt| 国产69精品一区二区亚洲孕妇| 亚洲va欧美va天堂v国产综合| 欧美国产综合色视频| 欧美一区欧美二区| 欧美丝袜丝交足nylons| 国产91高潮流白浆在线麻豆| 免费成人美女在线观看| 亚洲伊人色欲综合网| 中文字幕精品一区二区三区精品 | 久久草av在线| 亚洲国产精品精华液网站| 国产精品天美传媒| 精品99一区二区三区| 91精品国产麻豆| 欧美在线|欧美| 97久久超碰精品国产| 国产成人免费视频网站高清观看视频| 舔着乳尖日韩一区| 一级中文字幕一区二区| 亚洲欧美中日韩| 日本一区二区三区免费乱视频| 日韩欧美二区三区| 91精品国产综合久久久久久久久久| 一本到高清视频免费精品| 成人免费不卡视频| 成人妖精视频yjsp地址| 国产精品一区二区久久精品爱涩| 免费在线观看视频一区| 日韩高清在线一区| 午夜精品久久久久久久久| 亚洲一区二区精品视频| 亚洲日本在线看| 亚洲另类在线一区| 亚洲综合一二三区| 亚洲国产精品久久人人爱| 一区二区三区加勒比av| 亚洲一本大道在线| 婷婷中文字幕一区三区| 日韩福利视频网| 美女www一区二区| 国内精品免费在线观看| 国产91精品在线观看| 成人短视频下载| 99国产欧美另类久久久精品 | 国产精品久久久久久久第一福利| 久久久影院官网| 欧美va在线播放| 久久午夜色播影院免费高清| 欧美精品一区二区三区久久久 | 一区二区三区四区国产精品| 亚洲精选视频在线| 视频在线观看一区| 蜜桃av一区二区三区电影| 久久国产精品99久久久久久老狼| 国产一区视频导航| 不卡的av中国片| 在线观看网站黄不卡| 欧美日韩国产成人在线91| 欧美一区二区网站| 国产午夜久久久久| 亚洲美女在线国产| 日本一区中文字幕| 国产毛片精品视频| 91麻豆精东视频| 欧美一区二区在线观看| 久久精品一区四区| 依依成人综合视频| 免费观看成人鲁鲁鲁鲁鲁视频| 久久99久久精品| 91视频一区二区| 91精品啪在线观看国产60岁| 久久久久久久久久电影| 亚洲乱码一区二区三区在线观看| 无码av免费一区二区三区试看 | 国产精品91xxx| 色天天综合色天天久久| 欧美电影免费观看完整版| 国产农村妇女精品| 亚洲成av人片www| 国产精品91xxx| 欧美蜜桃一区二区三区| 国产欧美一区二区三区网站| 亚洲第一综合色| 懂色av一区二区三区免费观看 | 日韩视频一区二区三区在线播放| 久久精品日韩一区二区三区| 亚洲一区国产视频| 国产精品456露脸| 欧美日韩在线电影| 国产精品久久毛片a| 琪琪一区二区三区| 在线观看免费一区| 国产精品视频在线看| 蜜臀久久久久久久| 色八戒一区二区三区| 国产视频911| 蜜桃视频在线观看一区| 在线观看视频欧美| 国产精品国产a| 精品在线你懂的| 欧美精品久久一区| 亚洲伊人色欲综合网| 94-欧美-setu| 日本一区二区三区国色天香 | 蜜桃视频在线一区| 欧美亚洲国产一区在线观看网站| 国产精品女同互慰在线看| 国产在线视频不卡二| 在线播放亚洲一区| 亚洲国产综合人成综合网站| 成人a免费在线看| 国产偷国产偷亚洲高清人白洁| 奇米精品一区二区三区在线观看一| 91麻豆自制传媒国产之光| 国产精品网站一区| 国产成人av福利| 精品播放一区二区| 国产在线一区观看| 精品国产污网站| 久久99精品国产.久久久久| 67194成人在线观看| 午夜欧美一区二区三区在线播放| 色婷婷香蕉在线一区二区| 自拍偷拍亚洲欧美日韩| eeuss鲁片一区二区三区| 中文字幕精品综合| av不卡免费在线观看| 中文字幕一区二区三区四区| 99久久99久久精品免费看蜜桃| 国产亚洲精品精华液| 国产成人午夜精品影院观看视频| 亚洲精品一区二区三区影院| 久草热8精品视频在线观看| 日韩免费性生活视频播放| 日本不卡123| xnxx国产精品| 国产jizzjizz一区二区| 国产精品美女www爽爽爽| 99久久婷婷国产综合精品电影 | 久久精品二区亚洲w码| 日韩一区二区免费高清| 精品一区二区三区日韩| 久久久91精品国产一区二区三区| 成人午夜电影小说| 尤物av一区二区| 欧美一区二区三区在线电影| 精品一区二区三区免费视频| 中文字幕欧美激情一区| 在线一区二区三区四区| 日韩影院免费视频| 久久久久久久久久久久久久久99| 不卡视频一二三| 亚洲成人av一区二区| 精品久久久久久久人人人人传媒 | 制服丝袜亚洲播放| 精品影院一区二区久久久| 久久久久久久久蜜桃| 99久久精品久久久久久清纯| 亚洲线精品一区二区三区八戒| 日韩免费看的电影| 成人手机电影网| 亚洲成人久久影院|