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

📄 slave1.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 LST
字号:
ARM COMPILER V2.40c,  slave1                                                               07/12/05  12:16:24  PAGE 1   


ARM COMPILER V2.40c, COMPILATION OF MODULE slave1
OBJECT MODULE PLACED IN slave1.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe slave1.c ARM OPTIMIZE(SIZE) DEBUG TABS(4) 

stmt  level    source

    1          /*********************************************************************
    2          
    3           Author        : ADI - Apps            www.analog.com/MicroConverter
    4          
    5           Date          : Sept. 2005
    6          
    7           File          : slave1.c
    8          
    9           Hardware      : Applicable to ADuC702x rev H or I silicon
   10                           Currently targetting ADuC7026.
   11          
   12           Description   : SPI slave is to use with master.c or master1.c
   13                           the slaves receives values from the master and
   14                           keeps transmitting '0' as it is the default value at reset.
   15                  
   16          *********************************************************************/
   17          
   18          
   19          
   20          #include<ADuC7026.h>
   21          void IRQ_Handler(void) __irq;           //  IRQ Funtion Prototype 
   22          char i; 
   23          char received_data[30];
   24          
   25          
   26          int main(void) {
   27   1      
   28   1          GP4DAT = 0x04000000;            // P4.2 configured as an output. LED is turned on   
   29   1          IRQEN = SPI_SLAVE_BIT;
   30   1      
   31   1          GP1CON = 0x22220000;                // configure SPI on SPM
   32   1          SPICON = 0x1409;                    // enable SPI slave mode
   33   1          
   34   1      while (1) {
   35   2      
   36   2          }           
   37   1      }
   38          
   39          
   40          /********************************************************************/
   41          /*                                                                  */
   42          /*      Interrupt Service Rountine                                  */
   43          /*                                                                  */
   44          /********************************************************************/
   45          
   46          void IRQ_Handler() __irq {
   47   1          GP4DAT ^= 0x00040000;       // Complement P4.2
   48   1          if ((IRQSTA & SPI_SLAVE_BIT) != 0) {
   49   2              received_data[i] = SPIRX;
   50   2              i++;
   51   2              SPITX = i;
   52   2              if (i==30) i=0;
   53   2          }
   54   1          return ;
   55   1      }
   56          
ARM COMPILER V2.40c,  slave1                                                               07/12/05  12:16:24  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         IRQ_Handler?A
 PUBLIC         main
 PUBLIC         i
 PUBLIC         received_data



*** DATA SEGMENT '?DT0?slave1':
 00000000          i:
 00000000            DS          1
 00000001          received_data:
 00000001            DS          30



*** CODE SEGMENT '?PR?main?slave1':
   26: int main(void) {
 00000000  E92D4000  STMDB       R13!,{LR}
   28:     GP4DAT = 0x04000000;            // P4.2 configured as an output. LED is turned on   
 00000004  E3A01301  MOV         R1,#0x4000000
 00000008  E5100000  LDR         R0,=0xFFFFF460
 0000000C  E5801000  STR         R1,[R0,#0x0]
   29:     IRQEN = SPI_SLAVE_BIT;
 00000010  E3A01A01  MOV         R1,#0x1000
 00000014  E5100000  LDR         R0,=0xFFFF0008
 00000018  E5801000  STR         R1,[R0,#0x0]
   31:     GP1CON = 0x22220000;                // configure SPI on SPM
 0000001C  E5101000  LDR         R1,=0x22220000
 00000020  E5100000  LDR         R0,=0xFFFFF404
 00000024  E5801000  STR         R1,[R0,#0x0]
   32:     SPICON = 0x1409;                    // enable SPI slave mode
 00000028  E5101000  LDR         R1,=0x1409
 0000002C  E5100000  LDR         R0,=0xFFFF0A10
 00000030  E5801000  STR         R1,[R0,#0x0]
   36:     }            
 00000034          L_1:
 00000034  EAFFFFFE  B           L_1  ; Targ=0x34
   37: }
 00000038  E8BD0008  LDMIA       R13!,{R3}
 0000003C  E12FFF13  BX          R3
 00000040          ENDP ; 'main'


*** CODE SEGMENT '?PR?IRQ_Handler?A?slave1':
   46: void IRQ_Handler() __irq {
 00000000  E92D000F  STMDB       R13!,{R0-R3}
   47:     GP4DAT ^= 0x00040000;       // Complement P4.2
 00000004  E5100000  LDR         R0,=0xFFFFF460
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E2211701  EOR         R1,R1,#0x40000
 00000010  E5801000  STR         R1,[R0,#0x0]
   48:     if ((IRQSTA & SPI_SLAVE_BIT) != 0) {
 00000014  E5100000  LDR         R0,=0xFFFF0000
 00000018  E5900000  LDR         R0,[R0,#0x0]
 0000001C  E3100A01  TST         R0,#0x1000
 00000020  0A000015  BEQ         L_5  ; Targ=0x7C
   49:         received_data[i] = SPIRX;
 00000024  E5100000  LDR         R0,=0xFFFF0A04
 00000028  E5900000  LDR         R0,[R0,#0x0]
 0000002C  E1A00C00  MOV         R0,R0,LSL #24
 00000030  E1A00C20  MOV         R0,R0,LSR #24
 00000034  E5101000  LDR         R1,=i ; i
 00000038  E5D11000  LDRB        R1,[R1,#0x0] ; i
 0000003C  E1A03001  MOV         R3,R1
 00000040  E5102000  LDR         R2,=received_data ; received_data
ARM COMPILER V2.40c,  slave1                                                               07/12/05  12:16:24  PAGE 3   

 00000044  E7C20003  STRB        R0,[R2,+R3]
   50:         i++;
 00000048  E5100000  LDR         R0,=i ; i
 0000004C  E2811001  ADD         R1,R1,#0x0001
 00000050  E5C01000  STRB        R1,[R0,#0x0] ; i
   51:         SPITX = i;
 00000054  E5100000  LDR         R0,=i ; i
 00000058  E5D00000  LDRB        R0,[R0,#0x0] ; i
 0000005C  E1A02000  MOV         R2,R0
 00000060  E5101000  LDR         R1,=0xFFFF0A08
 00000064  E5812000  STR         R2,[R1,#0x0]
   52:         if (i==30) i=0;
 00000068  E350001E  CMP         R0,#0x001E
 0000006C  1A000002  BNE         L_5  ; Targ=0x7C
 00000070  E3A01000  MOV         R1,#0x0
 00000074  E5100000  LDR         R0,=i ; i
 00000078  E5C01000  STRB        R1,[R0,#0x0] ; i
   53:     }
 0000007C          L_5:
   55: }
 0000007C  E8BD000F  LDMIA       R13!,{R0-R3}
 00000080  E25EF004  SUBS        R15,R14,#0x0004
 00000084          ENDP ; 'IRQ_Handler?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =        31
  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 + -