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

📄 stm32f10x_flash.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     26/Dec/2008  18:22:06 #
# 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_f #
#                       lash.c                                               #
#    Command line    =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_f #
#                       lash.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\ST #
#                       M3210E-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_flash.lst          #
#    Object file     =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\stm32f10x_flash.r79           #
#                                                                            #
#                                                                            #
##############################################################################

F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_flash.c
      1          /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
      2          * File Name          : stm32f10x_flash.c
      3          * Author             : MCD Application Team
      4          * Version            : V2.0
      5          * Date               : 05/23/2008
      6          * Description        : This file provides all the FLASH 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_flash.h"
     20          
     21          /* Private typedef -----------------------------------------------------------*/
     22          /* Private define ------------------------------------------------------------*/
     23          /* Flash Access Control Register bits */
     24          #define ACR_LATENCY_Mask         ((u32)0x00000038)
     25          #define ACR_HLFCYA_Mask          ((u32)0xFFFFFFF7)
     26          #define ACR_PRFTBE_Mask          ((u32)0xFFFFFFEF)
     27          
     28          #ifdef _FLASH_PROG
     29          /* Flash Access Control Register bits */
     30          #define ACR_PRFTBS_Mask          ((u32)0x00000020) 
     31          
     32          /* Flash Control Register bits */
     33          #define CR_PG_Set                ((u32)0x00000001)
     34          #define CR_PG_Reset              ((u32)0x00001FFE) 
     35          
     36          #define CR_PER_Set               ((u32)0x00000002)
     37          #define CR_PER_Reset             ((u32)0x00001FFD)
     38          
     39          #define CR_MER_Set               ((u32)0x00000004)
     40          #define CR_MER_Reset             ((u32)0x00001FFB)
     41          
     42          #define CR_OPTPG_Set             ((u32)0x00000010)
     43          #define CR_OPTPG_Reset           ((u32)0x00001FEF)
     44          
     45          #define CR_OPTER_Set             ((u32)0x00000020)
     46          #define CR_OPTER_Reset           ((u32)0x00001FDF)
     47          
     48          #define CR_STRT_Set              ((u32)0x00000040)
     49          							 
     50          #define CR_LOCK_Set              ((u32)0x00000080)
     51          
     52          /* FLASH Mask */
     53          #define RDPRT_Mask               ((u32)0x00000002)
     54          #define WRP0_Mask                ((u32)0x000000FF)
     55          #define WRP1_Mask                ((u32)0x0000FF00)
     56          #define WRP2_Mask                ((u32)0x00FF0000)
     57          #define WRP3_Mask                ((u32)0xFF000000)
     58          
     59          /* FLASH Keys */
     60          #define RDP_Key                  ((u16)0x00A5)
     61          #define FLASH_KEY1               ((u32)0x45670123)
     62          #define FLASH_KEY2               ((u32)0xCDEF89AB)
     63          
     64          /* Delay definition */   
     65          #define EraseTimeout             ((u32)0x00000FFF)
     66          #define ProgramTimeout           ((u32)0x0000000F)
     67          #endif
     68          
     69          /* Private macro -------------------------------------------------------------*/
     70          /* Private variables ---------------------------------------------------------*/
     71          /* Private function prototypes -----------------------------------------------*/
     72          #ifdef _FLASH_PROG
     73          static void delay(void);
     74          #endif
     75          
     76          /* Private functions ---------------------------------------------------------*/
     77          /*******************************************************************************
     78          * Function Name  : FLASH_SetLatency
     79          * Description    : Sets the code latency value.
     80          * Input          : - FLASH_Latency: specifies the FLASH Latency value.
     81          *                    This parameter can be one of the following values:
     82          *                       - FLASH_Latency_0: FLASH Zero Latency cycle
     83          *                       - FLASH_Latency_1: FLASH One Latency cycle
     84          *                       - FLASH_Latency_2: FLASH Two Latency cycles
     85          * Output         : None
     86          * Return         : None
     87          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     88          void FLASH_SetLatency(u32 FLASH_Latency)
     89          {
     90            /* Check the parameters */
     91            assert_param(IS_FLASH_LATENCY(FLASH_Latency));
     92            
     93            /* Sets the Latency value */
     94            FLASH->ACR &= ACR_LATENCY_Mask;
   \                     FLASH_SetLatency:
   \   00000000   ....               LDR.N    R1,??DataTable2  ;; 0x40022000
   \   00000002   0A68               LDR      R2,[R1, #+0]
   \   00000004   12F03802           ANDS     R2,R2,#0x38
   \   00000008   0A60               STR      R2,[R1, #+0]
     95            FLASH->ACR |= FLASH_Latency;
   \   0000000A   0A68               LDR      R2,[R1, #+0]
   \   0000000C   1043               ORRS     R0,R0,R2
   \   0000000E   0860               STR      R0,[R1, #+0]
     96          }
   \   00000010   7047               BX       LR               ;; return
     97          
     98          /*******************************************************************************
     99          * Function Name  : FLASH_HalfCycleAccessCmd
    100          * Description    : Enables or disables the Half cycle flash access.
    101          * Input          : - FLASH_HalfCycle: specifies the FLASH Half cycle Access mode.
    102          *                    This parameter can be one of the following values:
    103          *                       - FLASH_HalfCycleAccess_Enable: FLASH Half Cycle Enable
    104          *                       - FLASH_HalfCycleAccess_Disable: FLASH Half Cycle Disable
    105          * Output         : None
    106          * Return         : None
    107          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    108          void FLASH_HalfCycleAccessCmd(u32 FLASH_HalfCycleAccess)
    109          {
    110            /* Check the parameters */
    111            assert_param(IS_FLASH_HALFCYCLEACCESS_STATE(FLASH_HalfCycleAccess));
    112            
    113            /* Enable or disable the Half cycle access */
    114            FLASH->ACR &= ACR_HLFCYA_Mask;
   \                     FLASH_HalfCycleAccessCmd:
   \   00000000   ....               LDR.N    R1,??DataTable2  ;; 0x40022000
   \   00000002   0A68               LDR      R2,[R1, #+0]
   \   00000004   0823               MOVS     R3,#+8
   \   00000006   9A43               BICS     R2,R2,R3
   \   00000008   0A60               STR      R2,[R1, #+0]
    115            FLASH->ACR |= FLASH_HalfCycleAccess;
   \   0000000A   0A68               LDR      R2,[R1, #+0]
   \   0000000C   1043               ORRS     R0,R0,R2
   \   0000000E   0860               STR      R0,[R1, #+0]
    116          }
   \   00000010   7047               BX       LR               ;; return
    117          
    118          /*******************************************************************************
    119          * Function Name  : FLASH_PrefetchBufferCmd
    120          * Description    : Enables or disables the Prefetch Buffer.
    121          * Input          : - FLASH_PrefetchBuffer: specifies the Prefetch buffer status.
    122          *                    This parameter can be one of the following values:
    123          *                       - FLASH_PrefetchBuffer_Enable: FLASH Prefetch Buffer Enable
    124          *                       - FLASH_PrefetchBuffer_Disable: FLASH Prefetch Buffer Disable
    125          * Output         : None
    126          * Return         : None
    127          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    128          void FLASH_PrefetchBufferCmd(u32 FLASH_PrefetchBuffer)
    129          {
    130            /* Check the parameters */
    131            assert_param(IS_FLASH_PREFETCHBUFFER_STATE(FLASH_PrefetchBuffer));
    132            
    133            /* Enable or disable the Prefetch Buffer */
    134            FLASH->ACR &= ACR_PRFTBE_Mask;
   \                     FLASH_PrefetchBufferCmd:
   \   00000000   ....               LDR.N    R1,??DataTable2  ;; 0x40022000
   \   00000002   0A68               LDR      R2,[R1, #+0]
   \   00000004   1023               MOVS     R3,#+16
   \   00000006   9A43               BICS     R2,R2,R3
   \   00000008   0A60               STR      R2,[R1, #+0]
    135            FLASH->ACR |= FLASH_PrefetchBuffer;
   \   0000000A   0A68               LDR      R2,[R1, #+0]
   \   0000000C   1043               ORRS     R0,R0,R2
   \   0000000E   0860               STR      R0,[R1, #+0]
    136          }
   \   00000010   7047               BX       LR               ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable2:
   \   00000000   00200240           DC32     0x40022000
    137          
    138          #ifdef _FLASH_PROG
    139          /*******************************************************************************
    140          * Function Name  : FLASH_Unlock
    141          * Description    : Unlocks the FLASH Program Erase Controller.
    142          * Input          : None
    143          * Output         : None
    144          * Return         : None
    145          *******************************************************************************/
    146          void FLASH_Unlock(void)
    147          {
    148            /* Authorize the FPEC Access */
    149            FLASH->KEYR = FLASH_KEY1;
    150            FLASH->KEYR = FLASH_KEY2;
    151          }
    152          
    153          /*******************************************************************************
    154          * Function Name  : FLASH_Lock
    155          * Description    : Locks the FLASH Program Erase Controller.
    156          * Input          : None
    157          * Output         : None
    158          * Return         : None
    159          *******************************************************************************/
    160          void FLASH_Lock(void)
    161          {
    162            /* Set the Lock Bit to lock the FPEC and the FCR */

⌨️ 快捷键说明

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