📄 os_wait.lst
字号:
000020 ED 120 SetTimeout: MOV A,R5
000021 F6 121 MOV @R0,A
000022 6029 122 JZ no_wait1
123
AX51 MACRO ASSEMBLER OS_WAIT 11/21/05 17:35:21 PAGE 3
000024 124 wait:
125 ; twait = K_TMO;
000024 7E02 126 MOV R6,#K_TMO
000026 08 127 ??C0007: INC R0
128 ; }
129
130 ; if (typ & K_SIG) {
000027 30F010 131 JNB B.B_WAITSIG,??C0003
132 ; if (STATE[current].st & K_RDY) {
133 ; STATE[current].st &= ~K_RDY;
134 ; goto RunTask;
135 ; }
00002A C2AF 136 CLR EA
00002C E6 137 MOV A,@R0
00002D 10E727 138 JBC ACC.B_RDY,RunTask
139 ; if (STATE[current].st & SIG_EVENT) {
000030 0E 140 INC R6 ; replaces ORL AR6,#K_SIG
000031 30E20C 141 JNB ACC.B_SIGNAL,??C0003A
000034 D2AF 142 SETB EA
143 ; st = SIG_EVENT;
000036 7F04 144 MOV R7,#SIG_EVENT ; correction 9.8.2002
145 ; goto no_wait;
000038 8016 146 SJMP no_wait
147 ; }
148 ; }
00003A 149 ??C0003:
150 ; switchnow (); /* Select Another Task */
00003A C2AF 151 CLR EA
00003C E6 152 MOV A,@R0
153 ; if (STATE[current].st & K_RDY) {
154 ; STATE[current].st &= ~K_RDY;
155 ; goto RunTask;
156 ; }
00003D 10E717 157 JBC ACC.B_RDY,RunTask
000040 158 ??C0003A:
000040 54EC 159 ANL A,#NOT (K_READY + K_TMO + K_SIG) ; 6.12.2002
000042 4E 160 ORL A,R6
000043 F6 161 MOV @R0,A
000044 D2AF 162 SETB EA
000046 D2A9 163 SETB ET0
000048 A502000000 E 164 EJMP OS_SWITCH_TASK
165
00004D 166 no_wait1:
167 ; st = TMO_EVENT;
00004D 7F08 168 MOV R7,#TMO_EVENT
00004F 08 169 INC R0
000050 170 no_wait:
171 ; STATE[current].st &= ~ (st | K_SIG | K_TMO);
172 ; return (st);
000050 EF 173 MOV A,R7
000051 4483 174 ORL A,#K_SIG + K_TMO + K_RDY
000053 F4 175 CPL A
000054 C2AF 176 CLR EA
000056 56 177 ANL A,@R0
000057 C6 178 RunTask: XCH A,@R0
000058 D2AF 179 SETB EA
00005A D2A9 180 SETB ET0
181 ; st |= (previous STATE[current] & K_RDY);
00005C 5480 182 ANL A,#K_RDY ; 6.12.2002
00005E 4F 183 ORL A,R7
00005F FF 184 MOV R7,A
000060 A522 185 ERET
186 ; }
187
188 END
AX51 MACRO ASSEMBLER OS_WAIT 11/21/05 17:35:21 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
??C0003 . . . . . . . . . EC ADDR 003AH R SEG=?RTX?CODE
??C0003A. . . . . . . . . EC ADDR 0040H R SEG=?RTX?CODE
??C0005 . . . . . . . . . EC ADDR 001DH R SEG=?RTX?CODE
??C0007 . . . . . . . . . EC ADDR 0026H R SEG=?RTX?CODE
?RTX51_TINY_OS_WAIT . . . -- ---- -------
?RTX?CODE . . . . . . . . EC SEG 000062H REL=UNIT, ALN=BYTE
?RTX?TASKSP?S . . . . . . I SEG 000000H REL=UNIT, ALN=BYTE
?RTX?TASKSTATE?S. . . . . I SEG 000000H REL=UNIT, ALN=BYTE
?RTX_CURRENTTASK. . . . . D ADDR ------- EXT
?RTX_MAXTASKN . . . . . . N NUMB ------- EXT
?RTX_RAMTOP . . . . . . . N NUMB ------- EXT
_OS_WAIT. . . . . . . . . EC ADDR 0000H R SEG=?RTX?CODE
_OS_WAIT1 . . . . . . . . EC ADDR 0000H R SEG=?RTX?CODE
_OS_WAIT2 . . . . . . . . EC ADDR 0000H R SEG=?RTX?CODE
ACC . . . . . . . . . . . D ADDR 00E0H A
B . . . . . . . . . . . . D ADDR 00F0H A
B_ACTIVE. . . . . . . . . N NUMB 0005H A
B_IVL . . . . . . . . . . N NUMB 0007H A
B_RDY . . . . . . . . . . N NUMB 0007H A
B_READY . . . . . . . . . N NUMB 0004H A
B_ROBIN . . . . . . . . . N NUMB 0006H A
B_SIGNAL. . . . . . . . . N NUMB 0002H A
B_TIMEOUT . . . . . . . . N NUMB 0003H A
B_WAITSIG . . . . . . . . N NUMB 0000H A
B_WAITTIM . . . . . . . . N NUMB 0001H A
EA. . . . . . . . . . . . B ADDR 00A8H.7 A
ET0 . . . . . . . . . . . B ADDR 00A8H.1 A
K_ACTIVE. . . . . . . . . N NUMB 0020H A
K_IVL . . . . . . . . . . N NUMB 0080H A
K_RDY . . . . . . . . . . N NUMB 0080H A
K_READY . . . . . . . . . N NUMB 0010H A
K_ROBIN . . . . . . . . . N NUMB 0040H A
K_SIG . . . . . . . . . . N NUMB 0001H A
K_TMO . . . . . . . . . . N NUMB 0002H A
NO_WAIT . . . . . . . . . EC ADDR 0050H R SEG=?RTX?CODE
NO_WAIT1. . . . . . . . . EC ADDR 004DH R SEG=?RTX?CODE
OS_SWITCH_TASK. . . . . . EC ADDR ------- EXT
RDY_EVENT . . . . . . . . N NUMB 0080H A
RUNTASK . . . . . . . . . EC ADDR 0057H R SEG=?RTX?CODE
SETTIMEOUT. . . . . . . . EC ADDR 0020H R SEG=?RTX?CODE
SIG_EVENT . . . . . . . . N NUMB 0004H A
TASK_ENTRY. . . . . . . . HC ADDR ------- EXT
TMO_EVENT . . . . . . . . N NUMB 0008H A
WAIT. . . . . . . . . . . EC ADDR 0024H R SEG=?RTX?CODE
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -