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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? os_core.lst

?? 運(yùn)行環(huán)境是keil。這是一個(gè)實(shí)現(xiàn)嵌入式TCP/IP的程序
?? LST
?? 第 1 頁 / 共 4 頁
字號:
 205   1          pevent->OSEventGrp = 0x00;                   /* No task waiting on event                           */
 206   1          for (i = 0; i < OS_EVENT_TBL_SIZE; i++) {
 207   2              pevent->OSEventTbl[i] = 0x00;
 208   2          }
 209   1      }
 210          #endif
 211          /*$PAGE*/
 212          /*
 213          *********************************************************************************************************
 214          *                                             INITIALIZATION
 215          *
 216          * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
 217          *              creating any uC/OS-II object and, prior to calling OSStart().
 218          *
 219          * Arguments  : none
 220          *
 221          * Returns    : none
 222          *********************************************************************************************************
 223          */
 224          
 225          void OSInit (void) reentrant
 226          {
 227   1          INT16U i;
 228   1      
 229   1      
 230   1          OSTime        = 0L;                                    /* Clear the 32-bit system clock            */
 231   1          OSIntNesting  = 0;                                     /* Clear the interrupt nesting counter      */
 232   1          OSLockNesting = 0;                                     /* Clear the scheduling lock counter        */
 233   1      #if OS_TASK_CREATE_EN  || OS_TASK_CREATE_EXT_EN || OS_TASK_DEL_EN
 234   1          OSTaskCtr     = 0;                                     /* Clear the number of tasks                */
 235   1      #endif
 236   1          OSRunning     = FALSE;                                 /* Indicate that multitasking not started   */
 237   1          OSIdleCtr     = 0L;                                    /* Clear the 32-bit idle counter            */
 238   1      #if OS_TASK_STAT_EN && OS_TASK_CREATE_EXT_EN
                  OSIdleCtrRun  = 0L;
                  OSIdleCtrMax  = 0L;
C51 COMPILER V6.12  OS_CORE                                                                04/12/2004 19:13:37 PAGE 5   

                  OSStatRdy     = FALSE;                                 /* Statistic task is not ready              */
              #endif
 243   1          OSCtxSwCtr    = 0;                                     /* Clear the context switch counter         */
 244   1          OSRdyGrp      = 0;                                     /* Clear the ready list                     */
 245   1          for (i = 0; i < OS_RDY_TBL_SIZE; i++) {
 246   2              OSRdyTbl[i] = 0;
 247   2          }
 248   1      
 249   1          OSPrioCur     = 0;
 250   1          OSPrioHighRdy = 0;
 251   1          OSTCBHighRdy  = (OS_TCB *)0;                                 /* TCB Initialization                 */
 252   1          OSTCBCur      = (OS_TCB *)0;
 253   1          OSTCBList     = (OS_TCB *)0;
 254   1          for (i = 0; i < (OS_LOWEST_PRIO + 1); i++) {                 /* Clear the priority table           */
 255   2              OSTCBPrioTbl[i] = (OS_TCB *)0;
 256   2          }
 257   1          for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) {  /* Init. list of free TCBs            */
 258   2              OSTCBTbl[i].OSTCBNext = &OSTCBTbl[i + 1];
 259   2          }
 260   1          OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS - 1].OSTCBNext = (OS_TCB *)0;    /* Last OS_TCB             */
 261   1          OSTCBFreeList                                         = &OSTCBTbl[0];
 262   1      
 263   1      #if OS_MAX_EVENTS >= 2
 264   1          for (i = 0; i < (OS_MAX_EVENTS - 1); i++) {            /* Init. list of free EVENT control blocks  */
 265   2              OSEventTbl[i].OSEventPtr = (OS_EVENT *)&OSEventTbl[i + 1];
 266   2          }
 267   1          OSEventTbl[OS_MAX_EVENTS - 1].OSEventPtr = (OS_EVENT *)0;
 268   1          OSEventFreeList                          = &OSEventTbl[0];
 269   1      #endif
 270   1      
 271   1      #if OS_Q_EN && (OS_MAX_QS >= 2)
                  OSQInit();                                             /* Initialize the message queue structures  */
              #endif
 274   1      
 275   1      #if OS_MEM_EN && OS_MAX_MEM_PART >= 2
                  OSMemInit();                                           /* Initialize the memory manager            */
              #endif
 278   1      
 279   1      #if OS_STK_GROWTH == 1
                  #if OS_TASK_CREATE_EXT_EN
                  OSTaskCreateExt(OSTaskIdle,
                                  (void *)0,                                 /* No arguments passed to OSTaskIdle()  */
                                  &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], /* Set Top-Of-Stack                     */
                                  OS_IDLE_PRIO,                              /* Lowest priority level                */
                                  OS_TASK_IDLE_ID,
                                  &OSTaskIdleStk[0],                         /* Set Bottom-Of-Stack                  */
                                  OS_TASK_IDLE_STK_SIZE,
                                  (void *)0,                                 /* No TCB extension                     */
                                  OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);/* Enable stack checking + clear stack  */
                  #else
                  OSTaskCreate(OSTaskIdle, (void *)0, &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], OS_IDLE_PRIO);
                  #endif
              #else
 294   1          #if OS_TASK_CREATE_EXT_EN
                  OSTaskCreateExt(OSTaskIdle,
                                  (void *)0,                                 /* No arguments passed to OSTaskIdle()  */
                                  &OSTaskIdleStk[0],                         /* Set Top-Of-Stack                     */
                                  OS_IDLE_PRIO,                              /* Lowest priority level                */
                                  OS_TASK_IDLE_ID,
                                  &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], /* Set Bottom-Of-Stack                  */
                                  OS_TASK_IDLE_STK_SIZE,
                                  (void *)0,                                 /* No TCB extension                     */
C51 COMPILER V6.12  OS_CORE                                                                04/12/2004 19:13:37 PAGE 6   

                                  OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);/* Enable stack checking + clear stack  */
                  #else
 305   1          OSTaskCreate(OSTaskIdle, (void *)0, &OSTaskIdleStk[0], OS_IDLE_PRIO);
 306   1          #endif
 307   1      #endif
 308   1      
 309   1      #if OS_TASK_STAT_EN
                  #if OS_TASK_CREATE_EXT_EN
                      #if OS_STK_GROWTH == 1
                      OSTaskCreateExt(OSTaskStat,
                                      (void *)0,                                /* No args passed to OSTaskStat()    */
                                      &OSTaskStatStk[OS_TASK_STAT_STK_SIZE - 1],/* Set Top-Of-Stack                  */
                                      OS_STAT_PRIO,                             /* One higher than the idle task     */
                                      OS_TASK_STAT_ID,
                                      &OSTaskStatStk[0],                        /* Set Bottom-Of-Stack               */
                                      OS_TASK_STAT_STK_SIZE,
                                      (void *)0,                                /* No TCB extension                  */
                                      OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  /* Enable stack checking + clear  */
                      #else
                      OSTaskCreateExt(OSTaskStat,
                                      (void *)0,                                /* No args passed to OSTaskStat()    */
                                      &OSTaskStatStk[0],                        /* Set Top-Of-Stack                  */
                                      OS_STAT_PRIO,                             /* One higher than the idle task     */
                                      OS_TASK_STAT_ID,
                                      &OSTaskStatStk[OS_TASK_STAT_STK_SIZE - 1],/* Set Bottom-Of-Stack               */
                                      OS_TASK_STAT_STK_SIZE,
                                      (void *)0,                                /* No TCB extension                  */
                                      OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  /* Enable stack checking + clear  */
                      #endif
                  #else
                      #if OS_STK_GROWTH == 1
                      OSTaskCreate(OSTaskStat,
                                   (void *)0,                                   /* No args passed to OSTaskStat()    */
                                   &OSTaskStatStk[OS_TASK_STAT_STK_SIZE - 1],   /* Set Top-Of-Stack                  */
                                   OS_STAT_PRIO);                               /* One higher than the idle task     */
                      #else
                      OSTaskCreate(OSTaskStat,
                                   (void *)0,                                   /* No args passed to OSTaskStat()    */
                                   &OSTaskStatStk[0],                           /* Set Top-Of-Stack                  */
                                   OS_STAT_PRIO);                               /* One higher than the idle task     */
                      #endif
                  #endif
              #endif
 346   1      }
 347          /*$PAGE*/
 348          /*
 349          *********************************************************************************************************
 350          *                                              ENTER ISR
 351          *
 352          * Description: This function is used to notify uC/OS-II that you are about to service an interrupt
 353          *              service routine (ISR).  This allows uC/OS-II to keep track of interrupt nesting and thus
 354          *              only perform rescheduling at the last nested ISR.
 355          *
 356          * Arguments  : none
 357          *
 358          * Returns    : none
 359          *
 360          * Notes      : 1) Your ISR can directly increment OSIntNesting without calling this function because
 361          *                 OSIntNesting has been declared 'global'.  You MUST, however, be sure that the increment
 362          *                 is performed 'indivisibly' by your processor to ensure proper access to this critical
 363          *                 resource.
 364          *              2) You MUST still call OSIntExit() even though you increment OSIntNesting directly.
C51 COMPILER V6.12  OS_CORE                                                                04/12/2004 19:13:37 PAGE 7   

 365          *              3) You MUST invoke OSIntEnter() and OSIntExit() in pair.  In other words, for every call
 366          *                 to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
 367          *                 end of the ISR.
 368          *********************************************************************************************************
 369          */
 370          
 371          void OSIntEnter (void) reentrant
 372          {
 373   1          OS_ENTER_CRITICAL();
 374   1          OSIntNesting++;                              /* Increment ISR nesting level                        */
 375   1          OS_EXIT_CRITICAL();
 376   1      }
 377          /*$PAGE*/
 378          /*
 379          *********************************************************************************************************
 380          *                                               EXIT ISR
 381          *
 382          * Description: This function is used to notify uC/OS-II that you have completed serviving an ISR.  When
 383          *              the last nested ISR has completed, uC/OS-II will call the scheduler to determine whether
 384          *              a new, high-priority task, is ready to run.
 385          *
 386          * Arguments  : none
 387          *
 388          * Returns    : none
 389          *
 390          * Notes      : 1) You MUST invoke OSIntEnter() and OSIntExit() in pair.  In other words, for every call
 391          *                 to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
 392          *                 end of the ISR.
 393          *              2) Rescheduling is prevented when the scheduler is locked (see OSSchedLock())
 394          *********************************************************************************************************
 395          */
 396          
 397          void OSIntExit (void) reentrant
 398          {
 399   1          OS_ENTER_CRITICAL();
 400   1          if ((--OSIntNesting | OSLockNesting) == 0) { /* Reschedule only if all ISRs completed & not locked */
 401   2              OSIntExitY    = OSUnMapTbl[OSRdyGrp];
 402   2              OSPrioHighRdy = (INT8U)((OSIntExitY << 3) + OSUnMapTbl[OSRdyTbl[OSIntExitY]]);
 403   2              if (OSPrioHighRdy != OSPrioCur) {        /* No context switch if current task is highest ready */
 404   3                  OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy];
 405   3                  OSCtxSwCtr++;                        /* Keep track of the number of context switches       */
 406   3                  OSIntCtxSw();                        /* Perform interrupt level context switch             */
 407   3              }
 408   2          }
 409   1          OS_EXIT_CRITICAL();
 410   1      }
 411          /*$PAGE*/
 412          /*
 413          *********************************************************************************************************
 414          *                                              SCHEDULER
 415          *
 416          * Description: This function is called by other uC/OS-II services to determine whether a new, high
 417          *              priority task has been made ready to run.  This function is invoked by TASK level code
 418          *              and is not used to reschedule tasks from ISRs (see OSIntExit() for ISR rescheduling).

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人18视频在线播放| 在线观看精品一区| 亚洲成人一二三| 久久久一区二区三区| 欧美午夜精品一区| 粉嫩aⅴ一区二区三区四区五区| 亚洲资源在线观看| 欧美国产成人精品| 制服丝袜日韩国产| 色婷婷综合久久久中文一区二区 | 久久99精品国产麻豆婷婷洗澡| 国产精品久久影院| 精品动漫一区二区三区在线观看| 色综合 综合色| 成人一区二区三区中文字幕| 琪琪久久久久日韩精品| 一区二区三区毛片| 综合色天天鬼久久鬼色| 久久综合网色—综合色88| 欧美人xxxx| 91激情五月电影| av一二三不卡影片| 国产99精品国产| 国产伦精一区二区三区| 老司机精品视频线观看86| 午夜电影久久久| 亚洲成人手机在线| 亚洲一二三四区| 一区二区三区四区不卡视频| 中文字幕av一区 二区| 国产日韩在线不卡| 国产女人aaa级久久久级| 久久日韩精品一区二区五区| 日韩视频在线永久播放| 91精品国产综合久久香蕉的特点| 欧美挠脚心视频网站| 欧美日韩五月天| 欧美老年两性高潮| 欧美电影一区二区| 欧美一卡二卡在线| 日韩欧美一级二级三级| 日韩一区二区在线观看视频| 日韩欧美高清dvd碟片| 精品欧美久久久| 国产喂奶挤奶一区二区三区| 久久久精品黄色| 中文字幕在线不卡| 一区二区三区小说| 亚洲成人激情社区| 蜜乳av一区二区| 精品一区二区三区在线视频| 狠狠色丁香婷综合久久| 国产一区久久久| jlzzjlzz亚洲女人18| 91国产精品成人| 欧美精品九九99久久| 欧美大片国产精品| 欧美经典一区二区三区| 综合av第一页| 亚洲国产综合91精品麻豆| 午夜视频在线观看一区二区 | 国产成人精品免费网站| 不卡一区二区三区四区| 在线观看一区日韩| 91精品国产乱| 国产欧美日产一区| 亚洲午夜日本在线观看| 免费成人av资源网| 国产sm精品调教视频网站| 91福利社在线观看| 日韩欧美高清一区| 综合欧美一区二区三区| 视频一区中文字幕| 国产成a人亚洲| 欧美日韩午夜影院| 国产三级欧美三级日产三级99| 国产精品初高中害羞小美女文| 亚洲午夜在线观看视频在线| 麻豆国产精品官网| 色综合久久综合网欧美综合网| 91精品国产综合久久久久久| 久久久久国色av免费看影院| 亚洲精品免费播放| 久久99这里只有精品| 91美女片黄在线观看| 精品免费99久久| 亚洲免费观看在线视频| 久久99精品国产麻豆婷婷洗澡| 99久久亚洲一区二区三区青草| 777午夜精品免费视频| 国产精品国产三级国产aⅴ中文| 午夜成人免费视频| 91在线观看地址| 久久久久久久久久久久久夜| 亚洲一区二区欧美| 大胆欧美人体老妇| 日韩亚洲欧美一区| 亚洲一区二区欧美日韩| 国产mv日韩mv欧美| 欧美大片日本大片免费观看| 亚洲中国最大av网站| 成人小视频在线观看| 精品免费国产二区三区| 亚洲电影激情视频网站| 99久久久无码国产精品| 久久久久久久久岛国免费| 亚洲成a人片在线不卡一二三区 | 国产伦理精品不卡| 日韩一级完整毛片| 亚洲伊人伊色伊影伊综合网| 国产不卡视频在线播放| 亚洲精品一区二区三区影院 | 日韩亚洲欧美中文三级| 一区二区三区**美女毛片| 成人免费高清视频在线观看| 欧美刺激脚交jootjob| 午夜精品一区二区三区三上悠亚| 91在线播放网址| 国产精品美女一区二区三区| 国产九九视频一区二区三区| 日韩一级成人av| 日本少妇一区二区| 欧美日韩一卡二卡| 亚洲欧美一区二区久久| 99在线精品观看| 中文字幕日韩一区二区| 国产成人av电影免费在线观看| 精品国产亚洲在线| 国内精品不卡在线| 精品国产一区二区三区久久久蜜月| 日韩综合小视频| 91.麻豆视频| 婷婷久久综合九色综合伊人色| 欧美体内she精视频| 亚洲午夜在线观看视频在线| 欧美图区在线视频| 午夜免费欧美电影| 欧美一区二区三区四区在线观看| 亚洲国产视频在线| 69精品人人人人| 久久精品国产精品亚洲综合| 日韩一区二区在线看片| 久久成人羞羞网站| 国产日韩欧美a| 不卡一区二区中文字幕| 亚洲男人的天堂一区二区| 欧洲在线/亚洲| 日韩国产欧美一区二区三区| 欧美伦理电影网| 久久不见久久见免费视频1| 久久人人97超碰com| 成人午夜免费av| 亚洲欧美日韩一区二区三区在线观看| 色屁屁一区二区| 三级在线观看一区二区| 欧美成人在线直播| 成人av电影在线播放| 亚洲精品亚洲人成人网| 欧美精品乱码久久久久久| 久久97超碰国产精品超碰| 国产亚洲一区二区三区四区 | 毛片不卡一区二区| 久久久精品影视| 91论坛在线播放| 三级精品在线观看| 国产亚洲成年网址在线观看| 94-欧美-setu| 免费成人深夜小野草| 亚洲国产高清aⅴ视频| 色婷婷国产精品综合在线观看| 婷婷综合五月天| 国产欧美日韩不卡| 欧美日韩激情一区| 国产精品亚洲专一区二区三区| 自拍偷拍欧美激情| 日韩精品一区二区三区视频在线观看| 国产精品一线二线三线| 一区二区三区视频在线观看| 91精品国产麻豆国产自产在线| 国产99精品国产| 日韩精品视频网站| 国产精品久久久久久久久免费相片 | 亚洲色欲色欲www在线观看| 欧美在线视频不卡| 国产精品一区二区在线观看不卡| 亚洲精品国产一区二区精华液| 日韩一卡二卡三卡国产欧美| 成人动漫在线一区| 捆绑调教一区二区三区| 亚洲精品日日夜夜| 国产日韩欧美电影| 日韩一区二区中文字幕| 色婷婷亚洲综合| 国产成人av自拍| 日韩黄色在线观看| 亚洲视频你懂的| 国产日韩欧美精品电影三级在线| 欧美日本韩国一区| 91免费看片在线观看| 国产精品自拍一区|