⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_tasksw.lst

📁 51上的RTOS
💻 LST
字号:
C51 COMPILER V7.06   OS_TASKSW                                                             10/29/2004 20:20:38 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE OS_TASKSW
OBJECT MODULE PLACED IN OS_TaskSW.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE OS_TaskSW.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /* $$$$$$$$$$$$$$$$$$   Copyrigth (c) $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                           
             -                    
   2              File name: OS_TaskSW.c
   3              Function describe: task attemper;create task;delete task
   4              Compiler: Keil uVision2
   5              Version: 1.01                                     
   6                                                                      Programmer: Shawyoo
   7                                                                 最后修改日期:20040729
   8            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
   9          #define     OS_GLOBALS        1
  10          #include    "RTOS.h"
  11          #include    "OS_TaskSW.h"
  12          //////////////////////////    osTask
  13          struct
  14          {
  15             uchar    Ready[MAX_TASK_ID_DIV8];        // 
  16             //uchar    Running[MAX_TASK_ID_DIV8];
  17          }  osTask;
  18          //////////////////////////////////////
  19          
  20          
  21          /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  22              Function: delete all task
  23                  Entrance parameter:none
  24                  Exit parameter: none
  25                  Global parameter: osTask
  26                  Local parameter: 1 byte
  27                  Call function: none
  28          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
  29          void     OSDeleteAllTask(void)
  30          {
  31   1         uchar    i;
  32   1         for(i=0;i<MAX_TASK_ID_DIV8;i++)
  33   1         {
  34   2            osTask.Ready[i]=0;
  35   2                //osTask.Running[i]=0;
  36   2         }
  37   1      }  // function end
  38          
  39          
  40          
  41          /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  42              Function: create one task
  43                  Entrance parameter: task ID
  44                  Exit parameter: none
  45                  Global parameter: osTask
  46                  Local parameter:2 bytes
  47                  Call function: none
  48          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
  49          void     OSCreateTask(uchar  taskID)
  50          {
  51   1         uchar   i;
  52   1         i=0;
  53   1         while(taskID>8)  {  taskID-=8;  i++;  }
  54   1         if(i<MAX_TASK_ID_DIV8)
C51 COMPILER V7.06   OS_TASKSW                                                             10/29/2004 20:20:38 PAGE 2   

  55   1           osTask.Ready[i]|=TaskFlagTab[taskID]; 
  56   1         
  57   1      }  // function end
  58          
  59          
  60          /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  61              Function: delete one task
  62                  Entrance parameter: task ID
  63                  Exit parameter: none
  64                  Global parameter: osTask
  65                  Local parameter:2 bytes
  66                  Call function: none
  67          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
  68          void     OSDeleteTask(uchar  taskID)
  69          {   
  70   1         uchar   i;
  71   1         i=0;
  72   1         while(taskID>8)  {  taskID-=8;  i++;  }
  73   1         if(i<MAX_TASK_ID_DIV8)
  74   1         {
  75   2            osTask.Ready[i]&=(~TaskFlagTab[taskID]);
  76   2                //osTask.Running[i]&=(~TaskFlagTab[taskID]);
  77   2         }  
  78   1      }  // function end
  79          
  80          
  81          
  82          /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  83              Function: Create periodicity excute task
  84                  Entrance parameter: None
  85                  Exit parameter: none
  86                  Global parameter: osTask,osTick
  87                  Local parameter: 4 bytes
  88                  Call function: none
  89          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
  90          void        OSPeriodicityTask()
  91          {
  92   1         uchar   i,j;
  93   1         uint    tick;
  94   1         NOP();  NOP();
  95   1         for(i=0;i<MAX_TASK_ID_DIV8;i++)
  96   1         {
  97   2            for(j=0;j<8;j++)
  98   2                {
  99   3                   tick=CycleExcute[i][j];
 100   3                       if((tick!=0)&&(osTick%tick==0))
 101   3                          OSCreateTask(i*8+j);  // 
 102   3                }
 103   2         }
 104   1      }
 105          
 106          
 107          
 108          
 109          /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 110              Function:  switch task,and excute the highest PRI task
 111                  Entrance parameter: NULL
 112                  Exit parameter: none
 113                  Global parameter: osTask
 114                  Local parameter:3 bytes
 115                  Call function: all task function and "TaskSwitchReturn";
 116          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
C51 COMPILER V7.06   OS_TASKSW                                                             10/29/2004 20:20:38 PAGE 3   

 117          ////////////////////////////
 118          void     OSTaskSwitch(void)
 119          {
 120   1         //static   osDoneTaskID;
 121   1         static   uchar    i,j,id,tc;   // task ID,task counter,   
 122   1         static   uchar    run;         // task running flag
 123   1         NOP();   NOP();
 124   1         NOP();   NOP();
 125   1         /////////////////////////////////////////////////   
 126   1         OSPeriodicityTask();
 127   1         NOP();   NOP();
 128   1         for(tc=0,i=0;i<MAX_TASK_ID_DIV8;i++)
 129   1         {
 130   2           id=osTask.Ready[i];
 131   2           if(id)  tc++;       // task counter
 132   2         }
 133   1         if((tc!=0)&&(run!=TASK_RUNNING))   // 
 134   1         {
 135   2            for(i=0;i<MAX_TASK_ID_DIV8;i++)
 136   2            {
 137   3               id=osTask.Ready[i];
 138   3               for(j=0;j<8;j++)
 139   3                   {
 140   4                      if(id&0x01)
 141   4                          {
 142   5                             NOP();   NOP();
 143   5                     NOP();   NOP();
 144   5                                 run=TASK_RUNNING;
 145   5                                 ResetWatchDog();
 146   5                                 NOP();   NOP();
 147   5                     NOP();   NOP();
 148   5                             TaskEntrance[i][j](); // execute one task
 149   5                     NOP();   NOP();
 150   5                     NOP();   NOP();
 151   5                                 OSDeleteTask(i*8+j);  // 
 152   5                                 run=TASK_STOP;
 153   5                          }
 154   4                          id>>=1;
 155   4                   }
 156   3                }
 157   2         }
 158   1         NOP();   NOP();
 159   1         TaskSwitchReturn();
 160   1      }  // function end
 161          /*     File end $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 162           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
 163          
 164          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    329    ----
   CONSTANT SIZE    =     48    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       2
   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 + -