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

📄 stm32f10x_spi.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     26/Dec/2008  18:22:08 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_s #
#                       pi.c                                                 #
#    Command line    =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_s #
#                       pi.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3 #
#                       210E-EVAL\IAR\OS-Probe\Flash\List\ -o                #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline  #
#                       --no_tbaa --no_scheduling --debug --cpu_mode thumb   #
#                       --endian little --cpu cortex-M3 --stack_align 4 -e   #
#                       --fpu None --dlib_config "E:\Program Files\IAR       #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl7mptnnl8n.h" -I                  #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
#                       ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I             #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I     #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I               #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
#                       \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
#                       EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I   #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I               #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
#                       -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
#                       ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
#                       -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
#                       \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
#                       Target\Communication\Generic\RS-232\Source\ -I       #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
#                       ation\Generic\RS-232\Ports\ST\STM32\ -I              #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
#                       ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
#                       lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
#                       \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program     #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Kickstart\arm\INC\"                                  #
#    List file       =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\List\stm32f10x_spi.lst            #
#    Object file     =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\stm32f10x_spi.r79             #
#                                                                            #
#                                                                            #
##############################################################################

F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_spi.c
      1          /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
      2          * File Name          : stm32f10x_spi.c
      3          * Author             : MCD Application Team
      4          * Version            : V2.0 
      5          * Date               : 05/23/2008
      6          * Description        : This file provides all the SPI firmware functions.
      7          ********************************************************************************
      8          * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
      9          * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     10          * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
     11          * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
     12          * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
     13          * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     14          * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 
     15          * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
     16          *******************************************************************************/
     17          
     18          /* Includes ------------------------------------------------------------------*/
     19          #include "stm32f10x_spi.h"
     20          #include "stm32f10x_rcc.h"
     21          
     22          /* Private typedef -----------------------------------------------------------*/
     23          /* Private define ------------------------------------------------------------*/
     24          /* SPI SPE mask */
     25          #define CR1_SPE_Set          ((u16)0x0040)
     26          #define CR1_SPE_Reset        ((u16)0xFFBF)
     27          
     28          /* I2S I2SE mask */
     29          #define I2SCFGR_I2SE_Set     ((u16)0x0400)
     30          #define I2SCFGR_I2SE_Reset   ((u16)0xFBFF)
     31          
     32          /* SPI CRCNext mask */
     33          #define CR1_CRCNext_Set      ((u16)0x1000)
     34          
     35          /* SPI CRCEN mask */
     36          #define CR1_CRCEN_Set        ((u16)0x2000)
     37          #define CR1_CRCEN_Reset      ((u16)0xDFFF)
     38          
     39          /* SPI SSOE mask */
     40          #define CR2_SSOE_Set         ((u16)0x0004)
     41          #define CR2_SSOE_Reset       ((u16)0xFFFB)
     42          
     43          /* SPI registers Masks */
     44          #define CR1_CLEAR_Mask       ((u16)0x3040)
     45          #define I2SCFGR_CLEAR_Mask   ((u16)0xF040)
     46          
     47          /* SPI or I2S mode selection masks */
     48          #define SPI_Mode_Select      ((u16)0xF7FF)
     49          #define I2S_Mode_Select      ((u16)0x0800)   
     50          
     51          /* Private macro -------------------------------------------------------------*/
     52          /* Private variables ---------------------------------------------------------*/
     53          /* Private function prototypes -----------------------------------------------*/
     54          /* Private functions ---------------------------------------------------------*/
     55          
     56          /*******************************************************************************
     57          * Function Name  : SPI_I2S_DeInit
     58          * Description    : Deinitializes the SPIx peripheral registers to their default
     59          *                  reset values (Affects also the I2Ss).
     60          * Input          : - SPIx: where x can be 1, 2 or 3 to select the SPI peripheral.
     61          * Output         : None
     62          * Return         : None
     63          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     64          void SPI_I2S_DeInit(SPI_TypeDef* SPIx)
     65          {
   \                     SPI_I2S_DeInit:
   \   00000000   00B5               PUSH     {LR}
     66            /* Check the parameters */
     67            assert_param(IS_SPI_ALL_PERIPH(SPIx));
     68            
     69            switch (*(u32*)&SPIx)
   \   00000002   1349               LDR.N    R1,??SPI_I2S_DeInit_0  ;; 0x40003800
   \   00000004   8842               CMP      R0,R1
   \   00000006   0FD0               BEQ.N    ??SPI_I2S_DeInit_1
   \   00000008   1249               LDR.N    R1,??SPI_I2S_DeInit_0+0x4  ;; 0x40003c00
   \   0000000A   8842               CMP      R0,R1
   \   0000000C   16D0               BEQ.N    ??SPI_I2S_DeInit_2
   \   0000000E   1249               LDR.N    R1,??SPI_I2S_DeInit_0+0x8  ;; 0x40013000
   \   00000010   8842               CMP      R0,R1
   \   00000012   1CD1               BNE.N    ??SPI_I2S_DeInit_3
     70            {
     71              case SPI1_BASE:
     72                /* Enable SPI1 reset state */
     73                RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, ENABLE);
   \   00000014   0121               MOVS     R1,#+1
   \   00000016   0803               LSLS     R0,R1,#+12
   \   00000018   ........           _BLF     RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
     74                /* Release SPI1 from reset state */
     75                RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, DISABLE);
   \   0000001C   0021               MOVS     R1,#+0
   \   0000001E   5FF48050           MOVS     R0,#+4096
   \   00000022   ........           _BLF     RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
   \   00000026   00BD               POP      {PC}
     76                break;
     77          
     78              case SPI2_BASE:
     79                /* Enable SPI2 reset state */
     80                RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, ENABLE);
   \                     ??SPI_I2S_DeInit_1:
   \   00000028   0121               MOVS     R1,#+1
   \   0000002A   8803               LSLS     R0,R1,#+14
   \   0000002C   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
     81                /* Release SPI2 from reset state */
     82                RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE);
   \   00000030   0021               MOVS     R1,#+0
   \   00000032   5FF48040           MOVS     R0,#+16384
   \   00000036   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
   \   0000003A   00BD               POP      {PC}
     83                break;
     84          
     85              case SPI3_BASE:
     86                /* Enable SPI3 reset state */
     87                RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, ENABLE);
   \                     ??SPI_I2S_DeInit_2:
   \   0000003C   0121               MOVS     R1,#+1
   \   0000003E   C803               LSLS     R0,R1,#+15
   \   00000040   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
     88                /* Release SPI3 from reset state */
     89                RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, DISABLE);
   \   00000044   0021               MOVS     R1,#+0
   \   00000046   5FF40040           MOVS     R0,#+32768
   \   0000004A   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
     90                break;
     91          
     92              default:
     93                break;
     94            }
     95          }
   \                     ??SPI_I2S_DeInit_3:
   \   0000004E   00BD               POP      {PC}             ;; return
   \                     ??SPI_I2S_DeInit_0:
   \   00000050   00380040           DC32     0x40003800
   \   00000054   003C0040           DC32     0x40003c00
   \   00000058   00300140           DC32     0x40013000
     96          
     97          /*******************************************************************************
     98          * Function Name  : SPI_Init
     99          * Description    : Initializes the SPIx peripheral according to the specified 
    100          *                  parameters in the SPI_InitStruct.
    101          * Input          : - SPIx: where x can be 1, 2 or 3 to select the SPI peripheral.
    102          *                  - SPI_InitStruct: pointer to a SPI_InitTypeDef structure that
    103          *                    contains the configuration information for the specified
    104          *                    SPI peripheral.
    105          * Output         : None
    106          * Return         : None
    107          ******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    108          void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct)
    109          {
    110            u16 tmpreg = 0;
    111            
    112            /* check the parameters */
    113            assert_param(IS_SPI_ALL_PERIPH(SPIx));   
    114            
    115            /* Check the SPI parameters */
    116            assert_param(IS_SPI_DIRECTION_MODE(SPI_InitStruct->SPI_Direction));
    117            assert_param(IS_SPI_MODE(SPI_InitStruct->SPI_Mode));
    118            assert_param(IS_SPI_DATASIZE(SPI_InitStruct->SPI_DataSize));
    119            assert_param(IS_SPI_CPOL(SPI_InitStruct->SPI_CPOL));
    120            assert_param(IS_SPI_CPHA(SPI_InitStruct->SPI_CPHA));
    121            assert_param(IS_SPI_NSS(SPI_InitStruct->SPI_NSS));
    122            assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_InitStruct->SPI_BaudRatePrescaler));
    123            assert_param(IS_SPI_FIRST_BIT(SPI_InitStruct->SPI_FirstBit));
    124            assert_param(IS_SPI_CRC_POLYNOMIAL(SPI_InitStruct->SPI_CRCPolynomial));
    125          
    126          /*---------------------------- SPIx CR1 Configuration ------------------------*/

⌨️ 快捷键说明

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