📄 main.lst
字号:
0000005C 4800 LDR R0,=0xFFFF0700
0000005E 6002 STR R2,[R0,#0x0]
61: }
00000060 E005 B L_16 ; T=0x0000006E
00000062 L_11:
64: COMTX='\A'-0x0A+Temp;
00000062 1C08 MOV R0,R1 ; Temp
00000064 0601 LSL R1,R0,#0x18 ; Temp
00000066 0E09 LSR R1,R1,#0x18
00000068 3137 ADD R1,#0x37
0000006A 4800 LDR R0,=0xFFFF0700
0000006C 6001 STR R1,[R0,#0x0]
66: while(!(0x020==(COMSTA0 & 0x020))) {;}
0000006E L_16:
0000006E L_13:
0000006E 4800 LDR R0,=0xFFFF0714
00000070 6800 LDR R0,[R0,#0x0]
00000072 2120 MOV R1,#0x20
00000074 4208 TST R0,R1
00000076 D0FA BEQ L_13 ; T=0x0000006E
00000078 ; SCOPE-END
67: }
00000078 4770 BX R14
0000007A ENDP ; 'DisplayChar?T'
*** CODE SEGMENT '?PR?IRQ_Handler?A?main':
70: void IRQ_Handler() __irq
00000000 E92D0007 STMDB R13!,{R0-R2}
ARM COMPILER V2.42, main 11/08/08 15:14:09 PAGE 13
71: {
00000004 ; SCOPE-START
75: UartInterrupt =COMIID0 ;
00000004 E5100000 LDR R0,=0xFFFF0708
00000008 E5901000 LDR R1,[R0,#0x0]
0000000C E1A01C01 MOV R1,R1,LSL #24
00000010 E1A01C21 MOV R1,R1,LSR #24
00000014 ---- Variable 'UartInterrupt' assigned to Register 'R1' ----
76: if(UartInterrupt==0x04)//Has Received a Data
00000014 E1A00001 MOV R0,R1 ; UartInterrupt
00000018 E1A00C00 MOV R0,R0,LSL #24 ; UartInterrupt
0000001C E1A00C20 MOV R0,R0,LSR #24
00000020 E3500004 CMP R0,#0x0004
00000024 1A00001D BNE L_17 ; Targ=0xA0
78: UartDataReceived=COMRX; //Get received data
00000028 E5100000 LDR R0,=0xFFFF0700
0000002C E5901000 LDR R1,[R0,#0x0]
00000030 E1A01C01 MOV R1,R1,LSL #24
00000034 E1A01C21 MOV R1,R1,LSR #24
00000038 ---- Variable 'UartDataReceived' assigned to Register 'R1' ----
80: if(UartDataReceived==0xAA) //Test connection by sending out device ID
00000038 E1A00001 MOV R0,R1 ; UartDataReceived
0000003C E1A00C00 MOV R0,R0,LSL #24 ; UartDataReceived
00000040 E1A00C20 MOV R0,R0,LSR #24
00000044 E35000AA CMP R0,#0x00AA
00000048 1A000004 BNE L_18 ; Targ=0x60
82: COMTX=DevID;
0000004C E5100000 LDR R0,=DevID ; DevID
00000050 E5D00000 LDRB R0,[R0,#0x0] ; DevID
00000054 E1A02000 MOV R2,R0
00000058 E5100000 LDR R0,=0xFFFF0700
0000005C E5802000 STR R2,[R0,#0x0]
83: }
00000060 L_18:
84: if(UartDataReceived==0x55) //Start command
00000060 E1A00001 MOV R0,R1 ; UartDataReceived
00000064 E1A00C00 MOV R0,R0,LSL #24 ; UartDataReceived
00000068 E1A00C20 MOV R0,R0,LSR #24
0000006C E3500055 CMP R0,#0x0055
00000070 1A000002 BNE L_19 ; Targ=0x80
86: IsStart=0x01;
00000074 E3A02001 MOV R2,#0x1
00000078 E5100000 LDR R0,=IsStart ; IsStart
0000007C E5C02000 STRB R2,[R0,#0x0] ; IsStart
87: }
00000080 L_19:
88: if(UartDataReceived==0xA5) //Stop command
00000080 E1A00001 MOV R0,R1 ; UartDataReceived
00000084 E1A00C00 MOV R0,R0,LSL #24 ; UartDataReceived
00000088 E1A00C20 MOV R0,R0,LSR #24
0000008C E35000A5 CMP R0,#0x00A5
00000090 1A000002 BNE L_17 ; Targ=0xA0
90: IsStart=0x00;
00000094 E3A01000 MOV R1,#0x0
00000098 E5100000 LDR R0,=IsStart ; IsStart
0000009C E5C01000 STRB R1,[R0,#0x0] ; IsStart
92: }
000000A0 L_17:
000000A0 ; SCOPE-END
100: }
000000A0 E8BD0007 LDMIA R13!,{R0-R2}
000000A4 E25EF004 SUBS R15,R14,#0x0004
000000A8 ENDP ; 'IRQ_Handler?A'
*** CODE SEGMENT '?PR?UART_Initiate?T?main':
107: GP1CON = 0x2211; // I2C on P1.2 and P1.3 Setup tx & rx pins on P1.0 and P1.1 for UART
00000000 4800 LDR R1,=0x2211
ARM COMPILER V2.42, main 11/08/08 15:14:09 PAGE 14
00000002 4800 LDR R0,=0xFFFFF404
00000004 6001 STR R1,[R0,#0x0]
110: POWKEY1 = 0x01; //Start PLL setting,changeless
00000006 2101 MOV R1,#0x1
00000008 4800 LDR R0,=0xFFFF0404
0000000A 6001 STR R1,[R0,#0x0]
111: POWCON=0x00;
0000000C 2100 MOV R1,#0x0
0000000E 4800 LDR R0,=0xFFFF0408
00000010 6001 STR R1,[R0,#0x0]
112: POWKEY2 = 0xF4; //Finish PLL setting,changeless
00000012 22F4 MOV R2,#0xF4
00000014 4800 LDR R0,=0xFFFF040C
00000016 6002 STR R2,[R0,#0x0]
114: COMCON0 = 0x80; // Setting DLAB
00000018 2280 MOV R2,#0x80
0000001A 4800 LDR R0,=0xFFFF070C
0000001C 6002 STR R2,[R0,#0x0]
115: COMDIV0 = 0x0B; // Setting DIV0 and DIV1 to DL calculated
0000001E 220B MOV R2,#0xB
00000020 4800 LDR R0,=0xFFFF0700
00000022 6002 STR R2,[R0,#0x0]
116: COMDIV1 = 0x00;
00000024 4800 LDR R0,=0xFFFF0704
00000026 6001 STR R1,[R0,#0x0]
117: COMCON0 = 0x07; // Clearing DLAB
00000028 2107 MOV R1,#0x7
0000002A 4800 LDR R0,=0xFFFF070C
0000002C 6001 STR R1,[R0,#0x0]
120: COMDIV2 = 0x883E; // M=1
0000002E 4800 LDR R1,=0x883E
00000030 4800 LDR R0,=0xFFFF072C
00000032 6001 STR R1,[R0,#0x0]
128: COMIEN0=0x03;
00000034 2103 MOV R1,#0x3
00000036 4800 LDR R0,=0xFFFF0704
00000038 6001 STR R1,[R0,#0x0]
129: IRQEN = 0x4000;
0000003A 4800 LDR R1,=0x4000
0000003C 4800 LDR R0,=0xFFFF0008
0000003E 6001 STR R1,[R0,#0x0]
131: }
00000040 4770 BX R14
00000042 ENDP ; 'UART_Initiate?T'
*** CODE SEGMENT '?PR?I2C1_Initiate?T?main':
138: GP1CON = 0x2211; // I2C on P1.2 and P1.3 Setup tx & rx pins on P1.0 and P1.1 for UART
00000000 4800 LDR R1,=0x2211
00000002 4800 LDR R0,=0xFFFFF404
00000004 6001 STR R1,[R0,#0x0]
139: I2C1CFG = 0x82; // Master Enable & Enable Generation of Master Clock
00000006 2182 MOV R1,#0x82
00000008 4800 LDR R0,=0xFFFF092C
0000000A 6001 STR R1,[R0,#0x0]
142: I2C1DIV = 0x3232; // 0x3232 = 400kHz
0000000C 4800 LDRH R1,=0x3232
0000000E 4800 LDR R0,=0xFFFF0930
00000010 8001 STRH R1,[R0,#0x0]
146: FIQEN |= SM_MASTER1_BIT;
00000012 4800 LDR R2,=0x800
00000014 4800 LDR R0,=0xFFFF0108
00000016 6801 LDR R1,[R0,#0x0]
00000018 4311 ORR R1,R2
0000001A 6001 STR R1,[R0,#0x0]
148: }
0000001C 4770 BX R14
0000001E ENDP ; 'I2C1_Initiate?T'
ARM COMPILER V2.42, main 11/08/08 15:14:09 PAGE 15
*** CODE SEGMENT '?PR?ADuC7026_Initiate?T?main':
151: void ADuC7026_Initiate(void)
00000000 B500 PUSH {LR}
154: UART_Initiate();
00000002 F7FF BL UART_Initiate?T ; T=0x0001 (1)
00000004 FFFD BL UART_Initiate?T ; T=0x0001 (2)
155: I2C1_Initiate();
00000006 F7FF BL I2C1_Initiate?T ; T=0x0001 (1)
00000008 FFFB BL I2C1_Initiate?T ; T=0x0001 (2)
157: }
0000000A BC08 POP {R3}
0000000C 4718 BX R3
0000000E ENDP ; 'ADuC7026_Initiate?T'
*** CODE SEGMENT '?PR?ADXL345_Initiate?T?main':
160: void ADXL345_Initiate()
00000000 B500 PUSH {LR}
162: I2C_WRITE_REGISTER(0x2D,0x08); //Power CTL: Measure mode
00000002 202D MOV R0,#0x2D
00000004 2108 MOV R1,#0x8
00000006 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000008 FFFB BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
163: I2C_WRITE_REGISTER(0x2C,0x0C); //Rate: 200Hz
0000000A 202C MOV R0,#0x2C
0000000C 210C MOV R1,#0xC
0000000E F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000010 FFF7 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
164: I2C_WRITE_REGISTER(0x31,0x01); //Data Format: 8g right justified 128=1g
00000012 2031 MOV R0,#0x31
00000014 2101 MOV R1,#0x1
00000016 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000018 FFF3 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
166: I2C_WRITE_REGISTER(0x2E,0xE4); //Int En: Data Rdy, Single Tap, Doulbe Tap,Free fall
0000001A 202E MOV R0,#0x2E
0000001C 21E4 MOV R1,#0xE4
0000001E F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000020 FFEF BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
167: I2C_WRITE_REGISTER(0x2A,0x01); //Z Axis Tap
00000022 202A MOV R0,#0x2A
00000024 2101 MOV R1,#0x1
00000026 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000028 FFEB BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
168: I2C_WRITE_REGISTER(0x1D,0x20); //Tap Threshold: 2G;
0000002A 201D MOV R0,#0x1D
0000002C 2120 MOV R1,#0x20
0000002E F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000030 FFE7 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
169: I2C_WRITE_REGISTER(0x28,0x09); //FreeFall Threshold: 300mg;
00000032 2028 MOV R0,#0x28
00000034 2109 MOV R1,#0x9
00000036 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000038 FFE3 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
170: I2C_WRITE_REGISTER(0x29,0x14); //FreeFall Timing:100ms
0000003A 2029 MOV R0,#0x29
0000003C 2114 MOV R1,#0x14
0000003E F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000040 FFDF BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
171: I2C_WRITE_REGISTER(0x21,0x50); //Dur:50ms
00000042 2021 MOV R0,#0x21
00000044 2150 MOV R1,#0x50
00000046 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000048 FFDB BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
172: I2C_WRITE_REGISTER(0x22,0x20); //Latent: 40ms
0000004A 2022 MOV R0,#0x22
0000004C 2120 MOV R1,#0x20
0000004E F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000050 FFD7 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
ARM COMPILER V2.42, main 11/08/08 15:14:09 PAGE 16
173: I2C_WRITE_REGISTER(0x23,0xF0); //Window: 300ms
00000052 2023 MOV R0,#0x23
00000054 21F0 MOV R1,#0xF0
00000056 F7FF BL I2C_WRITE_REGISTER?T ; T=0x0001 (1)
00000058 FFD3 BL I2C_WRITE_REGISTER?T ; T=0x0001 (2)
175: }
0000005A BC08 POP {R3}
0000005C 4718 BX R3
0000005E ENDP ; 'ADXL345_Initiate?T'
*** CODE SEGMENT '?PR?Delay?T?main':
178: void Delay(unsigned int Time1, unsigned int Timer2)
00000000 B470 PUSH {R4-R6}
00000002 ---- Variable 'Timer2' assigned to Register 'R1' ----
00000002 ---- Variable 'Time1' assigned to Register 'R0' ----
179: {
00000002 ; SCOPE-START
180: unsigned int i, j, k=0xFFFF;
00000002 4800 LDR R3,=0xFFFF
00000004 ---- Variable 'k' assigned to Register 'R3' ----
181: for(i=0;i<Time1;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -