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

📄 serial.lst

📁 一步 移植ucosii for c51,ucosii for 51多任务实时操作系统
💻 LST
字号:
C51 COMPILER V8.12   SERIAL                                                                01/12/2009 17:44:26 PAGE 1   


C51 COMPILER V8.12, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\Obj\serial.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE CodeTest\serial.c LARGE BROWSE INCDIR(.\CodeOS) DEBUG OBJECTEXTEND CODE LIS
                    -TINCLUDE SYMBOLS PRINT(.\Obj\serial.lst) OBJECT(.\Obj\serial.obj)

line level    source

   1          #include "uCOS_II.H"
   1      =1  /*
   2      =1  *********************************************************************************************************
   3      =1  *                                                uC/OS-II
   4      =1  *                                          The Real-Time Kernel
   5      =1  *
   6      =1  *                            (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
   7      =1  *                                           All Rights Reserved
   8      =1  *
   9      =1  * File : uCOS_II.H
  10      =1  * By   : Jean J. Labrosse
  11      =1  *********************************************************************************************************
  12      =1  */
  13      =1  
  14      =1  /*
  15      =1  *********************************************************************************************************
  16      =1  *                                             MISCELLANEOUS
  17      =1  *********************************************************************************************************
  18      =1  */
  19      =1  //#include    <reg52.h>
  20      =1  #include    <sst89x5x4.h>
   1      =2  /*--------------------------------------------------------------------------
   2      =2  SST89x5x4.H
   3      =2  
   4      =2  Header file for 8-bit SST microcontrollers.
   5      =2  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
   6      =2  All rights reserved.
   7      =2  --------------------------------------------------------------------------*/
   8      =2  
   9      =2  #ifndef __SST89x5x4_H__
  10      =2  #define __SST89x5x4_H__
  11      =2  
  12      =2  /*  BYTE Registers  */
  13      =2  sfr P0    = 0x80;
  14      =2  sfr P1    = 0x90;
  15      =2  sfr P2    = 0xA0;
  16      =2  sfr P3    = 0xB0;
  17      =2  sfr PSW   = 0xD0;
  18      =2  sfr ACC   = 0xE0;
  19      =2  sfr B     = 0xF0;
  20      =2  sfr SP    = 0x81;
  21      =2  sfr DPL   = 0x82;
  22      =2  sfr DPH   = 0x83;
  23      =2  sfr PCON  = 0x87;
  24      =2  sfr TCON  = 0x88;
  25      =2  sfr TMOD  = 0x89;
  26      =2  sfr TL0   = 0x8A;
  27      =2  sfr TL1   = 0x8B;
  28      =2  sfr TH0   = 0x8C;
  29      =2  sfr TH1   = 0x8D;
  30      =2  sfr IE    = 0xA8;
  31      =2  sfr IP    = 0xB8;
  32      =2  sfr SCON  = 0x98;
  33      =2  sfr SBUF  = 0x99;
C51 COMPILER V8.12   SERIAL                                                                01/12/2009 17:44:26 PAGE 2   

  34      =2  
  35      =2  /*  8052 Extensions  */
  36      =2  sfr T2CON  = 0xC8;
  37      =2  sfr T2MOD  = 0xC9;
  38      =2  sfr RCAP2L = 0xCA;
  39      =2  sfr RCAP2H = 0xCB;
  40      =2  sfr TL2    = 0xCC;
  41      =2  sfr TH2    = 0xCD;
  42      =2  
  43      =2  /*  89E564 Extensions */
  44      =2  sfr IPA   = 0xF8;
  45      =2  sfr IEA   = 0xE8;
  46      =2  sfr SADEN = 0xA9;
  47      =2  sfr SPSR  = 0xAA;
  48      =2  sfr AUXR1 = 0xA2;
  49      =2  sfr AUXR  = 0x8E;
  50      =2  sfr WDTD  = 0x85;
  51      =2  sfr SPDR  = 0x86;
  52      =2  sfr SFCF  = 0xB1;
  53      =2  sfr SFCM  = 0xB2;
  54      =2  sfr SFAL  = 0xB3;
  55      =2  sfr SFAH  = 0xB4;
  56      =2  sfr SFDT  = 0xB5;
  57      =2  sfr SFST  = 0xB6;
  58      =2  sfr IPH   = 0xB7;
  59      =2  sfr SPCR  = 0xD5;
  60      =2  sfr IPAH  = 0xF7;
  61      =2  
  62      =2  /*  BIT Registers  */
  63      =2  /*  PSW  */
  64      =2  sbit CY    = PSW^7;
  65      =2  sbit AC    = PSW^6;
  66      =2  sbit F0    = PSW^5;
  67      =2  sbit RS1   = PSW^4;
  68      =2  sbit RS0   = PSW^3;
  69      =2  sbit OV    = PSW^2;
  70      =2  sbit P     = PSW^0; //8052 only
  71      =2  
  72      =2  /*  TCON  */
  73      =2  sbit TF1   = TCON^7;
  74      =2  sbit TR1   = TCON^6;
  75      =2  sbit TF0   = TCON^5;
  76      =2  sbit TR0   = TCON^4;
  77      =2  sbit IE1   = TCON^3;
  78      =2  sbit IT1   = TCON^2;
  79      =2  sbit IE0   = TCON^1;
  80      =2  sbit IT0   = TCON^0;
  81      =2  
  82      =2  /*  IE  */
  83      =2  sbit EA    = IE^7;
  84      =2  sbit ET2   = IE^5; //8052 only
  85      =2  sbit ES    = IE^4;
  86      =2  sbit ET1   = IE^3;
  87      =2  sbit EX1   = IE^2;
  88      =2  sbit ET0   = IE^1;
  89      =2  sbit EX0   = IE^0;
  90      =2  
  91      =2  /*  IP  */
  92      =2  sbit PT2   = IP^5;
  93      =2  sbit PS    = IP^4;
  94      =2  sbit PT1   = IP^3;
  95      =2  sbit PX1   = IP^2;
C51 COMPILER V8.12   SERIAL                                                                01/12/2009 17:44:26 PAGE 3   

  96      =2  sbit PT0   = IP^1;
  97      =2  sbit PX0   = IP^0;
  98      =2  
  99      =2  /*  P3  */
 100      =2  sbit RD    = P3^7;
 101      =2  sbit WR    = P3^6;
 102      =2  sbit T1    = P3^5;
 103      =2  sbit T0    = P3^4;
 104      =2  sbit INT1  = P3^3;
 105      =2  sbit INT0  = P3^2;
 106      =2  sbit TXD   = P3^1;
 107      =2  sbit RXD   = P3^0;
 108      =2  
 109      =2  /*  SCON  */
 110      =2  sbit SM0   = SCON^7;
 111      =2  sbit SM1   = SCON^6;
 112      =2  sbit SM2   = SCON^5;
 113      =2  sbit REN   = SCON^4;
 114      =2  sbit TB8   = SCON^3;
 115      =2  sbit RB8   = SCON^2;
 116      =2  sbit TI    = SCON^1;
 117      =2  sbit RI    = SCON^0;
 118      =2  
 119      =2  /*  P1  */
 120      =2  sbit T2EX  = P1^1; // 8052 only
 121      =2  sbit T2    = P1^0; // 8052 only
 122      =2               
 123      =2  /*  T2CON  */
 124      =2  sbit TF2    = T2CON^7;
 125      =2  sbit EXF2   = T2CON^6;
 126      =2  sbit RCLK   = T2CON^5;
 127      =2  sbit TCLK   = T2CON^4;
 128      =2  sbit EXEN2  = T2CON^3;
 129      =2  sbit TR2    = T2CON^2;
 130      =2  sbit C_T2   = T2CON^1;
 131      =2  sbit CP_RL2 = T2CON^0;
 132      =2  
 133      =2  #endif
  21      =1  #include    "os_cpu.h"
   1      =2  /*
   2      =2  *********************************************************************************************************
   3      =2  *                                               uC/OS-II
   4      =2  *                                               实时内核
   5      =2  *
   6      =2  *                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
   7      =2  *                                               版权所有
   8      =2  *
   9      =2  *                                            MCU-51 专用代码
  10      =2  *                                           KEIL C51大模式编译
  11      =2  *
  12      =2  * 文件名 : OS_CPU.H
  13      =2  * 作者   : Jean J. Labrosse
  14      =2  * 改编   : 高伟能(升级到ucOS-II V2.52)
  15      =2  *********************************************************************************************************
  16      =2  */
  17      =2  
  18      =2  #ifndef _OS_CPU_H_
  19      =2  #define _OS_CPU_H_
  20      =2  
  21      =2  #ifdef __C51__
  22      =2  #define OS_REENTRANT reentrant
  23      =2  #else
C51 COMPILER V8.12   SERIAL                                                                01/12/2009 17:44:26 PAGE 4   

           =2 #define OS_REENTRANT
           =2 #endif
  26      =2  
  27      =2  #ifdef  OS_CPU_GLOBALS
           =2 #define OS_CPU_EXT
           =2 #else
  30      =2  #define OS_CPU_EXT  extern
  31      =2  #endif
  32      =2  
  33      =2  /*
  34      =2  *********************************************************************************************************
  35      =2  *                                       数据类型
  36      =2  *                                     (编译器相关)
  37      =2  *********************************************************************************************************
  38      =2  */
  39      =2  
  40      =2  //详见C51.PDF第176页
  41      =2  typedef unsigned char  BOOLEAN;       //注意:不要使用bit定义,因为在结构体里无法使用
  42      =2  typedef unsigned char  INT8U;         //无符号8位数
  43      =2  typedef signed   char  INT8S;         //有符号8位数
  44      =2  typedef unsigned int   INT16U;        //无符号16位数
  45      =2  typedef signed   int   INT16S;        //有符号16位数
  46      =2  typedef unsigned long  INT32U;        //无符号32位数
  47      =2  typedef signed   long  INT32S;        //有符号32位数
  48      =2  typedef float          FP32;          //单精度浮点数
  49      =2  typedef double         FP64;          //双精度浮点数
  50      =2  
  51      =2  typedef unsigned char  OS_STK;        //栈单元宽度为8比特
  52      =2  typedef unsigned char  OS_CPU_SR;     /* Define size of CPU status register (PSW = 8 bits)  */
  53      =2  
  54      =2  #define BYTE           INT8S          //兼容以前版本的数据类型
  55      =2  #define UBYTE          INT8U          //uC/OS-II可以不用这些数据类型
  56      =2  #define WORD           INT16S
  57      =2  #define UWORD          INT16U
  58      =2  #define LONG           INT32S
  59      =2  #define ULONG          INT32U
  60      =2  
  61      =2  /* 
  62      =2  *********************************************************************************************************
  63      =2  *                              处理器相关代码 MCU-51 (大模式)
  64      =2  * 针对51单片机,只使用方法1(直接开关中断)
  65      =2  *********************************************************************************************************
  66      =2  */
  67      =2  
  68      =2  #define  OS_CRITICAL_METHOD    1
  69      =2  
  70      =2  #if      OS_CRITICAL_METHOD == 1
  71      =2  #define  OS_ENTER_CRITICAL()  EA=0    //关中断
  72      =2  #define  OS_EXIT_CRITICAL()   EA=1    //开中断
  73      =2  #endif
  74      =2  
  75      =2  #if      OS_CRITICAL_METHOD == 2
           =2 /* As an undocumented keyword of keil c. __asm is supported in Keil C v6.20.
           =2 . No other means to define assemble language code in a macro, I have to use
           =2 it here. If your compiler does not support __asm, use method 1 or 3 then. */
           =2 /* A2 AF MOV C, EA*/
           =2 /* C2 AF CLR EA   */
           =2 /* C0 D0 PUSH PSW */
           =2 #define  OS_ENTER_CRITICAL()    __asm DB 0A2H, 0AFH, 0C2H, 0AFH, 0C0H, 0D0H
           =2 
           =2 /* D0 D0 POP PSW   */
           =2 /* 92 AF MOV EA, C */
C51 COMPILER V8.12   SERIAL                                                                01/12/2009 17:44:26 PAGE 5   

           =2 #define  OS_EXIT_CRITICAL()     __asm DB 0D0H, 0D0H, 092H, 0AFH
           =2 #endif
  88      =2  
  89      =2  #if      OS_CRITICAL_METHOD == 3
           =2 #define  OS_ENTER_CRITICAL()  (cpu_sr = EA, EA=0)   /* Disable interrupts  */
           =2 #define  OS_EXIT_CRITICAL()   (EA=cpu_sr)               /* Enable  interrupts  */
           =2 #endif
  93      =2  
  94      =2  
  95      =2  #define  OS_STK_GROWTH    0           //MCU-51堆栈从下往上增长  1=向下,0=向上
  96      =2  
  97      =2  #define  OS_TASK_SW()     OSCtxSw()   //因为MCU-51没有软中断指令,所以用程序调用代替。两者的堆栈格式相同,
  98      =2                                        //RETI指令复位中断系统,RET则没有。实践表明,对于MCU-51,用子程序调
  99      =2                                        //用入栈,用中断返回指令RETI出栈是没有问题的,反之中断入栈RET出栈则
 100      =2                                        //不行。总之,对于入栈,子程序调用与中断调用效果是一样的,可以混用。
 101      =2                                        //在没有中断发生的情况下复位中断系统也不会影响系统正常运行。
 102      =2                                        //详见《uC/OS-II》第八章193页第12行
 103      =2                                        
 104      =2  #define OS_ISR_PROTO_EXT        1
 105      =2  void OSCtxSw(void);
 106      =2  void OSTickInit(void);                          //系统定时器初始化
 107      =2  void OSTickISR(void);                           //系统定时器中断处理程序
 108      =2  #endif //_OS_CPU_H
  22      =1  #include    "os_cfg.h"
   1      =2  /*
   2      =2  *********************************************************************************************************
   3      =2  *                                                uC/OS-II
   4      =2  *                                          The Real-Time Kernel
   5      =2  *
   6      =2  *                           (c) Copyright 1992-2001, Jean J. Labrosse, Weston, FL
   7      =2  *                                           All Rights Reserved
   8      =2  *
   9      =2  *                                  uC/OS-II Configuration File for V2.52
  10      =2  *
  11      =2  * File : OS_CFG.H
  12      =2  * By   : Jean J. Labrosse
  13      =2  *********************************************************************************************************
  14      =2  */
  15      =2  
  16      =2  /*
  17      =2  *********************************************************************************************************
  18      =2  *                                         uC/OS-II CONFIGURATION
  19      =2  *********************************************************************************************************
  20      =2  */
  21      =2  #ifndef _OS_CFG_H_
  22      =2  #define _OS_CFG_H_
  23      =2  
  24      =2  //#define MaxStkSize              100    /*根据杨屹的修改,每个任务使用同样大小的堆栈,这就是每个堆栈的大

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -