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

📄 os_cpu_a.lst

📁 uCOS 嵌入式操作系统的改进版,增加了网络通讯.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   OS_CPU_A                                                              07/29/2003 20:45:13 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE OS_CPU_A
OBJECT MODULE PLACED IN ..\keilc51\os_cpu_a.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\keilc51\os_cpu_a.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\os_cpu_a.lst)
                    - SRC(.\os_cpu_a.SRC)

stmt level    source

   1          //=======================================================================================================
   2          /*
   3          *                                               uC/OS-II
   4          *                                         The Real-Time Kernel
   5          *
   6          *                         (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
   7          *                                          All Rights Reserved
   8          *
   9          *
  10          *                                         80x51  Specific code
  11          *                                          LARGE MEMORY MODEL
  12          *
  13          *                                           Keil C51  V7.06a
  14          *
  15          * File         : OS_CPU_a.C
  16          * By           : Lin FengGe
  17          */
  18          //=======================================================================================================
  19          
  20          //=======================================================================================================
  21          //#Lin@保护堆栈
  22          /*
  23          用户仿真堆栈:
  24          
  25                              -------------
  26                                                  | High Addr |    <--使用xdata空间
  27                                                  -------------
  28                                                  |           |
  29                                   ---->  | Stick     |    <--保护堆栈内容
  30                                  |               |           |
  31                                  |               -------------
  32                                  |               | Count     |    <--用户仿真堆栈基地址,存放堆栈使用计数<-----
  33                                  |               -------------                                                 |
  34                      |                                                                     |
  35          */
  36          //==========|=====================================================================|======================
  37          /*          |                                                                     |
  38          系统堆栈:   |                                                                     |
  39                      |       -------------                                                 |
  40                      |       | High Addr |    <--idata                                     |
  41                                  |               -------------                                      ----------------------
  42                                  |       |           |    <--当前任务SP             ---->--| SP - UserSysSP_Start |
  43                                  |       |           |                                     |                      |
  44                       <----  | Stick     |    <--当前任务堆栈                   ----------------------
  45                                                  |           |                                                 |
  46                                                  |           |                                                 |
  47                                                  -------------                                                 |
  48                              |           |    <--UserSysSP_Start        ---->-------->-----
  49                                                  |           |
  50                                                  | System    |    <--系统使用
  51                              |           |
  52                                                  -------------
  53          
  54          */
C51 COMPILER V7.06   OS_CPU_A                                                              07/29/2003 20:45:13 PAGE 2   

  55          //=======================================================================================================
  56          //#Lin@恢复堆栈
  57          /*
  58          用户仿真堆栈:
  59          
  60                              -------------
  61                                                  | High Addr |    <--使用xdata空间
  62                                                  -------------
  63                                                  |           |
  64                                   <----  | Stick     |    <--保护堆栈内容
  65                                  |               |           |
  66                                  |               -------------
  67                                  |               | Count     |    <--用户仿真堆栈基地址,存放堆栈使用计数 ---->
  68                                  |               -------------                                                 |
  69                      |                                                                     |
  70          */
  71          //==========|=====================================================================|======================
  72          /*          |                                                                     |
  73          系统堆栈:   |                                                                     |
  74                      |       -------------                                                 |
  75                      |       | High Addr |    <--idata                                     |
  76                                  |               -------------                                         -----------------
  77                                  |       |           |    <--高优任务SP             <---<---- | UserSysSP_Start |
  78                                  |       |           |                                        |  + Count        |
  79                       ---->  | Stick     |    <--高优任务堆栈                      -----------------
  80                                                  |           |                                                 |
  81                                                  |           |                                                 |
  82                                                  -------------                                                 |
  83                              |           |    <--UserSysSP_Start        ---->-------->-----
  84                                                  |           |
  85                                                  | System    |    <--系统使用
  86                              |           |
  87                                                  -------------
  88          
  89          */
  90          //=======================================================================================================
  91          
  92          
  93          
  94          //#define  OS_CPU_GLOBALS
  95          #include "includes.h"
  96                          
  97          //=======================================================================================================
  98          //=======================================================================================================
  99          #pragma asm
 100          
 101          //#Lin@仿真keil c51中断生成入栈代码,参看.src文件
 102          
 103          USERPUSHALL     MACRO
 104          
 105                  PUSH    ACC
 106                  PUSH    B
 107                  PUSH    DPH
 108                  PUSH    DPL
 109                  PUSH    PSW
 110                  MOV     PSW,#00H
 111                  PUSH    AR0
 112                  PUSH    AR1
 113                  PUSH    AR2
 114                  PUSH    AR3
 115                  PUSH    AR4
 116                  PUSH    AR5
C51 COMPILER V7.06   OS_CPU_A                                                              07/29/2003 20:45:13 PAGE 3   

 117                  PUSH    AR6
 118                  PUSH    AR7
 119          
 120          ENDM
 121          #pragma endasm
 122          
 123          #pragma asm
 124          
 125          //#Lin@仿真keil c51中断生成出栈代码,参看.src文件
 126          
 127          USERPOPALL      MACRO
 128          
 129                  POP     AR7
 130                  POP     AR6
 131                  POP     AR5
 132                  POP     AR4
 133                  POP     AR3
 134                  POP     AR2
 135                  POP     AR1
 136                  POP     AR0
 137                  POP     PSW
 138                  POP     DPL
 139                  POP     DPH
 140                  POP     B
 141                  POP     ACC
 142          
 143          ENDM
 144          #pragma endasm
 145                  
 146          //=======================================================================================================
 147          //=======================================================================================================
 148          //=======================================================================================================
 149          
 150          //#Lin@任务级切换
 151          //#Lin@其他子程序参看此处注释
 152          
 153          void          OSCtxSw(void) //using 3
 154          {
 155   1      
 156   1          OS_STK      idata   *UserSysStkSP;                  //#Lin@系统堆栈指针
 157   1          OS_STK      *UserUsrStkSP;                                  //#Lin@用户仿真堆栈指针
 158   1              INT8U   UserStkCount;                                   //#Lin@堆栈使用计数
 159   1      
 160   1              
 161   1      #pragma asm
 162   1      
 163   1              USERPUSHALL
 164   1              
 165   1      #pragma endasm
 166   1              
 167   1      //      OSTCBCur ->OSTCBStkPtr = UsrStkSP;
 168   1      //#Lin@指针操作,用户仿真堆栈填入内容
 169   1      
 170   1              UserSysStkSP = UserSysSP_Start;                                 //#Lin@获取系统堆栈基地址
 171   1              UserStkCount = SP - UserSysSP_Start;                    //#Lin@获取堆栈使用范围
 172   1              UserUsrStkSP = OSTCBCur ->OSTCBStkPtr;                  //#Lin@获取用户仿真堆栈基地址
 173   1              
 174   1      //      SP = UserSysSP_Start;//?
 175   1              
 176   1      //      UserUsrStkSP += UserStkCount;
 177   1              *UserUsrStkSP = UserStkCount;                                   //#Lin@存储计数
 178   1              
C51 COMPILER V7.06   OS_CPU_A                                                              07/29/2003 20:45:13 PAGE 4   

 179   1      //      OSTCBCur ->OSTCBStkPtr = UserUsrStkSP;
 180   1      //#Lin@数据传输 
 181   1      
 182   1              do
 183   1                      {
 184   2                      UserUsrStkSP ++;
 185   2                      UserSysStkSP ++;
 186   2                      *UserUsrStkSP = *UserSysStkSP;
 187   2                      UserStkCount --;
 188   2                      }
 189   1              while(UserStkCount != 0);
 190   1      
 191   1                      
 192   1              OSTaskSwHook();
 193   1              
 194   1              OSTCBCur = OSTCBHighRdy;
 195   1              OSPrioCur = OSPrioHighRdy;

⌨️ 快捷键说明

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