?? main.lst
字號:
*** CODE SEGMENT '?PR?IRQEnable1?A?Main':
52: MRS R0, SPSR
00000000 E14F0000 MRS R0,SPSR
53: BIC R0, R0, #0x80
00000004 E3C00080 BIC R0,R0,#0x0080
54: MSR SPSR_c, R0
00000008 E161F000 MSR SPSR_c,R0
58: test++;
0000000C E5100000 LDR R0,=test ; test
00000010 E5D01000 LDRB R1,[R0,#0x0] ; test
00000014 E2811001 ADD R1,R1,#0x0001
00000018 E5C01000 STRB R1,[R0,#0x0] ; test
59: }
0000001C E12FFF1E BX R14
00000020 ENDP ; 'IRQEnable1?A'
*** CODE SEGMENT '?PR?get_input?A?Main':
62: void get_input(void) { /* HID processing function */
00000000 E92D4000 STMDB R13!,{LR}
00000004 ; SCOPE-START
67: if(key=getkey()) { /* Next track */
00000004 EBFFFFFD BL getkey?A ; Targ=0x0
00000008 E1A01000 MOV R1,R0 ; key
0000000C ---- Variable 'key' assigned to Register 'R1' ----
0000000C E3500000 CMP R0,#0x0000 ; getkey?A
00000010 0A00000F BEQ L_1 ; Targ=0x54
68: switch(key){
00000014 E1A00001 MOV R0,R1 ; key
00000018 E3500050 CMP R0,#0x0050 ; key
0000001C 0A000009 BEQ L_4 ; Targ=0x48
00000020 E350006E CMP R0,#0x006E ; key
00000024 0A000003 BEQ L_3 ; Targ=0x38
00000028 E3500070 CMP R0,#0x0070 ; key
0000002C 0A000005 BEQ L_4 ; Targ=0x48
00000030 E350004E CMP R0,#0x004E ; key
00000034 1A000006 BNE L_1 ; Targ=0x54
70: case 'N':
00000038 L_3:
71: mode = NEXT;
00000038 E3A01002 MOV R1,#0x2
0000003C E5100000 LDR R0,=mode ; mode
00000040 E5801000 STR R1,[R0,#0x0] ; mode
72: break; /* Previous track */
00000044 EA000002 B L_1 ; Targ=0x54
74: case 'P':
00000048 L_4:
75: mode = PREV;
00000048 E3A01003 MOV R1,#0x3
0000004C E5100000 LDR R0,=mode ; mode
00000050 E5801000 STR R1,[R0,#0x0] ; mode
78: }
00000054 L_1:
80: AD0CR |= 0x01000000; /* Start A/D Conversion */
00000054 E5100000 LDR R0,=0xE0034000
00000058 E5901000 LDR R1,[R0,#0x0]
0000005C E3811401 ORR R1,R1,#0x1000000
ARM COMPILER V2.50a, Main 23/09/08 18:04:45 PAGE 6
00000060 E5801000 STR R1,[R0,#0x0]
81: do {
00000064 L_7:
82: val = AD0DR; /* Read A/D Data Register */
00000064 E5100000 LDR R0,=0xE0034004
00000068 E5900000 LDR R0,[R0,#0x0]
0000006C ---- Variable 'val' assigned to Register 'R0' ----
83: } while ((val & 0x80000000) == 0); /* Wait for end of A/D Conversion */
0000006C E1A01000 MOV R1,R0 ; val
00000070 E3110102 TST R1,#0x80000000 ; val
00000074 0AFFFFFA BEQ L_7 ; Targ=0x64
84: AD0CR &= ~0x01000000; /* Stop A/D Conversion */
00000078 E5101000 LDR R1,=0xE0034000
0000007C E5912000 LDR R2,[R1,#0x0]
00000080 E3C22401 BIC R2,R2,#0x1000000
00000084 E5812000 STR R2,[R1,#0x0]
85: volume = ((val >> 1) & 0x7FE0); /* Extract AIN0 Value */
00000088 E1A01000 MOV R1,R0 ; val
0000008C E1A010A1 MOV R1,R1,LSR #1 ; val
00000090 E5100000 LDR R0,=0x7FE0
00000094 E0011000 AND R1,R1,R0
00000098 E5100000 LDR R0,=volume ; volume
0000009C E5801000 STR R1,[R0,#0x0] ; volume
000000A0 ; SCOPE-END
86: }
000000A0 E8BD0008 LDMIA R13!,{R3}
000000A4 E12FFF13 BX R3
000000A8 ENDP ; 'get_input?A'
*** CODE SEGMENT '?PR?main?Main':
88: int main (void) {
00000000 E92D4000 STMDB R13!,{LR}
00000004 ; SCOPE-START
91: IODIR1 = 0x00FF0000; /* P1.16..23 defined as Outputs */
00000004 E3A018FF MOV R1,#0xFF0000
00000008 E5100000 LDR R0,=0xE0028018
0000000C E5801000 STR R1,[R0,#0x0]
92: AD0CR = 0x00200402; /* Setup A/D: 10-bit AIN0 @ 3MHz */
00000010 E5101000 LDR R1,=0x200402
00000014 E5100000 LDR R0,=0xE0034000
00000018 E5801000 STR R1,[R0,#0x0]
93: PINSEL1 = 0x01080000; /* enable DAC */
0000001C E3A01742 MOV R1,#0x1080000
00000020 E5100000 LDR R0,=0xE002C004
00000024 E5801000 STR R1,[R0,#0x0]
95: test=0;
00000028 E3A01000 MOV R1,#0x0
0000002C E5100000 LDR R0,=test ; test
00000030 E5C01000 STRB R1,[R0,#0x0] ; test
99: IRQEnable1();
00000034 EF000001 SWI 0x1 ; IRQEnable1?A
101: get_input(); /* has to be called before starting the timer to get volume level */
00000038 EBFFFFF0 BL get_input?A ; Targ=0x0
103: init_serial(); /* Initialize Serial Interface to 115200 baud */
0000003C EBFFFFEF BL init_serial?A ; Targ=0x0
104: init_timer ();
00000040 EBFFFFEE BL init_timer?A ; Targ=0x0
106: printf ("\nMCB2130 WAVE AUDIO PLAYER\n\n");
00000044 E3E00102 MVN R0,#0x102 ; ??S_5
00000048 EBFFFFEC BL printf?A ; Targ=0x0
108: while (1) { /* Loop forever */
0000004C L_13:
109: if (print_info)
0000004C E5100000 LDR R0,=print_info ; print_info
00000050 E5D00000 LDRB R0,[R0,#0x0] ; print_info
00000054 E3500000 CMP R0,#0x0000
00000058 0A00003A BEQ L_15 ; Targ=0x148
ARM COMPILER V2.50a, Main 23/09/08 18:04:45 PAGE 7
111: alignidx = p_wav_hdr->sample_size;
0000005C E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
00000060 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
00000064 E1D002B0 LDRH R0,[R0,#0x20]
00000068 E1A04000 MOV R4,R0
0000006C ---- Variable 'alignidx' assigned to Register 'R4' ----
112: if (alignidx > 4) alignidx = 0;
0000006C E1A00004 MOV R0,R4 ; alignidx
00000070 E3500004 CMP R0,#0x0004 ; alignidx
00000074 9A000000 BLS L_16 ; Targ=0x7C
00000078 E3A04000 MOV R4,#0x0
0000007C L_16:
113: print_info = 0;
0000007C E3A01000 MOV R1,#0x0
00000080 E5100000 LDR R0,=print_info ; print_info
00000084 E5C01000 STRB R1,[R0,#0x0] ; print_info
114: printf ("Playing Block %01d\n", blockindex);
00000088 E3E00102 MVN R0,#0x102 ; ??S_6
0000008C E5101000 LDR R1,=blockindex ; blockindex
00000090 E5911000 LDR R1,[R1,#0x0] ; blockindex
00000094 EBFFFFD9 BL printf?A ; Targ=0x0
115: printf ("File information:\n");
00000098 E3E00102 MVN R0,#0x102 ; ??S_7
0000009C EBFFFFD7 BL printf?A ; Targ=0x0
116: printf ("=================\n");
000000A0 E3E00102 MVN R0,#0x102 ; ??S_8
000000A4 EBFFFFD5 BL printf?A ; Targ=0x0
117: printf ("File Size: : %d\n", p_wav_hdr->length);
000000A8 E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
000000AC E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
000000B0 E5901004 LDR R1,[R0,#0x4]
000000B4 E3E00102 MVN R0,#0x102 ; ??S_9
000000B8 EBFFFFD0 BL printf?A ; Targ=0x0
118: printf ("Format identifier : %01d\n", p_wav_hdr->format);
000000BC E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
000000C0 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
000000C4 E1D001B4 LDRH R0,[R0,#0x14]
000000C8 E1A01000 MOV R1,R0
000000CC E3E00102 MVN R0,#0x102 ; ??S_10
000000D0 EBFFFFCA BL printf?A ; Targ=0x0
119: printf ("Number of Channels: %01d\n", p_wav_hdr->channels);
000000D4 E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
000000D8 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
000000DC E1D001B6 LDRH R0,[R0,#0x16]
000000E0 E1A01000 MOV R1,R0
000000E4 E3E00102 MVN R0,#0x102 ; ??S_11
000000E8 EBFFFFC4 BL printf?A ; Targ=0x0
120: printf ("Sampling Rate : %05d Hz\n", p_wav_hdr->sample_rate);
000000EC E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
000000F0 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
000000F4 E5901018 LDR R1,[R0,#0x18]
000000F8 E3E00102 MVN R0,#0x102 ; ??S_12
000000FC EBFFFFBF BL printf?A ; Targ=0x0
121: printf ("Bytes per Second : %05d\n", p_wav_hdr->bytes_per_second);
00000100 E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
00000104 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
00000108 E590101C LDR R1,[R0,#0x1C]
0000010C E3E00102 MVN R0,#0x102 ; ??S_13
00000110 EBFFFFBA BL printf?A ; Targ=0x0
122: printf ("Sample Alignment : %s\n", alignment[alignidx]);
00000114 E1A00004 MOV R0,R4 ; alignidx
00000118 E3A01005 MOV R1,#0x5
0000011C E0000091 MUL R0,R1,R0
00000120 E5101000 LDR R1,=alignment ; alignment
00000124 E0811000 ADD R1,R1,R0 ; alignment
00000128 E3E00102 MVN R0,#0x102 ; ??S_14
ARM COMPILER V2.50a, Main 23/09/08 18:04:45 PAGE 8
0000012C EBFFFFB3 BL printf?A ; Targ=0x0
123: printf ("Sample resolution : %02d\n\n", p_wav_hdr->precision);
00000130 E5100000 LDR R0,=p_wav_hdr ; p_wav_hdr
00000134 E5900000 LDR R0,[R0,#0x0] ; p_wav_hdr
00000138 E1D002B2 LDRH R0,[R0,#0x22]
0000013C E1A01000 MOV R1,R0
00000140 E3E00102 MVN R0,#0x102 ; ??S_15
00000144 EBFFFFAD BL printf?A ; Targ=0x0
124: }
00000148 L_15:
125: get_input();
00000148 EBFFFFAC BL get_input?A ; Targ=0x0
126: }
0000014C EAFFFFBE B L_13 ; Targ=0x4C
00000150 ; SCOPE-END
127: }
00000150 E8BD0008 LDMIA R13!,{R3}
00000154 E12FFF13 BX R3
00000158 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = 5
const size = 294
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -