📄 stm32f10x_nvic.lst
字号:
###############################################################################
# #
# 30/Jul/2008 14:37:39 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = E:\library\src\stm32f10x_nvic.c #
# Command line = E:\library\src\stm32f10x_nvic.c -D EMB_FLASH -lCN #
# E:\ELE\yten\pro\Debug\List\ -lb #
# E:\ELE\yten\pro\Debug\List\ -o #
# E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian little --cpu Cortex-M3 #
# -e --fpu None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\DLib_Config_Normal.h" -I #
# E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I #
# "C:\Program Files\IAR Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\" --section .text=.XML -On #
# List file = E:\ELE\yten\pro\Debug\List\stm32f10x_nvic.lst #
# Object file = E:\ELE\yten\pro\Debug\Obj\stm32f10x_nvic.o #
# #
# #
###############################################################################
E:\library\src\stm32f10x_nvic.c
1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
2 * File Name : stm32f10x_nvic.c
3 * Author : MCD Application Team
4 * Version : V1.0
5 * Date : 10/08/2007
6 * Description : This file provides all the NVIC firmware functions.
7 ********************************************************************************
8 * THE PRESENT SOFTWARE 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 *******************************************************************************/
15
16 /* Includes ------------------------------------------------------------------*/
17 #include "stm32f10x_nvic.h"
18
19 /* Private typedef -----------------------------------------------------------*/
20 /* Private define ------------------------------------------------------------*/
21 #define AIRCR_VECTKEY_MASK ((u32)0x05FA0000)
22
23 /* Private macro -------------------------------------------------------------*/
24 /* Private variables ---------------------------------------------------------*/
25 /* Private function prototypes -----------------------------------------------*/
26 /* Private functions ---------------------------------------------------------*/
27
28 /*******************************************************************************
29 * Function Name : NVIC_DeInit
30 * Description : Deinitializes the NVIC peripheral registers to their default
31 * reset values.
32 * Input : None
33 * Output : None
34 * Return : None
35 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
36 void NVIC_DeInit(void)
37 {
38 u32 index = 0;
\ NVIC_DeInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0800 MOVS R0,R1
39
40 NVIC->ICER[0] = 0xFFFFFFFF;
\ 00000004 .... LDR.N R1,??DataTable18 ;; 0xe000e180
\ 00000006 5FF0FF32 MOVS R2,#-1
\ 0000000A 0A60 STR R2,[R1, #+0]
41 NVIC->ICER[1] = 0x000007FF;
\ 0000000C 0A49 LDR.N R1,??NVIC_DeInit_0 ;; 0xe000e184
\ 0000000E 0B4A LDR.N R2,??NVIC_DeInit_0+0x4 ;; 0x7ff
\ 00000010 0A60 STR R2,[R1, #+0]
42 NVIC->ICPR[0] = 0xFFFFFFFF;
\ 00000012 .... LDR.N R1,??DataTable20 ;; 0xe000e280
\ 00000014 5FF0FF32 MOVS R2,#-1
\ 00000018 0A60 STR R2,[R1, #+0]
43 NVIC->ICPR[1] = 0x000007FF;
\ 0000001A 0949 LDR.N R1,??NVIC_DeInit_0+0x8 ;; 0xe000e284
\ 0000001C 074A LDR.N R2,??NVIC_DeInit_0+0x4 ;; 0x7ff
\ 0000001E 0A60 STR R2,[R1, #+0]
44
45 for(index = 0; index < 0x0B; index++)
\ 00000020 0021 MOVS R1,#+0
\ 00000022 0800 MOVS R0,R1
\ ??NVIC_DeInit_1:
\ 00000024 0B28 CMP R0,#+11
\ 00000026 06D2 BCS.N ??NVIC_DeInit_2
46 {
47 NVIC->IPR[index] = 0x00000000;
\ 00000028 0421 MOVS R1,#+4
\ 0000002A 4143 MULS R1,R0,R1
\ 0000002C .... LDR.N R2,??DataTable17 ;; 0xe000e400
\ 0000002E 0023 MOVS R3,#+0
\ 00000030 5350 STR R3,[R2, R1]
48 }
\ 00000032 401C ADDS R0,R0,#+1
\ 00000034 F6E7 B.N ??NVIC_DeInit_1
49 }
\ ??NVIC_DeInit_2:
\ 00000036 7047 BX LR ;; return
\ ??NVIC_DeInit_0:
\ 00000038 84E100E0 DC32 0xe000e184
\ 0000003C FF070000 DC32 0x7ff
\ 00000040 84E200E0 DC32 0xe000e284
50
51 /*******************************************************************************
52 * Function Name : NVIC_SCBDeInit
53 * Description : Deinitializes the SCB peripheral registers to their default
54 * reset values.
55 * Input : None
56 * Output : None
57 * Return : None
58 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
59 void NVIC_SCBDeInit(void)
60 {
61 u32 index = 0x00;
\ NVIC_SCBDeInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0800 MOVS R0,R1
62
63 SCB->ICSR = 0x0A000000;
\ 00000004 .... LDR.N R1,??DataTable21 ;; 0xe000ed04
\ 00000006 5FF02062 MOVS R2,#+167772160
\ 0000000A 0A60 STR R2,[R1, #+0]
64 SCB->VTOR = 0x00000000;
\ 0000000C .... LDR.N R1,??DataTable22 ;; 0xe000ed08
\ 0000000E 0022 MOVS R2,#+0
\ 00000010 0A60 STR R2,[R1, #+0]
65 SCB->AIRCR = AIRCR_VECTKEY_MASK;
\ 00000012 .... LDR.N R1,??DataTable24 ;; 0xe000ed0c
\ 00000014 .... LDR.N R2,??DataTable13 ;; 0x5fa0000
\ 00000016 0A60 STR R2,[R1, #+0]
66 SCB->SCR = 0x00000000;
\ 00000018 .... LDR.N R1,??DataTable28 ;; 0xe000ed10
\ 0000001A 0022 MOVS R2,#+0
\ 0000001C 0A60 STR R2,[R1, #+0]
67 SCB->CCR = 0x00000000;
\ 0000001E 0F49 LDR.N R1,??NVIC_SCBDeInit_0 ;; 0xe000ed14
\ 00000020 0022 MOVS R2,#+0
\ 00000022 0A60 STR R2,[R1, #+0]
68 for(index = 0; index < 0x03; index++)
\ 00000024 0021 MOVS R1,#+0
\ 00000026 0800 MOVS R0,R1
\ ??NVIC_SCBDeInit_1:
\ 00000028 0328 CMP R0,#+3
\ 0000002A 06D2 BCS.N ??NVIC_SCBDeInit_2
69 {
70 SCB->SHPR[index] = 0;
\ 0000002C 0421 MOVS R1,#+4
\ 0000002E 4143 MULS R1,R0,R1
\ 00000030 .... LDR.N R2,??DataTable8 ;; 0xe000ed18
\ 00000032 0023 MOVS R3,#+0
\ 00000034 5350 STR R3,[R2, R1]
71 }
\ 00000036 401C ADDS R0,R0,#+1
\ 00000038 F6E7 B.N ??NVIC_SCBDeInit_1
72 SCB->SHCSR = 0x00000000;
\ ??NVIC_SCBDeInit_2:
\ 0000003A .... LDR.N R1,??DataTable32 ;; 0xe000ed24
\ 0000003C 0022 MOVS R2,#+0
\ 0000003E 0A60 STR R2,[R1, #+0]
73 SCB->CFSR = 0xFFFFFFFF;
\ 00000040 .... LDR.N R1,??DataTable10 ;; 0xe000ed28
\ 00000042 5FF0FF32 MOVS R2,#-1
\ 00000046 0A60 STR R2,[R1, #+0]
74 SCB->HFSR = 0xFFFFFFFF;
\ 00000048 .... LDR.N R1,??DataTable11 ;; 0xe000ed2c
\ 0000004A 5FF0FF32 MOVS R2,#-1
\ 0000004E 0A60 STR R2,[R1, #+0]
75 SCB->DFSR = 0xFFFFFFFF;
\ 00000050 .... LDR.N R1,??DataTable12 ;; 0xe000ed30
\ 00000052 5FF0FF32 MOVS R2,#-1
\ 00000056 0A60 STR R2,[R1, #+0]
76 }
\ 00000058 7047 BX LR ;; return
\ 0000005A 00BF Nop
\ ??NVIC_SCBDeInit_0:
\ 0000005C 14ED00E0 DC32 0xe000ed14
77
78 /*******************************************************************************
79 * Function Name : NVIC_PriorityGroupConfig
80 * Description : Configures the priority grouping: pre-emption priority
81 * and subpriority.
82 * Input : - NVIC_PriorityGroup: specifies the priority grouping bits
83 * length. This parameter can be one of the following values:
84 * - NVIC_PriorityGroup_0: 0 bits for pre-emption priority
85 * 4 bits for subpriority
86 * - NVIC_PriorityGroup_1: 1 bits for pre-emption priority
87 * 3 bits for subpriority
88 * - NVIC_PriorityGroup_2: 2 bits for pre-emption priority
89 * 2 bits for subpriority
90 * - NVIC_PriorityGroup_3: 3 bits for pre-emption priority
91 * 1 bits for subpriority
92 * - NVIC_PriorityGroup_4: 4 bits for pre-emption priority
93 * 0 bits for subpriority
94 * Output : None
95 * Return : None
96 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
97 void NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup)
98 {
99 /* Check the parameters */
100 assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
101
102 /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
103 SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
\ NVIC_PriorityGroupConfig:
\ 00000000 .... LDR.N R1,??DataTable13 ;; 0x5fa0000
\ 00000002 0143 ORRS R1,R1,R0
\ 00000004 .... LDR.N R2,??DataTable24 ;; 0xe000ed0c
\ 00000006 1160 STR R1,[R2, #+0]
104 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -