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

📄 os_wait.lst

📁 让Keil 的 RTX51 运行在 P89C669 让Keil 的 RTX51 运行在 P89C669
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -