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

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

?? os_core.lst

?? 在C8051F120內移植uCOS-II
?? LST
?? 第 1 頁 / 共 4 頁
字號:
                      OSIdleCtr    = 0L;                       /* Reset the idle counter for the next second         */
                      OS_EXIT_CRITICAL();
                      if (OSIdleCtrMax > 0L) {
                          usage = (INT8S)(100L - 100L * run / OSIdleCtrMax);
                          if (usage > 100) {
                              OSCPUUsage = 100;
                          } else if (usage < 0) {
                              OSCPUUsage =   0;
                          } else {
                              OSCPUUsage = usage;
                          }
                      } else {
                          OSCPUUsage = 0;
                      }
                      OSTaskStatHook();                        /* Invoke user definable hook                         */
                      OSTimeDly(OS_TICKS_PER_SEC);             /* Accumulate OSIdleCtr for the next second           */
                  }
              }
              #endif
 695          /*$PAGE*/
 696          /*
 697          *********************************************************************************************************
 698          *                                            INITIALIZE TCB
 699          *
 700          * Description: This function is internal to uC/OS-II and is used to initialize a Task Control Block when
 701          *              a task is created (see OSTaskCreate() and OSTaskCreateExt()).
 702          *
 703          * Arguments  : prio          is the priority of the task being created
 704          *
 705          *              ptos          is a pointer to the task's top-of-stack assuming that the CPU registers
 706          *                            have been placed on the stack.  Note that the top-of-stack corresponds to a 
 707          *                            'high' memory location is OS_STK_GROWTH is set to 1 and a 'low' memory
 708          *                            location if OS_STK_GROWTH is set to 0.  Note that stack growth is CPU
 709          *                            specific.
 710          *
 711          *              pbos          is a pointer to the bottom of stack.  A NULL pointer is passed if called by
 712          *                            'OSTaskCreate()'.
 713          *
 714          *              id            is the task's ID (0..65535)
 715          *
 716          *              stk_size      is the size of the stack (in 'stack units').  If the stack units are INT8Us
 717          *                            then, 'stk_size' contains the number of bytes for the stack.  If the stack
 718          *                            units are INT32Us then, the stack contains '4 * stk_size' bytes.  The stack
 719          *                            units are established by the #define constant OS_STK which is CPU
 720          *                            specific.  'stk_size' is 0 if called by 'OSTaskCreate()'.
 721          *
 722          *              pext          is a pointer to a user supplied memory area that is used to extend the task
 723          *                            control block.  This allows you to store the contents of floating-point
 724          *                            registers, MMU registers or anything else you could find useful during a 
 725          *                            context switch.  You can even assign a name to each task and store this name
 726          *                            in this TCB extension.  A NULL pointer is passed if called by OSTaskCreate().
 727          *
 728          *              opt           options as passed to 'OSTaskCreateExt()' or, 
 729          *                            0 if called from 'OSTaskCreate()'.
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 13  

 730          *
 731          * Returns    : OS_NO_ERR         if the call was successful
 732          *              OS_NO_MORE_TCB    if there are no more free TCBs to be allocated and thus, the task cannot
 733          *                                be created.
 734          *
 735          * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
 736          *********************************************************************************************************
 737          */
 738          static OS_TCB *ptcb11;
 739          INT8U OSTCBInit (INT8U prio, 
 740                           OS_STK *pbos, 
 741                           OS_STK *ptos, 
 742                           INT16U id, 
 743                           INT16U stk_size, 
 744                           void *pext, 
 745                           INT16U opt)reentrant
 746          {
 747   1              #if OS_CRITICAL_METHOD == 2
 748   1              unsigned DTYPE int_ss;
 749   1              #endif 
 750   1      
 751   1          OS_ENTER_CRITICAL();
 752   1          ptcb11 = OSTCBFreeList;                                  /* Get a free TCB from the free TCB list    *
             -/
 753   1          if (ptcb11 != (OS_TCB *)0) {
 754   2              OSTCBFreeList        = ptcb11->OSTCBNext;            /* Update pointer to free TCB list          *
             -/
 755   2              OS_EXIT_CRITICAL();
 756   2              ptcb11->OSTCBStkPtr    = pbos;                       /* Load Stack pointer in TCB                *
             -/
 757   2              ptcb11->OSTCBPrio      = (INT8U)prio;                /* Load task priority into TCB              *
             -/
 758   2              ptcb11->OSTCBStat      = OS_STAT_RDY;                /* Task is ready to run                     *
             -/
 759   2              ptcb11->OSTCBDly       = 0;                          /* Task is not delayed                      *
             -/
 760   2      
 761   2      #if OS_TASK_CREATE_EXT_EN        
 762   2              ptcb11->OSTCBExtPtr    = pext;                       /* Store pointer to TCB extension           *
             -/
 763   2              ptcb11->OSTCBStkSize   = stk_size;                   /* Store stack size                         *
             -/
 764   2              ptcb11->OSTCBStkTop    = ptos;                       /* Store pointer to bottom of stack         *
             -/
 765   2              ptcb11->OSTCBOpt       = opt;                        /* Store task options                       *
             -/
 766   2              ptcb11->OSTCBId        = id;                         /* Store task ID                            *
             -/
 767   2      #else
                      pext                 = pext;                       /* Prevent compiler warning if not used     */
                      stk_size             = stk_size;
                      pbos                 = pbos;
                      opt                  = opt;
                      id                   = id;
              #endif
 774   2      
 775   2      #if OS_TASK_DEL_EN        
                      ptcb11->OSTCBDelReq    = OS_NO_ERR;
              #endif
 778   2      
 779   2              ptcb11->OSTCBY         = prio >> 3;                  /* Pre-compute X, Y, BitX and BitY          *
             -/
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 14  

 780   2              ptcb11->OSTCBBitY      = OSMapTbl[ptcb11->OSTCBY];
 781   2              ptcb11->OSTCBX         = prio & 0x07;
 782   2              ptcb11->OSTCBBitX      = OSMapTbl[ptcb11->OSTCBX];
 783   2      
 784   2      #if     OS_MBOX_EN || (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_Sem_EN
 785   2              ptcb11->OSTCBEventPtr  = (OS_EVENT *)0;              /* Task is not pending on an event          *
             -/
 786   2      #endif
 787   2      
 788   2      #if     OS_MBOX_EN || (OS_Q_EN && (OS_MAX_QS >= 2))
                      ptcb11->OSTCBMsg       = (void *)0;                  /* No message received                      *
             -/
              #endif
 791   2      
 792   2              OS_ENTER_CRITICAL();
 793   2              OSTCBPrioTbl[prio]   = ptcb11;
 794   2              ptcb11->OSTCBNext      = OSTCBList;                  /* Link into TCB chain                      *
             -/
 795   2              ptcb11->OSTCBPrev      = (OS_TCB *)0;
 796   2              if (OSTCBList != (OS_TCB *)0) {
 797   3                  OSTCBList->OSTCBPrev = ptcb11;
 798   3              }
 799   2              OSTCBList               = ptcb11;
 800   2              OSRdyGrp               |= ptcb11->OSTCBBitY;         /* Make task ready to run                   *
             -/
 801   2              OSRdyTbl[ptcb11->OSTCBY] |= ptcb11->OSTCBBitX;
 802   2              OS_EXIT_CRITICAL();
 803   2              return (OS_NO_ERR);
 804   2          } else {
 805   2              OS_EXIT_CRITICAL();
 806   2              return (OS_NO_MORE_TCB);
 807   2          }
 808   1      }
 809          /*$PAGE*/
 810          /*
 811          *********************************************************************************************************
 812          *                                         PROCESS SYSTEM TICK
 813          *
 814          * Description: This function is used to signal to uC/OS-II the occurrence of a 'system tick' (also known
 815          *              as a 'clock tick').  This function should be called by the ticker ISR but, can also be
 816          *              called by a high priority task.
 817          *
 818          * Arguments  : none
 819          *
 820          * Returns    : none
 821          *********************************************************************************************************
 822          */
 823          
 824          void OSTimeTick (void)
 825          {
 826   1          #if OS_CRITICAL_METHOD == 2
 827   1              unsigned DTYPE int_ss;
 828   1              #endif 
 829   1      
 830   1              OS_TCB *ptcb;
 831   1      
 832   1      
 833   1          OSTimeTickHook();                                      /* Call user definable hook                 */
 834   1          ptcb = OSTCBList;                                      /* Point at first TCB in TCB list           */
 835   1          while (ptcb->OSTCBPrio != OS_IDLE_PRIO) {              /* Go through all TCBs in TCB list          */
 836   2              OS_ENTER_CRITICAL();
 837   2              if (ptcb->OSTCBDly != 0) {                         /* Delayed or waiting for event with TO     */
C51 COMPILER V8.08   OS_CORE                                                               04/13/2009 13:31:21 PAGE 15  

 838   3                  if (--ptcb->OSTCBDly == 0) {                   /* Decrement nbr of ticks to end of delay   */
 839   4                      if (!(ptcb->OSTCBStat & OS_STAT_SUSPEND)) {    /* Is task suspended?                   */
 840   5                          OSRdyGrp               |= ptcb->OSTCBBitY; /* No,  Make task Rdy to Run (timed out)*/
 841   5                          OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
 842   5                      } else {                                       /* Yes, Leave 1 tick to prevent ...     */
 843   5                          ptcb->OSTCBDly = 1;                        /* ... loosing the task when the ...    */
 844   5                      }                                              /* ... suspension is removed.           */
 845   4                  }
 846   3              }
 847   2              ptcb = ptcb->OSTCBNext;                            /* Point at next TCB in TCB list            */
 848   2              OS_EXIT_CRITICAL();
 849   2          }
 850   1          OS_ENTER_CRITICAL();                                   /* Update the 32-bit tick counter           */
 851   1          OSTime++;
 852   1          OS_EXIT_CRITICAL();
 853   1      }
 854          /*$PAGE*/
 855          /*
 856          *********************************************************************************************************
 857          *                                             GET VERSION
 858          *
 859          * Description: This function is used to return the version number of uC/OS-II.  The returned value
 860          *              corresponds to uC/OS-II's version number multiplied by 100.  In other words, version 2.00
 861          *              would be returned as 200.
 862          *
 863          * Arguments  : none
 864          *
 865          * Returns    : the version number of uC/OS-II multiplied by 100.
 866          *********************************************************************************************************
 867          */
 868          #if  OS_VERSION_CHK_EN
              INT16U OSVersion (void)reentrant
              {
                  return (OS_VERSION);
              }
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2405    ----
   CONSTANT SIZE    =    264    ----
   XDATA SIZE       =    259    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲aⅴ乱码一区二区三区| 大桥未久av一区二区三区中文| 久久成人免费电影| 97精品久久久午夜一区二区三区 | 亚洲午夜三级在线| 高清国产午夜精品久久久久久| 亚洲成在线观看| 国产一区二区三区四区五区入口 | 久久99久久99| 在线观看不卡视频| 综合激情成人伊人| 国产成人午夜电影网| 欧美日韩国产天堂| 亚洲精品日韩一| www.日本不卡| 国产午夜精品一区二区| 久久99精品久久久久婷婷| 欧美日韩高清一区二区不卡| 伊人夜夜躁av伊人久久| 成人免费视频国产在线观看| 久久精品一区二区| 国产精品伊人色| 精品免费国产二区三区| 免费看欧美美女黄的网站| 51精品久久久久久久蜜臀| 亚洲精品视频在线| 日本久久电影网| 亚洲精品视频一区| 色老头久久综合| 亚洲美女少妇撒尿| 91成人免费在线| 亚洲尤物在线视频观看| 欧美在线观看禁18| 亚洲gay无套男同| 91精品国产欧美一区二区18| 日韩av不卡一区二区| 91精品国产入口| 国产中文字幕精品| 欧美韩国日本综合| 99国产精品久久久久| 一区二区三区在线免费播放| 91成人免费电影| 日本在线不卡一区| 久久久亚洲午夜电影| 国产一区久久久| 国产精品久久久久久久久果冻传媒| 99国产精品99久久久久久| 一级精品视频在线观看宜春院| 欧美午夜不卡在线观看免费| 午夜久久久久久| 精品国产91洋老外米糕| 成人午夜电影久久影院| 亚洲成人精品影院| 久久蜜桃一区二区| 日本韩国欧美三级| 久久综合综合久久综合| 国产精品区一区二区三| 欧洲中文字幕精品| 国产精一区二区三区| 亚洲精品成人天堂一二三| 日韩一区二区三区av| 成人97人人超碰人人99| 亚洲成av人**亚洲成av**| 精品久久久久久久久久久久久久久| 岛国一区二区三区| 日韩电影在线一区| 国产精品拍天天在线| 欧美一级夜夜爽| 99国产精品99久久久久久| 免费在线观看成人| 亚洲视频在线一区二区| 精品福利在线导航| 色8久久人人97超碰香蕉987| 美国十次了思思久久精品导航| 国产精品网站一区| 日韩欧美专区在线| 91色porny蝌蚪| 久久精品理论片| 一区二区三区高清| 国产精品视频第一区| 日韩精品一区二区三区三区免费| 9色porny自拍视频一区二区| 久久成人免费电影| 日韩综合小视频| 中文字幕日韩一区| 国产视频一区二区在线| 日韩欧美在线观看一区二区三区| 色综合久久久网| 成人高清在线视频| 国产成人免费在线观看不卡| 毛片av一区二区| 成人性生交大片免费看在线播放| 麻豆91精品91久久久的内涵| 亚洲国产成人va在线观看天堂| 国产精品视频线看| 欧美精品一区二区三区很污很色的 | 国产在线日韩欧美| 日韩av一区二区三区| 亚洲成人免费视| 一区二区三区蜜桃网| 亚洲少妇中出一区| 中文字幕亚洲一区二区va在线| 国产蜜臀97一区二区三区| 欧美成人三级在线| 欧美成人三级电影在线| 日韩欧美另类在线| 欧美一区二区性放荡片| 欧美一区二区精品| 日韩精品一区二区三区在线播放| 777奇米成人网| 欧美一级高清片在线观看| 欧美精品粉嫩高潮一区二区| 91黄色免费网站| 欧美色精品在线视频| 欧美日韩成人在线一区| 欧美日韩精品电影| 91精品国产色综合久久ai换脸| 欧美日韩高清在线| 日韩欧美高清一区| 久久久亚洲综合| 国产精品久久久久aaaa樱花| 亚洲欧洲一区二区在线播放| 亚洲啪啪综合av一区二区三区| 自拍偷拍亚洲综合| 亚洲国产精品视频| 蜜臀av一区二区| 国产乱国产乱300精品| 成人毛片视频在线观看| 97久久久精品综合88久久| 欧美亚洲综合一区| 日韩欧美一区二区免费| 久久综合九色欧美综合狠狠| 国产欧美精品一区二区色综合 | 亚洲精品日韩专区silk| 香蕉影视欧美成人| 久久精品国产久精国产| 国产白丝网站精品污在线入口| 91丝袜呻吟高潮美腿白嫩在线观看| 色综合天天综合网天天狠天天| 欧美日韩在线免费视频| 久久美女艺术照精彩视频福利播放| 亚洲国产精品ⅴa在线观看| 亚洲区小说区图片区qvod| 日韩国产一二三区| 国产成人免费视频网站| 在线日韩av片| 久久网站热最新地址| 亚洲免费资源在线播放| 免费在线成人网| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲妇女屁股眼交7| 蜜桃av一区二区三区电影| 国产不卡一区视频| 欧美日韩免费视频| 国产偷v国产偷v亚洲高清 | 综合精品久久久| 精久久久久久久久久久| 在线精品亚洲一区二区不卡| www成人在线观看| 亚洲综合免费观看高清在线观看| 韩日av一区二区| 欧洲一区二区av| 欧美韩国日本不卡| 全国精品久久少妇| 日本韩国欧美一区| 久久这里只有精品6| 亚洲第一狼人社区| 粗大黑人巨茎大战欧美成人| 欧美一区二区三区播放老司机| 中文字幕在线视频一区| 国产一区二区视频在线| 欧美性一二三区| 亚洲蜜臀av乱码久久精品| 高清在线观看日韩| 亚洲永久免费视频| 色综合激情五月| 欧美韩日一区二区三区四区| 老司机一区二区| 91精品国产欧美一区二区18 | 国产精品一级二级三级| 555www色欧美视频| 亚洲综合免费观看高清完整版 | 免费人成网站在线观看欧美高清| 一本色道久久综合精品竹菊| 国产精品色哟哟| 国产成人免费视频网站| 国产亚洲人成网站| 国产一区二区三区精品欧美日韩一区二区三区 | 91一区二区三区在线播放| 日本一区二区三区免费乱视频| 激情综合网av| 久久精品一区蜜桃臀影院| 国产一区在线视频| 久久精品这里都是精品| 国产精品夜夜嗨| 国产香蕉久久精品综合网| 国产不卡免费视频| 一色屋精品亚洲香蕉网站| 久久久久久久综合| 国产精品夜夜嗨|