📄 os_time.ls1
字号:
A51 MACRO ASSEMBLER OS_TIME 05/17/2005 11:20:00 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN OS_TIME.OBJ
ASSEMBLER INVOKED BY: D:\tools\Keil\C51\BIN\A51.EXE OS_TIME.src PR(.\OS_TIME.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\OS_TIME.SRC generated from: SOURCE\OS_TIME.C
2 ; COMPILER INVOKED BY:
3 ; D:\tools\Keil\C51\BIN\C51.EXE SOURCE\OS_TIME.C LARGE OPTIMIZE(SIZE) REGFILE(.\OS_A
T89C55WD.ORC) BROWSE NOINTPROMOTE INCDIR(D:\MY\empolder\uCOS-II\MCS-51\AT89C55WD\Keil 7_5\)
DEBUG OBJECTEXTEND NOPRINT SRC(.\OS_TIME.SRC)
4
5 $nomod51
6
7 NAME OS_TIME
8
0080 9 P0 DATA 080H
0090 10 P1 DATA 090H
00A0 11 P2 DATA 0A0H
00B0 12 P3 DATA 0B0H
00D6 13 AC BIT 0D0H.6
00B4 14 T0 BIT 0B0H.4
0091 15 T2_EX BIT 090H.1
00B5 16 T1 BIT 0B0H.5
00AF 17 EA BIT 0A8H.7
0090 18 T2 BIT 090H.0
00A8 19 IE DATA 0A8H
0080 20 P0_0 BIT 080H.0
0090 21 P1_0 BIT 090H.0
0081 22 P0_1 BIT 080H.1
00A0 23 P2_0 BIT 0A0H.0
0091 24 P1_1 BIT 090H.1
0082 25 P0_2 BIT 080H.2
00A1 26 P2_1 BIT 0A0H.1
0092 27 P1_2 BIT 090H.2
0083 28 P0_3 BIT 080H.3
00A2 29 P2_2 BIT 0A0H.2
0093 30 P1_3 BIT 090H.3
0084 31 P0_4 BIT 080H.4
00A3 32 P2_3 BIT 0A0H.3
0094 33 P1_4 BIT 090H.4
0085 34 P0_5 BIT 080H.5
00CE 35 EXF2 BIT 0C8H.6
00B7 36 RD BIT 0B0H.7
00A4 37 P2_4 BIT 0A0H.4
0095 38 P1_5 BIT 090H.5
0086 39 P0_6 BIT 080H.6
00A5 40 P2_5 BIT 0A0H.5
0096 41 P1_6 BIT 090H.6
0087 42 P0_7 BIT 080H.7
00AC 43 ES BIT 0A8H.4
00A6 44 P2_6 BIT 0A0H.6
0097 45 P1_7 BIT 090H.7
00A7 46 P2_7 BIT 0A0H.7
00B8 47 IP DATA 0B8H
0098 48 RI BIT 098H.0
00D7 49 CY BIT 0D0H.7
00B2 50 INT0 BIT 0B0H.2
0099 51 TI BIT 098H.1
00B3 52 INT1 BIT 0B0H.3
00CB 53 RCAP2H DATA 0CBH
00BC 54 PS BIT 0B8H.4
0081 55 SP DATA 081H
00D2 56 OV BIT 0D0H.2
A51 MACRO ASSEMBLER OS_TIME 05/17/2005 11:20:00 PAGE 2
00CA 57 RCAP2L DATA 0CAH
00C9 58 C_T2 BIT 0C8H.1
00B6 59 WR BIT 0B0H.6
00CD 60 RCLK BIT 0C8H.5
00CC 61 TCLK BIT 0C8H.4
0087 62 PCON DATA 087H
0099 63 SBUF DATA 099H
0098 64 SCON DATA 098H
0089 65 TMOD DATA 089H
0088 66 TCON DATA 088H
0089 67 IE0 BIT 088H.1
008B 68 IE1 BIT 088H.3
00F0 69 B DATA 0F0H
00C8 70 CP_RL2 BIT 0C8H.0
00E0 71 ACC DATA 0E0H
00A9 72 ET0 BIT 0A8H.1
008D 73 TF0 BIT 088H.5
00AB 74 ET1 BIT 0A8H.3
008F 75 TF1 BIT 088H.7
00AD 76 ET2 BIT 0A8H.5
00CF 77 TF2 BIT 0C8H.7
009A 78 RB8 BIT 098H.2
008C 79 TH0 DATA 08CH
0088 80 IT0 BIT 088H.0
00A8 81 EX0 BIT 0A8H.0
008D 82 TH1 DATA 08DH
008A 83 IT1 BIT 088H.2
00AA 84 EX1 BIT 0A8H.2
009B 85 TB8 BIT 098H.3
00CD 86 TH2 DATA 0CDH
00D0 87 P BIT 0D0H.0
009F 88 SM0 BIT 098H.7
008A 89 TL0 DATA 08AH
009E 90 SM1 BIT 098H.6
008B 91 TL1 DATA 08BH
009D 92 SM2 BIT 098H.5
00CC 93 TL2 DATA 0CCH
00B9 94 PT0 BIT 0B8H.1
00BB 95 PT1 BIT 0B8H.3
00D3 96 RS0 BIT 0D0H.3
008C 97 TR0 BIT 088H.4
00BD 98 PT2 BIT 0B8H.5
00D4 99 RS1 BIT 0D0H.4
008E 100 TR1 BIT 088H.6
00CA 101 TR2 BIT 0C8H.2
00B8 102 PX0 BIT 0B8H.0
00BA 103 PX1 BIT 0B8H.2
0083 104 DPH DATA 083H
0082 105 DPL DATA 082H
00CB 106 EXEN2 BIT 0C8H.3
009C 107 REN BIT 098H.4
00C9 108 T2MOD DATA 0C9H
00C8 109 T2CON DATA 0C8H
00A2 110 DPS DATA 0A2H
00B0 111 RXD BIT 0B0H.0
00B1 112 TXD BIT 0B0H.1
00D5 113 F0 BIT 0D0H.5
00D1 114 F1 BIT 0D0H.1
00D0 115 PSW DATA 0D0H
116 ?PR?_?OSTimeDly?OS_TIME SEGMENT CODE
117 ?PR?_?OSTimeDlyHMSM?OS_TIME SEGMENT CODE
118 EXTRN XDATA (OSRdyGrp)
119 EXTRN CODE (_?OS_Sched)
120 EXTRN XDATA (OSTCBCur)
121 EXTRN XDATA (OSRdyTbl)
122 EXTRN CODE (?C?ADDXBP)
A51 MACRO ASSEMBLER OS_TIME 05/17/2005 11:20:00 PAGE 3
123 EXTRN DATA (?C_XBP)
124 EXTRN CODE (?C?PLDXDATA)
125 EXTRN CODE (?C?CLDOPTR)
126 EXTRN CODE (?C?ISTOPTR)
127 EXTRN CODE (?C?XBPOFF)
128 EXTRN CODE (?C?LMUL)
129 EXTRN CODE (?C?LADD)
130 EXTRN CODE (?C?ULDIV)
131 EXTRN CODE (?C?LSTXDATA)
132 EXTRN CODE (?C?LLDXDATA)
133 EXTRN CODE (?C?IILDX)
134 PUBLIC _?OSTimeDlyHMSM
135 PUBLIC _?OSTimeDly
136 ; /*
137 ; *****************************************************************************************
****************
138 ; * uC/OS-II
139 ; * The Real-Time Kernel
140 ; * TIME MANAGEMENT
141 ; *
142 ; * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
143 ; * All Rights Reserved
144 ; *
145 ; * File : OS_TIME.C
146 ; * By : Jean J. Labrosse
147 ; *****************************************************************************************
****************
148 ; */
149 ;
150 ; #ifndef OS_MASTER_FILE
151 ; #include "includes.h"
152 ; #endif
153 ;
154 ; /*
155 ; *****************************************************************************************
****************
156 ; * DELAY TASK 'n' TICKS (n from 0 to 65535)
157 ; *
158 ; * Description: This function is called to delay execution of the currently running task u
ntil the
159 ; * specified number of system ticks expires. This, of course, directly equat
es to delaying
160 ; * the current task for some time to expire. No delay will result If the spe
cified delay is
161 ; * 0. If the specified delay is greater than 0 then, a context switch will r
esult.
162 ; *
163 ; * Arguments : ticks is the time delay that the task will be suspended in number of c
lock 'ticks'.
164 ; * Note that by specifying 0, the task will not be delayed.
165 ; *
166 ; * Returns : none
167 ; *****************************************************************************************
****************
168 ; */
169 ;
170 ; void OSTimeDly (INT16U ticks)LG_REENTRANT
171
---- 172 RSEG ?PR?_?OSTimeDly?OS_TIME
0000 173 _?OSTimeDly:
174 USING 0
175 ; SOURCE LINE # 35
0000 90FFFE 176 MOV DPTR,#0FFFEH
0003 120000 F 177 LCALL ?C?ADDXBP
0006 EE 178 MOV A,R6
0007 F0 179 MOVX @DPTR,A
A51 MACRO ASSEMBLER OS_TIME 05/17/2005 11:20:00 PAGE 4
0008 A3 180 INC DPTR
0009 EF 181 MOV A,R7
000A F0 182 MOVX @DPTR,A
183 ; {
184 ; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status regis
ter */
185 ; OS_CPU_SR cpu_sr;
186 ; #endif
187 ;
188 ;
189 ; if (ticks > 0) { /* 0 means no d
elay! */
190 ; SOURCE LINE # 42
000B 850083 F 191 MOV DPH,?C_XBP
000E 850082 F 192 MOV DPL,?C_XBP+01H
0011 E0 193 MOVX A,@DPTR
0012 FC 194 MOV R4,A
0013 A3 195 INC DPTR
0014 E0 196 MOVX A,@DPTR
0015 FD 197 MOV R5,A
0016 D3 198 SETB C
0017 9400 199 SUBB A,#00H
0019 EC 200 MOV A,R4
001A 9400 201 SUBB A,#00H
001C 405B 202 JC ?C0003
203 ; OS_ENTER_CRITICAL();
204 ; SOURCE LINE # 43
001E C2AF 205 CLR EA
206 ; if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) { /* Delay curren
t task */
207 ; SOURCE LINE # 44
0020 900000 F 208 MOV DPTR,#OSTCBCur
0023 120000 F 209 LCALL ?C?PLDXDATA
0026 900011 210 MOV DPTR,#011H
0029 120000 F 211 LCALL ?C?CLDOPTR
002C 2400 F 212 ADD A,#LOW (OSRdyTbl)
002E F582 213 MOV DPL,A
0030 E4 214 CLR A
0031 3400 F 215 ADDC A,#HIGH (OSRdyTbl)
0033 F583 216 MOV DPH,A
0035 C083 217 PUSH DPH
0037 C082 218 PUSH DPL
0039 E0 219 MOVX A,@DPTR
003A FF 220 MOV R7,A
003B 900000 F 221 MOV DPTR,#OSTCBCur
003E 120000 F 222 LCALL ?C?PLDXDATA
0041 900012 223 MOV DPTR,#012H
0044 120000 F 224 LCALL ?C?CLDOPTR
0047 F4 225 CPL A
0048 FE 226 MOV R6,A
0049 EF 227 MOV A,R7
004A 5E 228 ANL A,R6
004B D082 229 POP DPL
004D D083 230 POP DPH
004F F0 231 MOVX @DPTR,A
0050 7013 232 JNZ ?C0002
233 ; OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
234 ; SOURCE LINE # 45
0052 900000 F 235 MOV DPTR,#OSRdyGrp
0055 E0 236 MOVX A,@DPTR
0056 FF 237 MOV R7,A
0057 900013 238 MOV DPTR,#013H
005A 120000 F 239 LCALL ?C?CLDOPTR
005D F4 240 CPL A
005E FE 241 MOV R6,A
005F EF 242 MOV A,R7
A51 MACRO ASSEMBLER OS_TIME 05/17/2005 11:20:00 PAGE 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -