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

📄 stm32f10x_tim.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     13/Mar/2009  16:01:14 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
#                       _tim.c                                               #
#    Command line    =  E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
#                       _tim.c -lCN E:\UC_OS\Micrium\Software\EvalBoards\ST\ #
#                       STM3210B-EVAL\IAR\OS-Probe\Flash\List\ -o            #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\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          #
#                       "C:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\LIB\dl7mptnnl8n.h" -I              #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\ -I E:\UC_OS\Micrium\Software\EvalBoa #
#                       rds\ST\STM3210B-EVAL\IAR\OS-Probe\..\..\..\..\..\uco #
#                       s-ii\ports\arm-cortex-m3\generic\iar\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\ucos-ii\source\ -I     #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-lib\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ARM-Cortex-M3\I #
#                       AR\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM32 #
#                       10B-EVAL\IAR\OS-Probe\..\..\..\..\..\cpu\st\stm32\in #
#                       c\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM321 #
#                       0B-EVAL\IAR\OS-Probe\..\BSP\ -I                      #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\RS-232\Source\ -I                    #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\RS-232\Ports\ST\STM32\ -I            #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\Source\ -I                           #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Plugin #
#                       s\uCOS-II\ -I "C:\Program Files\IAR                  #
#                       Systems\Embedded Workbench 4.0 Kickstart\arm\INC\"   #
#    List file       =  E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\Flash\List\stm32f10x_tim.lst          #
#    Object file     =  E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\Flash\Obj\stm32f10x_tim.r79           #
#                                                                            #
#                                                                            #
##############################################################################

E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x_tim.c
      1          /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
      2          * File Name          : stm32f10x_tim.c
      3          * Author             : MCD Application Team
      4          * Date First Issued  : 09/29/2006
      5          * Description        : This file provides all the TIM firmware functions.
      6          ********************************************************************************
      7          * History:
      8          * 05/21/2007: V0.3
      9          * 04/02/2007: V0.2
     10          * 02/05/2007: V0.1
     11          * 09/29/2006: V0.01
     12          ********************************************************************************
     13          * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
     14          * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     15          * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
     16          * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
     17          * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
     18          * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     19          *******************************************************************************/
     20          
     21          /* Includes ------------------------------------------------------------------*/
     22          #include "stm32f10x_tim.h"
     23          #include "stm32f10x_rcc.h"
     24          
     25          /* Private typedef -----------------------------------------------------------*/
     26          /* Private define ------------------------------------------------------------*/
     27          /* ---------------------- TIM registers bit mask ------------------------ */
     28          #define CR1_CEN_Set                 ((u16)0x0001)
     29          #define CR1_CEN_Reset               ((u16)0x03FE)
     30          #define CR1_UDIS_Set                ((u16)0x0002)
     31          #define CR1_UDIS_Reset              ((u16)0x03FD)
     32          #define CR1_URS_Set                 ((u16)0x0004)
     33          #define CR1_URS_Reset               ((u16)0x03FB)
     34          #define CR1_OPM_Mask                ((u16)0x03F7)
     35          #define CR1_CounterMode_Mask        ((u16)0x039F)
     36          #define CR1_ARPE_Set                ((u16)0x0080)
     37          #define CR1_ARPE_Reset              ((u16)0x037F)
     38          #define CR1_CKD_Mask                ((u16)0x00FF)
     39          
     40          #define CR2_CCDS_Set                ((u16)0x0008)
     41          #define CR2_CCDS_Reset              ((u16)0x0007)
     42          #define CR2_MMS_Mask                ((u16)0x0080)
     43          #define CR2_TI1S_Set                ((u16)0x0080)
     44          #define CR2_TI1S_Reset              ((u16)0xFF70)
     45          
     46          #define SMCR_SMS_Mask               ((u16)0xFFF0)
     47          #define SMCR_ETR_Mask               ((u16)0x00F7)
     48          #define SMCR_TS_Mask                ((u16)0xFF87)
     49          #define SMCR_MSM_Mask               ((u16)0xFF77)
     50          #define SMCR_ECE_Set                ((u16)0x4000)
     51          
     52          #define CCMR_CC13S_Mask             ((u16)0x7F7C)
     53          #define CCMR_CC24S_Mask             ((u16)0x7C7F)
     54          #define CCMR_TI13Direct_Set         ((u16)0x0001)
     55          #define CCMR_TI24Direct_Set         ((u16)0x0100)
     56          #define CCMR_OC13FE_Mask            ((u16)0x7F7B)
     57          #define CCMR_OC24FE_Mask            ((u16)0x7B7F)
     58          #define CCMR_OC13PE_Mask            ((u16)0x7F77)
     59          #define CCMR_OC24PE_Mask            ((u16)0x777F)
     60          #define CCMR_OCM13_Mask             ((u16)0x7F0F)
     61          #define CCMR_OCM24_Mask             ((u16)0x0F7F)
     62          
     63          #define CCMR_OC13CE_Mask            ((u16)0xFF7F)
     64          #define CCMR_OC24CE_Mask            ((u16)0x7FFF)
     65          
     66          #define CCMR_IC13PSC_Mask           ((u16)0xFFF3)
     67          #define CCMR_IC24PSC_Mask           ((u16)0xF3FF)
     68          #define CCMR_IC13F_Mask             ((u16)0xFF0F)
     69          #define CCMR_IC24F_Mask             ((u16)0x0FFF)
     70          
     71          #define CCER_CC1P_Mask              ((u16)0xFFFD)
     72          #define CCER_CC2P_Mask              ((u16)0xFFDF)
     73          #define CCER_CC3P_Mask              ((u16)0xFDFF)
     74          #define CCER_CC4P_Mask              ((u16)0xDFFF)
     75          
     76          #define CCER_CC1E_Set               ((u16)0x0001)
     77          #define CCER_CC1E_Reset             ((u16)0xFFFE)
     78          #define CCER_CC1E_Mask              ((u16)0xFFFE)
     79          
     80          #define CCER_CC2E_Set               ((u16)0x0010)
     81          #define CCER_CC2E_Reset             ((u16)0xFFEF)
     82          #define CCER_CC2E_Mask              ((u16)0xFFEF)
     83          
     84          #define CCER_CC3E_Set               ((u16)0x0100)
     85          #define CCER_CC3E_Reset             ((u16)0xFEFF)
     86          
     87          #define CCER_CC4E_Set               ((u16)0x1000)
     88          #define CCER_CC4E_Reset             ((u16)0xEFFF)
     89          #define CCER_CC4E_Mask              ((u16)0xEFFF)
     90          
     91          #define DCR_DMA_Mask                ((u16)0x0000)
     92          
     93          /* TIM private Masks */
     94          #define TIM_Period_Reset_Mask       ((u16)0x0000)
     95          #define TIM_Prescaler_Reset_Mask    ((u16)0x0000)
     96          #define TIM_Pulse_Reset_Mask        ((u16)0x0000)
     97          #define TIM_ICFilter_Mask           ((u8)0x00)
     98          
     99          /* Private macro -------------------------------------------------------------*/
    100          /* Private variables ---------------------------------------------------------*/

   \                                 In segment DATA_C, align 4, align-sorted
    101          static uc16 Tab_OCModeMask[4] = {0xFF00, 0x00FF, 0xFF00, 0x00FF};
   \                     Tab_OCModeMask:
   \   00000000   00FFFF0000FF       DC16 65280, 255, 65280, 255
   \              FF00        
   \   00000008   FDFFDFFFFFFD       DC16 65533, 65503, 65023, 57343
   \              FFDF        
    102          static uc16 Tab_PolarityMask[4] = {CCER_CC1P_Mask, CCER_CC2P_Mask, CCER_CC3P_Mask, CCER_CC4P_Mask};
    103          
    104          /* Private function prototypes -----------------------------------------------*/
    105          static void PWMI_Config(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
    106          static void TI1_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
    107                                 u8 TIM_ICFilter);
    108          static void TI2_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
    109                                 u8 TIM_ICFilter);
    110          static void TI3_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
    111                                 u8 TIM_ICFilter);
    112          static void TI4_Config(TIM_TypeDef* TIMx, u16 TIM_ICPolarity, u16 TIM_ICSelection,
    113                                 u8 TIM_ICFilter);
    114          /* Private functions ---------------------------------------------------------*/
    115          
    116          /*******************************************************************************
    117          * Function Name  : TIM_DeInit
    118          * Description    : Deinitializes the TIMx peripheral registers to their default
    119          *                  reset values.
    120          * Input          : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
    121          * Output         : None
    122          * Return         : None
    123          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    124          void TIM_DeInit(TIM_TypeDef* TIMx)
    125          {  
   \                     TIM_DeInit:
   \   00000000   00B5               PUSH     {LR}
    126            switch (*(u32*)&TIMx)
   \   00000002   5FF08041           MOVS     R1,#+1073741824
   \   00000006   8842               CMP      R0,R1
   \   00000008   06D0               BEQ.N    ??TIM_DeInit_0
   \   0000000A   1149               LDR.N    R1,??TIM_DeInit_1  ;; 0x40000400
   \   0000000C   8842               CMP      R0,R1
   \   0000000E   0CD0               BEQ.N    ??TIM_DeInit_2
   \   00000010   1049               LDR.N    R1,??TIM_DeInit_1+0x4  ;; 0x40000800
   \   00000012   8842               CMP      R0,R1
   \   00000014   12D0               BEQ.N    ??TIM_DeInit_3
   \   00000016   00BD               POP      {PC}
    127            {
    128              case TIM2_BASE:
    129                RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE);
   \                     ??TIM_DeInit_0:
   \   00000018   0121               MOVS     R1,#+1
   \   0000001A   0846               MOV      R0,R1
   \   0000001C   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
    130                RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE);
   \   00000020   0021               MOVS     R1,#+0
   \   00000022   0120               MOVS     R0,#+1
   \   00000024   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
   \   00000028   00BD               POP      {PC}
    131                break;
    132           
    133              case TIM3_BASE:
    134                RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE);
   \                     ??TIM_DeInit_2:

⌨️ 快捷键说明

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