📄 stm32f10x_fsmc.lst
字号:
##############################################################################
# #
# 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 #
# smc.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_f #
# smc.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM #
# 3210E-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_fsmc.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_fsmc.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_fsmc.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_fsmc.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/2008
6 * Description : This file provides all the FSMC 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_fsmc.h"
20 #include "stm32f10x_rcc.h"
21
22 /* Private typedef -----------------------------------------------------------*/
23 /* Private define ------------------------------------------------------------*/
24 /* --------------------- FSMC registers bit mask ---------------------------- */
25 /* FSMC BCRx Mask */
26 #define BCR_MBKEN_Set ((u32)0x00000001)
27 #define BCR_MBKEN_Reset ((u32)0x000FFFFE)
28 #define BCR_FACCEN_Set ((u32)0x00000040)
29
30 /* FSMC PCRx Mask */
31 #define PCR_PBKEN_Set ((u32)0x00000004)
32 #define PCR_PBKEN_Reset ((u32)0x000FFFFB)
33 #define PCR_ECCEN_Set ((u32)0x00000040)
34 #define PCR_ECCEN_Reset ((u32)0x000FFFBF)
35 #define PCR_MemoryType_NAND ((u32)0x00000008)
36
37 /* Private macro -------------------------------------------------------------*/
38 /* Private variables ---------------------------------------------------------*/
39 /* Private function prototypes -----------------------------------------------*/
40 /* Private functions ---------------------------------------------------------*/
41
42 /*******************************************************************************
43 * Function Name : FSMC_NORSRAMDeInit
44 * Description : Deinitializes the FSMC NOR/SRAM Banks registers to their default
45 * reset values.
46 * Input : - FSMC_Bank: specifies the FSMC Bank to be used
47 * This parameter can be one of the following values:
48 * - FSMC_Bank1_NORSRAM1: FSMC Bank1 NOR/SRAM1
49 * - FSMC_Bank1_NORSRAM2: FSMC Bank1 NOR/SRAM2
50 * - FSMC_Bank1_NORSRAM3: FSMC Bank1 NOR/SRAM3
51 * - FSMC_Bank1_NORSRAM4: FSMC Bank1 NOR/SRAM4
52 * Output : None
53 * Return : None
54 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
55 void FSMC_NORSRAMDeInit(u32 FSMC_Bank)
56 {
57 /* Check the parameter */
58 assert_param(IS_FSMC_NORSRAM_BANK(FSMC_Bank));
59
60 /* FSMC_Bank1_NORSRAM1 */
61 if(FSMC_Bank == FSMC_Bank1_NORSRAM1)
\ FSMC_NORSRAMDeInit:
\ 00000000 8100 LSLS R1,R0,#+2
\ 00000002 11F12041 ADDS R1,R1,#-1610612736
\ 00000006 0028 CMP R0,#+0
\ 00000008 04D1 BNE.N ??FSMC_NORSRAMDeInit_0
62 {
63 FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030DB;
\ 0000000A 5FF02042 MOVS R2,#-1610612736
\ 0000000E 064B LDR.N R3,??FSMC_NORSRAMDeInit_1 ;; 0x30db
\ 00000010 1360 STR R3,[R2, #+0]
\ 00000012 01E0 B.N ??FSMC_NORSRAMDeInit_2
64 }
65 /* FSMC_Bank1_NORSRAM2, FSMC_Bank1_NORSRAM3 or FSMC_Bank1_NORSRAM4 */
66 else
67 {
68 FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030D2;
\ ??FSMC_NORSRAMDeInit_0:
\ 00000014 054A LDR.N R2,??FSMC_NORSRAMDeInit_1+0x4 ;; 0x30d2
\ 00000016 0A60 STR R2,[R1, #+0]
69 }
70
71 FSMC_Bank1->BTCR[FSMC_Bank + 1] = 0x0FFFFFFF;
\ ??FSMC_NORSRAMDeInit_2:
\ 00000018 7FF07042 MVNS R2,#-268435456
\ 0000001C 4A60 STR R2,[R1, #+4]
72 FSMC_Bank1E->BWTR[FSMC_Bank] = 0x0FFFFFFF;
\ 0000001E .... LDR.N R1,??DataTable15 ;; 0xffffffffa0000104
\ 00000020 41F82020 STR R2,[R1, R0, LSL #+2]
73 }
\ 00000024 7047 BX LR ;; return
\ 00000026 00BF Nop
\ ??FSMC_NORSRAMDeInit_1:
\ 00000028 DB300000 DC32 0x30db
\ 0000002C D2300000 DC32 0x30d2
74
75 /*******************************************************************************
76 * Function Name : FSMC_NANDDeInit
77 * Description : Deinitializes the FSMC NAND Banks registers to their default
78 * reset values.
79 * Input : - FSMC_Bank: specifies the FSMC Bank to be used
80 * This parameter can be one of the following values:
81 * - FSMC_Bank2_NAND: FSMC Bank2 NAND
82 * - FSMC_Bank3_NAND: FSMC Bank3 NAND
83 * Output : None
84 * Return : None
85 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
86 void FSMC_NANDDeInit(u32 FSMC_Bank)
87 {
88 /* Check the parameter */
89 assert_param(IS_FSMC_NAND_BANK(FSMC_Bank));
90
91 if(FSMC_Bank == FSMC_Bank2_NAND)
\ FSMC_NANDDeInit:
\ 00000000 5FF0FC31 MOVS R1,#-50529028
\ 00000004 4022 MOVS R2,#+64
\ 00000006 1823 MOVS R3,#+24
\ 00000008 1028 CMP R0,#+16
\ 0000000A 08D1 BNE.N ??FSMC_NANDDeInit_0
92 {
93 /* Set the FSMC_Bank2 registers to their reset values */
94 FSMC_Bank2->PCR2 = 0x00000018;
\ 0000000C .... LDR.N R0,??DataTable26 ;; 0xffffffffa0000060
\ 0000000E 0360 STR R3,[R0, #+0]
95 FSMC_Bank2->SR2 = 0x00000040;
\ 00000010 .... LDR.N R0,??DataTable2 ;; 0xffffffffa0000064
\ 00000012 0260 STR R2,[R0, #+0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -