📄 stm32f10x_nvic.lst
字号:
\ 00000006 01BD POP {R0,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 section .text, align 2, keep-with-next
210 void NVIC_SETFAULTMASK(void)
211 {
\ NVIC_SETFAULTMASK:
\ 00000000 80B5 PUSH {R7,LR}
212 __SETFAULTMASK();
\ 00000002 ........ BL __SETFAULTMASK
213 }
\ 00000006 01BD POP {R0,PC} ;; return
214
215 /*******************************************************************************
216 * Function Name : NVIC_RESETFAULTMASK
217 * Description : Disables the FAULTMASK priority.
218 * Input : None
219 * Output : None
220 * Return : None
221 *******************************************************************************/
\ In section .text, align 2, keep-with-next
222 void NVIC_RESETFAULTMASK(void)
223 {
\ NVIC_RESETFAULTMASK:
\ 00000000 80B5 PUSH {R7,LR}
224 __RESETFAULTMASK();
\ 00000002 ........ BL __RESETFAULTMASK
225 }
\ 00000006 01BD POP {R0,PC} ;; return
226
227 /*******************************************************************************
228 * Function Name : NVIC_BASEPRICONFIG
229 * Description : The execution priority can be changed from 15 (lowest
230 configurable priority) to 1. Writing a zero value will disable
231 * the mask of execution priority.
232 * Input : None
233 * Output : None
234 * Return : None
235 *******************************************************************************/
\ In section .text, align 2, keep-with-next
236 void NVIC_BASEPRICONFIG(u32 NewPriority)
237 {
\ NVIC_BASEPRICONFIG:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
238 /* Check the parameters */
239 assert_param(IS_NVIC_BASE_PRI(NewPriority));
240
241 __BASEPRICONFIG(NewPriority << 0x04);
\ 00000004 2001 LSLS R0,R4,#+4
\ 00000006 ........ BL __BASEPRICONFIG
242 }
\ 0000000A 10BD POP {R4,PC} ;; return
243
244 /*******************************************************************************
245 * Function Name : NVIC_GetBASEPRI
246 * Description : Returns the BASEPRI mask value.
247 * Input : None
248 * Output : None
249 * Return : BASEPRI register value
250 *******************************************************************************/
\ In section .text, align 2, keep-with-next
251 u32 NVIC_GetBASEPRI(void)
252 {
\ NVIC_GetBASEPRI:
\ 00000000 80B5 PUSH {R7,LR}
253 return (__GetBASEPRI());
\ 00000002 ........ BL __GetBASEPRI
\ 00000006 02BD POP {R1,PC} ;; return
254 }
255
256 /*******************************************************************************
257 * Function Name : NVIC_GetCurrentPendingIRQChannel
258 * Description : Returns the current pending IRQ channel identifier.
259 * Input : None
260 * Output : None
261 * Return : Pending IRQ Channel Identifier.
262 *******************************************************************************/
\ In section .text, align 2, keep-with-next
263 u16 NVIC_GetCurrentPendingIRQChannel(void)
264 {
265 return ((u16)((SCB->ICSR & (u32)0x003FF000) >> 0x0C));
\ NVIC_GetCurrentPendingIRQChannel:
\ 00000000 .... LDR.N R0,??DataTable22_7 ;; 0xe000ed04
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 000B LSRS R0,R0,#+12
\ 00000006 8005 LSLS R0,R0,#+22
\ 00000008 800D LSRS R0,R0,#+22
\ 0000000A 7047 BX LR ;; return
266 }
267
268 /*******************************************************************************
269 * Function Name : NVIC_GetIRQChannelPendingBitStatus
270 * Description : Checks whether the specified IRQ Channel pending bit is set
271 * or not.
272 * Input : - NVIC_IRQChannel: specifies the interrupt pending bit to check.
273 * Output : None
274 * Return : The new state of IRQ Channel pending bit(SET or RESET).
275 *******************************************************************************/
\ In section .text, align 2, keep-with-next
276 ITStatus NVIC_GetIRQChannelPendingBitStatus(u8 NVIC_IRQChannel)
277 {
\ NVIC_GetIRQChannelPendingBitStatus:
\ 00000000 10B4 PUSH {R4}
\ 00000002 0100 MOVS R1,R0
278 ITStatus pendingirqstatus = RESET;
\ 00000004 0020 MOVS R0,#+0
279 u32 tmp = 0x00;
\ 00000006 0022 MOVS R2,#+0
280
281 /* Check the parameters */
282 assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
283
284 tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
\ 00000008 0123 MOVS R3,#+1
\ 0000000A 11F01F04 ANDS R4,R1,#0x1F
\ 0000000E A340 LSLS R3,R3,R4
\ 00000010 1A00 MOVS R2,R3
285
286 if (((NVIC->ISPR[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp)
\ 00000012 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000014 4B11 ASRS R3,R1,#+5
\ 00000016 .... LDR.N R4,??DataTable22_19 ;; 0xe000e200
\ 00000018 54F82330 LDR R3,[R4, R3, LSL #+2]
\ 0000001C 1340 ANDS R3,R2,R3
\ 0000001E 9342 CMP R3,R2
\ 00000020 02D1 BNE.N ??NVIC_GetIRQChannelPendingBitStatus_0
287 {
288 pendingirqstatus = SET;
\ 00000022 0123 MOVS R3,#+1
\ 00000024 1800 MOVS R0,R3
\ 00000026 01E0 B.N ??NVIC_GetIRQChannelPendingBitStatus_1
289 }
290 else
291 {
292 pendingirqstatus = RESET;
\ ??NVIC_GetIRQChannelPendingBitStatus_0:
\ 00000028 0023 MOVS R3,#+0
\ 0000002A 1800 MOVS R0,R3
293 }
294 return pendingirqstatus;
\ ??NVIC_GetIRQChannelPendingBitStatus_1:
\ 0000002C C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 0000002E 10BC POP {R4}
\ 00000030 7047 BX LR ;; return
295 }
296
297 /*******************************************************************************
298 * Function Name : NVIC_SetIRQChannelPendingBit
299 * Description : Sets the NVIC抯 interrupt pending bit.
300 * Input : - NVIC_IRQChannel: specifies the interrupt pending bit to Set.
301 * Output : None
302 * Return : None
303 *******************************************************************************/
\ In section .text, align 2, keep-with-next
304 void NVIC_SetIRQChannelPendingBit(u8 NVIC_IRQChannel)
305 {
306 /* Check the parameters */
307 assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
308
309 *(vu32*) 0xE000EF00 = (u32)NVIC_IRQChannel;
\ NVIC_SetIRQChannelPendingBit:
\ 00000000 .... LDR.N R1,??DataTable22_20 ;; 0xe000ef00
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 0860 STR R0,[R1, #+0]
310 }
\ 00000006 7047 BX LR ;; return
311
312 /*******************************************************************************
313 * Function Name : NVIC_ClearIRQChannelPendingBit
314 * Description : Clears the NVIC抯 interrupt pending bit.
315 * Input : - NVIC_IRQChannel: specifies the interrupt pending bit to clear.
316 * Output : None
317 * Return : None
318 *******************************************************************************/
\ In section .text, align 2, keep-with-next
319 void NVIC_ClearIRQChannelPendingBit(u8 NVIC_IRQChannel)
320 {
\ NVIC_ClearIRQChannelPendingBit:
\ 00000000 10B4 PUSH {R4}
321 /* Check the parameters */
322 assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
323
324 NVIC->ICPR[(NVIC_IRQChannel >> 0x05)] = (u32)0x01 << (NVIC_IRQChannel & (u32)0x1F);
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 4111 ASRS R1,R0,#+5
\ 00000006 .... LDR.N R2,??DataTable22_3 ;; 0xe000e280
\ 00000008 0123 MOVS R3,#+1
\ 0000000A 10F01F04 ANDS R4,R0,#0x1F
\ 0000000E A340 LSLS R3,R3,R4
\ 00000010 42F82130 STR R3,[R2, R1, LSL #+2]
325 }
\ 00000014 10BC POP {R4}
\ 00000016 7047 BX LR ;; return
326
327 /*******************************************************************************
328 * Function Name : NVIC_GetCurrentActiveHandler
329 * Description : Returns the current active Handler (IRQ Channel and
330 * SystemHandler) identifier.
331 * Input : None
332 * Output : None
333 * Return : Active Handler Identifier.
334 *******************************************************************************/
\ In section .text, align 2, keep-with-next
335 u16 NVIC_GetCurrentActiveHandler(void)
336 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -