亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲一区二区三区中文字幕| 成人精品一区二区三区四区| 亚洲v精品v日韩v欧美v专区| 亚洲九九爱视频| 一区二区三区在线播放| 最近中文字幕一区二区三区| 国产精品久久久久国产精品日日| 欧美高清在线视频| 国产精品久久看| 国产精品久久久久久久第一福利 | 欧美影院一区二区三区| 91美女视频网站| 欧美专区亚洲专区| 欧美喷潮久久久xxxxx| 欧美日韩一卡二卡三卡| 欧美一区2区视频在线观看| 91精品国产aⅴ一区二区| 欧美一级片在线看| 久久女同精品一区二区| 久久久高清一区二区三区| 国产三级精品视频| 最新不卡av在线| 性感美女久久精品| 久久99精品国产.久久久久 | 日本韩国精品在线| 欧美午夜精品一区二区蜜桃| 91精品国产色综合久久ai换脸| 精品国产露脸精彩对白 | 麻豆视频观看网址久久| 国产原创一区二区| av不卡一区二区三区| 欧美午夜精品久久久久久超碰 | 一区二区三区四区在线播放 | 国产一区二区中文字幕| kk眼镜猥琐国模调教系列一区二区| 色综合色综合色综合色综合色综合| 欧美日韩情趣电影| 精品久久久久av影院| 欧美国产成人精品| 香蕉久久一区二区不卡无毒影院| 韩国精品一区二区| 99国产精品久| 日韩一级片网站| 国产精品欧美综合在线| 亚洲444eee在线观看| 国产在线一区二区综合免费视频| 成人高清视频在线| 欧美精品v国产精品v日韩精品| 久久综合精品国产一区二区三区| 亚洲视频小说图片| 狠狠色2019综合网| 91国模大尺度私拍在线视频| 精品国产123| 亚洲精品乱码久久久久久黑人| 麻豆免费看一区二区三区| 91色在线porny| 久久亚洲综合色| 亚洲电影在线免费观看| 国产福利91精品| 欧美福利视频导航| 中文字幕亚洲在| 久久狠狠亚洲综合| 欧美日韩视频在线一区二区| 国产精品网站一区| 久久成人av少妇免费| 色综合天天综合狠狠| 国产三级一区二区| 日本va欧美va精品| 欧美性视频一区二区三区| 国产精品视频免费| 国产综合色产在线精品| 欧美日本在线播放| 亚洲狼人国产精品| 成人免费看黄yyy456| 日韩一区二区三区视频在线| 一区二区不卡在线播放 | 成人手机电影网| 欧美xxxxx裸体时装秀| 亚洲韩国精品一区| 99vv1com这只有精品| 国产视频视频一区| 国产真实精品久久二三区| 欧美一区二区三区视频在线| 一区二区三区日韩精品| 99精品欧美一区二区蜜桃免费 | 亚洲一区影音先锋| 99精品在线观看视频| 国产精品日韩成人| 国产成人精品亚洲日本在线桃色| 精品国产乱码久久久久久浪潮| 欧美a级理论片| 欧美精品久久久久久久多人混战| 亚洲国产视频一区| 欧美三级韩国三级日本一级| 亚洲欧美日韩综合aⅴ视频| 波多野结衣的一区二区三区| 国产精品全国免费观看高清| 成人免费看黄yyy456| 国产精品午夜久久| 9i在线看片成人免费| 国产精品久久午夜夜伦鲁鲁| 风间由美性色一区二区三区| 久久亚洲欧美国产精品乐播| 久久国产日韩欧美精品| 亚洲精品一区二区三区蜜桃下载 | 另类小说色综合网站| 91精品国产综合久久香蕉的特点 | 欧美性色黄大片手机版| 一区二区免费视频| 欧美三级中文字| 日韩精品一级中文字幕精品视频免费观看| 欧美日韩三级视频| 免费成人av在线| 精品国免费一区二区三区| 狠狠色狠狠色合久久伊人| 国产欧美久久久精品影院| 不卡视频在线看| 亚洲一区二区影院| 日韩一区二区不卡| 国产夫妻精品视频| 中文字幕佐山爱一区二区免费| 91久久线看在观草草青青| 亚洲第一在线综合网站| 欧美一区二区三区影视| 国产精品一区二区男女羞羞无遮挡| 国产亚洲精品免费| 色老综合老女人久久久| 亚洲va韩国va欧美va精品 | 中文字幕综合网| 欧美性色aⅴ视频一区日韩精品| 首页国产欧美久久| 26uuu精品一区二区| jiyouzz国产精品久久| 亚洲第一福利一区| 欧美tickling网站挠脚心| 成人精品视频一区二区三区| 亚洲一区二区三区国产| 日韩美女视频在线| 99久久婷婷国产综合精品电影 | 韩国一区二区三区| 国产精品久久久久久亚洲毛片| 欧洲一区二区三区免费视频| 青青草成人在线观看| 中文字幕中文字幕在线一区 | 色狠狠av一区二区三区| 日本中文字幕一区二区视频 | 五月天久久比比资源色| 久久夜色精品一区| 色综合婷婷久久| 久久精品国产一区二区| 日韩毛片高清在线播放| 欧美一区二区女人| 99久久精品费精品国产一区二区| 视频在线观看一区| 国产精品久久久一本精品| 日韩一区二区三区在线观看| 99re成人精品视频| 久久精品99久久久| 一个色妞综合视频在线观看| 久久久久久久一区| 91精品国产综合久久婷婷香蕉| 成人午夜大片免费观看| 美日韩一区二区| 亚洲一级在线观看| 中文字幕第一页久久| 欧美一区三区四区| 色婷婷久久99综合精品jk白丝| 精品亚洲成av人在线观看| 亚洲一区二区美女| 最新国产の精品合集bt伙计| 久久久国际精品| 欧美一卡2卡3卡4卡| 91国偷自产一区二区开放时间 | 亚洲福利视频三区| 国产精品色在线| 久久久综合精品| 日韩一级二级三级精品视频| 色欧美88888久久久久久影院| 国产成人免费视频一区| 奇米影视7777精品一区二区| 一区二区三区高清| 亚洲三级在线看| 国产丝袜在线精品| 久久综合久久99| 欧美成人乱码一区二区三区| 欧美亚洲动漫精品| 一本大道久久a久久综合| 国产91精品一区二区麻豆亚洲| 国内精品不卡在线| 麻豆一区二区三区| 免费看欧美女人艹b| 午夜欧美在线一二页| 亚洲国产一区二区视频| 亚洲激情图片qvod| 亚洲婷婷国产精品电影人久久| 国产精品无人区| 亚洲欧洲成人av每日更新| 国产精品亲子乱子伦xxxx裸| 中文字幕av一区二区三区免费看| 久久久久久日产精品|