📄 myuart.lst
字号:
000001C2 7001 STRB R1,[R0,#0x0]
000001C4 A805 ADD R0,R13,#0x14
000001C6 7801 LDRB R1,[R0,#0x0] ; a9
000001C8 4800 LDR R0,=0x10000013
000001CA 7001 STRB R1,[R0,#0x0]
107: }
000001CC L_31:
108: reg_CMR=0X01;
000001CC 2101 MOV R1,#0x1
000001CE 4800 LDR R0,=0x10000001
000001D0 7001 STRB R1,[R0,#0x0]
000001D2 ; SCOPE-END
109: }
000001D2 BC70 POP {R4-R6}
000001D4 4770 BX R14
000001D6 ENDP ; 'sendmessage?T'
*** CODE SEGMENT '?PR?rsvmessage?T?myuart':
111: void rsvmessage()
00000000 B410 PUSH {R4}
112: {
00000002 ; SCOPE-START
115: if(reg_SR&0x03)
00000002 4800 LDR R0,=0x10000002
00000004 7800 LDRB R0,[R0,#0x0]
00000006 2103 MOV R1,#0x3
00000008 4208 TST R0,R1
0000000A D041 BEQ L_42 ; T=0x00000090
117: flag_IR=reg_IR;
0000000C 4800 LDR R1,=0x10000003
0000000E 780A LDRB R2,[R1,#0x0]
00000010 ---- Variable 'flag_IR' assigned to Register 'R2' ----
118: if(flag_IR&0x01)
00000010 1C11 MOV R1,R2 ; flag_IR
00000012 0609 LSL R1,R1,#0x18 ; flag_IR
00000014 0E09 LSR R1,R1,#0x18
00000016 2201 MOV R2,#0x1
00000018 4211 TST R1,R2
0000001A D033 BEQ L_43 ; T=0x00000084
120: do{}while(reg_SR&0x10);
0000001C L_46:
0000001C 4800 LDR R1,=0x10000002
0000001E 7809 LDRB R1,[R1,#0x0]
00000020 2210 MOV R2,#0x10
00000022 4211 TST R1,R2
00000024 D1FA BNE L_46 ; T=0x0000001C
121: iRecData[0]=reg_Rsvone;
00000026 4800 LDR R1,=0x10000014
00000028 780A LDRB R2,[R1,#0x0]
0000002A 4800 LDR R1,=iRecData ; iRecData
0000002C 700A STRB R2,[R1,#0x0] ; iRecData
122: iRecData[1]=reg_Rsvtwo;
0000002E 4800 LDR R1,=0x10000015
00000030 780A LDRB R2,[R1,#0x0]
00000032 4800 LDR R1,=iRecData + 0x1 ; iRecData+1
00000034 700A STRB R2,[R1,#0x0] ; iRecData+1
123: dlc=iRecData[1]&0x0f;
00000036 4800 LDR R1,=iRecData + 0x1 ; iRecData+1
00000038 7809 LDRB R1,[R1,#0x0] ; iRecData+1
0000003A 1C0A MOV R2,R1
0000003C 210F MOV R1,#0xF
0000003E 400A AND R2,R1
00000040 0612 LSL R2,R2,#0x18
00000042 0E12 LSR R2,R2,#0x18
00000044 4800 LDR R1,=dlc ; dlc
00000046 700A STRB R2,[R1,#0x0] ; dlc
124: for(i=0;i<dlc;i++)
ARM COMPILER V2.42, myuart 15/09/08 19:00:14 PAGE 13
00000048 2100 MOV R1,#0x0
0000004A ---- Variable 'i' assigned to Register 'R1' ----
0000004A E00C B L_50 ; T=0x00000066
0000004C L_51:
126: iRecData[i+2]=*(®_Rsvdata1+i);
0000004C 1C0A MOV R2,R1 ; i
0000004E 0613 LSL R3,R2,#0x18 ; i
00000050 0E1B LSR R3,R3,#0x18
00000052 4800 LDR R2,=0x10000016
00000054 5CD2 LDRB R2,[R2,R3]
00000056 1C0B MOV R3,R1 ; i
00000058 061C LSL R4,R3,#0x18 ; i
0000005A 0E24 LSR R4,R4,#0x18
0000005C 4800 LDR R3,=iRecData + 0x2 ; iRecData+2
0000005E 551A STRB R2,[R3,R4]
127: }
00000060 3101 ADD R1,#0x1
00000062 0609 LSL R1,R1,#0x18
00000064 0E09 LSR R1,R1,#0x18
00000066 L_50:
00000066 4800 LDR R2,=dlc ; dlc
00000068 7812 LDRB R2,[R2,#0x0] ; dlc
0000006A 1C13 MOV R3,R2
0000006C 1C0A MOV R2,R1 ; i
0000006E 0612 LSL R2,R2,#0x18 ; i
00000070 0E12 LSR R2,R2,#0x18
00000072 429A CMP R2,R3
00000074 D3EA BCC L_51 ; T=0x0000004C
128: reg_CMR=0x04;
00000076 2204 MOV R2,#0x4
00000078 4800 LDR R1,=0x10000001
0000007A 700A STRB R2,[R1,#0x0]
129: flagdata=1;
0000007C 2201 MOV R2,#0x1
0000007E 4800 LDR R1,=flagdata ; flagdata
00000080 700A STRB R2,[R1,#0x0] ; flagdata
130: }
00000082 E005 B L_42 ; T=0x00000090
00000084 L_43:
133: if(reg_SR&0x02) reg_CMR=0x0c;
00000084 2102 MOV R1,#0x2
00000086 4208 TST R0,R1
00000088 D002 BEQ L_42 ; T=0x00000090
0000008A 210C MOV R1,#0xC
0000008C 4800 LDR R0,=0x10000001
0000008E 7001 STRB R1,[R0,#0x0]
135: }
00000090 L_42:
00000090 ; SCOPE-END
136: }
00000090 BC10 POP {R4}
00000092 4770 BX R14
00000094 ENDP ; 'rsvmessage?T'
*** CODE SEGMENT '?PR?hex2ascii?T?myuart':
139: uchar hex2ascii(uchar toconv)
00000000 1C01 MOV R1,R0 ; toconv
00000002 ---- Variable 'toconv' assigned to Register 'R1' ----
141: if (toconv<0x0A)
00000002 1C08 MOV R0,R1 ; toconv
00000004 0600 LSL R0,R0,#0x18 ; toconv
00000006 0E00 LSR R0,R0,#0x18
00000008 280A CMP R0,#0xA
0000000A DA03 BGE L_55 ; T=0x00000014
143: toconv += 0x30;
0000000C 3130 ADD R1,#0x30
0000000E 0609 LSL R1,R1,#0x18
ARM COMPILER V2.42, myuart 15/09/08 19:00:14 PAGE 14
00000010 0E09 LSR R1,R1,#0x18
144: }
00000012 E002 B L_56 ; T=0x0000001A
00000014 L_55:
147: toconv += 0x37;
00000014 3137 ADD R1,#0x37
00000016 0609 LSL R1,R1,#0x18
00000018 0E09 LSR R1,R1,#0x18
148: }
0000001A L_56:
150: return (toconv);
0000001A 1C08 MOV R0,R1 ; toconv
0000001C 0600 LSL R0,R0,#0x18 ; toconv
0000001E 0E00 LSR R0,R0,#0x18
151: }
00000020 4770 BX R14
00000022 ENDP ; 'hex2ascii?T'
*** CODE SEGMENT '?PR?senddata?T?myuart':
154: void senddata(uchar to_send) {
00000000 B500 PUSH {LR}
00000002 1C02 MOV R2,R0 ; to_send
00000004 ---- Variable 'to_send' assigned to Register 'R2' ----
155: while(!(0x020==(COMSTA0 & 0x020))){}
00000004 L_58:
00000004 4800 LDR R0,=0xFFFF0714
00000006 6800 LDR R0,[R0,#0x0]
00000008 2120 MOV R1,#0x20
0000000A 4208 TST R0,R1
0000000C D0FA BEQ L_58 ; T=0x00000004
156: COMTX = 0x0A; //Output LF
0000000E 210A MOV R1,#0xA
00000010 4800 LDR R0,=0xFFFF0700
00000012 6001 STR R1,[R0,#0x0]
157: while(!(0x020==(COMSTA0 & 0x020))){}
00000014 L_62:
00000014 4800 LDR R0,=0xFFFF0714
00000016 6800 LDR R0,[R0,#0x0]
00000018 2120 MOV R1,#0x20
0000001A 4208 TST R0,R1
0000001C D0FA BEQ L_62 ; T=0x00000014
158: COMTX = 0x0D; //Output CR
0000001E 210D MOV R1,#0xD
00000020 4800 LDR R0,=0xFFFF0700
00000022 6001 STR R1,[R0,#0x0]
159: while(!(0x020==(COMSTA0 & 0x020))){}
00000024 L_66:
00000024 4800 LDR R0,=0xFFFF0714
00000026 6800 LDR R0,[R0,#0x0]
00000028 2120 MOV R1,#0x20
0000002A 4208 TST R0,R1
0000002C D0FA BEQ L_66 ; T=0x00000024
160: COMTX = hex2ascii ((to_send >> 4) & 0x0F);
0000002E 1C10 MOV R0,R2 ; to_send
00000030 0600 LSL R0,R0,#0x18 ; to_send
00000032 0E00 LSR R0,R0,#0x18
00000034 0900 LSR R0,R0,#0x4
00000036 210F MOV R1,#0xF
00000038 4008 AND R0,R1
0000003A F7FF BL hex2ascii?T ; T=0x0001 (1)
0000003C FFE1 BL hex2ascii?T ; T=0x0001 (2)
0000003E 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000040 0E09 LSR R1,R1,#0x18
00000042 4800 LDR R0,=0xFFFF0700
00000044 6001 STR R1,[R0,#0x0]
161: while(!(0x020==(COMSTA0 & 0x020))){}
00000046 L_70:
ARM COMPILER V2.42, myuart 15/09/08 19:00:14 PAGE 15
00000046 4800 LDR R0,=0xFFFF0714
00000048 6800 LDR R0,[R0,#0x0]
0000004A 2120 MOV R1,#0x20
0000004C 4208 TST R0,R1
0000004E D0FA BEQ L_70 ; T=0x00000046
162: COMTX = hex2ascii (to_send & 0x0F);
00000050 1C10 MOV R0,R2 ; to_send
00000052 0600 LSL R0,R0,#0x18 ; to_send
00000054 0E00 LSR R0,R0,#0x18
00000056 210F MOV R1,#0xF
00000058 4008 AND R0,R1
0000005A F7FF BL hex2ascii?T ; T=0x0001 (1)
0000005C FFD1 BL hex2ascii?T ; T=0x0001 (2)
0000005E 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000060 0E09 LSR R1,R1,#0x18
00000062 4800 LDR R0,=0xFFFF0700
00000064 6001 STR R1,[R0,#0x0]
163: }
00000066 BC08 POP {R3}
00000068 4718 BX R3
0000006A ENDP ; 'senddata?T'
*** CODE SEGMENT '?PR?main?myuart':
166: void main()
00000000 B500 PUSH {LR}
167: {
00000002 ; SCOPE-START
169: uchar temp1=1;
00000002 2401 MOV R4,#0x1
00000004 ---- Variable 'temp1' assigned to Register 'R4' ----
170: Init();
00000004 F7FF BL Init?T ; T=0x0001 (1)
00000006 FFFC BL Init?T ; T=0x0001 (2)
172: sendmessage(0x39,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x08);
00000008 2108 MOV R1,#0x8
0000000A B402 PUSH {R1}
0000000C 2006 MOV R0,#0x6
0000000E B401 PUSH {R0}
00000010 B401 PUSH {R0}
00000012 2005 MOV R0,#0x5
00000014 B401 PUSH {R0}
00000016 2004 MOV R0,#0x4
00000018 B401 PUSH {R0}
0000001A 2003 MOV R0,#0x3
0000001C B401 PUSH {R0}
0000001E 2039 MOV R0,#0x39
00000020 2201 MOV R2,#0x1
00000022 2302 MOV R3,#0x2
00000024 F7FF BL sendmessage?T ; T=0x0001 (1)
00000026 FFEC BL sendmessage?T ; T=0x0001 (2)
00000028 B006 ADD R13,#0x18
173: Delay(1);
0000002A 2001 MOV R0,#0x1
0000002C F7FF BL Delay?T ; T=0x0001 (1)
0000002E FFE8 BL Delay?T ; T=0x0001 (2)
174: while(temp1)
00000030 E02C B L_74 ; T=0x0000008C
00000032 L_76:
176: rsvmessage();
00000032 F7FF BL rsvmessage?T ; T=0x0001 (1)
00000034 FFE5 BL rsvmessage?T ; T=0x0001 (2)
177: if(flagdata==1)
00000036 4800 LDR R0,=flagdata ; flagdata
00000038 7800 LDRB R0,[R0,#0x0] ; flagdata
0000003A 2801 CMP R0,#0x1
0000003C D126 BNE L_74 ; T=0x0000008C
179: sendmessage(0x38,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x06);
ARM COMPILER V2.42, myuart 15/09/08 19:00:14 PAGE 16
0000003E 2006 MOV R0,#0x6
00000040 B401 PUSH {R0}
00000042 B401 PUSH {R0}
00000044 B401 PUSH {R0}
00000046 2005 MOV R0,#0x5
00000048 B401 PUSH {R0}
0000004A 2004 MOV R0,#0x4
0000004C B401 PUSH {R0}
0000004E 2003 MOV R0,#0x3
00000050 B401 PUSH {R0}
00000052 2038 MOV R0,#0x38
00000054 2108 MOV R1,#0x8
00000056 2201 MOV R2,#0x1
00000058 2302 MOV R3,#0x2
0000005A F7FF BL sendmessage?T ; T=0x0001 (1)
0000005C FFD1 BL sendmessage?T ; T=0x0001 (2)
0000005E B006 ADD R13,#0x18
180: flagdata=0;
00000060 2100 MOV R1,#0x0
00000062 4800 LDR R0,=flagdata ; flagdata
00000064 7001 STRB R1,[R0,#0x0] ; flagdata
181: dlc+=2;
00000066 4800 LDR R0,=dlc ; dlc
00000068 7801 LDRB R1,[R0,#0x0] ; dlc
0000006A 3102 ADD R1,#0x2
0000006C 4800 LDR R0,=dlc ; dlc
0000006E 7001 STRB R1,[R0,#0x0] ; dlc
182: for(k=0;k<dlc;k++)
00000070 2500 MOV R5,#0x0
00000072 ---- Variable 'k' assigned to Register 'R5' ----
00000072 E005 B L_81 ; T=0x00000080
00000074 L_82:
185: senddata(iRecData[k]);
00000074 1C29 MOV R1,R5 ; k
00000076 4800 LDR R0,=iRecData ; iRecData
00000078 5C40 LDRB R0,[R0,R1]
0000007A F7FF BL senddata?T ; T=0x0001 (1)
0000007C FFC1 BL senddata?T ; T=0x0001 (2)
188: }
0000007E 3501 ADD R5,#0x1
00000080 L_81:
00000080 4800 LDR R0,=dlc ; dlc
00000082 7800 LDRB R0,[R0,#0x0] ; dlc
00000084 1C01 MOV R1,R0
00000086 1C28 MOV R0,R5 ; k
00000088 4288 CMP R0,R1 ; k
0000008A DBF3 BLT L_82 ; T=0x00000074
191: }
0000008C L_74:
0000008C 1C20 MOV R0,R4 ; temp1
0000008E 2800 CMP R0,#0x0 ; temp1
00000090 D1CF BNE L_76 ; T=0x00000032
00000092 ; SCOPE-END
193: }
00000092 BC08 POP {R3}
00000094 4718 BX R3
00000096 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = 12
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -