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

📄 os_cpu_c.lst

📁 该源码是本人经调试通过的UCOS2操作系统在51单片机上移植好的源代码
💻 LST
字号:
C51 COMPILER V7.20   OS_CPU_C                                                              09/30/2006 10:50:43 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE OS_CPU_C
OBJECT MODULE PLACED IN os_cpu_c.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE os_cpu_c.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #ifndef  OS_MASTER_FILE
   2          #include "includes.h"
   3          #endif
   4          
   5          void *OSTaskStkInit (void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt)   reentrant
   6          { 
   7   1      OS_STK *stk;
   8   1      
   9   1      ppdata = ppdata;
  10   1      opt = opt; //opt没被用到,保留此语句防止告警产生 
  11   1      stk = (OS_STK *)ptos; //用户堆栈最低有效地址
  12   1      *stk++ = 15; //用户堆栈长度
  13   1      *stk++ = (INT16U)task & 0xFF; //任务地址低8位
  14   1      *stk++ = (INT16U)task >> 8; //任务地址高8位 
  15   1      *stk++ = 0x00; //PSW
  16   1      *stk++ = 0x0A; //ACC
  17   1      *stk++ = 0x0B; //B
  18   1      *stk++ = 0x00; //DPL
  19   1      *stk++ = 0x00; //DPH
  20   1      *stk++ = 0x00; //R0
  21   1      *stk++ = 0x01; //R1
  22   1      *stk++ = 0x02; //R2
  23   1      *stk++ = 0x03; //R3
  24   1      *stk++ = 0x04; //R4
  25   1      *stk++ = 0x05; //R5
  26   1      *stk++ = 0x06; //R6
  27   1      *stk++ = 0x07; //R7
  28   1      //不用保存SP,任务切换时根据用户堆栈长度计算得出。 
  29   1      *stk++=(INT16U)(ptos+MaxStkSize)>>8;
  30   1      *stk++=(INT16U)(ptos+MaxStkSize)&0xff;
  31   1      return ((void *)ptos);
  32   1      }
  33          
  34          #if OS_CPU_HOOKS_EN
              void OSTaskCreateHook (OS_TCB *ptcb)   reentrant
              {
              ptcb = ptcb; /* Prevent compiler warning */
              }
              
              //void OSTaskDelHook (OS_TCB *ptcb) 
              //{
              //ptcb = ptcb; /* Prevent compiler warning */
              //}
              
              //void OSTaskSwHook(void) 
              //{
              //}
              
              //void OSTaskStatHook(void) 
              //{
              //}
              void OSTaskIdleHook(void)  reentrant
              {
              }
              void OSTimeTickHook (void)  reentrant
C51 COMPILER V7.20   OS_CPU_C                                                              09/30/2006 10:50:43 PAGE 2   

              {
              }
              #endif
  59          
  60          #if OS_VERSION >= 204
  61          void OSTCBInitHook(OS_TCB *ptcb)  reentrant
  62          {
  63   1       ptcb = ptcb;
  64   1      }
  65          
  66          void OSInitHookEnd(void)  reentrant
  67          {
  68   1      }
  69          
  70          void OSInitHookBegin(void)  reentrant
  71          {
  72   1      }
  73          #endif
  74          
  75          //初始化定时器0
  76          void InitTimer0(void) 
  77          {
  78   1      TMOD=TMOD&0xF0;
  79   1      TMOD=TMOD|0x01; //模式1(16位定时器),仅受TR0控制
  80   1      TH0=0x70; //定义Tick=50次/秒(即0.02秒/次)
  81   1      TL0=0x00; //OS_CPU_A.ASM 和 OS_TICKS_PER_SEC
  82   1      ET0=1; //允许T0中断
  83   1      TR0=1; 
  84   1      }
  85          
  86          void serial_initial(void)
  87          {
  88   1      SCON=0x52;
  89   1      TMOD=0x20;
  90   1      TH1=0xf3;
  91   1      TR1=1;
  92   1      }
  93          
  94          


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