⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad9958.lst

📁 AD9958arm控制源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000044  D101      BNE         L_13  ; T=0x0000004A
 00000046  2580      MOV         R5,#0x80
 00000048  E003      B           L_12  ; T=0x00000052
 0000004A          L_13:
  136:             else if(chan==2)chan_temp=0xf0;
 0000004A  1C18      MOV         R0,R3 ; chan
 0000004C  2802      CMP         R0,#0x2 ; chan
 0000004E  D100      BNE         L_12  ; T=0x00000052
 00000050  25F0      MOV         R5,#0xF0
 00000052          L_12:
  138:     freq*=(double)17.179869184;
 00000052  1C10      MOV         R0,R2 ; freq
 00000054  4800      LDR         R1,=0x4189705F
 00000056  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 00000058  FFD3      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 0000005A  1C02      MOV         R2,R0 ; freq
  140:     freq_temp.int_value=(unsigned int)freq;
 0000005C  F7FF      BL          ?C?CASTF?T  ; T=0x0001  (1) ; ?C?CASTF?T
 0000005E  FFD0      BL          ?C?CASTF?T  ; T=0x0001  (2) ; ?C?CASTF?T
 00000060  9000      STR         R0,[R13,#0x0] ; freq_temp
  143:     AD9958_CS_OFF
 00000062  4800      LDR         R1,=0x800000
 00000064  4800      LDR         R0,=0xE002801C
 00000066  6001      STR         R1,[R0,#0x0]
  144:     AD9958_UPDATE_OFF
 00000068  4800      LDR         R0,=0xE002800C
 0000006A  6001      STR         R1,[R0,#0x0]
  147:     send_data_to_spi(INSTRUCTION_CSR);
 0000006C  2000      MOV         R0,#0x0
 0000006E  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 00000070  FFC7      BL          send_data_to_spi?T  ; T=0x0001  (2)
  148:     send_data_to_spi(chan_temp);
 00000072  1C28      MOV         R0,R5 ; chan_temp
ARM COMPILER V2.53,  AD9958                                                                23/07/06  16:59:03  PAGE 9   

 00000074  0600      LSL         R0,R0,#0x18 ; chan_temp
 00000076  0E00      LSR         R0,R0,#0x18
 00000078  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 0000007A  FFC2      BL          send_data_to_spi?T  ; T=0x0001  (2)
  151:     send_data_to_spi(INSTRUCTION_CTW0); 
 0000007C  2004      MOV         R0,#0x4
 0000007E  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 00000080  FFBF      BL          send_data_to_spi?T  ; T=0x0001  (2)
  152:     send_data_to_spi(freq_temp.char_value._4);
 00000082  2003      MOV         R0,#0x3
 00000084  4468      ADD         R0,R13
 00000086  7800      LDRB        R0,[R0,#0x0] ; freq_temp+3
 00000088  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 0000008A  FFBA      BL          send_data_to_spi?T  ; T=0x0001  (2)
  153:     send_data_to_spi(freq_temp.char_value._3);
 0000008C  2002      MOV         R0,#0x2
 0000008E  4468      ADD         R0,R13
 00000090  7800      LDRB        R0,[R0,#0x0] ; freq_temp+2
 00000092  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 00000094  FFB5      BL          send_data_to_spi?T  ; T=0x0001  (2)
  154:     send_data_to_spi(freq_temp.char_value._2);
 00000096  2001      MOV         R0,#0x1
 00000098  4468      ADD         R0,R13
 0000009A  7800      LDRB        R0,[R0,#0x0] ; freq_temp+1
 0000009C  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 0000009E  FFB0      BL          send_data_to_spi?T  ; T=0x0001  (2)
  155:     send_data_to_spi(freq_temp.char_value._1);
 000000A0  A800      ADD         R0,R13,#0x0
 000000A2  7800      LDRB        R0,[R0,#0x0] ; freq_temp
 000000A4  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 000000A6  FFAC      BL          send_data_to_spi?T  ; T=0x0001  (2)
  157:     AD9958_UPDATE_ON
 000000A8  4800      LDR         R1,=0x800000
 000000AA  4800      LDR         R0,=0xE0028004
 000000AC  6001      STR         R1,[R0,#0x0]
  158:     AD9958_CS_ON
 000000AE  4800      LDR         R0,=0xE0028014
 000000B0  6001      STR         R1,[R0,#0x0]
  160:     set_ad9958_synchronization();
 000000B2  F7FF      BL          set_ad9958_synchronization?T  ; T=0x0001  (1)
 000000B4  FFA5      BL          set_ad9958_synchronization?T  ; T=0x0001  (2)
  161:     return 1;
 000000B6  2001      MOV         R0,#0x1
 000000B8            ; SCOPE-END
  162: }
 000000B8          L_8:
 000000B8  B001      ADD         R13,#0x4
 000000BA  BC30      POP         {R4-R5}
 000000BC  BC08      POP         {R3}
 000000BE  4718      BX          R3
 000000C0          ENDP ; 'set_frequency?T'


*** CODE SEGMENT '?PR?set_phase?T?AD9958':
  175: int set_phase(int chan,double pha)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C0A      MOV         R2,R1 ; pha
 00000004  ---- Variable 'pha' assigned to Register 'R2' ----
 00000004  1C03      MOV         R3,R0 ; chan
 00000006  ---- Variable 'chan' assigned to Register 'R3' ----
  176: {
 00000006            ; SCOPE-START
  177:     unsigned char chan_temp=0;
 00000006  2500      MOV         R5,#0x0
 00000008  ---- Variable 'chan_temp' assigned to Register 'R5' ----
  180:     if(chan<0 || chan>2)return 0;
 00000008  1C18      MOV         R0,R3 ; chan
 0000000A  2800      CMP         R0,#0x0 ; chan
ARM COMPILER V2.53,  AD9958                                                                23/07/06  16:59:03  PAGE 10  

 0000000C  DB02      BLT         L_17  ; T=0x00000014
 0000000E  1C18      MOV         R0,R3 ; chan
 00000010  2802      CMP         R0,#0x2 ; chan
 00000012  DD01      BLE         L_16  ; T=0x00000018
 00000014          L_17:
 00000014  2000      MOV         R0,#0x0
 00000016  E04E      B           L_18  ; T=0x000000B6
 00000018          L_16:
  181:     if(pha>359.9 || pha<0)return 0;
 00000018  4800      LDR         R4,=0x43B3F333
 0000001A  1C10      MOV         R0,R2 ; pha
 0000001C  1C21      MOV         R1,R4
 0000001E  F7FF      BL          ?C?FPCMP?T  ; T=0x0001  (1) ; ?C?FPCMP?T
 00000020  FFEF      BL          ?C?FPCMP?T  ; T=0x0001  (2) ; ?C?FPCMP?T
 00000022  D805      BHI         L_20  ; T=0x00000030
 00000024  2400      MOV         R4,#0x0
 00000026  1C10      MOV         R0,R2 ; pha
 00000028  1C21      MOV         R1,R4
 0000002A  F7FF      BL          ?C?FPCMP?T  ; T=0x0001  (1) ; ?C?FPCMP?T
 0000002C  FFE9      BL          ?C?FPCMP?T  ; T=0x0001  (2) ; ?C?FPCMP?T
 0000002E  D201      BCS         L_19  ; T=0x00000034
 00000030          L_20:
 00000030  2000      MOV         R0,#0x0
 00000032  E040      B           L_18  ; T=0x000000B6
 00000034          L_19:
  184:     if(chan==0)chan_temp=0x40;
 00000034  1C18      MOV         R0,R3 ; chan
 00000036  2800      CMP         R0,#0x0 ; chan
 00000038  D101      BNE         L_21  ; T=0x0000003E
 0000003A  2540      MOV         R5,#0x40
 0000003C  E008      B           L_22  ; T=0x00000050
 0000003E          L_21:
  185:         else if(chan==1)chan_temp=0x80;
 0000003E  1C18      MOV         R0,R3 ; chan
 00000040  2801      CMP         R0,#0x1 ; chan
 00000042  D101      BNE         L_23  ; T=0x00000048
 00000044  2580      MOV         R5,#0x80
 00000046  E003      B           L_22  ; T=0x00000050
 00000048          L_23:
  186:             else if(chan==2)chan_temp=0xf0;
 00000048  1C18      MOV         R0,R3 ; chan
 0000004A  2802      CMP         R0,#0x2 ; chan
 0000004C  D100      BNE         L_22  ; T=0x00000050
 0000004E  25F0      MOV         R5,#0xF0
 00000050          L_22:
  188:     pha*=45.511111111111111111111111111111;
 00000050  1C10      MOV         R0,R2 ; pha
 00000052  4800      LDR         R1,=0x42360B61
 00000054  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 00000056  FFD4      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 00000058  1C02      MOV         R2,R0 ; pha
  190:     pha_temp=(unsigned short)pha;
 0000005A  F7FF      BL          ?C?CASTF?T  ; T=0x0001  (1) ; ?C?CASTF?T
 0000005C  FFD1      BL          ?C?CASTF?T  ; T=0x0001  (2) ; ?C?CASTF?T
 0000005E  1C04      MOV         R4,R0 ; pha_temp
 00000060  ---- Variable 'pha_temp' assigned to Register 'R4' ----
  193:     AD9958_CS_OFF
 00000060  4800      LDR         R1,=0x800000
 00000062  4800      LDR         R0,=0xE002801C
 00000064  6001      STR         R1,[R0,#0x0]
  194:     AD9958_UPDATE_OFF
 00000066  4800      LDR         R0,=0xE002800C
 00000068  6001      STR         R1,[R0,#0x0]
  197:     send_data_to_spi(INSTRUCTION_CSR);
 0000006A  2000      MOV         R0,#0x0
 0000006C  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
ARM COMPILER V2.53,  AD9958                                                                23/07/06  16:59:03  PAGE 11  

 0000006E  FFC8      BL          send_data_to_spi?T  ; T=0x0001  (2)
  198:     send_data_to_spi(chan_temp);
 00000070  1C28      MOV         R0,R5 ; chan_temp
 00000072  0600      LSL         R0,R0,#0x18 ; chan_temp
 00000074  0E00      LSR         R0,R0,#0x18
 00000076  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 00000078  FFC3      BL          send_data_to_spi?T  ; T=0x0001  (2)
  201:     send_data_to_spi(INSTRUCTION_CPW0); 
 0000007A  2005      MOV         R0,#0x5
 0000007C  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          send_data_to_spi?T  ; T=0x0001  (2)
  202:     send_data_to_spi((unsigned char)((pha_temp&0xff00)>>8));
 00000080  1C20      MOV         R0,R4 ; pha_temp
 00000082  0400      LSL         R0,R0,#0x10 ; pha_temp
 00000084  0C00      LSR         R0,R0,#0x10
 00000086  4800      LDR         R1,=0xFF00
 00000088  4008      AND         R0,R1
 0000008A  1200      ASR         R0,R0,#0x8
 0000008C  0600      LSL         R0,R0,#0x18
 0000008E  0E00      LSR         R0,R0,#0x18
 00000090  0600      LSL         R0,R0,#0x18
 00000092  0E00      LSR         R0,R0,#0x18
 00000094  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 00000096  FFB4      BL          send_data_to_spi?T  ; T=0x0001  (2)
  203:     send_data_to_spi((unsigned char)(pha_temp&0x00ff));
 00000098  1C20      MOV         R0,R4 ; pha_temp
 0000009A  0400      LSL         R0,R0,#0x10 ; pha_temp
 0000009C  0C00      LSR         R0,R0,#0x10
 0000009E  21FF      MOV         R1,#0xFF
 000000A0  4008      AND         R0,R1
 000000A2  F7FF      BL          send_data_to_spi?T  ; T=0x0001  (1)
 000000A4  FFAD      BL          send_data_to_spi?T  ; T=0x0001  (2)
  206:     AD9958_UPDATE_ON
 000000A6  4800      LDR         R1,=0x800000
 000000A8  4800      LDR         R0,=0xE0028004
 000000AA  6001      STR         R1,[R0,#0x0]
  207:     AD9958_CS_ON        
 000000AC  4800      LDR         R0,=0xE0028014
 000000AE  6001      STR         R1,[R0,#0x0]
  208:     set_ad9958_synchronization();
 000000B0  F7FF      BL          set_ad9958_synchronization?T  ; T=0x0001  (1)
 000000B2  FFA6      BL          set_ad9958_synchronization?T  ; T=0x0001  (2)
  209:     return 1;
 000000B4  2001      MOV         R0,#0x1
 000000B6            ; SCOPE-END
  210: }
 000000B6          L_18:
 000000B6  BC30      POP         {R4-R5}
 000000B8  BC08      POP         {R3}
 000000BA  4718      BX          R3
 000000BC          ENDP ; 'set_phase?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 + -