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

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

?? os_task.lst

?? uCOS_II在51單片機小模式下的移植
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V8.06   OS_TASK                                                               01/04/2009 20:57:20 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE OS_TASK
OBJECT MODULE PLACED IN .\OS_TASK.obj
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE ..\uc_os_II\OS_TASK.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.
                    -\OS_TASK.lst) OBJECT(.\OS_TASK.obj)

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                                uC/OS-II
   4          *                                          The Real-Time Kernel
   5          *                                            TASK MANAGEMENT
   6          *
   7          *                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
   8          *                                           All Rights Reserved
   9          *
  10          *                                                  V2.00
  11          *
  12          * File : OS_TASK.C
  13          * By   : Jean J. Labrosse
  14          *********************************************************************************************************
  15          */
  16          
  17          #ifndef  OS_MASTER_FILE
  18          #include "includes.h"
  19          #endif
  20          
  21          /*
  22          *********************************************************************************************************
  23          *                                        LOCAL FUNCTION PROTOTYPES
  24          *********************************************************************************************************
  25          */
  26          
  27          
  28          static  void  OSDummy(void) REENTRANT;
  29          
  30          /*
  31          *********************************************************************************************************
  32          *                                            DUMMY FUNCTION
  33          *
  34          * Description: This function doesn't do anything.  It is called by OSTaskDel() to ensure that interrupts
  35          *              are disabled immediately after they are enabled.
  36          *
  37          * Arguments  : none
  38          *
  39          * Returns    : none
  40          *********************************************************************************************************
  41          */
  42          
  43          static void  OSDummy (void) REENTRANT
  44          {
  45   1      }
  46          
  47          /*$PAGE*/
  48          /*
  49          *********************************************************************************************************
  50          *                                        CHANGE PRIORITY OF A TASK
  51          *
  52          * Description: This function allows you to change the priority of a task dynamically.  Note that the new
  53          *              priority MUST be available.
  54          *
C51 COMPILER V8.06   OS_TASK                                                               01/04/2009 20:57:20 PAGE 2   

  55          * Arguments  : oldp     is the old priority
  56          *
  57          *              newp     is the new priority
  58          *
  59          * Returns    : OS_NO_ERR        is the call was successful
  60          *              OS_PRIO_INVALID  if the priority you specify is higher that the maximum allowed 
  61          *                               (i.e. >= OS_LOWEST_PRIO)
  62          *              OS_PRIO_EXIST    if the new priority already exist.
  63          *              OS_PRIO_ERR      there is no task with the specified OLD priority (i.e. the OLD task does
  64          *                               not exist.
  65          *********************************************************************************************************
  66          */
  67          
  68          #if OS_TASK_CHANGE_PRIO_EN
              INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio) REENTRANT
              {
                  OS_TCB   DT_XDATA *ptcb;
                  OS_EVENT DT_XDATA *pevent;
                  INT8U     x;
                  INT8U     y;
                  INT8U     bitx;
                  INT8U     bity;
              
              
                  if ((oldprio >= OS_LOWEST_PRIO && oldprio != OS_PRIO_SELF)  || 
                       newprio >= OS_LOWEST_PRIO) {
                      return (OS_PRIO_INVALID);
                  }
                  OS_ENTER_CRITICAL();
                  if (OSTCBPrioTbl[newprio] != (OS_TCB DT_XDATA *)0) {                 /* New priority must not already 
             -exist */
                      OS_EXIT_CRITICAL();
                      return (OS_PRIO_EXIST);
                  } else {
                      OSTCBPrioTbl[newprio] = (OS_TCB DT_XDATA *)1;                    /* Reserve the entry to prevent o
             -thers */
                      OS_EXIT_CRITICAL();
                      y    = newprio >> 3;                                    /* Precompute to reduce INT. latency   */
                      bity = OSMapTbl[y];
                      x    = newprio & 0x07;
                      bitx = OSMapTbl[x];
                      OS_ENTER_CRITICAL();
                      if (oldprio == OS_PRIO_SELF) {                          /* See if changing self                */
                          oldprio = OSTCBCur->OSTCBPrio;                      /* Yes, get priority                   */
                      }
                      if ((ptcb = OSTCBPrioTbl[oldprio]) != (OS_TCB DT_XDATA *)0) {    /* Task to change must exist     
             -      */
                          OSTCBPrioTbl[oldprio] = (OS_TCB DT_XDATA *)0;                /* Remove TCB from old priority  
             -      */
                          if (OSRdyTbl[ptcb->OSTCBY] & ptcb->OSTCBBitX) {     /* If task is ready make it not ready  */
                              if ((OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0) {
                                  OSRdyGrp &= ~ptcb->OSTCBBitY;
                              }
                              OSRdyGrp    |= bity;                            /* Make new priority ready to run      */
                              OSRdyTbl[y] |= bitx;
                          } else {
                              if ((pevent = ptcb->OSTCBEventPtr) != (OS_EVENT DT_XDATA *)0) { /* Remove from event wait 
             -list  */
                                  if ((pevent->OSEventTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0) {
                                      pevent->OSEventGrp &= ~ptcb->OSTCBBitY;
                                  }
                                  pevent->OSEventGrp    |= bity;              /* Add new priority to wait list       */
C51 COMPILER V8.06   OS_TASK                                                               01/04/2009 20:57:20 PAGE 3   

                                  pevent->OSEventTbl[y] |= bitx;
                              }
                          }
                          OSTCBPrioTbl[newprio] = ptcb;                       /* Place pointer to TCB @ new priority */
                          ptcb->OSTCBPrio       = newprio;                    /* Set new task priority               */
                          ptcb->OSTCBY          = y;
                          ptcb->OSTCBX          = x;
                          ptcb->OSTCBBitY       = bity;
                          ptcb->OSTCBBitX       = bitx;
                          OS_EXIT_CRITICAL();
                          OSSched();                                          /* Run highest priority task ready     */
                          return (OS_NO_ERR);
                      } else {
                          OSTCBPrioTbl[newprio] = (OS_TCB DT_XDATA *)0;                /* Release the reserved prio.    
             -      */
                          OS_EXIT_CRITICAL();
                          return (OS_PRIO_ERR);                               /* Task to change didn't exist         */
                      }
                  }
              }
              #endif
 132          /*$PAGE*/
 133          /*
 134          *********************************************************************************************************
 135          *                                            CREATE A TASK
 136          *
 137          * Description: This function is used to have uC/OS-II manage the execution of a task.  Tasks can either
 138          *              be created prior to the start of multitasking or by a running task.  A task cannot be
 139          *              created by an ISR.
 140          *
 141          * Arguments  : task     is a pointer to the task's code
 142          *
 143          *              ppdata    is a pointer to an optional data area which can be used to pass parameters to
 144          *                       the task when the task first executes.  Where the task is concerned it thinks
 145          *                       it was invoked and passed the argument 'ppdata' as follows:
 146          *
 147          *                           void Task (void *ppdata)
 148          *                           {
 149          *                               for (;;) {
 150          *                                   Task code;
 151          *                               }
 152          *                           }
 153          *
 154          *              ptos     is a pointer to the task's top of stack.  If the configuration constant 
 155          *                       OS_STK_GROWTH is set to 1, the stack is assumed to grow downward (i.e. from high
 156          *                       memory to low memory).  'pstk' will thus point to the highest (valid) memory 
 157          *                       location of the stack.  If OS_STK_GROWTH is set to 0, 'pstk' will point to the 
 158          *                       lowest memory location of the stack and the stack will grow with increasing
 159          *                       memory locations.
 160          *
 161          *              prio     is the task's priority.  A unique priority MUST be assigned to each task and the
 162          *                       lower the number, the higher the priority.
 163          *
 164          * Returns    : OS_NO_ERR        if the function was successful.
 165          *              OS_PRIO_EXIT     if the task priority already exist 
 166          *                               (each task MUST have a unique priority).
 167          *              OS_PRIO_INVALID  if the priority you specify is higher that the maximum allowed 
 168          *                               (i.e. >= OS_LOWEST_PRIO)
 169          *********************************************************************************************************
 170          */
 171          
 172          #if OS_TASK_CREATE_EN
C51 COMPILER V8.06   OS_TASK                                                               01/04/2009 20:57:20 PAGE 4   

 173          INT8U OSTaskCreate (void (DT_CODE *task)(void DT_XDATA *pd), void DT_XDATA *ppdata, OS_STK DT_XDATA *ptos,
             - INT8U prio) REENTRANT
 174          {
 175   1          void DT_XDATA *psp;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成+人亚洲+欧美+综合在线| 亚洲色图.com| 激情五月婷婷综合网| 日韩一二三区视频| 国产美女在线精品| 国产精品免费丝袜| 99综合影院在线| 亚洲午夜电影网| 欧美一区二区视频免费观看| 国产一区二区三区久久久| 国产精品久久久爽爽爽麻豆色哟哟 | 免费人成网站在线观看欧美高清| 一本大道av伊人久久综合| 亚洲午夜久久久久久久久电影网 | 一本到不卡精品视频在线观看| 亚洲精品中文在线观看| 欧美日韩精品一区二区三区四区| 美女性感视频久久| 日本一区二区久久| 欧美私人免费视频| 韩国欧美国产一区| 亚洲欧美日本在线| 日韩一区二区三区电影在线观看| 国产高清不卡一区二区| 亚洲高清中文字幕| 久久蜜桃av一区二区天堂| 色婷婷综合久色| 在线视频综合导航| 捆绑变态av一区二区三区| 国产精品传媒在线| 欧美精品黑人性xxxx| 国产黄色精品网站| 性久久久久久久久久久久| 久久精品夜色噜噜亚洲a∨| 欧美色欧美亚洲另类二区| 国产一区二区不卡在线| 亚洲成人免费视频| 国产精品久久久久久一区二区三区| 中文字幕第一区二区| 欧美日本一道本在线视频| 国产91精品免费| 免费观看30秒视频久久| 亚洲精品国产精华液| 国产婷婷色一区二区三区四区| 在线一区二区三区四区五区| 国产精品亚洲午夜一区二区三区| 亚洲国产日韩精品| 亚洲视频在线一区观看| 欧美精品一区男女天堂| 欧美电影在线免费观看| 色婷婷精品久久二区二区蜜臂av | 久久嫩草精品久久久精品| 欧美日韩一级片在线观看| 成人av网站大全| 韩国成人在线视频| 免费成人你懂的| 亚洲精品成人悠悠色影视| 国产视频在线观看一区二区三区| 欧美精品xxxxbbbb| 欧美色老头old∨ideo| 91在线视频播放| 国产成人啪免费观看软件| 久久69国产一区二区蜜臀| 天堂在线亚洲视频| 亚洲国产精品一区二区久久| 亚洲精品菠萝久久久久久久| 国产精品超碰97尤物18| 国产精品久久久久久福利一牛影视| 久久综合久久综合亚洲| 日韩视频一区二区三区在线播放| 欧美人狂配大交3d怪物一区| 在线亚洲欧美专区二区| 99久久精品99国产精品| 波多野结衣中文字幕一区 | 成人欧美一区二区三区1314 | 91黄色免费网站| 日本大香伊一区二区三区| 91在线看国产| 欧美亚洲综合色| 欧美日韩国产综合一区二区 | 久久99国产精品免费| 美女在线视频一区| 麻豆免费看一区二区三区| 精品制服美女丁香| 国产真实乱子伦精品视频| 国产一区福利在线| 国产高清久久久久| 成人午夜激情视频| 91麻豆国产精品久久| 欧美性三三影院| 7777精品伊人久久久大香线蕉| 欧美一区二区精品在线| 欧美哺乳videos| 国产视频不卡一区| 亚洲欧美区自拍先锋| 亚洲国产精品欧美一二99| 日韩影院精彩在线| 国产精品一二三四| 99re这里只有精品6| 欧美视频在线一区| 亚洲精品一区二区三区福利| 欧美国产禁国产网站cc| 亚洲综合丝袜美腿| 久久精品国产澳门| www.亚洲精品| 欧美肥大bbwbbw高潮| 久久精品视频网| 亚洲美女视频在线| 久久电影网电视剧免费观看| 成人毛片在线观看| 欧美精品欧美精品系列| 国产亚洲精品aa午夜观看| 一区二区三区加勒比av| 九九九久久久精品| 成人动漫在线一区| 欧美一级免费大片| 国产精品你懂的| 日韩成人精品在线| 99久久夜色精品国产网站| 3d动漫精品啪啪1区2区免费 | 欧美成人精品二区三区99精品| 中文字幕第一页久久| 91在线精品一区二区| 91精品国产综合久久久蜜臀粉嫩| 国产日韩欧美制服另类| 亚洲一区二区三区不卡国产欧美| 国产传媒日韩欧美成人| 欧美久久久久久久久中文字幕| 国产午夜精品久久久久久免费视| 午夜婷婷国产麻豆精品| 成人永久看片免费视频天堂| 67194成人在线观看| 亚洲色图20p| 国产精品主播直播| 91精品国产综合久久蜜臀| 亚洲四区在线观看| 国产盗摄一区二区| 欧美一区二区三区免费大片| 一区二区三区四区在线免费观看| 国产精品白丝jk白祙喷水网站| 6080yy午夜一二三区久久| 国产精品成人午夜| 国产成人亚洲综合a∨猫咪| 8x8x8国产精品| 亚洲福利视频三区| 99国产精品久久久| 国产欧美综合在线| 美女在线一区二区| 91麻豆精品国产| 亚洲第一在线综合网站| 99re66热这里只有精品3直播 | 国产精品911| 精品欧美一区二区三区精品久久| 亚洲影视在线播放| hitomi一区二区三区精品| 日本一区二区三区高清不卡| 国产精品亚洲成人| 日韩一区二区在线看| 日韩精品久久理论片| 精品视频资源站| 亚洲国产精品久久一线不卡| 在线视频中文字幕一区二区| 一区二区三区四区精品在线视频| 99re这里只有精品视频首页| 亚洲视频在线一区观看| 国产欧美一二三区| 国产乱一区二区| 久久免费电影网| 国产不卡在线视频| 国产欧美日韩三级| av网站免费线看精品| 国产精品毛片久久久久久| 成人av第一页| 亚洲欧美二区三区| 91激情五月电影| 日韩专区在线视频| 日韩久久久久久| 国内成人免费视频| 国产精品毛片高清在线完整版| av亚洲精华国产精华精华| 成人欧美一区二区三区白人 | 色综合久久久网| 亚洲精品老司机| 7777女厕盗摄久久久| 麻豆精品精品国产自在97香蕉| 337p日本欧洲亚洲大胆精品| 成人午夜在线视频| 亚洲精品成人在线| 日韩一区二区三免费高清| 国产精品一卡二卡在线观看| **欧美大码日韩| 欧美日韩在线观看一区二区| 捆绑紧缚一区二区三区视频| 欧美国产精品中文字幕| 欧美性三三影院| 国内一区二区在线| 亚洲免费在线电影| 日韩免费高清视频| jizz一区二区| 蜜桃在线一区二区三区|