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

📄 main.lst

📁 AD9958arm控制源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main\main.c THUMB WARNINGLEVEL(3) OPTIMIZE(8,SPEED) DEBUG PRINT(.\MAIN.LST) 
                    -TABS(4) OBJECT(main.obj) 

stmt  level    source

    1          /*------------------------------------------------------------
    2            FILE NAME : main.c
    3          DESCRIPTION : main function of bs1084 arm firmware.
    4          VERSION     : 0.0.1 (c)aureole
    5          AUTHOR      : Aureole
    6          CREATE DATE : 07.17.2006
    7          MODIFY DATE : 00.00.2006
    8          LOGS        :---\
    9          -0.1.0 ----. 04.20.2006
   10          -0.1.1 ----. 07.18.2006  transplant for keil Arm compiler.
   11          --------------------------------------------------------------*/
   12          
   13          
   14          //--------------------Include files-----------------------//
   15          
   16          #include "..\include\config.h" 
   17          #include "..\include\main.h"
   18          #include "..\include\ltc2600.h"
   19          #include "..\include\spi.h"
   20          #include "..\include\ad9958.h"
   21          #include "..\include\common.h"
   22          #include "..\include\my_lib.h"
   23          #include "..\include\uart.h"
   24          #include "..\include\timer.h"
   25          
   26          #include <stdio.h>
   27          #include <string.h>
   28          #include <stdlib.h>
   29          
   30          //-------------------Variable ----------------------------//
   31          ARM_PORT p0,p1; 
   32          
   33          WAVEFORM_STRUCT parameter[2]={
   34              {
   35                  WAVEFORM_SINE,
   36                  DEFAULT_FREQUENCY,
   37                  DEFAULT_AMPLITUDE,
   38                  (float)0.0
   39                  },
   40              {
   41                  WAVEFORM_SINE,
   42                  DEFAULT_FREQUENCY,
   43                  DEFAULT_AMPLITUDE,
   44                  (float)0.0
   45              }
   46          };
   47          
   48          unsigned  int channel=0;
   49          char buffer[BUFFER_SIZE]; //buffer
   50          
   51          //-------------------Function prototype-------------------//
   52          void initialize_system(void);
   53          void set_relay(void);
   54          
   55          
   56          /*--------------------------------------------------------
   57          NAME       : main
   58          ENTRY  TYPE: void
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 2   

   59          RETURN TYPE: void
   60          PURPOSE    : --- 
   61          VERSION    : 0.1 
   62          DESCRIPTION: 
   63          CREATE DATE: 3.30.2006
   64          LOGS       : 1.first create;
   65          ---------------------------------------------------------*/
   66          int main(void)
   67          {   
   68   1          unsigned char feedback=0,command_ready=0;
   69   1          double temp=0;
   70   1          int j=0;
   71   1      
   72   1          initialize_system();
   73   1      
   74   1          while(1){
   75   2              //command receive and feedback;
   76   2              if(uart0_receive_ok_flag){
   77   3                  uart0_receive_ok_flag=FALSE;
   78   3                  if(!feedback){
   79   4                      if(!strcmp(receive_buffer,"ERROR\r\n"))goto aa;
   80   4                      feedback=TRUE;
   81   4                      strcpy(buffer,receive_buffer);
   82   4                      send_string_to_uart0(receive_buffer);
   83   4                      clear_receive_buffer();
   84   4      aa:;
   85   4                  }else{
   86   4                      if(!strcmp(receive_buffer,"OK\r\n"))command_ready=1;
   87   4                      feedback=FALSE;
   88   4                  }
   89   3              }
   90   2      
   91   2              //command interpret     
   92   2              if(command_ready){
   93   3                  command_ready=FALSE;
   94   3                  if(!strncmp(buffer,"FREQ",4)){
   95   4                      temp=__atof(buffer+5);
   96   4                      set_frequency(CHANNEL_A_B,temp);
   97   4                  }
   98   3              }
   99   2              if(j++==100000){
  100   3                  LED_ON
  101   3      
  102   3      
  103   3                  send_string_to_uart1("Hello I'm Vector");
  104   3      
  105   3              };
  106   2              if(j==200000){
  107   3                  LED_OFF
  108   3                      
  109   3                      j=0;
  110   3          
  111   3              };
  112   2          }
  113   1      } 
  114          
  115          /*--------------------------------------------------------
  116          NAME       : initialize_system
  117          ENTRY  TYPE: void
  118          RETURN TYPE: void
  119          PURPOSE    : ---
  120          VERSION    : 0.1 
  121          DESCRIPTION: 
  122          CREATE DATE: 4.5.2006
  123          LOGS       : 1.first create;
  124          ---------------------------------------------------------*/
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 3   

  125          void initialize_system(void)
  126          {
  127   1        unsigned long  int i;
  128   1      
  129   1      
  130   1         initialize_ltc2600();
  131   1      
  132   1          set_sine_ac_zero(cal_a.sine_ac_zero,cal_b.sine_ac_zero);
  133   1          set_squa_ac_zero(cal_a.squa_ac_zero,cal_b.squa_ac_zero);
  134   1      
  135   1      
  136   1          
  137   1          initialize_led();
  138   1          LED_ON;
  139   1      
  140   1          for(i=0;i<800000;i++); //power on delay;
  141   1      
  142   1      
  143   1          initialize_master_spi();
  144   1          initialize_ad9958();
  145   1          set_frequency(CHANNEL_A,8000000.0);
  146   1          set_frequency(CHANNEL_B,8000000.0);
  147   1      
  148   1          set_phase(CHANNEL_A,0.0);
  149   1      
  150   1      
  151   1          LED_OFF;
  152   1              IO0DIR|=(1<<16);
  153   1          IO0DIR|=(1<<17);
  154   1          p0.bits.bit16=1;
  155   1          p0.bits.bit17=1;
  156   1          IO0PIN=p0.value;
  157   1      
  158   1          set_amplitude(CHANNEL_A,parameter[0].waveform,20.0);
  159   1          set_amplitude(CHANNEL_B,parameter[1].waveform,20.0);
  160   1      
  161   1          initialize_uart0();
  162   1          initialize_uart1();
  163   1          initialize_timer0();
  164   1          enable_timer0();
  165   1      }
  166          
  167          /*--------------------------------------------------------
  168          NAME       : clear_buffer
  169          ENTRY  TYPE: void
  170          RETURN TYPE: void
  171          PURPOSE    : ---
  172          VERSION    : 0.1
  173          DESCRIPTION:
  174          CREATE DATE: 4.8.2006
  175          LOGS       : 1.first create;
  176          ---------------------------------------------------------*/
  177          void clear_buffer(void)
  178          {
  179   1          memset(buffer,0,BUFFER_SIZE);
  180   1      }
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (set_sine_ac_zero?T)
 EXTERN CODE16 (set_squa_ac_zero?T)
 EXTERN CODE16 (set_amplitude?T)
 EXTERN DATA (cal_a)
 EXTERN DATA (cal_b)
 EXTERN CODE16 (initialize_master_spi?T)
 EXTERN CODE16 (initialize_ad9958?T)
 EXTERN CODE16 (set_frequency?T)
 EXTERN CODE16 (set_phase?T)
 EXTERN CODE16 (__atof?T)
 EXTERN DATA (receive_buffer)
 EXTERN DATA (uart0_receive_ok_flag)
 EXTERN CODE16 (initialize_uart0?T)
 EXTERN CODE16 (send_string_to_uart0?T)
 EXTERN CODE16 (clear_receive_buffer?T)
 EXTERN CODE16 (initialize_uart1?T)
 EXTERN CODE16 (send_string_to_uart1?T)
 EXTERN CODE16 (initialize_timer0?T)
 EXTERN CODE16 (strcmp?T)
 EXTERN CODE16 (strncmp?T)
 EXTERN CODE16 (strcpy?T)
 EXTERN CODE16 (memset?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         initialize_system?T
 PUBLIC         main
 PUBLIC         clear_buffer?T
 PUBLIC         p0
 PUBLIC         p1
 PUBLIC         parameter
 PUBLIC         channel
 PUBLIC         buffer



*** DATA SEGMENT '?CON?main':
 00000000          ??S_4:
 00000000            DB          'Hello I'm Vector',0x00
 00000011          ??S_3:
 00000011            DB          'FREQ',0x00
 00000016          ??S_2:
 00000016            DB          'OK',0x0D,0x0A,0x00
 0000001B          ??S_1:
 0000001B            DB          'ERROR',0x0D,0x0A,0x00

*** DATA SEGMENT '?DT0?main':
 00000000          p0:
 00000000            DS          4
 00000004          p1:
 00000004            DS          4
 00000008          parameter:
 00000008           BEGIN_INIT
 00000008  00000000  DD          0x0
 0000000C  447A0000  DF32        1000
 00000010  41200000  DF32        10
 00000014  00000000  DF32        0
 00000018  00000000  DD          0x0
 0000001C  447A0000  DF32        1000
 00000020  41200000  DF32        10
 00000024  00000000  DF32        0
 00000028           END_INIT
 00000028          channel:
 00000028           BEGIN_INIT
 00000028  00000000  DD          0x0
ARM COMPILER V2.53,  main                                                                  23/07/06  16:59:03  PAGE 5   

 0000002C           END_INIT
 0000002C          buffer:
 0000002C            DS          100



*** CODE SEGMENT '?PR?main?main':
   66: int main(void)
 00000000  B500      PUSH        {LR}
   67: {    
 00000002            ; SCOPE-START
   68:     unsigned char feedback=0,command_ready=0;
 00000002  2600      MOV         R6,#0x0
 00000004  1C37      MOV         R7,R6 ; feedback
 00000006  ---- Variable 'feedback' assigned to Register 'R7' ----
 00000006  ---- Variable 'command_ready' assigned to Register 'R6' ----
   69:     double temp=0;
 00000006  2500      MOV         R5,#0x0
 00000008  ---- Variable 'temp' assigned to Register 'R5' ----
   70:     int j=0;
 00000008  2400      MOV         R4,#0x0
 0000000A  ---- Variable 'j' assigned to Register 'R4' ----
   72:     initialize_system();
 0000000A  F7FF      BL          initialize_system?T  ; T=0x0001  (1)

⌨️ 快捷键说明

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