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

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

?? os_task.lst

?? keil下單片機(jī)C8051F020的源程序
?? LST
?? 第 1 頁 / 共 4 頁
字號(hào):
C51 COMPILER V7.50   OS_TASK                                                               12/12/2007 16:55:25 PAGE 10  

                          return (OS_NO_ERR);
                      } else {
                          OS_EXIT_CRITICAL();
                          return (OS_TASK_NOT_SUSPENDED);
                      }
                  }
              }
              #endif
 559          /*$PAGE*/
 560          /*
 561          *********************************************************************************************************
 562          *                                             STACK CHECKING 
 563          *
 564          * Description: This function is called to check the amount of free memory left on the specified task's
 565          *              stack.
 566          *
 567          * Arguments  : prio     is the task priority
 568          *
 569          *              pdata    is a pointer to a data structure of type OS_STK_DATA.
 570          *
 571          * Returns    : OS_NO_ERR           upon success
 572          *              OS_PRIO_INVALID     if the priority you specify is higher that the maximum allowed 
 573          *                                  (i.e. > OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 574          *              OS_TASK_NOT_EXIST   if the desired task has not been created
 575          *              OS_TASK_OPT_ERR     if you did NOT specified OS_TASK_OPT_STK_CHK when the task was created
 576          *********************************************************************************************************
 577          */
 578          #if   OS_TASK_CREATE_EXT_EN
              INT8U OSTaskStkChk (INT8U prio, OS_STK_DATA *ppdata) reentrant
              {
                  OS_TCB  *ptcb;
                  OS_STK  *pchk;
                  INT32U   free;
                  INT32U   size;
              
              
                  ppdata->OSFree = 0;                                          /* Assume failure, set to 0 size       */
                  ppdata->OSUsed = 0;
                  if (prio > OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {        /* Make sure task priority is valid    */
                      return (OS_PRIO_INVALID);
                  }
                  OS_ENTER_CRITICAL();
                  if (prio == OS_PRIO_SELF) {                        /* See if check for SELF                        */
                      prio = OSTCBCur->OSTCBPrio;
                  }
                  ptcb = OSTCBPrioTbl[prio];
                  if (ptcb == (OS_TCB *)0) {                         /* Make sure task exist                         */
                      OS_EXIT_CRITICAL();
                      return (OS_TASK_NOT_EXIST);
                  }
                  if ((ptcb->OSTCBOpt & OS_TASK_OPT_STK_CHK) == 0) { /* Make sure stack checking option is set       */
                      OS_EXIT_CRITICAL();
                      return (OS_TASK_OPT_ERR);
                  }
                  free = 0;
                  size = ptcb->OSTCBStkSize;
                  pchk = ptcb->OSTCBStkBottom;
                  OS_EXIT_CRITICAL();
              #if OS_STK_GROWTH == 1
                  while (*pchk++ == 0) {                            /* Compute the number of zero entries on the stk */
                      free++;
                  }
C51 COMPILER V7.50   OS_TASK                                                               12/12/2007 16:55:25 PAGE 11  

              #else
                  while (*pchk-- == 0) {
                      free++;
                  }
              #endif
                  ppdata->OSFree = free * sizeof(OS_STK);            /* Compute number of free bytes on the stack     */
                  ppdata->OSUsed = (size - free) * sizeof(OS_STK);   /* Compute number of bytes used on the stack     */
                  return (OS_NO_ERR);
              }
              #endif
 623          /*$PAGE*/
 624          /*
 625          *********************************************************************************************************
 626          *                                            SUSPEND A TASK
 627          *
 628          * Description: This function is called to suspend a task.  The task can be the calling task if the
 629          *              priority passed to OSTaskSuspend() is the priority of the calling task or OS_PRIO_SELF.
 630          *
 631          * Arguments  : prio     is the priority of the task to suspend.  If you specify OS_PRIO_SELF, the
 632          *                       calling task will suspend itself and rescheduling will occur.
 633          *
 634          * Returns    : OS_NO_ERR                if the requested task is suspended
 635          *              OS_TASK_SUSPEND_IDLE     if you attempted to suspend the idle task which is not allowed.
 636          *              OS_PRIO_INVALID          if the priority you specify is higher that the maximum allowed 
 637          *                                       (i.e. >= OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 638          *              OS_TASK_SUSPEND_PRIO     if the task to suspend does not exist
 639          *
 640          * Note       : You should use this function with great care.  If you suspend a task that is waiting for
 641          *              an event (i.e. a message, a semaphore, a queue ...) you will prevent this task from
 642          *              running when the event arrives.
 643          *********************************************************************************************************
 644          */
 645          
 646          #if OS_TASK_SUSPEND_EN
              INT8U OSTaskSuspend (INT8U prio) reentrant
              {
                  BOOLEAN   self;
                  OS_TCB   *ptcb;
              
              
                  if (prio == OS_IDLE_PRIO) {                                 /* Not allowed to suspend idle task    */
                      return (OS_TASK_SUSPEND_IDLE);
                  }
                  if (prio >= OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {       /* Task priority valid ?               */
                      return (OS_PRIO_INVALID);
                  }
                  OS_ENTER_CRITICAL();
                  if (prio == OS_PRIO_SELF) {                                 /* See if suspend SELF                 */
                      prio = OSTCBCur->OSTCBPrio;
                      self = TRUE;
                  } else if (prio == OSTCBCur->OSTCBPrio) {                   /* See if suspending self              */
                      self = TRUE;
                  } else {
                      self = FALSE;                                           /* No suspending another task          */
                  }
                  if ((ptcb = OSTCBPrioTbl[prio]) == (OS_TCB *)0) {                /* Task to suspend must exist     */
                      OS_EXIT_CRITICAL();
                      return (OS_TASK_SUSPEND_PRIO);
                  } else {
                      if ((OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0) {     /* Make task not ready            */
                          OSRdyGrp &= ~ptcb->OSTCBBitY;
                      }
C51 COMPILER V7.50   OS_TASK                                                               12/12/2007 16:55:25 PAGE 12  

                      ptcb->OSTCBStat |= OS_STAT_SUSPEND;                          /* Status of task is 'SUSPENDED'  */
                      OS_EXIT_CRITICAL();
                      if (self == TRUE) {                                          /* Context switch only if SELF    */
                          OSSched();
                      }
                      return (OS_NO_ERR);
                  }
              }
              #endif
 684          /*$PAGE*/
 685          /*
 686          *********************************************************************************************************
 687          *                                            QUERY A TASK
 688          *
 689          * Description: This function is called to obtain a copy of the desired task's TCB.
 690          *
 691          * Arguments  : prio     is the priority of the task to obtain information from.  
 692          *
 693          * Returns    : OS_NO_ERR       if the requested task is suspended
 694          *              OS_PRIO_INVALID if the priority you specify is higher that the maximum allowed 
 695          *                              (i.e. > OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 696          *              OS_PRIO_ERR     if the desired task has not been created 
 697          *********************************************************************************************************
 698          */
 699          
 700          INT8U OSTaskQuery (INT8U prio, OS_TCB *ppdata) reentrant
 701          {
 702   1          OS_TCB *ptcb;
 703   1      
 704   1      
 705   1          if (prio > OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {   /* Task priority valid ?                    */
 706   2              return (OS_PRIO_INVALID);
 707   2          }
 708   1          OS_ENTER_CRITICAL();
 709   1          if (prio == OS_PRIO_SELF) {                            /* See if suspend SELF                      */
 710   2              prio = OSTCBCur->OSTCBPrio;
 711   2          }
 712   1          if ((ptcb = OSTCBPrioTbl[prio]) == (OS_TCB *)0) {      /* Task to query must exist                 */
 713   2              OS_EXIT_CRITICAL();
 714   2              return (OS_PRIO_ERR);
 715   2          }
 716   1          *ppdata = *ptcb;                                        /* Copy TCB into user storage area          */
 717   1          OS_EXIT_CRITICAL();
 718   1          return (OS_NO_ERR);
 719   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    616    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美久久久| 91啪在线观看| 亚洲精品美腿丝袜| 精品国产一区二区在线观看| 色婷婷精品久久二区二区蜜臀av| 美女视频一区二区三区| 一区二区欧美视频| 中文字幕高清一区| 欧美精品一区二区在线播放 | 天天色天天操综合| 国产亚洲欧美日韩俺去了| 欧美男女性生活在线直播观看| 成人黄色片在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲午夜电影在线| 日韩一区中文字幕| 国产午夜精品久久久久久久| 91精品婷婷国产综合久久竹菊| 菠萝蜜视频在线观看一区| 韩国欧美国产1区| 毛片基地黄久久久久久天堂| 亚洲国产日日夜夜| 亚洲女厕所小便bbb| 国产拍欧美日韩视频二区| 精品入口麻豆88视频| 欧美肥胖老妇做爰| 欧美日韩精品一区二区三区蜜桃| 一本到三区不卡视频| 成人av网站免费| 粉嫩绯色av一区二区在线观看| 狠狠色丁香婷综合久久| 蜜臀久久99精品久久久久久9| 亚洲国产美女搞黄色| 亚洲综合丝袜美腿| 一区二区三区在线视频观看 | 91精品国产综合久久精品| 91福利视频在线| 欧美午夜不卡在线观看免费| 日本精品视频一区二区三区| 色又黄又爽网站www久久| 色成人在线视频| 欧洲av一区二区嗯嗯嗯啊| 色综合天天综合色综合av| 91在线看国产| 91国模大尺度私拍在线视频| 91蝌蚪porny| 91在线观看污| 在线中文字幕一区二区| 欧美亚洲综合一区| 欧美日韩和欧美的一区二区| 欧美日韩电影在线播放| 91精品综合久久久久久| 欧美一级高清片在线观看| 精品sm在线观看| 欧美国产精品一区二区三区| 亚洲色欲色欲www| 亚洲一区二区高清| 日本不卡123| 极品少妇xxxx精品少妇| 国产成人av自拍| 成人久久久精品乱码一区二区三区| 国产成人一级电影| 色综合天天综合在线视频| 欧美日韩一区二区三区四区五区| 7777精品伊人久久久大香线蕉最新版 | 久久99最新地址| 国产盗摄一区二区三区| 日本乱人伦aⅴ精品| 5858s免费视频成人| 久久久久久日产精品| 亚洲欧洲精品一区二区精品久久久| 一区二区高清在线| 另类中文字幕网| 国产91丝袜在线播放0| 91极品美女在线| xfplay精品久久| 亚洲人一二三区| 久久精品国产久精国产| 福利电影一区二区| 欧美日韩的一区二区| 久久色成人在线| 亚洲一线二线三线久久久| 国内精品不卡在线| 日本精品一区二区三区四区的功能| 日韩区在线观看| 国产精品久久久久精k8| 日韩中文字幕91| 97精品久久久午夜一区二区三区| 欧美一区二区三区日韩视频| 国产亚洲欧洲一区高清在线观看| 亚洲一区二区在线视频| 国产一区二区在线免费观看| 在线观看视频一区二区欧美日韩| 欧美sm美女调教| 一区二区三区高清不卡| 丁香婷婷综合激情五月色| 8v天堂国产在线一区二区| 一区免费观看视频| 激情综合网天天干| 欧美精品乱码久久久久久按摩 | 亚洲欧美另类久久久精品| 久久精品99国产精品| 欧美日韩一区二区三区在线看| 亚洲国产精品激情在线观看 | 国产高清无密码一区二区三区| 欧美伦理视频网站| 亚洲精品欧美激情| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品欧美一区二区三区| 欧美日韩1234| 精品精品欲导航| 亚洲欧美日韩一区二区三区在线观看| 男女男精品视频网| 欧美日韩一级视频| 中文字幕一区二| 国产精品白丝av| 亚洲精品一区二区三区四区高清 | a4yy欧美一区二区三区| 精品国产第一区二区三区观看体验| 亚洲一区电影777| 91视频免费观看| 国产精品女主播av| 国产成人一级电影| 久久毛片高清国产| 韩国三级中文字幕hd久久精品| 欧美高清视频在线高清观看mv色露露十八 | 国产成人免费xxxxxxxx| 久久亚洲一级片| 国产精品一二一区| 国产三级精品三级在线专区| 国产美女av一区二区三区| 日韩一卡二卡三卡国产欧美| 男人的天堂久久精品| 777亚洲妇女| 成人免费福利片| 日韩成人av影视| 在线成人小视频| 日韩国产欧美在线播放| 制服丝袜成人动漫| 免费成人在线网站| 日韩免费视频线观看| 伦理电影国产精品| 久久婷婷国产综合精品青草| 国产原创一区二区三区| 久久久欧美精品sm网站| 国产超碰在线一区| 国产精品视频一二三| 色一区在线观看| 亚洲3atv精品一区二区三区| 9191精品国产综合久久久久久| 日精品一区二区| 精品国产一二三区| 懂色av噜噜一区二区三区av| 日韩理论片在线| 精品视频全国免费看| 蜜桃一区二区三区四区| 久久久精品黄色| 99国内精品久久| 天天综合色天天综合色h| 欧美成人一区二区| 成人精品国产一区二区4080| 一区二区三区不卡视频| 99久久精品国产一区| 久久久久久久久久久久久久久99| 国产成人午夜精品5599 | 中文字幕一区二区在线播放| 99久久精品国产导航| 亚洲国产日日夜夜| 精品国产免费一区二区三区四区 | 91麻豆精品久久久久蜜臀| 久久不见久久见免费视频1| 国产精品五月天| 欧美午夜精品一区二区蜜桃| 精品一区二区三区香蕉蜜桃| ●精品国产综合乱码久久久久| 欧美日韩亚洲另类| 高清不卡一区二区| 视频一区二区中文字幕| 国产欧美日韩精品a在线观看| 欧美视频一区二区在线观看| 国产一区二区三区不卡在线观看| 亚洲欧美国产高清| 欧美xxxxxxxxx| 在线观看亚洲a| 国产不卡在线视频| 日韩影院精彩在线| 中文字幕一区二区三区蜜月| 欧美日韩国产成人在线免费| 国产电影一区二区三区| 无吗不卡中文字幕| 国产精品国产三级国产aⅴ入口| 欧美一卡2卡三卡4卡5免费| 成人午夜激情影院| 日韩精品一区二区在线| 久久嫩草精品久久久精品一| 中文字幕亚洲欧美在线不卡| 久久国产精品区| 18成人在线观看| 精品国产99国产精品| 欧美视频一区二区三区在线观看|