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

📄 spi.lst

📁 AD9958arm控制源程序
💻 LST
字号:
ARM COMPILER V2.53,  spi                                                                   23/07/06  16:59:03  PAGE 1   


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

stmt  level    source

    1          /*------------------------------------------------------
    2          FILE NAME   : spi.c
    3          DESCRIPTION : lpc2132 spi driver 
    4          VERSION     : 0.0.0 (C)aureole
    5          AUTHOR      : Aureole
    6          CREATE DATE : 4.1.2006
    7          MODIFY DATE : ---
    8          LOGS        :-\ 
    9          1. First create for hardware test. 4.1.2006
   10          
   11          
   12          --------------------------------------------------------*/
   13          
   14          //-------------Include Files----------------------------//
   15          #include "..\include\spi.h"
   16          #include "..\include\config.h"
   17          #include "..\include\common.h"
   18          
   19          //-------------Function area--------------------------//
   20          /*---------------------------------------------------------------
   21          NAME       : initialize_master_spi
   22          ENTRY  TYPE: void
   23          RETURN TYPE: void
   24          PURPOSE    : ---
   25          VERSION    : 0.1
   26          DESCRIPTION:
   27          CREATE DATE: 4.1.2006
   28          LOGS       : 1.first create;
   29          -----------------------------------------------------------------*/
   30          void initialize_master_spi(void)
   31          {
   32   1      
   33   1          PINSEL0|=0x00005500; //Set PIN Connect SPI Function;
   34   1      
   35   1          S0SPCCR=0X8; //Set SPI Clock;SPCCR bit0 MUST BE SET 0,AND SPCCR MUST >=8;
   36   1      
   37   1          S0SPCR=(0<<3)|              // CPHA = 0, 数据在SCK 的第一个时钟沿采样
   38   1              (0<<4)|             // CPOL = 1, SCK 为低有效,CPOL = 0, SCK 为高有效
   39   1              (1<<5)|             // MSTR = 1, SPI 处于主模式
   40   1              (0<<6)|             // LSBF = 0, SPI 数据传输MSB (位7)在先
   41   1              (0<<7);             // SPIE = 0, SPI 中断被禁止
   42   1      
   43   1      
   44   1      }
   45          
   46          
   47          /*---------------------------------------------------------------
   48          NAME       : send_data_to_spi
   49          ENTRY  TYPE: unsigned char
   50          RETURN TYPE: unsigned char
   51          PURPOSE    : ---
   52          VERSION    : 0.1
   53          DESCRIPTION:
   54          CREATE DATE: 4.1.2006
   55          LOGS       : 1.first create;
   56          -----------------------------------------------------------------*/
   57          unsigned char send_data_to_spi(unsigned char dat)
   58          {
ARM COMPILER V2.53,  spi                                                                   23/07/06  16:59:03  PAGE 2   

   59   1          S0SPDR=dat;
   60   1          while(!(S0SPSR&0x80));      // 等待SPIF置位,即等待数据发送完;
   61   1          return(S0SPDR);
   62   1      }
ARM COMPILER V2.53,  spi                                                                   23/07/06  16:59:03  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         initialize_master_spi?T
 PUBLIC         send_data_to_spi?T



*** CODE SEGMENT '?PR?initialize_master_spi?T?spi':
   33:     PINSEL0|=0x00005500; //Set PIN Connect SPI Function;
 00000000  4800      LDR         R2,=0x5500
 00000002  4800      LDR         R0,=0xE002C000
 00000004  6801      LDR         R1,[R0,#0x0]
 00000006  4311      ORR         R1,R2
 00000008  6001      STR         R1,[R0,#0x0]
   35:     S0SPCCR=0X8; //Set SPI Clock;SPCCR bit0 MUST BE SET 0,AND SPCCR MUST >=8;
 0000000A  2108      MOV         R1,#0x8
 0000000C  4800      LDR         R0,=0xE002000C
 0000000E  7001      STRB        R1,[R0,#0x0]
   37:     S0SPCR=(0<<3)|              // CPHA = 0, 数据在SCK 的第一个时钟沿采样
 00000010  2120      MOV         R1,#0x20
 00000012  4800      LDR         R0,=0xE0020000
 00000014  8001      STRH        R1,[R0,#0x0]
   44: }
 00000016  4770      BX          R14
 00000018          ENDP ; 'initialize_master_spi?T'


*** CODE SEGMENT '?PR?send_data_to_spi?T?spi':
   57: unsigned char send_data_to_spi(unsigned char dat)
 00000000  1C01      MOV         R1,R0 ; dat
 00000002  ---- Variable 'dat' assigned to Register 'R1' ----
   59:     S0SPDR=dat;
 00000002  1C08      MOV         R0,R1 ; dat
 00000004  0601      LSL         R1,R0,#0x18 ; dat
 00000006  0E09      LSR         R1,R1,#0x18
 00000008  4800      LDR         R0,=0xE0020008
 0000000A  8001      STRH        R1,[R0,#0x0]
   60:     while(!(S0SPSR&0x80));      // 等待SPIF置位,即等待数据发送完;
 0000000C          L_1:
 0000000C  4800      LDR         R0,=0xE0020004
 0000000E  7800      LDRB        R0,[R0,#0x0]
 00000010  2180      MOV         R1,#0x80
 00000012  4208      TST         R0,R1
 00000014  D0FA      BEQ         L_1  ; T=0x0000000C
   61:     return(S0SPDR);
 00000016  4800      LDR         R0,=0xE0020008
 00000018  8800      LDRH        R0,[R0,#0x0]
   62: }
 0000001A  4770      BX          R14
 0000001C          ENDP ; 'send_data_to_spi?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 + -