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

📄 main.lst

📁 kei carm lpc2103 例子 好东西
💻 LST
字号:
ARM COMPILER V2.51a,  main                                                                 02/11/06  17:49:22  PAGE 1   


ARM COMPILER V2.51a, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main.c ARM BROWSE DEBUG TABS(4) 

stmt  level    source

    1          /******************************************************************************/
    2          /*  This file is part of the uVision/ARM development tools                    */
    3          /*  Copyright KEIL ELEKTRONIK GmbH 2002-2004                                  */
    4          /******************************************************************************/
    5          /*                                                                            */
    6          /*  HELLO.C:  Hello World Example                                             */
    7          /*                                                                            */
    8          /******************************************************************************/
    9          
   10          #include <stdio.h>                          /* I/O Functions */
   11          #include <LPC21XX.H>                        /* LPC22XX Peripheral Registers */
   12          
   13          unsigned int Send_byte (unsigned Data);
   14          void wait(void);
   15          unsigned int read_byte (void);
   16          
   17          #define CS_HIGH IOSET0 = 0x1000
   18          #define CS_LOW  IOCLR0 = 0x1000
   19          
   20           unsigned int result= 0;
   21           unsigned int result2 = 0;
   22          
   23          int main (void)  
   24          {
   25   1      
   26   1      PINSEL0 |= 0x5500;                   //Select SPI pins and enable SSEL0
   27   1      
   28   1      CS_HIGH;
   29   1      IODIR0 = 0x1000;                         //Configure GPIO pin to control the CS on the SPI eeprom
   30   1                                   //Set the pin High
   31   1      //VPBDIV = 0x01;                         //Set the Clock VBP clock to 60 Mhz  // 0x04
   32   1      
   33   1      S0SPCCR = 0x32;             //Set SPI bit rate at 300Khz  //0xC8
   34   1      S0SPCR  = 0x00000020;               //set control register
   35   1      
   36   1      wait();
   37   1      
   38   1      CS_LOW;
   39   1      result =  Send_byte(0x55);
   40   1      
   41   1      result =  Send_byte(0x05);
   42   1      
   43   1         while(1)  { 
   44   2      
   45   2      result =  Send_byte(0xAA);
   46   2      //result =  Send_byte(0xAA);
   47   2      //result =  Send_byte(0xAA);
   48   2      //result =  Send_byte(0xAA);
   49   2      //result =  Send_byte(0xAA);
   50   2      //result =  Send_byte(0xAA);
   51   2      
   52   2      }
   53   1      
   54   1      
   55   1        CS_HIGH;
   56   1      
   57   1        while(1)  { }
   58   1      }
   59          
ARM COMPILER V2.51a,  main                                                                 02/11/06  17:49:22  PAGE 2   

   60          unsigned int Send_byte (unsigned Data)
   61          {
   62   1      unsigned int result;
   63   1      result = S0SPSR;
   64   1       S0SPDR = Data;
   65   1       while (!(S0SPSR & 0x80)) ; 
   66   1       /*while(S0SPSR == 0)
   67   1       {
   68   1       ;
   69   1       }
   70   1       */
   71   1      return S0SPSR;
   72   1      }
   73          
   74          unsigned int read_byte (void)
   75          {
   76   1      
   77   1       while(S0SPSR == 0)
   78   1       {
   79   2       ;
   80   2       }
   81   1      
   82   1      return S0SPDR;
   83   1      }
   84          
   85          void wait(void)
   86          {
   87   1      unsigned delay;
   88   1      for(delay = 0;delay<0x10000;delay++)    //a bit of setteling time
   89   1      {
   90   2      ;
   91   2      }
   92   1      }
   93           
ARM COMPILER V2.51a,  main                                                                 02/11/06  17:49:22  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         Send_byte?A
 PUBLIC         wait?A
 PUBLIC         read_byte?A
 PUBLIC         main
 PUBLIC         result
 PUBLIC         result2



*** DATA SEGMENT '?DT0?main':
 00000000          result:
 00000000           BEGIN_INIT
 00000000  00000000  DD          0x0
 00000004           END_INIT
 00000004          result2:
 00000004           BEGIN_INIT
 00000004  00000000  DD          0x0
 00000008           END_INIT



*** CODE SEGMENT '?PR?main?main':
   23: int main (void)  
 00000000  E92D4000  STMDB       R13!,{LR}
   26: PINSEL0 |= 0x5500;                   //Select SPI pins and enable SSEL0
 00000004  E5100000  LDR         R0,=0xE002C000
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E3811C55  ORR         R1,R1,#0x5500
 00000010  E5801000  STR         R1,[R0,#0x0]
   28: CS_HIGH;
 00000014  E3A04A01  MOV         R4,#0x1000
 00000018  E5100000  LDR         R0,=0xE0028004
 0000001C  E5804000  STR         R4,[R0,#0x0]
   29: IODIR0 = 0x1000;                         //Configure GPIO pin to control the CS on the SPI eeprom
 00000020  E5100000  LDR         R0,=0xE0028008
 00000024  E5804000  STR         R4,[R0,#0x0]
   33: S0SPCCR = 0x32;             //Set SPI bit rate at 300Khz  //0xC8
 00000028  E3A01032  MOV         R1,#0x32
 0000002C  E5100000  LDR         R0,=0xE002000C
 00000030  E5C01000  STRB        R1,[R0,#0x0]
   34: S0SPCR  = 0x00000020;               //set control register
 00000034  E3A01020  MOV         R1,#0x20
 00000038  E5100000  LDR         R0,=0xE0020000
 0000003C  E5C01000  STRB        R1,[R0,#0x0]
   36: wait();
 00000040  EBFFFFEE  BL          wait?A  ; Targ=0x0
   38: CS_LOW;
 00000044  E5100000  LDR         R0,=0xE002800C
 00000048  E5804000  STR         R4,[R0,#0x0]
   39: result =  Send_byte(0x55);
 0000004C  E3A00055  MOV         R0,#0x55
 00000050  EBFFFFEA  BL          Send_byte?A  ; Targ=0x0
 00000054  E5101000  LDR         R1,=result ; result
 00000058  E5810000  STR         R0,[R1,#0x0] ; result
   41: result =  Send_byte(0x05);
 0000005C  E3A00005  MOV         R0,#0x5
 00000060  EBFFFFE6  BL          Send_byte?A  ; Targ=0x0
 00000064  E5101000  LDR         R1,=result ; result
 00000068  E5810000  STR         R0,[R1,#0x0] ; result
   43:    while(1)  { 
 0000006C          L_3:
   45: result =  Send_byte(0xAA);
 0000006C  E3A000AA  MOV         R0,#0xAA
ARM COMPILER V2.51a,  main                                                                 02/11/06  17:49:22  PAGE 4   

 00000070  EBFFFFE2  BL          Send_byte?A  ; Targ=0x0
 00000074  E5101000  LDR         R1,=result ; result
 00000078  E5810000  STR         R0,[R1,#0x0] ; result
   52: }
 0000007C  EAFFFFFA  B           L_3  ; Targ=0x6C
   58: }
 00000080  E8BD0008  LDMIA       R13!,{R3}
 00000084  E12FFF13  BX          R3
 00000088          ENDP ; 'main'


*** CODE SEGMENT '?PR?Send_byte?A?main':
   60: unsigned int Send_byte (unsigned Data)
 00000000  ---- Variable 'Data' assigned to Register 'R0' ----
   61: {
 00000000            ; SCOPE-START
   63: result = S0SPSR;
 00000000  E5101000  LDR         R1,=0xE0020004
 00000004  E5D11000  LDRB        R1,[R1,#0x0]
   64:  S0SPDR = Data;
 00000008  E1A01000  MOV         R1,R0 ; Data
 0000000C  E1A01C01  MOV         R1,R1,LSL #24 ; Data
 00000010  E1A01C21  MOV         R1,R1,LSR #24
 00000014  E5100000  LDR         R0,=0xE0020008
 00000018  E5C01000  STRB        R1,[R0,#0x0]
   65:  while (!(S0SPSR & 0x80)) ; 
 0000001C          L_9:
 0000001C  E5100000  LDR         R0,=0xE0020004
 00000020  E5D00000  LDRB        R0,[R0,#0x0]
 00000024  E3100080  TST         R0,#0x0080
 00000028  0AFFFFFB  BEQ         L_9  ; Targ=0x1C
   71: return S0SPSR;
 0000002C  E5100000  LDR         R0,=0xE0020004
 00000030  E5D00000  LDRB        R0,[R0,#0x0]
 00000034            ; SCOPE-END
   72: }
 00000034  E12FFF1E  BX          R14
 00000038          ENDP ; 'Send_byte?A'


*** CODE SEGMENT '?PR?read_byte?A?main':
   80:  }
 00000000          L_14:
 00000000  E5100000  LDR         R0,=0xE0020004
 00000004  E5D00000  LDRB        R0,[R0,#0x0]
 00000008  E3500000  CMP         R0,#0x0000
 0000000C  0AFFFFFB  BEQ         L_14  ; Targ=0x0
   82: return S0SPDR;
 00000010  E5100000  LDR         R0,=0xE0020008
 00000014  E5D00000  LDRB        R0,[R0,#0x0]
   83: }
 00000018  E12FFF1E  BX          R14
 0000001C          ENDP ; 'read_byte?A'


*** CODE SEGMENT '?PR?wait?A?main':
   86: {
 00000000            ; SCOPE-START
   88: for(delay = 0;delay<0x10000;delay++)    //a bit of setteling time
 00000000  E3A00000  MOV         R0,#0x0
 00000004  ---- Variable 'delay' assigned to Register 'R0' ----
   91: }
 00000004          L_19:
 00000004  E2800001  ADD         R0,R0,#0x0001 ; delay
 00000008  E1A01000  MOV         R1,R0 ; delay
 0000000C  E3510801  CMP         R1,#0x10000 ; delay
 00000010  3AFFFFFB  BCC         L_19  ; Targ=0x4
 00000014            ; SCOPE-END
   92: }
 00000014  E12FFF1E  BX          R14
 00000018          ENDP ; 'wait?A'


ARM COMPILER V2.51a,  main                                                                 02/11/06  17:49:22  PAGE 5   


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