📄 stm32f10x_nvic.lst
字号:
\ In segment CODE, align 4, keep-with-next
99 void NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup)
100 {
101 /* Check the parameters */
102 assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
103
104 /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
105 SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
\ NVIC_PriorityGroupConfig:
\ 00000000 .... LDR.N R1,??DataTable27 ;; 0xffffffffe000ed0c
\ 00000002 .... LDR.N R2,??DataTable14 ;; 0x5fa0000
\ 00000004 0243 ORRS R2,R2,R0
\ 00000006 0A60 STR R2,[R1, #+0]
106 }
\ 00000008 7047 BX LR ;; return
107
108 /*******************************************************************************
109 * Function Name : NVIC_Init
110 * Description : Initializes the NVIC peripheral according to the specified
111 * parameters in the NVIC_InitStruct.
112 * Input : - NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure
113 * that contains the configuration information for the
114 * specified NVIC peripheral.
115 * Output : None
116 * Return : None
117 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
118 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
119 {
\ NVIC_Init:
\ 00000000 F0B5 PUSH {R4-R7,LR}
\ 00000002 0100 MOVS R1,R0
120 u32 tmppriority = 0x00, tmpreg = 0x00, tmpmask = 0x00;
121 u32 tmppre = 0, tmpsub = 0x0F;
122
123 /* Check the parameters */
124 assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
125 assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_InitStruct->NVIC_IRQChannel));
126 assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));
127 assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
128
129 if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
\ 00000004 C878 LDRB R0,[R1, #+3]
\ 00000006 0028 CMP R0,#+0
\ 00000008 38D0 BEQ.N ??NVIC_Init_0
130 {
131 /* Compute the Corresponding IRQ Priority --------------------------------*/
132 tmppriority = (0x700 - (SCB->AIRCR & (u32)0x700))>> 0x08;
\ 0000000A .... LDR.N R0,??DataTable27 ;; 0xffffffffe000ed0c
\ 0000000C 0068 LDR R0,[R0, #+0]
\ 0000000E 10F4E060 ANDS R0,R0,#0x700
\ 00000012 D0F5E060 RSBS R0,R0,#+1792
\ 00000016 000A LSRS R0,R0,#+8
133 tmppre = (0x4 - tmppriority);
134 tmpsub = tmpsub >> tmppriority;
135
136 tmppriority = (u32)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
137 tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
138
139 tmppriority = tmppriority << 0x04;
140 tmppriority = ((u32)tmppriority) << ((NVIC_InitStruct->NVIC_IRQChannel & (u8)0x03) * 0x08);
141
142 tmpreg = NVIC->IPR[(NVIC_InitStruct->NVIC_IRQChannel >> 0x02)];
\ 00000018 0A78 LDRB R2,[R1, #+0]
\ 0000001A 9210 ASRS R2,R2,#+2
\ 0000001C .... LDR.N R3,??DataTable17 ;; 0xffffffffe000e400
\ 0000001E 53F82240 LDR R4,[R3, R2, LSL #+2]
143 tmpmask = (u32)0xFF << ((NVIC_InitStruct->NVIC_IRQChannel & (u8)0x03) * 0x08);
\ 00000022 FF22 MOVS R2,#+255
\ 00000024 0B78 LDRB R3,[R1, #+0]
\ 00000026 9B07 LSLS R3,R3,#+30
\ 00000028 9B0F LSRS R3,R3,#+30
\ 0000002A DB00 LSLS R3,R3,#+3
\ 0000002C 9A40 LSLS R2,R2,R3
144 tmpreg &= ~tmpmask;
145 tmppriority &= tmpmask;
146 tmpreg |= tmppriority;
147
148 NVIC->IPR[(NVIC_InitStruct->NVIC_IRQChannel >> 0x02)] = tmpreg;
\ 0000002E 0B78 LDRB R3,[R1, #+0]
\ 00000030 1D00 MOVS R5,R3
\ 00000032 AD10 ASRS R5,R5,#+2
\ 00000034 .... LDR.N R3,??DataTable17 ;; 0xffffffffe000e400
\ 00000036 AC46 MOV R12,R5
\ 00000038 9443 BICS R4,R4,R2
\ 0000003A 4F78 LDRB R7,[R1, #+1]
\ 0000003C 0426 MOVS R6,#+4
\ 0000003E 0500 MOVS R5,R0
\ 00000040 751B SUBS R5,R6,R5
\ 00000042 AF40 LSLS R7,R7,R5
\ 00000044 3D00 MOVS R5,R7
\ 00000046 8E78 LDRB R6,[R1, #+2]
\ 00000048 0F27 MOVS R7,#+15
\ 0000004A C740 LSRS R7,R7,R0
\ 0000004C 3740 ANDS R7,R7,R6
\ 0000004E 2F43 ORRS R7,R7,R5
\ 00000050 3801 LSLS R0,R7,#+4
\ 00000052 0D78 LDRB R5,[R1, #+0]
\ 00000054 AD07 LSLS R5,R5,#+30
\ 00000056 AD0F LSRS R5,R5,#+30
\ 00000058 ED00 LSLS R5,R5,#+3
\ 0000005A A840 LSLS R0,R0,R5
\ 0000005C 0240 ANDS R2,R2,R0
\ 0000005E 2243 ORRS R2,R2,R4
\ 00000060 6546 MOV R5,R12
\ 00000062 43F82520 STR R2,[R3, R5, LSL #+2]
149
150 /* Enable the Selected IRQ Channels --------------------------------------*/
151 NVIC->ISER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
152 (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);
\ 00000066 0878 LDRB R0,[R1, #+0]
\ 00000068 4011 ASRS R0,R0,#+5
\ 0000006A 0A4A LDR.N R2,??NVIC_Init_1 ;; 0xffffffffe000e100
\ 0000006C 0123 MOVS R3,#+1
\ 0000006E 0978 LDRB R1,[R1, #+0]
\ 00000070 C906 LSLS R1,R1,#+27
\ 00000072 C90E LSRS R1,R1,#+27
\ 00000074 8B40 LSLS R3,R3,R1
\ 00000076 42F82030 STR R3,[R2, R0, LSL #+2]
\ 0000007A F0BD POP {R4-R7,PC}
153 }
154 else
155 {
156 /* Disable the Selected IRQ Channels -------------------------------------*/
157 NVIC->ICER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
158 (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);
\ ??NVIC_Init_0:
\ 0000007C 0878 LDRB R0,[R1, #+0]
\ 0000007E 4011 ASRS R0,R0,#+5
\ 00000080 .... LDR.N R2,??DataTable18 ;; 0xffffffffe000e180
\ 00000082 0123 MOVS R3,#+1
\ 00000084 0978 LDRB R1,[R1, #+0]
\ 00000086 C906 LSLS R1,R1,#+27
\ 00000088 C90E LSRS R1,R1,#+27
\ 0000008A 8B40 LSLS R3,R3,R1
\ 0000008C 42F82030 STR R3,[R2, R0, LSL #+2]
159 }
160 }
\ 00000090 F0BD POP {R4-R7,PC} ;; return
\ 00000092 00BF Nop
\ ??NVIC_Init_1:
\ 00000094 00E100E0 DC32 0xffffffffe000e100
161
162 /*******************************************************************************
163 * Function Name : NVIC_StructInit
164 * Description : Fills each NVIC_InitStruct member with its default value.
165 * Input : - NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure which
166 * will be initialized.
167 * Output : None
168 * Return : None
169 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
170 void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct)
171 {
172 /* NVIC_InitStruct members default value */
173 NVIC_InitStruct->NVIC_IRQChannel = 0x00;
\ NVIC_StructInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0170 STRB R1,[R0, #+0]
174 NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
\ 00000004 4170 STRB R1,[R0, #+1]
175 NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
\ 00000006 8170 STRB R1,[R0, #+2]
176 NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
\ 00000008 C170 STRB R1,[R0, #+3]
177 }
\ 0000000A 7047 BX LR ;; return
178
179 /*******************************************************************************
180 * Function Name : NVIC_SETPRIMASK
181 * Description : Enables the PRIMASK priority: Raises the execution priority to 0.
182 * Input : None
183 * Output : None
184 * Return : None
185 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
186 void NVIC_SETPRIMASK(void)
187 {
\ NVIC_SETPRIMASK:
\ 00000000 00B5 PUSH {LR}
188 __SETPRIMASK();
\ 00000002 ........ _BLF __SETPRIMASK,??__SETPRIMASK??rT
189 }
\ 00000006 00BD POP {PC} ;; return
190
191 /*******************************************************************************
192 * Function Name : NVIC_RESETPRIMASK
193 * Description : Disables the PRIMASK priority.
194 * Input : None
195 * Output : None
196 * Return : None
197 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
198 void NVIC_RESETPRIMASK(void)
199 {
\ NVIC_RESETPRIMASK:
\ 00000000 00B5 PUSH {LR}
200 __RESETPRIMASK();
\ 00000002 ........ _BLF __RESETPRIMASK,??__RESETPRIMASK??rT
201 }
\ 00000006 00BD POP {PC} ;; return
202
203 /*******************************************************************************
204 * Function Name : NVIC_SETFAULTMASK
205 * Description : Enables the FAULTMASK priority: Raises the execution priority to -1.
206 * Input : None
207 * Output : None
208 * Return : None
209 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
210 void NVIC_SETFAULTMASK(void)
211 {
\ NVIC_SETFAULTMASK:
\ 00000000 00B5 PUSH {LR}
212 __SETFAULTMASK();
\ 00000002 ........ _BLF __SETFAULTMASK,??__SETFAULTMASK??rT
213 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -