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

📄 test.lst

📁 ARM下的多任务操作系统源码:GogotoOS
💻 LST
📖 第 1 页 / 共 3 页
字号:
 PUBLIC         TaskUasrMain?A
 PUBLIC         C
 PUBLIC         Buf
 PUBLIC         Len
 PUBLIC         IsBusy
 PUBLIC         TaskID1
 PUBLIC         Mut



*** DATA SEGMENT '?DT0?Test':
 00000000          Len:
 00000000           BEGIN_INIT
 00000000  00000000  DD          0x0
 00000004           END_INIT
 00000004          IsBusy:
 00000004           BEGIN_INIT
 00000004  00000000  DD          0x0
 00000008           END_INIT
 00000008          TaskID1:
 00000008           BEGIN_INIT
 00000008  00000000  DD          0x0
 0000000C           END_INIT
 0000000C          Mut:
 0000000C            DS          16
 0000001C          C:
 0000001C            DS          1
 0000001D          Buf:
 0000001D            DS          100



*** CODE SEGMENT '?PR?IntUart0?A?Test':
   15: void IntUart0(void)   __irq   
 00000000  E92D000F  STMDB       R13!,{R0-R3}
   17:     NOP();NOP();
 00000004  E1A00000  NOP       
 00000008  E1A00000  NOP       
   18:     switch (U0IIR & 0x0e)
 0000000C  E5100000  LDR         R0,=0xE000C008
 00000010  E5D00000  LDRB        R0,[R0,#0x0]
 00000014  E200000E  AND         R0,R0,#0x000E
 00000018  E3500002  CMP         R0,#0x0002
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 6   

 0000001C  0A000028  BEQ         L_1  ; Targ=0xC4
 00000020  E350000C  CMP         R0,#0x000C
 00000024  0A000010  BEQ         L_13  ; Targ=0x6C
 00000028  E3500004  CMP         R0,#0x0004
 0000002C  1A000024  BNE         L_1  ; Targ=0xC4
   25:             while((U0LSR & 0x01) == 1)
 00000030          L_9:
 00000030  EA000003  B           L_6  ; Targ=0x44
 00000034          L_8:
   26:                 C = U0RBR;  
 00000034  E5100000  LDR         R0,=0xE000C000
 00000038  E5D01000  LDRB        R1,[R0,#0x0]
 0000003C  E5100000  LDR         R0,=C ; C
 00000040  E5C01000  STRB        R1,[R0,#0x0] ; C
 00000044          L_6:
 00000044  E5100000  LDR         R0,=0xE000C014
 00000048  E5D00000  LDRB        R0,[R0,#0x0]
 0000004C  E2000001  AND         R0,R0,#0x0001
 00000050  E3500001  CMP         R0,#0x0001
 00000054  0AFFFFF6  BEQ         L_8  ; Targ=0x34
   27:             IOPIN ^= (1 << 27);
 00000058  E5100000  LDR         R0,=0xE0028000
 0000005C  E5901000  LDR         R1,[R0,#0x0]
 00000060  E2211302  EOR         R1,R1,#0x8000000
 00000064  E5801000  STR         R1,[R0,#0x0]
   28:         break;          
 00000068  EA000015  B           L_1  ; Targ=0xC4
   30:             while((U0LSR & 0x01) == 1)
 0000006C          L_13:
 0000006C  EA00000B  B           L_10  ; Targ=0xA0
 00000070          L_12:
   32:                 C = U0RBR;
 00000070  E5100000  LDR         R0,=0xE000C000
 00000074  E5D01000  LDRB        R1,[R0,#0x0]
 00000078  E5100000  LDR         R0,=C ; C
 0000007C  E5C01000  STRB        R1,[R0,#0x0] ; C
   33:                 Buf[Len++] = C;
 00000080  E5100000  LDR         R0,=C ; C
 00000084  E5D00000  LDRB        R0,[R0,#0x0] ; C
 00000088  E5101000  LDR         R1,=Len ; Len
 0000008C  E5912000  LDR         R2,[R1,#0x0] ; Len
 00000090  E2823001  ADD         R3,R2,#0x0001
 00000094  E5813000  STR         R3,[R1,#0x0] ; Len
 00000098  E5101000  LDR         R1,=Buf ; Buf
 0000009C  E7C10002  STRB        R0,[R1,+R2]
   34:             }
 000000A0          L_10:
 000000A0  E5100000  LDR         R0,=0xE000C014
 000000A4  E5D00000  LDRB        R0,[R0,#0x0]
 000000A8  E2000001  AND         R0,R0,#0x0001
 000000AC  E3500001  CMP         R0,#0x0001
 000000B0  0AFFFFEE  BEQ         L_12  ; Targ=0x70
   35:             IOPIN ^= (1 << 27);
 000000B4  E5100000  LDR         R0,=0xE0028000
 000000B8  E5901000  LDR         R1,[R0,#0x0]
 000000BC  E2211302  EOR         R1,R1,#0x8000000
 000000C0  E5801000  STR         R1,[R0,#0x0]
   39:     }
 000000C4          L_1:
   40:     VICVectAddr = 0;
 000000C4  E3A01000  MOV         R1,#0x0
 000000C8  E5100000  LDR         R0,=0xFFFFF030
 000000CC  E5801000  STR         R1,[R0,#0x0]
   41:     NOP();NOP();
 000000D0  E1A00000  NOP       
 000000D4  E1A00000  NOP       
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 7   

   43: }
 000000D8  E8BD000F  LDMIA       R13!,{R0-R3}
 000000DC  E25EF004  SUBS        R15,R14,#0x0004
 000000E0          ENDP ; 'IntUart0?A'


*** CODE SEGMENT '?PR?InitUart0?A?Test':
   99: void InitUart0(void)
 00000000  E92D4000  STMDB       R13!,{LR}
  100: {
 00000004            ; SCOPE-START
  103:     PINSEL0 |= 0x00000005; 
 00000004  E5100000  LDR         R0,=0xE002C000
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E3811005  ORR         R1,R1,#0x0005
 00000010  E5801000  STR         R1,[R0,#0x0]
  104:     U0LCR = 0x83;
 00000014  E3A01083  MOV         R1,#0x83
 00000018  E5100000  LDR         R0,=0xE000C00C
 0000001C  E5C01000  STRB        R1,[R0,#0x0]
  106:     Fdiv = (Fpclk / 16) / (9600); 
 00000020  E3A03F5A  MOV         R3,#0x168
 00000024  ---- Variable 'Fdiv' assigned to Register 'R3' ----
  107:     U0DLM = Fdiv / 256;                         
 00000024  E1A00003  MOV         R0,R3 ; Fdiv
 00000028  E1A02800  MOV         R2,R0,LSL #16 ; Fdiv
 0000002C  E1A02822  MOV         R2,R2,LSR #16
 00000030  E3A01C01  MOV         R1,#0x100
 00000034  E1A00002  MOV         R0,R2
 00000038  EBFFFFF0  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 0000003C  E1A00001  MOV         R0,R1
 00000040  E1A01000  MOV         R1,R0
 00000044  E5100000  LDR         R0,=0xE000C004
 00000048  E5C01000  STRB        R1,[R0,#0x0]
  108:     U0DLL = Fdiv % 256;
 0000004C  E3A01C01  MOV         R1,#0x100
 00000050  E1A00002  MOV         R0,R2
 00000054  EBFFFFE9  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000058  E1A01000  MOV         R1,R0
 0000005C  E5100000  LDR         R0,=0xE000C000
 00000060  E5C01000  STRB        R1,[R0,#0x0]
  110:     U0LCR = 0x03;
 00000064  E3A01003  MOV         R1,#0x3
 00000068  E5100000  LDR         R0,=0xE000C00C
 0000006C  E5C01000  STRB        R1,[R0,#0x0]
  111:     U0IER = 0x03;
 00000070  E3A01003  MOV         R1,#0x3
 00000074  E5100000  LDR         R0,=0xE000C004
 00000078  E5C01000  STRB        R1,[R0,#0x0]
  112:     U0FCR = 0xC7;
 0000007C  E3A010C7  MOV         R1,#0xC7
 00000080  E5100000  LDR         R0,=0xE000C008
 00000084  E5C01000  STRB        R1,[R0,#0x0]
  114:     VICVectAddr2  = (unsigned long)IntUart0;
 00000088  E5101000  LDR         R1,=IntUart0?A ; IntUart0?A
 0000008C  E5100000  LDR         R0,=0xFFFFF108
 00000090  E5801000  STR         R1,[R0,#0x0]
  115:     VICVectCntl2  = (IRQ_ENABLE | UART0_INT_VECT);
 00000094  E3A01026  MOV         R1,#0x26
 00000098  E5100000  LDR         R0,=0xFFFFF208
 0000009C  E5801000  STR         R1,[R0,#0x0]
  116:     VICIntEnable  |= (1 << UART0_INT_VECT);
 000000A0  E5100000  LDR         R0,=0xFFFFF010
 000000A4  E5901000  LDR         R1,[R0,#0x0]
 000000A8  E3811040  ORR         R1,R1,#0x0040
 000000AC  E5801000  STR         R1,[R0,#0x0]
  118:     IODIR   |= (1<<17);    //P0.17为输出
 000000B0  E5100000  LDR         R0,=0xE0028008
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 8   

 000000B4  E5901000  LDR         R1,[R0,#0x0]
 000000B8  E3811802  ORR         R1,R1,#0x20000
 000000BC  E5801000  STR         R1,[R0,#0x0]
  119:     Uart0_ON;
 000000C0  E5100000  LDR         R0,=0xE002800C
 000000C4  E5901000  LDR         R1,[R0,#0x0]
 000000C8  E3811802  ORR         R1,R1,#0x20000
 000000CC  E5801000  STR         R1,[R0,#0x0]
 000000D0            ; SCOPE-END
  120: }
 000000D0  E8BD0008  LDMIA       R13!,{R3}
 000000D4  E12FFF13  BX          R3
 000000D8          ENDP ; 'InitUart0?A'


*** CODE SEGMENT '?PR?SetWDT?A?Test':
  128:     IOPIN ^= (1 << 28);     
 00000000  E5100000  LDR         R0,=0xE0028000
 00000004  E5901000  LDR         R1,[R0,#0x0]
 00000008  E2211201  EOR         R1,R1,#0x10000000
 0000000C  E5801000  STR         R1,[R0,#0x0]
  129:     IOCLR  = (1<<19); 
 00000010  E3A01702  MOV         R1,#0x80000
 00000014  E5100000  LDR         R0,=0xE002800C
 00000018  E5801000  STR         R1,[R0,#0x0]
  130:     Nop();  Nop();Nop();    Nop();Nop();    Nop();Nop();    Nop();
 0000001C  E1A00000  NOP       
 00000020  E1A00000  NOP       
 00000024  E1A00000  NOP       
 00000028  E1A00000  NOP       
 0000002C  E1A00000  NOP       
 00000030  E1A00000  NOP       
 00000034  E1A00000  NOP       
 00000038  E1A00000  NOP       
  131:     IOSET  = (1<<19); 
 0000003C  E3A01702  MOV         R1,#0x80000
 00000040  E5100000  LDR         R0,=0xE0028004
 00000044  E5801000  STR         R1,[R0,#0x0]
  132:     Nop();  Nop();Nop();    Nop();Nop();    Nop();Nop();    Nop();
 00000048  E1A00000  NOP       
 0000004C  E1A00000  NOP       
 00000050  E1A00000  NOP       
 00000054  E1A00000  NOP       
 00000058  E1A00000  NOP       
 0000005C  E1A00000  NOP       
 00000060  E1A00000  NOP       
 00000064  E1A00000  NOP       
  133: }
 00000068  E12FFF1E  BX          R14
 0000006C          ENDP ; 'SetWDT?A'


*** CODE SEGMENT '?PR?Dec?A?Test':
  137: void Dec(INT32 * Data, INT32 DecV)
 00000000  E92D0010  STMDB       R13!,{R4}
 00000004  E1A04001  MOV         R4,R1 ; DecV
 00000008  ---- Variable 'DecV' assigned to Register 'R4' ----
 00000008  E1A02000  MOV         R2,R0 ; Data
 0000000C  ---- Variable 'Data' assigned to Register 'R2' ----
  139:     (*Data) -= DecV;
 0000000C  E1A03004  MOV         R3,R4 ; DecV
 00000010  E1A00002  MOV         R0,R2 ; Data
 00000014  E5901000  LDR         R1,[R0,#0x0] ; Data
 00000018  E0411003  SUB         R1,R1,R3 ; DecV
 0000001C  E1A00002  MOV         R0,R2 ; Data
 00000020  E5801000  STR         R1,[R0,#0x0] ; Data
  140: }
 00000024  E8BD0010  LDMIA       R13!,{R4}
 00000028  E12FFF1E  BX          R14
 0000002C          ENDP ; 'Dec?A'

ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 9   


*** CODE SEGMENT '?PR?AddDec?A?Test':
  142: void AddDec(UINT8 Flag, INT32 * Data, INT32 AddV, INT32 DecV)
 00000000  E92D4070  STMDB       R13!,{R4-R6,LR}
 00000004  ---- Variable 'DecV' assigned to Register 'R3' ----
 00000004  E1A06002  MOV         R6,R2 ; AddV
 00000008  ---- Variable 'AddV' assigned to Register 'R6' ----
 00000008  E1A04001  MOV         R4,R1 ; Data
 0000000C  ---- Variable 'Data' assigned to Register 'R4' ----
 0000000C  E1A05000  MOV         R5,R0 ; Flag
 00000010  ---- Variable 'Flag' assigned to Register 'R5' ----
  144:     (*Data) += AddV;
 00000010  E1A00006  MOV         R0,R6 ; AddV
 00000014  E1A01004  MOV         R1,R4 ; Data
 00000018  E5912000  LDR         R2,[R1,#0x0] ; Data
 0000001C  E0822000  ADD         R2,R2,R0 ; AddV
 00000020  E1A00004  MOV         R0,R4 ; Data
 00000024  E5802000  STR         R2,[R0,#0x0] ; Data
  145:     Dec(Data, DecV);
 00000028  E1A00004  MOV         R0,R4 ; Data
 0000002C  E1A01003  MOV         R1,R3 ; DecV
 00000030  EBFFFFF2  BL          Dec?A  ; Targ=0x0
  146:     IsBusy = 1;
 00000034  E3A01001  MOV         R1,#0x1
 00000038  E5100000  LDR         R0,=IsBusy ; IsBusy
 0000003C  E5801000  STR         R1,[R0,#0x0] ; IsBusy
  147:     U0THR = Flag;
 00000040  E1A01005  MOV         R1,R5 ; Flag
 00000044  E5100000  LDR         R0,=0xE000C000
 00000048  E5C01000  STRB        R1,[R0,#0x0]
  148:     U0THR = *(((UINT8 *)Data) + 0);
 0000004C  E1A00004  MOV         R0,R4 ; Data

⌨️ 快捷键说明

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