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

📄 inittask.lst

📁 MCS-51的一个小型操作系统,在KeilC中大模式下编译工作
💻 LST
字号:
C51 COMPILER V8.02   INITTASK                                                              11/05/2004 10:43:35 PAGE 1   


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

line level    source

   1          
   2          /********************************************
   3                  嵌入式系统 小型操作系统
   4                           作者:汪普宏
   5                      制作日期:2006.9
   6          *********************************************/ 
   7          
   8          #include"OS.H"  
   9          #include"Init_Task.h"
  10          #include"OS_Mail.h"
  11          #include "OS_Memory.h"
  12          
  13          
  14          /*操作系统全局变量*/
  15          uchar data Prio;
  16          uchar data *spend;
  17          uchar data ISR_num ;
  18          uchar data OSRdyGrp;
  19          uchar data OSRdyTab[TASK_8N];
  20          task_link  xdata  OSPCB[N+1];
  21          
  22          /****************************************
  23          模块功能:初始化,开始任务切换
  24          模块接口:堆栈指针,任务优先级,任务函数地址,任务堆栈长度
  25          调用者: 主函数
  26          返回值:  无
  27          *****************************************/
  28          static uchar data *p;
  29          void Task_Init(uchar i,void(*addr)(void),uchar xdata *Task_sta)
  30          {  
  31   1         Task_sta[0]=(uint)(*addr)&0xff;
  32   1         Task_sta[1]=(uint)(*addr)>>8;
  33   1         OSPCB[i].sp_start=&Task_sta[0];
  34   1         OSPCB[i].sp_size=INIT_SP;
  35   1      }
  36          void OSStart(void)                                         //系统初始化,开始任务调度
  37          {  
  38   1         uchar i;
  39   1         p=SP-1;
  40   1         for(i=0;i<N+1;i++)                              //任务就绪表初始化
  41   1         {
  42   2                      OSPCB[i].flg=WAIT_MSG;
  43   2                      OSPCB[i].msg=0;
  44   2         }
  45   1         for(i=0;i<TASK_8N;i++)
  46   1         {
  47   2                      OSRdyTab[i]=0;                 //任务均处于等待状态
  48   2         }
  49   1         OSRdyGrp=0; 
  50   1        // OSInit_Malloc();                                      //动态内存初始化
  51   1        // OSIint_Queue();                     //消息列队初始化       
  52   1         Task1_Init_Hook();                     //任务中用户数据的初始化函数
  53   1         Task2_Init_Hook();
  54   1         Task3_Init_Hook();
  55   1         Task4_Init_Hook();
C51 COMPILER V8.02   INITTASK                                                              11/05/2004 10:43:35 PAGE 2   

  56   1         Task5_Init_Hook();
  57   1         Task_Free_Init_Hook();
  58   1         OS_RdyTask(FREE_TASK);                  //必须将空闲任务置于就绪表中
  59   1         Prio=FREE_TASK;                                 //先将当前任务指针指向空闲任务
  60   1         *p++=(uint)(free_task)&0xff;
  61   1         *p=(uint)(free_task)>>8;     
  62   1         spend=SP-1;
  63   1         EA=ET1=TR1=1;                       //任务切换的系统时钟开始工作
  64   1         OSTask_TimeDal(0);                      //开始任务调度
  65   1      } 


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