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

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

?? os_core.lst

?? 在C8051F120內移植uCOS-II
?? LST
?? 第 1 頁 / 共 4 頁
字號:
             -  */
 449   2              OSPrioHighRdy      = (INT8U)((y << 3) + OSUnMapTbl[OSRdyTbl[y]]);
 450   2              if (OSPrioHighRdy != OSPrioCur) {         /* No context switch if current task is highest ready */
 451   3                  OSTCBHighRdy   = OSTCBPrioTbl[OSPrioHighRdy];
 452   3                  OSCtxSwCtr++;                         /* Increment context switch counter                   */
 453   3                  OSCtxSw();                            /* Perform a context switch                           */
 454   3              }
 455   2          }
 456   1          OS_EXIT_CRITICAL();
 457   1      }
 458          /*$PAGE*/
 459          /*
 460          *********************************************************************************************************
 461          *                                          PREVENT SCHEDULING
 462          *
 463          * Description: This function is used to prevent rescheduling to take place.  This allows your application
 464          *              to prevent context switches until you are ready to permit context switching.
 465          *
 466          * Arguments  : none
 467          *
 468          * Returns    : none
 469          *
 470          * Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every 
 471          *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().
 472          *********************************************************************************************************
 473          */
 474          #if  OSSCHED_LOCK_EN
              void OSSchedLock (void)reentrant
              {
                  #if OS_CRITICAL_METHOD == 2
                      unsigned DTYPE int_ss;
                      #endif 
              
                      if (OSRunning == TRUE) {                     /* Make sure multitasking is running                  */
                      OS_ENTER_CRITICAL();
                      OSLockNesting++;                         /* Increment lock nesting level                       */
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 9   

                      OS_EXIT_CRITICAL();
                  }
              }
              /*$PAGE*/
              /*
              *********************************************************************************************************
              *                                          ENABLE SCHEDULING
              *
              * Description: This function is used to re-allow rescheduling.  
              *
              * Arguments  : none
              *
              * Returns    : none
              *
              * Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every 
              *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().
              *********************************************************************************************************
              */
              
              void OSSchedUnlock (void)reentrant
              {
                  #if OS_CRITICAL_METHOD == 2
                      unsigned DTYPE int_ss;
                      #endif 
              
                      if (OSRunning == TRUE) {                           /* Make sure multitasking is running            */
                      OS_ENTER_CRITICAL();
                      if (OSLockNesting > 0) {                       /* Do not decrement if already 0                */
                          OSLockNesting--;                           /* Decrement lock nesting level                 */
                          if ((OSLockNesting | OSIntNesting) == 0) { /* See if scheduling re-enabled and not an ISR  */
                              OS_EXIT_CRITICAL();
                              OSSched();                             /* See if a higher priority task is ready       */
                          } else {
                              OS_EXIT_CRITICAL();
                          }
                      } else {
                          OS_EXIT_CRITICAL();
                      }
                  }
              }
              #endif
 525          /*$PAGE*/
 526          /*
 527          *********************************************************************************************************
 528          *                                          START MULTITASKING
 529          *
 530          * Description: This function is used to start the multitasking process which lets uC/OS-II manages the
 531          *              task that you have created.  Before you can call OSStart(), you MUST have called OSInit()
 532          *              and you MUST have created at least one task.
 533          *
 534          * Arguments  : none
 535          *
 536          * Returns    : none
 537          *
 538          * Note       : OSStartHighRdy() MUST:
 539          *                 a) Call OSTaskSwHook() then,
 540          *                 b) Set OSRunning to TRUE.
 541          *********************************************************************************************************
 542          */
 543          
 544          void OSStart()
 545          {
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 10  

 546   1          INT8U y;
 547   1          INT8U x;
 548   1      
 549   1      
 550   1          if(OSRunning == FALSE) 
 551   1              {
 552   2              y             = OSUnMapTbl[OSRdyGrp];        /* Find highest priority's task priority number   */
 553   2              x             = OSUnMapTbl[OSRdyTbl[y]];
 554   2              OSPrioHighRdy = (INT8U)((y << 3) + x);
 555   2              OSPrioCur     = OSPrioHighRdy;
 556   2              OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy]; /* Point to highest priority task ready to run    */
 557   2              OSTCBCur      = OSTCBHighRdy;
 558   2              OSStartHighRdy();                            /* Execute target specific code to start task     */
 559   2          }
 560   1      }
 561          /*$PAGE*/
 562          /*
 563          *********************************************************************************************************
 564          *                                        STATISTICS INITIALIZATION
 565          *
 566          * Description: This function is called by your application to establish CPU usage by first determining
 567          *              how high a 32-bit counter would count to in 1 second if no other tasks were to execute
 568          *              during that time.  CPU usage is then determined by a low priority task which keeps track
 569          *              of this 32-bit counter every second but this time, with other tasks running.  CPU usage is
 570          *              determined by:
 571          *
 572          *                                             OSIdleCtr
 573          *                 CPU Usage (%) = 100 * (1 - ------------)
 574          *                                            OSIdleCtrMax
 575          *
 576          * Arguments  : none
 577          *
 578          * Returns    : none
 579          *********************************************************************************************************
 580          */
 581          
 582          #if OS_TASK_STAT_EN
              void OSStatInit (void)reentrant
              {
                  #if OS_CRITICAL_METHOD == 2
                      unsigned DTYPE int_ss;
                      #endif 
              
              
                      OSTimeDly(2);                                /* Synchronize with clock tick                        */
                  OS_ENTER_CRITICAL();
                  OSIdleCtr    = 0L;                           /* Clear idle counter                                 */
                  OS_EXIT_CRITICAL();
                  OSTimeDly(OS_TICKS_PER_SEC);                 /* Determine MAX. idle counter value for 1 second     */
                  OS_ENTER_CRITICAL();
                  OSIdleCtrMax = OSIdleCtr;                    /* Store maximum idle counter count in 1 second       */
                  OSStatRdy    = TRUE;
                  OS_EXIT_CRITICAL();
              }
              #endif
 601          /*$PAGE*/
 602          /*
 603          *********************************************************************************************************
 604          *                                              IDLE TASK
 605          *
 606          * Description: This task is internal to uC/OS-II and executes whenever no other higher priority tasks
 607          *              executes because they are waiting for event(s) to occur.
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 11  

 608          *
 609          * Arguments  : none
 610          *
 611          * Returns    : none
 612          *********************************************************************************************************
 613          */
 614          void OSTaskIdle (void *dataptr)reentrant
 615          {
 616   1          //sendstring("\r\n空閑任務:");sendbyte(EA);   
 617   1          #if OS_CRITICAL_METHOD == 2
 618   1              unsigned DTYPE int_ss;
 619   1              #endif 
 620   1      
 621   1              INT8U  i;
 622   1          dataptr = dataptr;    /* Prevent compiler warning for not using 'dataptr'     */
 623   1          //sendstring("\r\n空閑任務:");sendbyte(EA);
 624   1          OS_ENTER_CRITICAL();        
 625   1          OSIdleCtr++;
 626   1          OS_EXIT_CRITICAL();
 627   1          for(i=0;i<1;i++)
 628   1          {
 629   2            ;
 630   2          }
 631   1      }
 632          /*$PAGE*/
 633          /*
 634          *********************************************************************************************************
 635          *                                            STATISTICS TASK
 636          *
 637          * Description: This task is internal to uC/OS-II and is used to compute some statistics about the
 638          *              multitasking environment.  Specifically, OSTaskStat() computes the CPU usage.
 639          *              CPU usage is determined by:
 640          *
 641          *                                          OSIdleCtr
 642          *                 OSCPUUsage = 100 * (1 - ------------)     (units are in %)
 643          *                                         OSIdleCtrMax
 644          *
 645          * Arguments  : dataptr     this pointer is not used at this time.
 646          *
 647          * Returns    : none
 648          *
 649          * Notes      : 1) This task runs at a priority level higher than the idle task.  In fact, it runs at the
 650          *                 next higher priority, OS_IDLE_PRIO-1.
 651          *              2) You can disable this task by setting the configuration #define OS_TASK_STAT_EN to 0.
 652          *              3) We delay for 5 seconds in the beginning to allow the system to reach steady state and
 653          *                 have all other tasks created before we do statistics.  You MUST have at least a delay
 654          *                 of 2 seconds to allow for the system to establish the maximum value for the idle 
 655          *                 counter.
 656          *********************************************************************************************************
 657          */
 658          
 659          #if OS_TASK_STAT_EN
              void OSTaskStat (void *dataptr)reentrant
              {
                  INT32U run;
                  INT8S  usage;
                  #if OS_CRITICAL_METHOD == 2
                      unsigned DTYPE int_ss;
                      #endif 
                  
                  dataptr = dataptr;                               /* Prevent compiler warning for not using 'dataptr'  
             -   */
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 12  

                  while (OSStatRdy == FALSE) {
                      OSTimeDly(2 * OS_TICKS_PER_SEC);             /* Wait until statistic task is ready                
             - */
                  }
                  for (;;) {
                      OS_ENTER_CRITICAL();
                      OSIdleCtrRun = OSIdleCtr;                /* Obtain the of the idle counter for the past second */
                      run          = OSIdleCtr;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品777| 午夜电影网一区| 国产69精品一区二区亚洲孕妇| 日韩欧美在线123| 免费成人av资源网| 久久男人中文字幕资源站| 国产一区在线不卡| 国产精品午夜久久| 91麻豆免费看片| 五月激情综合色| 国产日韩v精品一区二区| 国产成人亚洲综合a∨婷婷图片| 亚洲国产高清不卡| 91丨九色丨黑人外教| 午夜私人影院久久久久| 精品国产污污免费网站入口 | 91视频在线看| 亚洲成人精品一区| 精品国产伦一区二区三区观看体验| 国产一区二区三区在线观看精品 | 亚洲午夜久久久久久久久电影院| 欧美人妖巨大在线| 国产精品一二三区| 一区二区三区四区高清精品免费观看 | 亚洲国产美国国产综合一区二区| 欧美老女人在线| 国产精品影视网| 亚洲国产视频a| 国产人成一区二区三区影院| 欧洲视频一区二区| 国产精品一二三四| 亚洲电影中文字幕在线观看| 久久精品一区二区三区av| 在线免费观看日本一区| 国产一区二区网址| 亚洲成人午夜影院| 欧美国产综合色视频| 欧美一区二区三区啪啪| 懂色av一区二区三区免费观看 | 亚洲精品国产品国语在线app| 91精品国产一区二区三区| 成人精品gif动图一区| 免费成人在线观看视频| 亚洲一区二区中文在线| 国产精品无遮挡| 精品国产91亚洲一区二区三区婷婷| 色婷婷久久久久swag精品| 国产不卡视频在线播放| 美女高潮久久久| 亚洲第一综合色| 亚洲图片另类小说| 亚洲国产成人一区二区三区| 欧美电视剧在线看免费| 欧美精品久久99| 欧美在线免费观看亚洲| 91网上在线视频| 成人激情综合网站| 高清不卡在线观看| 青青草国产成人av片免费| 一区二区三区在线免费视频 | 在线观看亚洲a| 成人国产精品免费观看| 国产又粗又猛又爽又黄91精品| 亚洲成人精品一区| 亚洲v中文字幕| 亚洲一区二区av在线| 亚洲精品网站在线观看| 亚洲日本中文字幕区| 国产精品护士白丝一区av| 日本一区二区三区在线不卡 | 国产精品视频看| 久久老女人爱爱| 精品999在线播放| 久久综合五月天婷婷伊人| 欧美成人性战久久| 精品国产青草久久久久福利| 日韩欧美亚洲国产另类| 日韩女优电影在线观看| 欧美精品一二三区| 宅男噜噜噜66一区二区66| 欧美二区在线观看| 日韩视频在线一区二区| 欧美美女激情18p| 日韩午夜精品电影| 精品欧美一区二区久久| 久久久久国产免费免费| 久久久久国产精品厨房| 国产欧美日韩不卡| 亚洲另类色综合网站| 亚洲小少妇裸体bbw| 日韩激情一二三区| 久久97超碰色| 丁香另类激情小说| 色综合天天综合网国产成人综合天| 99久久精品国产导航| 欧美性欧美巨大黑白大战| 欧美精品日韩一本| 欧美成人国产一区二区| 久久久国产午夜精品| 中文字幕中文字幕一区| 一级中文字幕一区二区| 日本亚洲一区二区| 国产suv精品一区二区6| 欧美在线视频日韩| 日韩久久久久久| 日韩伦理电影网| 午夜伊人狠狠久久| 国产不卡视频一区二区三区| 在线观看日韩电影| 久久综合色之久久综合| 国产精品久久久久久福利一牛影视| 亚洲综合在线视频| 国产一区二区影院| 色爱区综合激月婷婷| 日韩精品一区二区三区swag | 亚洲欧洲国产日韩| 五月天精品一区二区三区| 国产盗摄精品一区二区三区在线| 91女人视频在线观看| 日韩女优制服丝袜电影| 亚洲免费电影在线| 国产精品亚洲午夜一区二区三区| 99热99精品| 精品国产露脸精彩对白| 亚洲综合免费观看高清完整版在线| 麻豆精品在线播放| 91麻豆精品一区二区三区| 精品国产百合女同互慰| 亚洲一区二区综合| 成人国产亚洲欧美成人综合网| 欧美日韩精品二区第二页| 国产精品无人区| 色婷婷久久综合| 日韩三级免费观看| av午夜精品一区二区三区| 亚洲精品在线免费观看视频| 五月激情六月综合| 99国产欧美久久久精品| 久久精子c满五个校花| 精品一区二区免费看| 在线观看视频91| 国产精品久久久久天堂| 国产剧情在线观看一区二区| 欧美一区二区免费观在线| 九九**精品视频免费播放| 日韩精品一卡二卡三卡四卡无卡 | 亚洲第一狼人社区| av高清不卡在线| 国产婷婷精品av在线| 免费成人你懂的| 91麻豆精品国产91久久久久久久久 | 国产情人综合久久777777| 美国十次了思思久久精品导航| 在线影院国内精品| 亚洲欧美成aⅴ人在线观看| 成人精品一区二区三区四区| xfplay精品久久| 免费观看久久久4p| 91麻豆精品国产91久久久久| 亚洲国产成人91porn| 91久久国产综合久久| 亚洲天堂精品视频| 成人性生交大片免费看中文网站| 久久精品亚洲麻豆av一区二区 | 国产天堂亚洲国产碰碰| 国产一区二区在线视频| 精品1区2区在线观看| 精品一区二区三区蜜桃| 日韩三级在线观看| 精品在线播放午夜| 欧美va亚洲va| 国产激情视频一区二区三区欧美| 久久久不卡网国产精品一区| 国产精品自在在线| 国产午夜亚洲精品不卡| 国产黄人亚洲片| 1区2区3区精品视频| 91福利国产成人精品照片| 亚洲老妇xxxxxx| 欧美性大战xxxxx久久久| 亚洲妇女屁股眼交7| 91麻豆精品国产91久久久使用方法 | 欧美丰满少妇xxxxx高潮对白| 午夜天堂影视香蕉久久| 日韩欧美一区中文| 国产激情一区二区三区四区| 懂色av一区二区三区蜜臀| 午夜精品久久久久久久| 日韩av网站免费在线| 欧美久久久一区| 一本一道波多野结衣一区二区| 精品一区二区三区免费播放| 亚洲观看高清完整版在线观看 | 中文字幕中文字幕一区二区| 91碰在线视频| 91黄视频在线观看| 欧美精品丝袜中出| 欧美日韩亚洲综合| 日韩一区二区在线观看视频| 久久综合色8888|