📄 test.lst
字号:
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 + -