亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美日韩激情一区二区三区| 亚洲福利一区二区三区| 欧美日韩小视频| 九九视频精品免费| 亚洲色欲色欲www| 欧美一二三在线| 精品在线免费视频| 26uuu成人网一区二区三区| 国产91精品精华液一区二区三区| 亚洲动漫第一页| 亚洲婷婷综合久久一本伊一区| 日韩一区二区在线看片| 91首页免费视频| 国产精华液一区二区三区| 天堂成人国产精品一区| 悠悠色在线精品| 综合自拍亚洲综合图不卡区| 26uuu精品一区二区| 亚洲精品在线网站| 3atv一区二区三区| 欧美色图激情小说| 岛国一区二区在线观看| 久久精品免费观看| 青青草91视频| 日韩激情在线观看| 青椒成人免费视频| 日韩高清不卡一区| 捆绑调教一区二区三区| 首页欧美精品中文字幕| 亚洲综合色成人| 亚洲三级在线免费观看| 亚洲欧美日韩久久| 国产免费成人在线视频| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩一本到| 欧美日韩一区二区三区不卡| 欧美一区二区精品在线| 精品三级在线观看| 久久久久久久网| |精品福利一区二区三区| 欧美激情资源网| 国产精品剧情在线亚洲| 国产精品久久午夜| 亚洲综合色在线| 亚洲欧美日韩国产另类专区 | 成人一区二区三区在线观看| 99这里只有久久精品视频| 激情文学综合丁香| 成人av影院在线| 欧美日韩日本视频| 国产日韩欧美精品一区| 亚洲精品成人精品456| 天天av天天翘天天综合网 | 亚洲国产日韩综合久久精品| 国产一区二区免费看| 欧美在线免费观看亚洲| 欧美精品一区二区三区蜜臀| 亚洲综合在线视频| 成人高清视频在线观看| 欧美成人猛片aaaaaaa| 天堂午夜影视日韩欧美一区二区| 国精产品一区一区三区mba视频| thepron国产精品| 欧美一区二区三区四区在线观看| 国产人伦精品一区二区| 国产一区中文字幕| 精品久久久久久久久久久久包黑料 | 成人免费毛片片v| 欧美一二三四区在线| 亚洲欧洲精品天堂一级 | 日韩一区二区三区免费看| 亚洲美腿欧美偷拍| 色综合久久久久| 1024成人网色www| 91丨九色porny丨蝌蚪| 亚洲天堂福利av| 91丨porny丨中文| 亚洲日本在线天堂| 成人黄色一级视频| 欧美高清在线视频| av不卡免费在线观看| 亚洲色图欧美在线| 精品视频一区 二区 三区| 依依成人综合视频| 色综合色综合色综合色综合色综合 | 欧美日韩亚洲综合一区| 亚洲成av人片一区二区| 欧美日韩国产a| 日韩国产在线观看一区| 欧美视频自拍偷拍| 亚洲美女精品一区| 欧美日韩一区三区四区| 麻豆一区二区在线| 国产精品久久久久国产精品日日| 99久久99久久精品国产片果冻| 日韩视频在线永久播放| 高清国产一区二区| 欧美韩国日本不卡| 粉嫩久久99精品久久久久久夜| 国产精品美女一区二区在线观看| 色呦呦日韩精品| 国产在线精品视频| 亚洲一级电影视频| 国产精品久久夜| 欧美mv日韩mv国产网站app| 成人性色生活片| 怡红院av一区二区三区| 国产网红主播福利一区二区| 欧美高清激情brazzers| 色综合天天综合网天天狠天天| 免费观看久久久4p| 日韩激情在线观看| 亚洲精品国产无天堂网2021| 国产女同性恋一区二区| 日韩欧美一卡二卡| 91精品国产综合久久精品图片 | 欧美aaaaaa午夜精品| 成人免费一区二区三区视频| 国产精品美女久久久久久久网站| 日韩一级成人av| 欧美性猛交xxxx黑人交| 成人18精品视频| 色综合久久六月婷婷中文字幕| 国产福利精品一区二区| 国产一区二区三区日韩| 久久福利资源站| 婷婷久久综合九色综合绿巨人| 最新欧美精品一区二区三区| 精品久久久久99| 91丝袜美腿高跟国产极品老师| 国产黄人亚洲片| 91国内精品野花午夜精品| 欧美精品久久一区| 日韩午夜三级在线| 精品国产三级a在线观看| 精品成人私密视频| 自拍偷拍亚洲欧美日韩| 亚洲成人动漫一区| 国产一区二区三区日韩| caoporn国产一区二区| 99久久综合精品| 欧美揉bbbbb揉bbbbb| 欧美一级免费大片| 久久久久久久久久久久久夜| 国产精品久久久久久亚洲伦| 亚洲免费色视频| 久久福利视频一区二区| 欧美怡红院视频| 久久久国产综合精品女国产盗摄| 日韩一区欧美一区| 亚洲一区二区中文在线| 国产精品青草久久| 一区二区三区.www| 国产激情视频一区二区在线观看| 在线看一区二区| 久久精品欧美日韩| 中文字幕一区免费在线观看| 国产偷国产偷亚洲高清人白洁| 一区二区三区在线视频观看58| 九色综合国产一区二区三区| 成人18视频日本| 91麻豆精品国产91久久久使用方法 | 日韩免费性生活视频播放| 亚洲人成人一区二区在线观看| 日韩和欧美一区二区三区| 不卡一区在线观看| 欧美电影在哪看比较好| 国产女人18水真多18精品一级做| 伊人一区二区三区| 国产**成人网毛片九色| 精品成人私密视频| 久久精品久久综合| 欧美综合一区二区三区| 亚洲美女区一区| 亚洲精品久久嫩草网站秘色| 亚洲国产精品一区二区久久恐怖片| 国产精品88av| 精品国产乱码久久久久久浪潮| 亚洲曰韩产成在线| 国产福利电影一区二区三区| 精品欧美乱码久久久久久| 亚洲高清一区二区三区| 色噜噜狠狠成人网p站| 中文字幕高清一区| 国产九色精品成人porny| 欧美人动与zoxxxx乱| 久久激情五月激情| 日韩网站在线看片你懂的| 免费观看91视频大全| 日韩欧美中文字幕公布| 老司机精品视频线观看86| 欧美另类高清zo欧美| 亚洲第一主播视频| 欧美一区二区视频在线观看| 午夜久久久久久久久久一区二区| 在线观看亚洲精品视频| 美女一区二区三区| 久久亚洲精华国产精华液 | 中文成人av在线| 在线观看日韩一区|