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

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

?? os_core.lst

?? 該源碼是本人經調試通過的UCOS2操作系統在51單片機上移植好的源代碼
?? LST
?? 第 1 頁 / 共 5 頁
字號:
C51 COMPILER V7.20   OS_CORE                                                               09/25/2006 10:08:38 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE OS_CORE
OBJECT MODULE PLACED IN OS_CORE.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE OS_CORE.C LARGE 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-2002, Jean J. Labrosse, Weston, FL
   8          *                                           All Rights Reserved
   9          *
  10          * File : OS_CORE.C
  11          * By   : Jean J. Labrosse
  12          *********************************************************************************************************
  13          */
  14          
  15          #include "includes.h"
  16          
  17          /*
  18          *********************************************************************************************************
  19          *                              MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
  20          *
  21          * Note: Index into table is desired bit position, 0..7
  22          *       Indexed value corresponds to bit mask
  23          *********************************************************************************************************
  24          */
  25          
  26          INT8U  const  OSMapTbl[]   = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
  27          
  28          /*
  29          *********************************************************************************************************
  30          *                                       PRIORITY RESOLUTION TABLE
  31          *
  32          * Note: Index into table is bit pattern to resolve highest priority
  33          *       Indexed value corresponds to highest priority bit position (i.e. 0..7)
  34          *********************************************************************************************************
  35          */
  36          
  37          INT8U  const  OSUnMapTbl[] = {
  38              0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x00 to 0x0F                             */
  39              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x10 to 0x1F                             */
  40              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x20 to 0x2F                             */
  41              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x30 to 0x3F                             */
  42              6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x40 to 0x4F                             */
  43              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x50 to 0x5F                             */
  44              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x60 to 0x6F                             */
  45              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x70 to 0x7F                             */
  46              7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x80 to 0x8F                             */
  47              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0x90 to 0x9F                             */
  48              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0xA0 to 0xAF                             */
  49              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0xB0 to 0xBF                             */
  50              6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0xC0 to 0xCF                             */
  51              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0xD0 to 0xDF                             */
  52              5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,       /* 0xE0 to 0xEF                             */
  53              4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0        /* 0xF0 to 0xFF                             */
  54          };
  55          
C51 COMPILER V7.20   OS_CORE                                                               09/25/2006 10:08:38 PAGE 2   

  56          /*
  57          *********************************************************************************************************
  58          *                                       FUNCTION PROTOTYPES
  59          *********************************************************************************************************
  60          */
  61          static  void  OS_InitEventList(void) reentrant;
  62          static  void  OS_InitMisc(void) reentrant;
  63          static  void  OS_InitRdyList(void) reentrant;
  64          static  void  OS_InitTaskIdle(void) reentrant;
  65          static  void  OS_InitTaskStat(void) reentrant;
  66          static  void  OS_InitTCBList(void) reentrant;
  67          
  68          /*$PAGE*/
  69          /*
  70          *********************************************************************************************************
  71          *                                             INITIALIZATION
  72          *
  73          * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
  74          *              creating any uC/OS-II object and, prior to calling OSStart().
  75          *
  76          * Arguments  : none
  77          *
  78          * Returns    : none
  79          *********************************************************************************************************
  80          */
  81          
  82          void  OSInit (void)  reentrant
  83          {
  84   1      #if OS_VERSION >= 204
  85   1          OSInitHookBegin();                                           /* Call port specific initialization code
             -   */
  86   1      #endif
  87   1      
  88   1          OS_InitMisc();                                               /* Initialize miscellaneous variables    
             -   */
  89   1      
  90   1          OS_InitRdyList();                                            /* Initialize the Ready List             
             -   */
  91   1          OS_InitTCBList();                                            /* Initialize the free list of OS_TCBs   
             -   */
  92   1          OS_InitEventList();                                          /* Initialize the free list of OS_EVENTs 
             -   */
  93   1      
  94   1      #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
                  OS_FlagInit();                                               /* Initialize the event flag structures  
             -   */
              #endif
  97   1      
  98   1      #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0)
                  OS_MemInit();                                                /* Initialize the memory manager         
             -   */
              #endif
 101   1      
 102   1      #if (OS_Q_EN > 0) && (OS_MAX_QS > 0)
 103   1          OS_QInit();                                                  /* Initialize the message queue structure
             -s  */
 104   1      #endif
 105   1      
 106   1          OS_InitTaskIdle();                                           /* Create the Idle Task                  
             -   */
 107   1      #if OS_TASK_STAT_EN > 0
                  OS_InitTaskStat();                                           /* Create the Statistic Task             
C51 COMPILER V7.20   OS_CORE                                                               09/25/2006 10:08:38 PAGE 3   

             -   */
              #endif
 110   1      
 111   1      #if OS_VERSION >= 204
 112   1          OSInitHookEnd();                                             /* Call port specific init. code         
             -   */
 113   1      #endif
 114   1      }
 115          /*$PAGE*/
 116          /*
 117          *********************************************************************************************************
 118          *                                              ENTER ISR
 119          *
 120          * Description: This function is used to notify uC/OS-II that you are about to service an interrupt
 121          *              service routine (ISR).  This allows uC/OS-II to keep track of interrupt nesting and thus
 122          *              only perform rescheduling at the last nested ISR.
 123          *
 124          * Arguments  : none
 125          *
 126          * Returns    : none
 127          *
 128          * Notes      : 1) This function should be called ith interrupts already disabled
 129          *              2) Your ISR can directly increment OSIntNesting without calling this function because
 130          *                 OSIntNesting has been declared 'global'.  
 131          *              3) You MUST still call OSIntExit() even though you increment OSIntNesting directly.
 132          *              4) You MUST invoke OSIntEnter() and OSIntExit() in pair.  In other words, for every call
 133          *                 to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
 134          *                 end of the ISR.
 135          *              5) You are allowed to nest interrupts up to 255 levels deep.
 136          *              6) I removed the OS_ENTER_CRITICAL() and OS_EXIT_CRITICAL() around the increment because
 137          *                 OSIntEnter() is always called with interrupts disabled.
 138          *********************************************************************************************************
 139          */
 140          
 141          void  OSIntEnter (void) reentrant
 142          {
 143   1          if (OSRunning == TRUE) {
 144   2              if (OSIntNesting < 255) {
 145   3                  OSIntNesting++;                      /* Increment ISR nesting level                        */
 146   3              }
 147   2          }
 148   1      }
 149          /*$PAGE*/
 150          /*
 151          *********************************************************************************************************
 152          *                                               EXIT ISR
 153          *
 154          * Description: This function is used to notify uC/OS-II that you have completed serviving an ISR.  When
 155          *              the last nested ISR has completed, uC/OS-II will call the scheduler to determine whether
 156          *              a new, high-priority task, is ready to run.
 157          *
 158          * Arguments  : none
 159          *
 160          * Returns    : none
 161          *
 162          * Notes      : 1) You MUST invoke OSIntEnter() and OSIntExit() in pair.  In other words, for every call
 163          *                 to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
 164          *                 end of the ISR.
 165          *              2) Rescheduling is prevented when the scheduler is locked (see OS_SchedLock())
 166          *********************************************************************************************************
 167          */
 168          
C51 COMPILER V7.20   OS_CORE                                                               09/25/2006 10:08:38 PAGE 4   

 169          void  OSIntExit (void) reentrant
 170          {
 171   1      #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
                  OS_CPU_SR  cpu_sr;
              #endif
 174   1          
 175   1          
 176   1          if (OSRunning == TRUE) {
 177   2              OS_ENTER_CRITICAL();
 178   2              if (OSIntNesting > 0) {                            /* Prevent OSIntNesting from wrapping       */
 179   3                  OSIntNesting--;
 180   3              }
 181   2              if ((OSIntNesting == 0) && (OSLockNesting == 0)) { /* Reschedule only if all ISRs complete ... */
 182   3                  OSIntExitY    = OSUnMapTbl[OSRdyGrp];          /* ... and not locked.                      */
 183   3                  OSPrioHighRdy = (INT8U)((OSIntExitY << 3) + OSUnMapTbl[OSRdyTbl[OSIntExitY]]);
 184   3                  if (OSPrioHighRdy != OSPrioCur) {              /* No Ctx Sw if current task is highest rdy */
 185   4                      OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy];
 186   4                      OSCtxSwCtr++;                              /* Keep track of the number of ctx switches */
 187   4                      OSIntCtxSw();                              /* Perform interrupt level ctx switch       */
 188   4                  }
 189   3              }
 190   2              OS_EXIT_CRITICAL();
 191   2          }
 192   1      }
 193          /*$PAGE*/
 194          /*
 195          *********************************************************************************************************
 196          *                                          PREVENT SCHEDULING
 197          *
 198          * Description: This function is used to prevent rescheduling to take place.  This allows your application
 199          *              to prevent context switches until you are ready to permit context switching.
 200          *
 201          * Arguments  : none
 202          *
 203          * Returns    : none
 204          *
 205          * Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every
 206          *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女女做受ⅹxx高潮| 欧美日韩国产影片| 日本一区二区三区在线观看| 美女视频一区二区| 精品国产一区二区三区忘忧草 | 麻豆国产一区二区| 日韩一区二区三区精品视频 | 亚洲精品亚洲人成人网| 色综合亚洲欧洲| 一区二区三区中文字幕电影| 色哦色哦哦色天天综合| 亚洲成年人网站在线观看| 欧美精品日韩一本| 日韩高清在线观看| 久久综合九色欧美综合狠狠| 久久国产视频网| 日韩午夜av一区| 国产精品亚洲午夜一区二区三区| 久久婷婷国产综合精品青草| 成人午夜免费av| 一区二区三区在线影院| 日韩一区二区三区在线| 国产一区二区三区美女| 最新国产の精品合集bt伙计| 欧美影院午夜播放| 男人的天堂亚洲一区| 日本一区二区三区国色天香 | 亚洲激情在线激情| 制服丝袜av成人在线看| caoporn国产精品| 亚洲视频免费观看| 欧美二区三区91| 成人国产精品免费观看| 亚洲成人精品一区二区| 久久影视一区二区| 一本色道久久综合精品竹菊| 日韩中文字幕1| 久久精品夜色噜噜亚洲a∨| 欧美性猛片aaaaaaa做受| 精品一区二区三区免费| 136国产福利精品导航| 欧美色窝79yyyycom| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 丝袜亚洲另类欧美| 国产精品私人影院| 在线成人小视频| 99精品偷自拍| 加勒比av一区二区| 亚洲高清久久久| 欧美韩国日本综合| 日韩欧美的一区二区| 色综合久久66| 国产精品99久久久| 性感美女极品91精品| 国产精品久久网站| 欧美videossexotv100| 欧美丝袜自拍制服另类| 成人夜色视频网站在线观看| 日韩精品一区第一页| 一区二区三区精品在线| 国产日韩欧美亚洲| 精品国产一区二区三区忘忧草 | 成人黄色国产精品网站大全在线免费观看| 亚洲综合色视频| 欧美国产一区视频在线观看| 日韩一区二区三区视频在线| 欧美电视剧免费全集观看| 91视频免费观看| 成人天堂资源www在线| 精品一区二区三区欧美| 三级精品在线观看| 亚洲成人久久影院| 亚洲影院理伦片| 亚洲欧美色一区| 日本一区二区不卡视频| 久久亚洲一级片| 欧美videossexotv100| 91精品国产91综合久久蜜臀| 欧美丝袜自拍制服另类| 日本道精品一区二区三区 | 在线观看免费视频综合| 95精品视频在线| 成人免费观看男女羞羞视频| 国产成人啪免费观看软件| 国产一区91精品张津瑜| 激情六月婷婷久久| 精品一区二区免费| 国产美女娇喘av呻吟久久| 国产又黄又大久久| 国产精品亚洲一区二区三区妖精| 精品一区二区三区免费观看| 麻豆极品一区二区三区| 精品一区二区三区的国产在线播放| 另类小说欧美激情| 青青国产91久久久久久| 精品一区二区影视| 国产v综合v亚洲欧| 成年人网站91| 色综合av在线| 欧美日韩黄色影视| 日韩欧美久久久| 久久夜色精品国产欧美乱极品| 日韩女同互慰一区二区| 国产网红主播福利一区二区| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲制服丝袜一区| 亚洲午夜影视影院在线观看| 免费观看一级欧美片| 激情综合网激情| 国产v综合v亚洲欧| 91福利在线免费观看| 宅男噜噜噜66一区二区66| 久久久久久久久久久久久女国产乱 | 男女男精品网站| 日韩电影在线看| 日韩精品一二区| 国产成人在线视频播放| 91毛片在线观看| 欧美三级中文字幕在线观看| 精品国产三级a在线观看| 国产亚洲一本大道中文在线| 最新中文字幕一区二区三区| 亚洲一区二区三区不卡国产欧美| 久久精品理论片| 91免费观看在线| 国产区在线观看成人精品| 亚洲精选免费视频| 久草精品在线观看| 99精品欧美一区二区三区小说| 制服丝袜中文字幕一区| 中文一区一区三区高中清不卡| 亚洲一二三区不卡| 国产黄色91视频| 欧美电影一区二区三区| 亚洲欧美综合另类在线卡通| 五月激情综合色| 99久久伊人久久99| www久久久久| 亚洲一区二区精品视频| 国产精品一卡二| 欧美一区二区女人| 国产精品二三区| 婷婷成人综合网| 色综合天天综合网天天看片| 久久亚洲欧美国产精品乐播| 曰韩精品一区二区| 国内精品国产成人国产三级粉色| 欧美日韩一区二区三区四区五区| 中文字幕av免费专区久久| 六月丁香综合在线视频| 91免费观看国产| 国产精品久久久久一区 | 天天做天天摸天天爽国产一区| 国产最新精品精品你懂的| 欧美日韩国产在线播放网站| 中文字幕在线不卡一区二区三区| 国产一区福利在线| 91精品国产全国免费观看| 亚洲精品一二三区| 成人中文字幕合集| 久久一夜天堂av一区二区三区| 亚洲一区二区三区四区五区中文| 91亚洲精品久久久蜜桃| 国产欧美一区二区精品婷婷 | 国产精品一区二区男女羞羞无遮挡 | 另类调教123区| 在线观看www91| 国产视频一区不卡| 国模冰冰炮一区二区| 日韩美女视频一区二区在线观看| 亚洲欧美日韩国产成人精品影院| 成人综合日日夜夜| 久久精品亚洲乱码伦伦中文| 另类小说色综合网站| 日韩女优制服丝袜电影| 亚洲伊人色欲综合网| 成人永久免费视频| 日本一区二区三区四区在线视频| 国产99久久久国产精品 | 中文字幕在线一区二区三区| 日本不卡123| 亚洲精品一区二区三区精华液| 一区二区三区不卡视频 | 男男成人高潮片免费网站| 欧美三级日韩在线| 午夜亚洲福利老司机| 欧美精选在线播放| 男女视频一区二区| 欧美电视剧在线看免费| 国产精品一二三四| 国产免费成人在线视频| 成人一区在线看| 亚洲黄色免费电影| 91精品欧美一区二区三区综合在 | 精品剧情在线观看| 国产综合色产在线精品| 欧美日本精品一区二区三区| 亚洲成a人v欧美综合天堂下载| 欧美精品久久久久久久久老牛影院| 国产亚洲人成网站|