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

📄 main.lst

📁 AD9958arm控制源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 0000000C  FFF9      BL          initialize_system?T  ; T=0x0001  (2)
   74:     while(1){
 0000000E          L_3:
   76:         if(uart0_receive_ok_flag){
 0000000E  4800      LDR         R0,=uart0_receive_ok_flag ; uart0_receive_ok_flag
 00000010  7800      LDRB        R0,[R0,#0x0] ; uart0_receive_ok_flag
 00000012  2800      CMP         R0,#0x0
 00000014  D020      BEQ         L_5  ; T=0x00000058
   77:             uart0_receive_ok_flag=FALSE;
 00000016  2100      MOV         R1,#0x0
 00000018  4800      LDR         R0,=uart0_receive_ok_flag ; uart0_receive_ok_flag
 0000001A  7001      STRB        R1,[R0,#0x0] ; uart0_receive_ok_flag
   78:             if(!feedback){
 0000001C  1C38      MOV         R0,R7 ; feedback
 0000001E  0600      LSL         R0,R0,#0x18 ; feedback
 00000020  0E00      LSR         R0,R0,#0x18
 00000022  2800      CMP         R0,#0x0
 00000024  D110      BNE         L_6  ; T=0x00000048
   79:                 if(!strcmp(receive_buffer,"ERROR\r\n"))goto aa;
 00000026  4800      LDR         R0,=receive_buffer ; receive_buffer
 00000028  4800      LDR         R1,=??S_1 ; ??S_1
 0000002A  F7FF      BL          strcmp?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          strcmp?T  ; T=0x0001  (2)
 0000002E  2800      CMP         R0,#0x0 ; strcmp?T
 00000030  D012      BEQ         L_5  ; T=0x00000058
   80:                 feedback=TRUE;
 00000032  2701      MOV         R7,#0x1
   81:                 strcpy(buffer,receive_buffer);
 00000034  4800      LDR         R0,=buffer ; buffer
 00000036  4800      LDR         R1,=receive_buffer ; receive_buffer
 00000038  F7FF      BL          strcpy?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          strcpy?T  ; T=0x0001  (2)
   82:                 send_string_to_uart0(receive_buffer);
 0000003C  4800      LDR         R0,=receive_buffer ; receive_buffer
 0000003E  F7FF      BL          send_string_to_uart0?T  ; T=0x0001  (1)
 00000040  FFDF      BL          send_string_to_uart0?T  ; T=0x0001  (2)
   83:                 clear_receive_buffer();
 00000042  F7FF      BL          clear_receive_buffer?T  ; T=0x0001  (1)
 00000044  FFDD      BL          clear_receive_buffer?T  ; T=0x0001  (2)
   84: aa:;
 00000046          aa:
   85:             }else{
 00000046  E007      B           L_5  ; T=0x00000058
 00000048          L_6:
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 6   

   86:                 if(!strcmp(receive_buffer,"OK\r\n"))command_ready=1;
 00000048  4800      LDR         R0,=receive_buffer ; receive_buffer
 0000004A  4800      LDR         R1,=??S_2 ; ??S_2
 0000004C  F7FF      BL          strcmp?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          strcmp?T  ; T=0x0001  (2)
 00000050  2800      CMP         R0,#0x0 ; strcmp?T
 00000052  D100      BNE         L_10  ; T=0x00000056
 00000054  2601      MOV         R6,#0x1
 00000056          L_10:
   87:                 feedback=FALSE;
 00000056  2700      MOV         R7,#0x0
   89:         }
 00000058          L_5:
   92:         if(command_ready){
 00000058  1C30      MOV         R0,R6 ; command_ready
 0000005A  2800      CMP         R0,#0x0 ; command_ready
 0000005C  D00F      BEQ         L_11  ; T=0x0000007E
   93:             command_ready=FALSE;
 0000005E  2600      MOV         R6,#0x0
   94:             if(!strncmp(buffer,"FREQ",4)){
 00000060  4800      LDR         R0,=buffer ; buffer
 00000062  4800      LDR         R1,=??S_3 ; ??S_3
 00000064  2204      MOV         R2,#0x4
 00000066  F7FF      BL          strncmp?T  ; T=0x0001  (1)
 00000068  FFCB      BL          strncmp?T  ; T=0x0001  (2)
 0000006A  2800      CMP         R0,#0x0 ; strncmp?T
 0000006C  D107      BNE         L_11  ; T=0x0000007E
   95:                 temp=__atof(buffer+5);
 0000006E  4800      LDR         R0,=buffer + 0x5 ; buffer+5
 00000070  F7FF      BL          __atof?T  ; T=0x0001  (1)
 00000072  FFC6      BL          __atof?T  ; T=0x0001  (2)
 00000074  1C05      MOV         R5,R0 ; temp
   96:                 set_frequency(CHANNEL_A_B,temp);
 00000076  1C29      MOV         R1,R5 ; temp
 00000078  2002      MOV         R0,#0x2
 0000007A  F7FF      BL          set_frequency?T  ; T=0x0001  (1)
 0000007C  FFC1      BL          set_frequency?T  ; T=0x0001  (2)
   98:         }
 0000007E          L_11:
   99:         if(j++==100000){
 0000007E  1C20      MOV         R0,R4 ; j
 00000080  3401      ADD         R4,#0x1
 00000082  4800      LDR         R1,=0x186A0
 00000084  4288      CMP         R0,R1 ; j
 00000086  D105      BNE         L_13  ; T=0x00000094
  100:             LED_ON
 00000088  4800      LDR         R1,=0x200000
 0000008A  4800      LDR         R0,=0xE0028014
 0000008C  6001      STR         R1,[R0,#0x0]
  103:             send_string_to_uart1("Hello I'm Vector");
 0000008E  4800      LDR         R0,=??S_4 ; ??S_4
 00000090  F7FF      BL          send_string_to_uart1?T  ; T=0x0001  (1)
 00000092  FFB6      BL          send_string_to_uart1?T  ; T=0x0001  (2)
  105:         };
 00000094          L_13:
  106:         if(j==200000){
 00000094  1C20      MOV         R0,R4 ; j
 00000096  4800      LDR         R1,=0x30D40
 00000098  4288      CMP         R0,R1 ; j
 0000009A  D1B8      BNE         L_3  ; T=0x0000000E
  107:             LED_OFF
 0000009C  4800      LDR         R1,=0x200000
 0000009E  4800      LDR         R0,=0xE002801C
 000000A0  6001      STR         R1,[R0,#0x0]
  109:                 j=0;
 000000A2  2400      MOV         R4,#0x0
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 7   

  112:       }
 000000A4  E7B3      B           L_3  ; T=0x0000000E
 000000A6            ; SCOPE-END
  113: } 
 000000A6  BC08      POP         {R3}
 000000A8  4718      BX          R3
 000000AA          ENDP ; 'main'


*** CODE SEGMENT '?PR?initialize_system?T?main':
  125: void initialize_system(void)
 00000000  B500      PUSH        {LR}
  126: {
 00000002            ; SCOPE-START
  130:    initialize_ltc2600();
 00000002  4800      LDR         R2,=0x80000
 00000004  4800      LDR         R0,=0xE0028008
 00000006  6801      LDR         R1,[R0,#0x0]
 00000008  4311      ORR         R1,R2
 0000000A  6001      STR         R1,[R0,#0x0]
 0000000C  4800      LDR         R2,=0x100000
 0000000E  4800      LDR         R0,=0xE0028008
 00000010  6801      LDR         R1,[R0,#0x0]
 00000012  4311      ORR         R1,R2
 00000014  6001      STR         R1,[R0,#0x0]
 00000016  4800      LDR         R2,=0x40000
 00000018  4800      LDR         R0,=0xE0028008
 0000001A  6801      LDR         R1,[R0,#0x0]
 0000001C  4311      ORR         R1,R2
 0000001E  6001      STR         R1,[R0,#0x0]
  132:     set_sine_ac_zero(cal_a.sine_ac_zero,cal_b.sine_ac_zero);
 00000020  4800      LDR         R0,=cal_a ; cal_a
 00000022  8800      LDRH        R0,[R0,#0x0] ; cal_a
 00000024  4800      LDR         R1,=cal_b ; cal_b
 00000026  8809      LDRH        R1,[R1,#0x0] ; cal_b
 00000028  F7FF      BL          set_sine_ac_zero?T  ; T=0x0001  (1)
 0000002A  FFEA      BL          set_sine_ac_zero?T  ; T=0x0001  (2)
  133:     set_squa_ac_zero(cal_a.squa_ac_zero,cal_b.squa_ac_zero);
 0000002C  4800      LDR         R0,=cal_a + 0x2 ; cal_a+2
 0000002E  8800      LDRH        R0,[R0,#0x0] ; cal_a+2
 00000030  4800      LDR         R1,=cal_b + 0x2 ; cal_b+2
 00000032  8809      LDRH        R1,[R1,#0x0] ; cal_b+2
 00000034  F7FF      BL          set_squa_ac_zero?T  ; T=0x0001  (1)
 00000036  FFE4      BL          set_squa_ac_zero?T  ; T=0x0001  (2)
  137:     initialize_led();
 00000038  4800      LDR         R1,=0x200000
 0000003A  4800      LDR         R0,=0xE0028018
 0000003C  6802      LDR         R2,[R0,#0x0]
 0000003E  430A      ORR         R2,R1
 00000040  6002      STR         R2,[R0,#0x0]
  138:     LED_ON;
 00000042  4800      LDR         R0,=0xE0028014
 00000044  6001      STR         R1,[R0,#0x0]
  140:      for(i=0;i<800000;i++); //power on delay;
 00000046  2000      MOV         R0,#0x0
 00000048  ---- Variable 'i' assigned to Register 'R0' ----
 00000048          L_15:
 00000048  3001      ADD         R0,#0x1
 0000004A  1C01      MOV         R1,R0 ; i
 0000004C  4800      LDR         R2,=0xC3500
 0000004E  4291      CMP         R1,R2 ; i
 00000050  D3FA      BCC         L_15  ; T=0x00000048
  143:     initialize_master_spi();
 00000052  F7FF      BL          initialize_master_spi?T  ; T=0x0001  (1)
 00000054  FFD5      BL          initialize_master_spi?T  ; T=0x0001  (2)
  144:     initialize_ad9958();
 00000056  F7FF      BL          initialize_ad9958?T  ; T=0x0001  (1)
 00000058  FFD3      BL          initialize_ad9958?T  ; T=0x0001  (2)
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 8   

  145:     set_frequency(CHANNEL_A,8000000.0);
 0000005A  4800      LDR         R1,=0x4AF42400
 0000005C  2000      MOV         R0,#0x0
 0000005E  F7FF      BL          set_frequency?T  ; T=0x0001  (1)
 00000060  FFCF      BL          set_frequency?T  ; T=0x0001  (2)
  146:     set_frequency(CHANNEL_B,8000000.0);
 00000062  4800      LDR         R1,=0x4AF42400
 00000064  2001      MOV         R0,#0x1
 00000066  F7FF      BL          set_frequency?T  ; T=0x0001  (1)
 00000068  FFCB      BL          set_frequency?T  ; T=0x0001  (2)
  148:     set_phase(CHANNEL_A,0.0);
 0000006A  2100      MOV         R1,#0x0
 0000006C  2000      MOV         R0,#0x0
 0000006E  F7FF      BL          set_phase?T  ; T=0x0001  (1)
 00000070  FFC7      BL          set_phase?T  ; T=0x0001  (2)
  151:     LED_OFF;
 00000072  4800      LDR         R1,=0x200000
 00000074  4800      LDR         R0,=0xE002801C
 00000076  6001      STR         R1,[R0,#0x0]
  152:         IO0DIR|=(1<<16);
 00000078  4800      LDR         R2,=0x10000
 0000007A  4800      LDR         R0,=0xE0028008
 0000007C  6801      LDR         R1,[R0,#0x0]
 0000007E  4311      ORR         R1,R2
 00000080  6001      STR         R1,[R0,#0x0]
  153:     IO0DIR|=(1<<17);
 00000082  4800      LDR         R2,=0x20000
 00000084  4800      LDR         R0,=0xE0028008
 00000086  6801      LDR         R1,[R0,#0x0]
 00000088  4311      ORR         R1,R2
 0000008A  6001      STR         R1,[R0,#0x0]
  154:     p0.bits.bit16=1;
 0000008C  4800      LDR         R0,=p0 ; p0
 0000008E  6801      LDR         R1,[R0,#0x0] ; p0
 00000090  4800      LDR         R2,=0x10000
 00000092  4311      ORR         R1,R2
 00000094  6001      STR         R1,[R0,#0x0] ; p0
  155:     p0.bits.bit17=1;
 00000096  4800      LDR         R0,=p0 ; p0
 00000098  6801      LDR         R1,[R0,#0x0] ; p0
 0000009A  4800      LDR         R2,=0x20000
 0000009C  4311      ORR         R1,R2
 0000009E  6001      STR         R1,[R0,#0x0] ; p0
  156:     IO0PIN=p0.value;
 000000A0  4800      LDR         R0,=p0 ; p0
 000000A2  6801      LDR         R1,[R0,#0x0] ; p0
 000000A4  4800      LDR         R0,=0xE0028000
 000000A6  6001      STR         R1,[R0,#0x0]
  158:     set_amplitude(CHANNEL_A,parameter[0].waveform,20.0);
 000000A8  4800      LDR         R0,=parameter ; parameter
 000000AA  6801      LDR         R1,[R0,#0x0] ; parameter
 000000AC  4800      LDR         R2,=0x41A00000
 000000AE  2000      MOV         R0,#0x0
 000000B0  F7FF      BL          set_amplitude?T  ; T=0x0001  (1)
 000000B2  FFA6      BL          set_amplitude?T  ; T=0x0001  (2)
  159:     set_amplitude(CHANNEL_B,parameter[1].waveform,20.0);
 000000B4  4800      LDR         R0,=parameter + 0x10 ; parameter+16
 000000B6  6801      LDR         R1,[R0,#0x0] ; parameter+16
 000000B8  4800      LDR         R2,=0x41A00000
 000000BA  2001      MOV         R0,#0x1
 000000BC  F7FF      BL          set_amplitude?T  ; T=0x0001  (1)
 000000BE  FFA0      BL          set_amplitude?T  ; T=0x0001  (2)
  161:     initialize_uart0();
 000000C0  F7FF      BL          initialize_uart0?T  ; T=0x0001  (1)
 000000C2  FF9E      BL          initialize_uart0?T  ; T=0x0001  (2)
  162:     initialize_uart1();
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 9   

 000000C4  F7FF      BL          initialize_uart1?T  ; T=0x0001  (1)
 000000C6  FF9C      BL          initialize_uart1?T  ; T=0x0001  (2)
  163:     initialize_timer0();
 000000C8  F7FF      BL          initialize_timer0?T  ; T=0x0001  (1)
 000000CA  FF9A      BL          initialize_timer0?T  ; T=0x0001  (2)
  164:     enable_timer0();
 000000CC  2101      MOV         R1,#0x1
 000000CE  4800      LDR         R0,=0xE0004004
 000000D0  6001      STR         R1,[R0,#0x0]
 000000D2            ; SCOPE-END
  165: }
 000000D2  BC08      POP         {R3}
 000000D4  4718      BX          R3
 000000D6          ENDP ; 'initialize_system?T'


*** CODE SEGMENT '?PR?clear_buffer?T?main':
  177: void clear_buffer(void)
 00000000  B500      PUSH        {LR}
  179:     memset(buffer,0,BUFFER_SIZE);
 00000002  4800      LDR         R0,=buffer ; buffer
 00000004  2100      MOV         R1,#0x0
 00000006  2264      MOV         R2,#0x64
 00000008  F7FF      BL          memset?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          memset?T  ; T=0x0001  (2)
  180: }
 0000000C  BC08      POP         {R3}
 0000000E  4718      BX          R3
 00000010          ENDP ; 'clear_buffer?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =       144
  const size           =        35
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -