📄 main.lst
字号:
00000004 4800 LDR R1,=0x6E4
00000006 4800 LDR R0,=0xFFFF0500
00000008 6001 STR R1,[R0,#0x0]
62: for(i=0;i<N;i++){
0000000A 2400 MOV R4,#0x0
0000000C ---- Variable 'i' assigned to Register 'R4' ----
63: while(!ADCSTA){} // Wait for end of conversion
0000000C L_13:
0000000C L_10:
0000000C 4800 LDR R0,=0xFFFF050C
0000000E 6800 LDR R0,[R0,#0x0]
00000010 2800 CMP R0,#0x0
00000012 D0FB BEQ L_10 ; T=0x0000000C
64: *data_ptr = (ADCDAT >> 16); // Store converison in external ram
00000014 4800 LDR R0,=0xFFFF0510
00000016 6801 LDR R1,[R0,#0x0]
00000018 0C09 LSR R1,R1,#0x10
0000001A 0409 LSL R1,R1,#0x10
0000001C 0C09 LSR R1,R1,#0x10
0000001E 1C28 MOV R0,R5 ; data_ptr
00000020 8001 STRH R1,[R0,#0x0] ; data_ptr
65: data_ptr ++;
00000022 3502 ADD R5,#0x2
66: }
00000024 3401 ADD R4,#0x1
00000026 1C20 MOV R0,R4 ; i
00000028 4800 LDR R1,=0x8000
0000002A 4288 CMP R0,R1 ; i
0000002C DBEE BLT L_13 ; T=0x0000000C
67: ADCCON = 0x620; //Stops continuous conversion
0000002E 4800 LDR R1,=0x620
00000030 4800 LDR R0,=0xFFFF0500
00000032 6001 STR R1,[R0,#0x0]
68: data_ptr = (unsigned short *)0x10000000;
00000034 4800 LDR R5,=0x10000000
69: for(i=0;i<N;i++){
00000036 2400 MOV R4,#0x0
00000038 L_17:
70: senddata(*data_ptr);
00000038 1C28 MOV R0,R5 ; data_ptr
ARM COMPILER V2.42, main 09/01/06 14:41:41 PAGE 5
0000003A 8800 LDRH R0,[R0,#0x0] ; data_ptr
0000003C F7FF BL senddata?T ; T=0x0001 (1)
0000003E FFE0 BL senddata?T ; T=0x0001 (2)
71: data_ptr++;
00000040 3502 ADD R5,#0x2
72: }
00000042 3401 ADD R4,#0x1
00000044 1C20 MOV R0,R4 ; i
00000046 4800 LDR R1,=0x8000
00000048 4288 CMP R0,R1 ; i
0000004A DBF5 BLT L_17 ; T=0x00000038
0000004C ; SCOPE-END
73: }
0000004C BC30 POP {R4-R5}
0000004E BC08 POP {R3}
00000050 4718 BX R3
00000052 ENDP ; 'start_conversion?T'
*** CODE SEGMENT '?PR?senddata?T?main':
76: void senddata(short to_send) {
00000000 B510 PUSH {R4,LR}
00000002 1C04 MOV R4,R0 ; to_send
00000004 ---- Variable 'to_send' assigned to Register 'R4' ----
77: while(!(0x020==(COMSTA0 & 0x020))){}
00000004 L_19:
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_19 ; T=0x00000004
78: COMTX = 0x0A; //Output LF
0000000E 210A MOV R1,#0xA
00000010 4800 LDR R0,=0xFFFF0700
00000012 6001 STR R1,[R0,#0x0]
79: while(!(0x020==(COMSTA0 & 0x020))){}
00000014 L_23:
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_23 ; T=0x00000014
80: COMTX = 0x0D; //Output CR
0000001E 210D MOV R1,#0xD
00000020 4800 LDR R0,=0xFFFF0700
00000022 6001 STR R1,[R0,#0x0]
81: while(!(0x020==(COMSTA0 & 0x020))){}
00000024 L_27:
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_27 ; T=0x00000024
82: COMTX = hex2ascii ((to_send >> 8) & 0x0F);
0000002E 1C20 MOV R0,R4 ; to_send
00000030 0400 LSL R0,R0,#0x10 ; to_send
00000032 1400 ASR R0,R0,#0x10
00000034 1200 ASR R0,R0,#0x8
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]
83: while(!(0x020==(COMSTA0 & 0x020))){}
00000046 L_31:
ARM COMPILER V2.42, main 09/01/06 14:41:41 PAGE 6
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_31 ; T=0x00000046
84: COMTX = hex2ascii ((to_send >> 4) & 0x0F);
00000050 1C20 MOV R0,R4 ; to_send
00000052 0400 LSL R0,R0,#0x10 ; to_send
00000054 1400 ASR R0,R0,#0x10
00000056 1100 ASR R0,R0,#0x4
00000058 210F MOV R1,#0xF
0000005A 4008 AND R0,R1
0000005C F7FF BL hex2ascii?T ; T=0x0001 (1)
0000005E FFD0 BL hex2ascii?T ; T=0x0001 (2)
00000060 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000062 0E09 LSR R1,R1,#0x18
00000064 4800 LDR R0,=0xFFFF0700
00000066 6001 STR R1,[R0,#0x0]
85: while(!(0x020==(COMSTA0 & 0x020))){}
00000068 L_35:
00000068 4800 LDR R0,=0xFFFF0714
0000006A 6800 LDR R0,[R0,#0x0]
0000006C 2120 MOV R1,#0x20
0000006E 4208 TST R0,R1
00000070 D0FA BEQ L_35 ; T=0x00000068
86: COMTX = hex2ascii (to_send & 0x0F);
00000072 1C20 MOV R0,R4 ; to_send
00000074 0400 LSL R0,R0,#0x10 ; to_send
00000076 1400 ASR R0,R0,#0x10
00000078 210F MOV R1,#0xF
0000007A 4008 AND R0,R1
0000007C F7FF BL hex2ascii?T ; T=0x0001 (1)
0000007E FFC0 BL hex2ascii?T ; T=0x0001 (2)
00000080 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000082 0E09 LSR R1,R1,#0x18
00000084 4800 LDR R0,=0xFFFF0700
00000086 6001 STR R1,[R0,#0x0]
87: }
00000088 BC10 POP {R4}
0000008A BC08 POP {R3}
0000008C 4718 BX R3
0000008E ENDP ; 'senddata?T'
*** CODE SEGMENT '?PR?hex2ascii?T?main':
89: char hex2ascii(char toconv) {
00000000 1C01 MOV R1,R0 ; toconv
00000002 ---- Variable 'toconv' assigned to Register 'R1' ----
90: if (toconv<0x0A) //If hex digit is greater than 'A'
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_39 ; T=0x00000014
92: toconv += 0x30; //an ascii letter
0000000C 3130 ADD R1,#0x30
0000000E 0609 LSL R1,R1,#0x18
00000010 0E09 LSR R1,R1,#0x18
93: } //If hex digit is less than 'A'
00000012 E002 B L_40 ; T=0x0000001A
00000014 L_39:
96: toconv += 0x37;
00000014 3137 ADD R1,#0x37
00000016 0609 LSL R1,R1,#0x18
00000018 0E09 LSR R1,R1,#0x18
97: }
0000001A L_40:
99: return (toconv);
ARM COMPILER V2.42, main 09/01/06 14:41:41 PAGE 7
0000001A 1C08 MOV R0,R1 ; toconv
0000001C 0600 LSL R0,R0,#0x18 ; toconv
0000001E 0E00 LSR R0,R0,#0x18
100: }
00000020 4770 BX R14
00000022 ENDP ; 'hex2ascii?T'
*** CODE SEGMENT '?PR?ADCpoweron?T?main':
102: void ADCpoweron(int time) {
00000000 ---- Variable 'time' assigned to Register 'R0' ----
103: ADCCON = 0x620; // power-on the ADC
00000000 4800 LDR R2,=0x620
00000002 4800 LDR R1,=0xFFFF0500
00000004 600A STR R2,[R1,#0x0]
104: while (time >=0) // wait for ADC to be fully powered on
00000006 E000 B L_42 ; T=0x0000000A
00000008 L_44:
00000008 3801 SUB R0,#0x1
0000000A L_42:
0000000A 1C01 MOV R1,R0 ; time
0000000C 2900 CMP R1,#0x0 ; time
0000000E DAFB BGE L_44 ; T=0x00000008
106: }
00000010 4770 BX R14
00000012 ENDP ; 'ADCpoweron?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
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 + -