stm32f10x_nvic.lst
来自「完成数据的采集」· LST 代码 · 共 1,113 行 · 第 1/5 页
LST
1,113 行
\ 00000014 5350 STR R3,[R2, R1]
322 }
\ 00000016 01B0 ADD SP,SP,#+4
\ 00000018 10BC POP {R4}
\ 0000001A 7047 BX LR ;; return
323
324 /*******************************************************************************
325 * Function Name : NVIC_GetCurrentActiveHandler
326 * Description : Returns the current active Handler (IRQ Channel and
327 * SystemHandler) identifier.
328 * Input : None
329 * Output : None
330 * Return : Active Handler Identifier.
331 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
332 u16 NVIC_GetCurrentActiveHandler(void)
333 {
334 return ((u16)(SCB->ICSR & (u32)0x3FF));
\ NVIC_GetCurrentActiveHandler:
\ 00000000 .... LDR.N R0,??DataTable21 ;; 0xe000ed04
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 8005 LSLS R0,R0,#+22 ;; ZeroExtS R0,R0,#+22,#+22
\ 00000006 800D LSRS R0,R0,#+22
\ 00000008 7047 BX LR ;; return
335 }
336
337 /*******************************************************************************
338 * Function Name : NVIC_GetIRQChannelActiveBitStatus
339 * Description : Checks whether the specified IRQ Channel active bit is set
340 * or not.
341 * Input : - NVIC_IRQChannel: specifies the interrupt active bit to check.
342 * Output : None
343 * Return : The new state of IRQ Channel active bit(SET or RESET).
344 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
345 ITStatus NVIC_GetIRQChannelActiveBitStatus(u8 NVIC_IRQChannel)
346 {
\ NVIC_GetIRQChannelActiveBitStatus:
\ 00000000 11B4 PUSH {R0,R4}
\ 00000002 0100 MOVS R1,R0
347 ITStatus activeirqstatus = RESET;
\ 00000004 0023 MOVS R3,#+0
\ 00000006 1800 MOVS R0,R3
348 u32 tmp = 0x00;
\ 00000008 0023 MOVS R3,#+0
\ 0000000A 1A00 MOVS R2,R3
349
350 /* Check the parameters */
351 assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
352
353 tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
\ 0000000C 0123 MOVS R3,#+1
\ 0000000E CC06 LSLS R4,R1,#+27 ;; ZeroExtS R4,R1,#+27,#+27
\ 00000010 E40E LSRS R4,R4,#+27
\ 00000012 A340 LSLS R3,R3,R4
\ 00000014 1A00 MOVS R2,R3
354
355 if (((NVIC->IABR[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp )
\ 00000016 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000018 4B11 ASRS R3,R1,#+5
\ 0000001A 0424 MOVS R4,#+4
\ 0000001C 6343 MULS R3,R4,R3
\ 0000001E 074C LDR.N R4,??NVIC_GetIRQChannelActiveBitStatus_0 ;; 0xe000e300
\ 00000020 E358 LDR R3,[R4, R3]
\ 00000022 1340 ANDS R3,R3,R2
\ 00000024 9342 CMP R3,R2
\ 00000026 02D1 BNE.N ??NVIC_GetIRQChannelActiveBitStatus_1
356 {
357 activeirqstatus = SET;
\ 00000028 0123 MOVS R3,#+1
\ 0000002A 1800 MOVS R0,R3
\ 0000002C 01E0 B.N ??NVIC_GetIRQChannelActiveBitStatus_2
358 }
359 else
360 {
361 activeirqstatus = RESET;
\ ??NVIC_GetIRQChannelActiveBitStatus_1:
\ 0000002E 0023 MOVS R3,#+0
\ 00000030 1800 MOVS R0,R3
362 }
363 return activeirqstatus;
\ ??NVIC_GetIRQChannelActiveBitStatus_2:
\ 00000032 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000034 01B0 ADD SP,SP,#+4
\ 00000036 10BC POP {R4}
\ 00000038 7047 BX LR ;; return
\ 0000003A 00BF Nop
\ ??NVIC_GetIRQChannelActiveBitStatus_0:
\ 0000003C 00E300E0 DC32 0xe000e300
364 }
365
366 /*******************************************************************************
367 * Function Name : NVIC_GetCPUID
368 * Description : Returns the ID number, the version number and the implementation
369 * details of the Cortex-M3 core.
370 * Input : None
371 * Output : None
372 * Return : CPU ID.
373 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
374 u32 NVIC_GetCPUID(void)
375 {
376 return (SCB->CPUID);
\ NVIC_GetCPUID:
\ 00000000 0148 LDR.N R0,??NVIC_GetCPUID_0 ;; 0xe000ed00
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??NVIC_GetCPUID_0:
\ 00000008 00ED00E0 DC32 0xe000ed00
377 }
378
379 /*******************************************************************************
380 * Function Name : NVIC_SetVectorTable
381 * Description : Sets the vector table location and Offset.
382 * Input : - NVIC_VectTab: specifies if the vector table is in RAM or
383 * FLASH memory.
384 * This parameter can be one of the following values:
385 * - NVIC_VectTab_RAM
386 * - NVIC_VectTab_FLASH
387 * - Offset: Vector Table base offset field.
388 * This value must be a multiple of 0x100.
389 * Output : None
390 * Return : None
391 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
392 void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
393 {
394 /* Check the parameters */
395 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
396 assert_param(IS_NVIC_OFFSET(Offset));
397
398 SCB->VTOR = NVIC_VectTab | (Offset & (u32)0x1FFFFF80);
\ NVIC_SetVectorTable:
\ 00000000 024A LDR.N R2,??NVIC_SetVectorTable_0 ;; 0x1fffff80
\ 00000002 0A40 ANDS R2,R2,R1
\ 00000004 0243 ORRS R2,R2,R0
\ 00000006 .... LDR.N R3,??DataTable22 ;; 0xe000ed08
\ 00000008 1A60 STR R2,[R3, #+0]
399 }
\ 0000000A 7047 BX LR ;; return
\ ??NVIC_SetVectorTable_0:
\ 0000000C 80FFFF1F DC32 0x1fffff80
400
401 /*******************************************************************************
402 * Function Name : NVIC_GenerateSystemReset
403 * Description : Generates a system reset.
404 * Input : None
405 * Output : None
406 * Return : None
407 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
408 void NVIC_GenerateSystemReset(void)
409 {
410 SCB->AIRCR = AIRCR_VECTKEY_MASK | (u32)0x04;
\ NVIC_GenerateSystemReset:
\ 00000000 .... LDR.N R0,??DataTable24 ;; 0xe000ed0c
\ 00000002 0149 LDR.N R1,??NVIC_GenerateSystemReset_0 ;; 0x5fa0004
\ 00000004 0160 STR R1,[R0, #+0]
411 }
\ 00000006 7047 BX LR ;; return
\ ??NVIC_GenerateSystemReset_0:
\ 00000008 0400FA05 DC32 0x5fa0004
412
413 /*******************************************************************************
414 * Function Name : NVIC_GenerateCoreReset
415 * Description : Generates a Core (Core + NVIC) reset.
416 * Input : None
417 * Output : None
418 * Return : None
419 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
420 void NVIC_GenerateCoreReset(void)
421 {
422 SCB->AIRCR = AIRCR_VECTKEY_MASK | (u32)0x01;
\ NVIC_GenerateCoreReset:
\ 00000000 .... LDR.N R0,??DataTable24 ;; 0xe000ed0c
\ 00000002 0149 LDR.N R1,??NVIC_GenerateCoreReset_0 ;; 0x5fa0001
\ 00000004 0160 STR R1,[R0, #+0]
423 }
\ 00000006 7047 BX LR ;; return
\ ??NVIC_GenerateCoreReset_0:
\ 00000008 0100FA05 DC32 0x5fa0001
424
425 /*******************************************************************************
426 * Function Name : NVIC_SystemLPConfig
427 * Description : Selects the condition for the system to enter low power mode.
428 * Input : - LowPowerMode: Specifies the new mode for the system to enter
429 * low power mode.
430 * This parameter can be one of the following values:
431 * - NVIC_LP_SEVONPEND
432 * - NVIC_LP_SLEEPDEEP
433 * - NVIC_LP_SLEEPONEXIT
434 * - NewState: new state of LP condition.
435 * This parameter can be: ENABLE or DISABLE.
436 * Output : None
437 * Return : None
438 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
439 void NVIC_SystemLPConfig(u8 LowPowerMode, FunctionalState NewState)
440 {
441 /* Check the parameters */
442 assert_param(IS_NVIC_LP(LowPowerMode));
443 assert_param(IS_FUNCTIONAL_STATE(NewState));
444
445 if (NewState != DISABLE)
\ NVIC_SystemLPConfig:
\ 00000000 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000002 0029 CMP R1,#+0
\ 00000004 06D0 BEQ.N ??NVIC_SystemLPConfig_0
446 {
447 SCB->SCR |= LowPowerMode;
\ 00000006 .... LDR.N R2,??DataTable28 ;; 0xe000ed10
\ 00000008 1268 LDR R2,[R2, #+0]
\ 0000000A C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000000C 0243 ORRS R2,R2,R0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?