?? ltc2600.lst
字號:
00000020 FFEF BL write_data_to_ltc2600?T ; T=0x0001 (2)
00000022 2800 CMP R0,#0x0 ; write_data_to_ltc2600?T
00000024 D001 BEQ L_5 ; T=0x0000002A
00000026 2001 MOV R0,#0x1
00000028 E000 B L_6 ; T=0x0000002C
0000002A L_5:
0000002A 2000 MOV R0,#0x0
0000002C L_6:
80: }
0000002C BC10 POP {R4}
0000002E BC08 POP {R3}
00000030 4718 BX R3
00000032 ENDP ; 'set_sine_ac_zero?T'
*** CODE SEGMENT '?PR?write_data_to_ltc2600?T?ltc2600':
93: int write_data_to_ltc2600(unsigned char chan,unsigned int value)
00000000 B430 PUSH {R4-R5}
00000002 ---- Variable 'value' assigned to Register 'R1' ----
00000002 1C02 MOV R2,R0 ; chan
00000004 ---- Variable 'chan' assigned to Register 'R2' ----
94: {
00000004 ; SCOPE-START
98: if(chan>DACH)return 0;
00000004 1C10 MOV R0,R2 ; chan
00000006 0600 LSL R0,R0,#0x18 ; chan
00000008 0E00 LSR R0,R0,#0x18
0000000A 2807 CMP R0,#0x7
0000000C DD01 BLE L_7 ; T=0x00000012
0000000E 2000 MOV R0,#0x0
00000010 E038 B L_8 ; T=0x00000084
00000012 L_7:
99: if(value>65535)return 0;
00000012 1C08 MOV R0,R1 ; value
00000014 4800 LDR R3,=0xFFFF
00000016 4298 CMP R0,R3 ; value
00000018 D901 BLS L_9 ; T=0x0000001E
0000001A 2000 MOV R0,#0x0
0000001C E032 B L_8 ; T=0x00000084
0000001E L_9:
102: dat|=(chan<<24);
ARM COMPILER V2.53, ltc2600 23/07/06 16:59:03 PAGE 6
0000001E 1C10 MOV R0,R2 ; chan
00000020 0600 LSL R0,R0,#0x18 ; chan
00000022 0E00 LSR R0,R0,#0x18
00000024 0600 LSL R0,R0,#0x18
00000026 4800 LDR R3,=0x20000000
00000028 4303 ORR R3,R0
0000002A ---- Variable 'dat' assigned to Register 'R3' ----
103: dat|=(value<<8);
0000002A 1C08 MOV R0,R1 ; value
0000002C 0200 LSL R0,R0,#0x8 ; value
0000002E 4303 ORR R3,R0
105: LTC2600_CS_OFF
00000030 4800 LDR R2,=0x40000
00000032 4800 LDR R0,=0xE002800C
00000034 6002 STR R2,[R0,#0x0]
106: LTC2600_CLK_OFF
00000036 4800 LDR R1,=0x80000
00000038 4800 LDR R0,=0xE002800C
0000003A 6001 STR R1,[R0,#0x0]
108: for(i=0;i<24;i++){
0000003C 2000 MOV R0,#0x0
0000003E ---- Variable 'i' assigned to Register 'R0' ----
0000003E E014 B L_12 ; T=0x0000006A
00000040 L_13:
110: if(dat&0x80000000){
00000040 1C1C MOV R4,R3 ; dat
00000042 4800 LDR R5,=0x80000000
00000044 422C TST R4,R5 ; dat
00000046 D003 BEQ L_15 ; T=0x00000050
111: LTC2600_SDI_ON
00000048 4800 LDR R5,=0x100000
0000004A 4800 LDR R4,=0xE0028004
0000004C 6025 STR R5,[R4,#0x0]
112: } else{
0000004E E002 B L_16 ; T=0x00000056
00000050 L_15:
113: LTC2600_SDI_OFF
00000050 4800 LDR R5,=0x100000
00000052 4800 LDR R4,=0xE002800C
00000054 6025 STR R5,[R4,#0x0]
114: }
00000056 L_16:
115: dat<<=1;
00000056 005B LSL R3,R3,#0x1 ; dat
116: LTC2600_CLK_ON
00000058 4800 LDR R5,=0x80000
0000005A 4800 LDR R4,=0xE0028004
0000005C 6025 STR R5,[R4,#0x0]
117: LTC2600_CLK_OFF
0000005E 4800 LDR R5,=0x80000
00000060 4800 LDR R4,=0xE002800C
00000062 6025 STR R5,[R4,#0x0]
118: }
00000064 3001 ADD R0,#0x1
00000066 0600 LSL R0,R0,#0x18
00000068 0E00 LSR R0,R0,#0x18
0000006A L_12:
0000006A 1C04 MOV R4,R0 ; i
0000006C 0624 LSL R4,R4,#0x18 ; i
0000006E 0E24 LSR R4,R4,#0x18
00000070 2C18 CMP R4,#0x18
00000072 DBE5 BLT L_13 ; T=0x00000040
119: LTC2600_CS_ON
00000074 4800 LDR R0,=0xE0028004
00000076 6002 STR R2,[R0,#0x0]
120: LTC2600_CLK_ON
ARM COMPILER V2.53, ltc2600 23/07/06 16:59:03 PAGE 7
00000078 4800 LDR R0,=0xE0028004
0000007A 6001 STR R1,[R0,#0x0]
121: LTC2600_SDI_ON
0000007C 4800 LDR R1,=0x100000
0000007E 4800 LDR R0,=0xE0028004
00000080 6001 STR R1,[R0,#0x0]
123: return 1;
00000082 2001 MOV R0,#0x1
00000084 ; SCOPE-END
124: }
00000084 L_8:
00000084 BC30 POP {R4-R5}
00000086 4770 BX R14
00000088 ENDP ; 'write_data_to_ltc2600?T'
*** CODE SEGMENT '?PR?set_amplitude?T?ltc2600':
137: int set_amplitude(unsigned int chan,unsigned int wv,float value)
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C15 MOV R5,R2 ; value
00000004 ---- Variable 'value' assigned to Register 'R5' ----
00000004 1C0E MOV R6,R1 ; wv
00000006 ---- Variable 'wv' assigned to Register 'R6' ----
00000006 1C07 MOV R7,R0 ; chan
00000008 ---- Variable 'chan' assigned to Register 'R7' ----
141: if(value<0 || value>MAX_OUTPUT_AMPLITUDE)return 0;
00000008 2400 MOV R4,#0x0
0000000A 1C28 MOV R0,R5 ; value
0000000C 1C21 MOV R1,R4
0000000E F7FF BL ?C?FPCMP?T ; T=0x0001 (1) ; ?C?FPCMP?T
00000010 FFF7 BL ?C?FPCMP?T ; T=0x0001 (2) ; ?C?FPCMP?T
00000012 D305 BCC L_18 ; T=0x00000020
00000014 4800 LDR R3,=0x41A00000
00000016 1C28 MOV R0,R5 ; value
00000018 1C19 MOV R1,R3
0000001A F7FF BL ?C?FPCMP?T ; T=0x0001 (1) ; ?C?FPCMP?T
0000001C FFF1 BL ?C?FPCMP?T ; T=0x0001 (2) ; ?C?FPCMP?T
0000001E D901 BLS L_17 ; T=0x00000024
00000020 L_18:
00000020 2000 MOV R0,#0x0
00000022 E055 B L_19 ; T=0x000000D0
00000024 L_17:
142: if(chan!=CHANNEL_A && chan!=CHANNEL_B)return 0;
00000024 1C38 MOV R0,R7 ; chan
00000026 2800 CMP R0,#0x0 ; chan
00000028 D004 BEQ L_20 ; T=0x00000034
0000002A 1C38 MOV R0,R7 ; chan
0000002C 2801 CMP R0,#0x1 ; chan
0000002E D001 BEQ L_20 ; T=0x00000034
00000030 2000 MOV R0,#0x0
00000032 E04D B L_19 ; T=0x000000D0
00000034 L_20:
143: if(wv!=WAVEFORM_SINE && wv!=WAVEFORM_SQUA)return 0;
00000034 1C30 MOV R0,R6 ; wv
00000036 2800 CMP R0,#0x0 ; wv
00000038 D004 BEQ L_21 ; T=0x00000044
0000003A 1C30 MOV R0,R6 ; wv
0000003C 2801 CMP R0,#0x1 ; wv
0000003E D001 BEQ L_21 ; T=0x00000044
00000040 2000 MOV R0,#0x0
00000042 E045 B L_19 ; T=0x000000D0
00000044 L_21:
146: value/=20.0;
00000044 1C28 MOV R0,R5 ; value
00000046 1C19 MOV R1,R3
00000048 F7FF BL ?C?FPDIV?T ; T=0x0001 (1) ; ?C?FPDIV?T
0000004A FFDA BL ?C?FPDIV?T ; T=0x0001 (2) ; ?C?FPDIV?T
0000004C 1C05 MOV R5,R0 ; value
ARM COMPILER V2.53, ltc2600 23/07/06 16:59:03 PAGE 8
148: if(chan==CHANNEL_A){
0000004E 1C38 MOV R0,R7 ; chan
00000050 2800 CMP R0,#0x0 ; chan
00000052 D11C BNE L_22 ; T=0x0000008E
149: if(wv==WAVEFORM_SINE)value*=cal_a.sine_amp;
00000054 1C30 MOV R0,R6 ; wv
00000056 2800 CMP R0,#0x0 ; wv
00000058 D109 BNE L_23 ; T=0x0000006E
0000005A 4800 LDR R0,=cal_a + 0x4 ; cal_a+4
0000005C 8800 LDRH R0,[R0,#0x0] ; cal_a+4
0000005E F7FF BL ?C?FCASTU?T ; T=0x0001 (1) ; ?C?FCASTU?T
00000060 FFCF BL ?C?FCASTU?T ; T=0x0001 (2) ; ?C?FCASTU?T
00000062 1C01 MOV R1,R0
00000064 1C28 MOV R0,R5 ; value
00000066 F7FF BL ?C?FPMUL?T ; T=0x0001 (1) ; ?C?FPMUL?T
00000068 FFCB BL ?C?FPMUL?T ; T=0x0001 (2) ; ?C?FPMUL?T
0000006A 1C05 MOV R5,R0 ; value
0000006C E008 B L_24 ; T=0x00000080
0000006E L_23:
150: else value*=cal_a.squa_amp;
0000006E 4800 LDR R0,=cal_a + 0x6 ; cal_a+6
00000070 8800 LDRH R0,[R0,#0x0] ; cal_a+6
00000072 F7FF BL ?C?FCASTU?T ; T=0x0001 (1) ; ?C?FCASTU?T
00000074 FFC5 BL ?C?FCASTU?T ; T=0x0001 (2) ; ?C?FCASTU?T
00000076 1C01 MOV R1,R0
00000078 1C28 MOV R0,R5 ; value
0000007A F7FF BL ?C?FPMUL?T ; T=0x0001 (1) ; ?C?FPMUL?T
0000007C FFC1 BL ?C?FPMUL?T ; T=0x0001 (2) ; ?C?FPMUL?T
0000007E 1C05 MOV R5,R0 ; value
00000080 L_24:
151: write_data_to_ltc2600(DACA,(unsigned int)value);
00000080 1C28 MOV R0,R5 ; value
00000082 F7FF BL ?C?CASTF?T ; T=0x0001 (1) ; ?C?CASTF?T
00000084 FFBD BL ?C?CASTF?T ; T=0x0001 (2) ; ?C?CASTF?T
00000086 1C01 MOV R1,R0
00000088 2000 MOV R0,#0x0
0000008A F7FF BL write_data_to_ltc2600?T ; T=0x0001 (1)
0000008C FFB9 BL write_data_to_ltc2600?T ; T=0x0001 (2)
152: }
0000008E L_22:
153: if(chan==CHANNEL_B){
0000008E 1C38 MOV R0,R7 ; chan
00000090 2801 CMP R0,#0x1 ; chan
00000092 D11C BNE L_25 ; T=0x000000CE
154: if(wv==WAVEFORM_SINE)value*=cal_b.sine_amp;
00000094 1C30 MOV R0,R6 ; wv
00000096 2800 CMP R0,#0x0 ; wv
00000098 D109 BNE L_26 ; T=0x000000AE
0000009A 4800 LDR R0,=cal_b + 0x4 ; cal_b+4
0000009C 8800 LDRH R0,[R0,#0x0] ; cal_b+4
0000009E F7FF BL ?C?FCASTU?T ; T=0x0001 (1) ; ?C?FCASTU?T
000000A0 FFAF BL ?C?FCASTU?T ; T=0x0001 (2) ; ?C?FCASTU?T
000000A2 1C01 MOV R1,R0
000000A4 1C28 MOV R0,R5 ; value
000000A6 F7FF BL ?C?FPMUL?T ; T=0x0001 (1) ; ?C?FPMUL?T
000000A8 FFAB BL ?C?FPMUL?T ; T=0x0001 (2) ; ?C?FPMUL?T
000000AA 1C05 MOV R5,R0 ; value
000000AC E008 B L_27 ; T=0x000000C0
000000AE L_26:
155: else value*=cal_b.squa_amp;
000000AE 4800 LDR R0,=cal_b + 0x6 ; cal_b+6
000000B0 8800 LDRH R0,[R0,#0x0] ; cal_b+6
000000B2 F7FF BL ?C?FCASTU?T ; T=0x0001 (1) ; ?C?FCASTU?T
000000B4 FFA5 BL ?C?FCASTU?T ; T=0x0001 (2) ; ?C?FCASTU?T
000000B6 1C01 MOV R1,R0
000000B8 1C28 MOV R0,R5 ; value
ARM COMPILER V2.53, ltc2600 23/07/06 16:59:03 PAGE 9
000000BA F7FF BL ?C?FPMUL?T ; T=0x0001 (1) ; ?C?FPMUL?T
000000BC FFA1 BL ?C?FPMUL?T ; T=0x0001 (2) ; ?C?FPMUL?T
000000BE 1C05 MOV R5,R0 ; value
000000C0 L_27:
156: write_data_to_ltc2600(DACE,(unsigned int)value);
000000C0 1C28 MOV R0,R5 ; value
000000C2 F7FF BL ?C?CASTF?T ; T=0x0001 (1) ; ?C?CASTF?T
000000C4 FF9D BL ?C?CASTF?T ; T=0x0001 (2) ; ?C?CASTF?T
000000C6 1C01 MOV R1,R0
000000C8 2004 MOV R0,#0x4
000000CA F7FF BL write_data_to_ltc2600?T ; T=0x0001 (1)
000000CC FF99 BL write_data_to_ltc2600?T ; T=0x0001 (2)
157: }
000000CE L_25:
158: return 1;
000000CE 2001 MOV R0,#0x1
159: }
000000D0 L_19:
000000D0 BCF0 POP {R4-R7}
000000D2 BC08 POP {R3}
000000D4 4718 BX R3
000000D6 ENDP ; 'set_amplitude?T'
Module Information Static
----------------------------------
code size = ------
data size = 24
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 + -