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

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

?? os_task.lst

?? ucos v2.62 安裝程序 附帶已移植到C8051F020的UCOS源碼
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 383   1          ptcb = OSTCBPrioTbl[prio];
 384   1          if (ptcb != (OS_TCB *)0) {                                  /* Task to delete must exist           */
 385   2                  y            =  ptcb->OSTCBY;
 386   2                      OSRdyTbl[y] &= ~ptcb->OSTCBBitX;
 387   2              if (OSRdyTbl[y] == 0x00) {                              /* Make task not ready                 */
 388   3                  OSRdyGrp &= ~ptcb->OSTCBBitY;
 389   3              }
 390   2      #if OS_EVENT_EN > 0
                      pevent = ptcb->OSTCBEventPtr;
                      if (pevent != (OS_EVENT *)0) {                          /* If task is waiting on event         */
                                  pevent->OSEventTbl[y] &= ~ptcb->OSTCBBitX;
                          if (pevent->OSEventTbl[y] == 0) {                   /* ... remove task from ...            */
                              pevent->OSEventGrp &= ~ptcb->OSTCBBitY;         /* ... event ctrl block                */
                          }
                      }
              #endif
 399   2      #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
                      pnode = ptcb->OSTCBFlagNode;
                      if (pnode != (OS_FLAG_NODE *)0) {                       /* If task is waiting on event flag    */
                          OS_FlagUnlink(pnode);                               /* Remove from wait list               */
                      }
              #endif
 405   2              ptcb->OSTCBDly  = 0;                                    /* Prevent OSTimeTick() from updating  */
 406   2              ptcb->OSTCBStat = OS_STAT_RDY;                          /* Prevent task from being resumed     */
 407   2                      if (OSLockNesting < 255u) {
 408   3                  OSLockNesting++;
 409   3                      }
 410   2              OS_EXIT_CRITICAL();                                     /* Enabling INT. ignores next instruc. */
 411   2              OS_Dummy();                                             /* ... Dummy ensures that INTs will be */
 412   2              OS_ENTER_CRITICAL();                                    /* ... disabled HERE!                  */
 413   2                      if (OSLockNesting > 0) {
 414   3                  OSLockNesting--;
 415   3                      }
 416   2              OSTaskDelHook(ptcb);                                    /* Call user defined hook              */
 417   2              OSTaskCtr--;                                            /* One less task being managed         */
 418   2              OSTCBPrioTbl[prio] = (OS_TCB *)0;                       /* Clear old priority entry            */
 419   2              if (ptcb->OSTCBPrev == (OS_TCB *)0) {                   /* Remove from TCB chain               */
 420   3                  ptcb->OSTCBNext->OSTCBPrev = (OS_TCB *)0;
 421   3                  OSTCBList                  = ptcb->OSTCBNext;
 422   3              } else {
 423   3                  ptcb->OSTCBPrev->OSTCBNext = ptcb->OSTCBNext;
 424   3                  ptcb->OSTCBNext->OSTCBPrev = ptcb->OSTCBPrev;
 425   3              }
 426   2              ptcb->OSTCBNext   = OSTCBFreeList;                      /* Return TCB to free TCB list         */
C51 COMPILER V8.05a   OS_TASK                                                              04/11/2007 16:19:49 PAGE 8   

 427   2              OSTCBFreeList     = ptcb;
 428   2              ptcb->OSTCBStkPtr = (OS_STK *)0;                        /* Show that TCB is 'unused'           */
 429   2      #if OS_TASK_NAME_SIZE > 0
                              (void)strcpy(ptcb->OSTCBTaskName, "?");                       /* Unknown name                        */
              #endif
 432   2              OS_EXIT_CRITICAL();
 433   2              OS_Sched();                                             /* Find new highest priority task      */
 434   2              return (OS_NO_ERR);
 435   2          }
 436   1          OS_EXIT_CRITICAL();
 437   1          return (OS_TASK_DEL_ERR);
 438   1      }
 439          #endif
 440          /*$PAGE*/
 441          /*
 442          *********************************************************************************************************
 443          *                                    REQUEST THAT A TASK DELETE ITSELF
 444          *
 445          * Description: This function is used to:
 446          *                   a) notify a task to delete itself.
 447          *                   b) to see if a task requested that the current task delete itself.
 448          *              This function is a little tricky to understand.  Basically, you have a task that needs
 449          *              to be deleted however, this task has resources that it has allocated (memory buffers,
 450          *              semaphores, mailboxes, queues etc.).  The task cannot be deleted otherwise these
 451          *              resources would not be freed.  The requesting task calls OSTaskDelReq() to indicate that
 452          *              the task needs to be deleted.  Deleting of the task is however, deferred to the task to
 453          *              be deleted.  For example, suppose that task #10 needs to be deleted.  The requesting task
 454          *              example, task #5, would call OSTaskDelReq(10).  When task #10 gets to execute, it calls
 455          *              this function by specifying OS_PRIO_SELF and monitors the returned value.  If the return
 456          *              value is OS_TASK_DEL_REQ, another task requested a task delete.  Task #10 would look like
 457          *              this:
 458          *
 459          *                   void Task(void *data)
 460          *                   {
 461          *                       .
 462          *                       .
 463          *                       while (1) {
 464          *                           OSTimeDly(1);
 465          *                           if (OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ) {
 466          *                               Release any owned resources;
 467          *                               De-allocate any dynamic memory;
 468          *                               OSTaskDel(OS_PRIO_SELF);
 469          *                           }
 470          *                       }
 471          *                   }
 472          *
 473          * Arguments  : prio    is the priority of the task to request the delete from
 474          *
 475          * Returns    : OS_NO_ERR          if the task exist and the request has been registered
 476          *              OS_TASK_NOT_EXIST  if the task has been deleted.  This allows the caller to know whether
 477          *                                 the request has been executed.
 478          *              OS_TASK_DEL_IDLE   if you requested to delete uC/OS-II's idle task
 479          *              OS_PRIO_INVALID    if the priority you specify is higher that the maximum allowed
 480          *                                 (i.e. >= OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 481          *              OS_TASK_DEL_REQ    if a task (possibly another task) requested that the running task be
 482          *                                 deleted.
 483          *********************************************************************************************************
 484          */
 485          /*$PAGE*/
 486          #if OS_TASK_DEL_EN > 0
 487          INT8U  OSTaskDelReq (INT8U prio) KCREENTRANT    
 488          {
C51 COMPILER V8.05a   OS_TASK                                                              04/11/2007 16:19:49 PAGE 9   

 489   1      #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
                  OS_CPU_SR  cpu_sr;
              #endif
 492   1          BOOLEAN    stat;
 493   1          INT8U      err;
 494   1          OS_TCB    *ptcb;
 495   1      
 496   1      
 497   1      #if OS_ARG_CHK_EN > 0
 498   1          if (prio == OS_IDLE_PRIO) {                                 /* Not allowed to delete idle task     */
 499   2              return (OS_TASK_DEL_IDLE);
 500   2          }
 501   1          if (prio >= OS_LOWEST_PRIO) {                                                       /* Task priority valid ?               */
 502   2              if (prio != OS_PRIO_SELF) {                       
 503   3                  return (OS_PRIO_INVALID);
 504   3                      }
 505   2          }
 506   1      #endif
 507   1          if (prio == OS_PRIO_SELF) {                                 /* See if a task is requesting to ...  */
 508   2              OS_ENTER_CRITICAL();                                    /* ... this task to delete itself      */
 509   2              stat = OSTCBCur->OSTCBDelReq;                           /* Return request status to caller     */
 510   2              OS_EXIT_CRITICAL();
 511   2              return (stat);
 512   2          }
 513   1          OS_ENTER_CRITICAL();
 514   1          ptcb = OSTCBPrioTbl[prio];
 515   1          if (ptcb != (OS_TCB *)0) {                                  /* Task to delete must exist           */
 516   2              ptcb->OSTCBDelReq = OS_TASK_DEL_REQ;                    /* Set flag indicating task to be DEL. */
 517   2              err               = OS_NO_ERR;
 518   2          } else {
 519   2              err               = OS_TASK_NOT_EXIST;                  /* Task must be deleted                */
 520   2          }
 521   1          OS_EXIT_CRITICAL();
 522   1          return (err);
 523   1      }
 524          #endif
 525          /*$PAGE*/
 526          /*
 527          *********************************************************************************************************
 528          *                                        GET THE NAME OF A TASK
 529          *
 530          * Description: This function is called to obtain the name of a task.
 531          *
 532          * Arguments  : prio      is the priority of the task that you want to obtain the name from.
 533          *
 534          *              pname     is a pointer to an ASCII string that will receive the name of the task.  The 
 535          *                        string must be able to hold at least OS_TASK_NAME_SIZE characters.
 536          *
 537          *              err       is a pointer to an error code that can contain one of the following values:
 538          *
 539          *                        OS_NO_ERR                  if the requested task is resumed
 540          *                        OS_TASK_NOT_EXIST          if the task has not been created
 541          *                        OS_PRIO_INVALID            if you specified an invalid priority:
 542          *                                                   A higher value than the idle task or not OS_PRIO_SELF.
 543          *                        OS_ERR_PNAME_NULL          You passed a NULL pointer for 'pname'
 544          *
 545          * Returns    : The length of the string or 0 if the task does not exist.
 546          *********************************************************************************************************
 547          */
 548          
 549          #if OS_TASK_NAME_SIZE > 0
              INT8U  OSTaskNameGet (INT8U prio, char *pname, INT8U *err)      KCREENTRANT     
C51 COMPILER V8.05a   OS_TASK                                                              04/11/2007 16:19:49 PAGE 10  

              {
              #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
                  OS_CPU_SR  cpu_sr;
              #endif
                  OS_TCB    *ptcb;
                  INT8U      len;
              
              
                  OS_ENTER_CRITICAL();
              #if OS_ARG_CHK_EN > 0
                  if (prio > OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {        /* Task priority valid ?               */
                      *err = OS_PRIO_INVALID;                                 /* No                                  */
                      return (0);
                  }
                  if (pname == (char *)0) {                    /* Is 'pname' a NULL pointer?                         */
                      OS_EXIT_CRITICAL();                      /* Yes                                                */
                      *err = OS_ERR_PNAME_NULL;
                      return (0);
                  }
              #endif
                  if (prio == OS_PRIO_SELF) {                  /* See if caller desires it's own name                */
                      prio = OSTCBCur->OSTCBPrio;
                  }
                  ptcb = OSTCBPrioTbl[prio];
                  if (ptcb == (OS_TCB *)0) {                   /* Does task exist?                                   */
                      OS_EXIT_CRITICAL();                      /* No                                                 */
                      *err = OS_TASK_NOT_EXIST;
                      return (0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视频在线观看一区| 日韩一区二区视频| 欧美日韩视频在线观看一区二区三区| 欧美日韩一区二区三区在线| 久久婷婷色综合| 夜夜嗨av一区二区三区网页| 国产麻豆视频精品| 欧美人xxxx| 国产精品久久久久久户外露出| 日韩黄色免费网站| www.欧美日韩| 国产日韩欧美不卡在线| 日韩经典中文字幕一区| 色伊人久久综合中文字幕| 久久夜色精品一区| 日韩电影一区二区三区四区| 色狠狠av一区二区三区| 亚洲国产成人自拍| 精品一区二区三区香蕉蜜桃 | 亚洲欧美日韩一区| 国产精品一区二区三区网站| 69堂成人精品免费视频| 亚洲狠狠爱一区二区三区| 波多野结衣在线一区| 久久久久久电影| 美国毛片一区二区三区| 欧美优质美女网站| 国产欧美日韩在线| 久久精品二区亚洲w码| 欧美精品国产精品| 一区二区激情视频| www.欧美.com| 国产欧美精品一区二区三区四区| 日韩和欧美一区二区三区| 一本色道**综合亚洲精品蜜桃冫 | 91视频一区二区| 欧美国产一区二区在线观看| 日韩国产欧美在线观看| 欧美系列亚洲系列| 亚洲免费av高清| 视频在线观看一区二区三区| 成人激情视频网站| 日韩免费观看高清完整版| 国产精品网曝门| 亚洲午夜羞羞片| caoporn国产一区二区| 国产精品沙发午睡系列990531| 久久精品国产免费看久久精品| 欧美日韩日本视频| 亚洲成人自拍偷拍| 欧美日韩中字一区| 亚洲电影你懂得| 欧美日韩在线播放三区| 午夜激情一区二区三区| 在线免费不卡电影| 亚洲成人第一页| 51精品国自产在线| 日韩av午夜在线观看| 欧美一区二区美女| 久久精品国产99国产精品| 日韩欧美一区二区不卡| 久久不见久久见免费视频7| 日韩欧美久久一区| 国产精品888| 国产精品国产三级国产普通话99| caoporen国产精品视频| 一区二区三区在线观看视频| 成av人片一区二区| 亚洲欧美日韩国产综合| 在线观看日韩电影| 日韩国产在线一| 久久一区二区三区国产精品| 色呦呦国产精品| 亚洲电影欧美电影有声小说| 日韩女优视频免费观看| 国产大陆a不卡| 亚洲精品视频在线看| 欧美日韩国产欧美日美国产精品| 蜜臀av性久久久久蜜臀av麻豆| 91精品国产一区二区| 韩国精品在线观看| 一区二区三区美女| 日韩午夜av一区| 99视频在线精品| 亚洲一区二区欧美激情| 欧美精品一区二区三区在线播放| 成人av小说网| 秋霞电影网一区二区| 日本一区二区三区视频视频| 日本乱码高清不卡字幕| 麻豆精品久久久| 亚洲色图丝袜美腿| 日韩欧美不卡一区| 97se亚洲国产综合自在线观| 久久成人精品无人区| 亚洲精品一二三四区| 2021久久国产精品不只是精品 | 一区二区三区在线免费观看| 精品国产麻豆免费人成网站| 国产一区二区三区免费观看| 国产精品国产三级国产普通话99 | 国产欧美日韩中文久久| 欧美日本一道本在线视频| 国产福利一区二区| 日韩中文字幕区一区有砖一区| 日本一区二区电影| 欧美一区二区精品在线| 欧美天堂一区二区三区| 成人免费的视频| 久久精品99久久久| 亚洲一区二区三区四区中文字幕| 国产亚洲成年网址在线观看| 欧美丰满少妇xxxbbb| 日本高清免费不卡视频| 激情综合网激情| 亚洲自拍偷拍欧美| 一区二区三区中文字幕| 国产精品视频九色porn| 国产亚洲一区二区在线观看| 欧美精品在欧美一区二区少妇| 欧美亚男人的天堂| 91欧美一区二区| av在线播放一区二区三区| 国产在线精品一区二区三区不卡| 日韩国产精品91| 午夜视频在线观看一区二区| 亚洲午夜久久久久中文字幕久| 精品一区二区免费看| 亚洲黄色av一区| 亚洲免费观看高清完整版在线观看 | 日韩一本二本av| 欧美日本不卡视频| 555夜色666亚洲国产免| 欧美日韩免费电影| 在线观看亚洲一区| 欧美三级电影一区| 欧美在线观看视频在线| 欧美日韩免费一区二区三区| 欧美视频一区二| 精品视频123区在线观看| 欧美日韩国产美女| 在线观看91av| 日韩免费看的电影| 亚洲精品一区在线观看| 欧美丰满少妇xxxxx高潮对白| www..com久久爱| 99久久精品国产观看| 欧美亚洲动漫精品| 制服视频三区第一页精品| 欧美成人三级在线| 久久久久久亚洲综合影院红桃 | 欧美videossexotv100| 精品国产乱码久久久久久久久| 在线观看日韩高清av| 7777精品伊人久久久大香线蕉超级流畅 | 国产麻豆午夜三级精品| 国产麻豆精品久久一二三| 蜜臀av一区二区| 成人va在线观看| 日本精品视频一区二区| 欧美一级高清片| 亚洲国产经典视频| 一区二区三区欧美| 日本免费新一区视频| 国产黑丝在线一区二区三区| 99久久精品国产精品久久| 欧美精品v日韩精品v韩国精品v| 亚洲h精品动漫在线观看| 亚洲一区二区在线视频| 日韩高清不卡一区二区三区| 国产精品中文字幕欧美| 色婷婷av一区| 欧美白人最猛性xxxxx69交| 国产精品久久久久永久免费观看| 亚洲最新在线观看| 国内精品视频一区二区三区八戒| 91小视频在线观看| 欧美一区二区国产| 亚洲另类春色校园小说| 日本免费新一区视频| 99re视频这里只有精品| 欧美日免费三级在线| 日韩欧美区一区二| 亚洲一区二区三区四区五区中文| 久久99蜜桃精品| 色婷婷狠狠综合| 欧美国产激情一区二区三区蜜月| 亚洲午夜激情av| 波多野结衣精品在线| 欧美成人精品3d动漫h| 一区二区三区成人| 国内久久精品视频| 欧美精品粉嫩高潮一区二区| 成人欧美一区二区三区白人| 久久99久久99精品免视看婷婷| 在线欧美日韩国产| 亚洲欧美在线视频| 久久精品国产77777蜜臀| av中文字幕亚洲| 久久―日本道色综合久久|