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

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

?? os_task.lst

?? 在C8051F120內移植uCOS-II
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V8.08   OS_TASK                                                               04/13/2009 13:31:22 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE OS_TASK
OBJECT MODULE PLACED IN OS_TASK.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE OS_TASK.C BROWSE DEBUG OBJECTEXTEND

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          #define OS_TASK_GLOBALS
  17          //#ifndef  OS_MASTER_FILE
  18          #include "includes.h"
  19          //#endif
  20          
  21          /*
  22          *********************************************************************************************************
  23          *                                        LOCAL FUNCTION PROTOTYPES
  24          *********************************************************************************************************
  25          */
  26          
  27          #if OS_TASK_DEL_EN
              static  void  OSDummy(void);
              
              /*
              *********************************************************************************************************
              *                                            DUMMY FUNCTION
              *
              * Description: This function doesn't do anything.  It is called by OSTaskDel() to ensure that interrupts
              *              are disabled immediately after they are enabled.
              *
              * Arguments  : none
              *
              * Returns    : none
              *********************************************************************************************************
              */
              
              static void  OSDummy (void)reentrant
              {
              }
              #endif
  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          *
  55          * Arguments  : oldp     is the old priority
C51 COMPILER V8.08   OS_TASK                                                               04/13/2009 13:31:22 PAGE 2   

  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   *ptcb;
                  OS_EVENT *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 *)0) {                 /* New priority must not already exist */
                      OS_EXIT_CRITICAL();
                      return (OS_PRIO_EXIST);
                  } else {
                      OSTCBPrioTbl[newprio] = (OS_TCB *)1;                    /* Reserve the entry to prevent others */
                      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 *)0) {    /* Task to change must exist           */
                          OSTCBPrioTbl[oldprio] = (OS_TCB *)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 *)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       */
                                  pevent->OSEventTbl[y] |= bitx;
                              }
                          }
                          OSTCBPrioTbl[newprio] = ptcb;                       /* Place pointer to TCB @ new priority */
                          ptcb->OSTCBPrio       = newprio;                    /* Set new task priority               */
                          ptcb->OSTCBY          = y;
C51 COMPILER V8.08   OS_TASK                                                               04/13/2009 13:31:22 PAGE 3   

                          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 *)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          *              dataptr    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 'dataptr' as follows:
 146          *
 147          *                           void Task (void *dataptr)
 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
              INT8U OSTaskCreate (void (*task)(void *pd)reentrant, 
                                  void *dataptr, 
                                  OS_STK *ptos, 
                                  INT8U prio)reentrant
              {
                  #if OS_CRITICAL_METHOD == 2
                      unsigned DTYPE int_ss;
C51 COMPILER V8.08   OS_TASK                                                               04/13/2009 13:31:22 PAGE 4   

                      #endif 
              
                      void   *psp;
                  INT8U   err;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天美传媒| 亚洲欧洲精品一区二区三区| 国产成人精品免费| 亚洲自拍欧美精品| 久久久久久久久久久99999| 91高清视频在线| 国产精品亚洲一区二区三区妖精| 亚洲综合清纯丝袜自拍| 国产日韩视频一区二区三区| 91精品婷婷国产综合久久性色 | 欧美日韩一区二区三区免费看 | 精品在线视频一区| 亚洲一区自拍偷拍| 中文字幕在线视频一区| 日韩欧美一区中文| 97国产一区二区| 国产在线视频一区二区| 天天影视网天天综合色在线播放| 中文乱码免费一区二区| 欧美本精品男人aⅴ天堂| 欧美在线一二三| 99r国产精品| 国产黑丝在线一区二区三区| 日韩经典中文字幕一区| 一区二区三区不卡视频在线观看| 久久精品视频网| 日韩精品一区国产麻豆| 欧美亚一区二区| 91国产精品成人| 一本一道久久a久久精品综合蜜臀| 国产乱子伦视频一区二区三区 | 日韩电影一二三区| 亚洲综合一区在线| 一区二区成人在线观看| 国产精品不卡在线| 日本一二三不卡| 久久男人中文字幕资源站| 欧美一卡二卡三卡四卡| 3d成人动漫网站| 欧美一区二区三区免费大片| 欧美日韩高清一区二区三区| 欧美日韩视频一区二区| 欧美色图一区二区三区| 欧美日韩精品三区| 91精品国产综合久久久蜜臀图片| 欧美日韩一区二区欧美激情| 欧美三级乱人伦电影| 欧美日本韩国一区二区三区视频| 欧美日韩在线综合| 欧美日韩亚洲综合在线| 欧美精品第1页| 日韩三级免费观看| 日韩欧美一区中文| 欧美精品一区二区在线观看| 国产日产欧美精品一区二区三区| 国产亚洲欧洲997久久综合| 久久亚洲综合av| 国产精品久久久久三级| 亚洲日本欧美天堂| 一区二区在线观看视频| 亚洲高清一区二区三区| 麻豆精品新av中文字幕| 国模冰冰炮一区二区| 大桥未久av一区二区三区中文| 波多野结衣一区二区三区| 91福利社在线观看| 欧美一区二区三区在线观看视频 | 国产精品视频免费看| 亚洲天堂av一区| 亚洲一线二线三线视频| 蜜臀91精品一区二区三区| 国产精品一区2区| 91网站黄www| 欧美一区二区精品在线| 国产亚洲精久久久久久| 一区二区三区在线播| 久久精品国产精品青草| 成人黄色免费短视频| 91精品国产色综合久久不卡电影 | 免费欧美日韩国产三级电影| 国产成人小视频| 欧美欧美午夜aⅴ在线观看| 欧美精品一区二区三| 中文字幕亚洲在| 免费成人在线网站| 成人性生交大片免费| 欧美精品少妇一区二区三区| 久久精品免视看| 五月婷婷综合网| 成人激情小说网站| 91.com在线观看| 国产精品久久久久久一区二区三区 | 成人一区二区三区视频| 99re这里只有精品6| 91精品国产91热久久久做人人 | 日韩福利电影在线| 成人免费毛片高清视频| 欧美精品在线观看播放| 国产拍揄自揄精品视频麻豆| 亚洲成av人片| 成人激情文学综合网| 56国语精品自产拍在线观看| 国产精品久久一卡二卡| 久久国产精品无码网站| 日本精品一区二区三区高清 | 欧美日韩在线不卡| 国产视频一区在线播放| 日韩激情一二三区| 色综合久久综合网欧美综合网| 日韩免费看的电影| 亚洲成人黄色影院| 91亚洲永久精品| 久久久激情视频| 精品一区二区久久久| 欧美精品自拍偷拍动漫精品| 亚洲乱码一区二区三区在线观看| 国模少妇一区二区三区| 欧美一区二区播放| 香港成人在线视频| 一本久道中文字幕精品亚洲嫩| 久久久久免费观看| 久久国产成人午夜av影院| 欧美二区三区91| 亚洲午夜私人影院| 色就色 综合激情| 亚洲人吸女人奶水| 91美女福利视频| 国产精品国产精品国产专区不蜜| 国产盗摄一区二区| 精品国产凹凸成av人导航| 日本成人在线不卡视频| 欧美少妇性性性| 亚洲小说欧美激情另类| a在线欧美一区| 国产精品久久久久国产精品日日 | 91网站在线观看视频| 中文字幕精品一区| 国产成人精品亚洲777人妖| 久久一夜天堂av一区二区三区| 久久99精品国产| 亚洲精品一区二区三区99| 国内成人免费视频| 国产日韩欧美一区二区三区综合| 国产一区亚洲一区| 中文字幕精品在线不卡| 99国产精品久久久久久久久久久| 亚洲天堂2014| 在线观看免费视频综合| 亚洲动漫第一页| 欧美一区二区三区在线电影| 精品一区二区av| 日本一区二区不卡视频| 一本久道中文字幕精品亚洲嫩| 亚洲一区二区精品3399| 制服.丝袜.亚洲.另类.中文| 久久精品国产亚洲5555| 亚洲国产精品高清| 91原创在线视频| 亚洲第一精品在线| 日韩视频中午一区| 成人免费看片app下载| 亚洲精品v日韩精品| 欧美丰满美乳xxx高潮www| 日韩精品五月天| 久久久久亚洲蜜桃| 91成人国产精品| 久久国产成人午夜av影院| 国产精品网友自拍| 欧美日韩一区精品| 国产精品综合久久| 一区二区三区中文字幕电影| 欧美一级免费大片| 成人av网站在线观看| 亚洲成a人片综合在线| 国产亚洲综合在线| 欧美日韩精品系列| 国产成人精品aa毛片| 亚洲一区二区欧美激情| 久久久久国色av免费看影院| 在线一区二区三区四区| 久久99深爱久久99精品| 一区二区三区在线免费播放| 久久综合色综合88| 色噜噜久久综合| 久久99精品久久久久久国产越南 | 欧美日韩成人一区二区| 国产91精品精华液一区二区三区| 一区二区三区日韩精品| 久久综合久久综合久久综合| 91成人网在线| 粉嫩av一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 精品国产一区二区亚洲人成毛片| 91色在线porny| 国产一区二区三区四区五区美女| 一区二区免费看| 国产亚洲欧美日韩在线一区| 欧美一区二区三区啪啪| 在线中文字幕不卡| 成人性视频免费网站|