📄 stm32f10x_nvic.lst
字号:
\ 0000000E .... LDR.N R3,??DataTable28 ;; 0xe000ed10
\ 00000010 1A60 STR R2,[R3, #+0]
\ 00000012 05E0 B.N ??NVIC_SystemLPConfig_1
448 }
449 else
450 {
451 SCB->SCR &= (u32)(~(u32)LowPowerMode);
\ ??NVIC_SystemLPConfig_0:
\ 00000014 .... LDR.N R2,??DataTable28 ;; 0xe000ed10
\ 00000016 1268 LDR R2,[R2, #+0]
\ 00000018 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000001A 8243 BICS R2,R2,R0
\ 0000001C .... LDR.N R3,??DataTable28 ;; 0xe000ed10
\ 0000001E 1A60 STR R2,[R3, #+0]
452 }
453 }
\ ??NVIC_SystemLPConfig_1:
\ 00000020 7047 BX LR ;; return
454
455 /*******************************************************************************
456 * Function Name : NVIC_SystemHandlerConfig
457 * Description : Enables or disables the specified System Handlers.
458 * Input : - SystemHandler: specifies the system handler to be enabled
459 * or disabled.
460 * This parameter can be one of the following values:
461 * - SystemHandler_MemoryManage
462 * - SystemHandler_BusFault
463 * - SystemHandler_UsageFault
464 * - NewState: new state of specified System Handlers.
465 * This parameter can be: ENABLE or DISABLE.
466 * Output : None
467 * Return : None
468 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
469 void NVIC_SystemHandlerConfig(u32 SystemHandler, FunctionalState NewState)
470 {
\ NVIC_SystemHandlerConfig:
\ 00000000 11B4 PUSH {R0,R4}
471 u32 tmpreg = 0x00;
\ 00000002 0023 MOVS R3,#+0
\ 00000004 1A00 MOVS R2,R3
472
473 /* Check the parameters */
474 assert_param(IS_CONFIG_SYSTEM_HANDLER(SystemHandler));
475 assert_param(IS_FUNCTIONAL_STATE(NewState));
476
477 tmpreg = (u32)0x01 << (SystemHandler & (u32)0x1F);
\ 00000006 0123 MOVS R3,#+1
\ 00000008 0400 MOVS R4,R0
\ 0000000A E406 LSLS R4,R4,#+27 ;; ZeroExtS R4,R4,#+27,#+27
\ 0000000C E40E LSRS R4,R4,#+27
\ 0000000E A340 LSLS R3,R3,R4
\ 00000010 1A00 MOVS R2,R3
478
479 if (NewState != DISABLE)
\ 00000012 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000014 0029 CMP R1,#+0
\ 00000016 05D0 BEQ.N ??NVIC_SystemHandlerConfig_0
480 {
481 SCB->SHCSR |= tmpreg;
\ 00000018 .... LDR.N R3,??DataTable32 ;; 0xe000ed24
\ 0000001A 1B68 LDR R3,[R3, #+0]
\ 0000001C 1343 ORRS R3,R3,R2
\ 0000001E .... LDR.N R4,??DataTable32 ;; 0xe000ed24
\ 00000020 2360 STR R3,[R4, #+0]
\ 00000022 04E0 B.N ??NVIC_SystemHandlerConfig_1
482 }
483 else
484 {
485 SCB->SHCSR &= ~tmpreg;
\ ??NVIC_SystemHandlerConfig_0:
\ 00000024 .... LDR.N R3,??DataTable32 ;; 0xe000ed24
\ 00000026 1B68 LDR R3,[R3, #+0]
\ 00000028 9343 BICS R3,R3,R2
\ 0000002A .... LDR.N R4,??DataTable32 ;; 0xe000ed24
\ 0000002C 2360 STR R3,[R4, #+0]
486 }
487 }
\ ??NVIC_SystemHandlerConfig_1:
\ 0000002E 01B0 ADD SP,SP,#+4
\ 00000030 10BC POP {R4}
\ 00000032 7047 BX LR ;; return
488
489 /*******************************************************************************
490 * Function Name : NVIC_SystemHandlerPriorityConfig
491 * Description : Configures the specified System Handlers priority.
492 * Input : - SystemHandler: specifies the system handler to be
493 * enabled or disabled.
494 * This parameter can be one of the following values:
495 * - SystemHandler_MemoryManage
496 * - SystemHandler_BusFault
497 * - SystemHandler_UsageFault
498 * - SystemHandler_SVCall
499 * - SystemHandler_DebugMonitor
500 * - SystemHandler_PSV
501 * - SystemHandler_SysTick
502 * - SystemHandlerPreemptionPriority: new priority group of the
503 * specified system handlers.
504 * - SystemHandlerSubPriority: new sub priority of the specified
505 * system handlers.
506 * Output : None
507 * Return : None
508 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
509 void NVIC_SystemHandlerPriorityConfig(u32 SystemHandler, u8 SystemHandlerPreemptionPriority,
510 u8 SystemHandlerSubPriority)
511 {
\ NVIC_SystemHandlerPriorityConfig:
\ 00000000 2DE9F003 PUSH {R4-R9}
\ 00000004 8046 MOV R8,R0
\ 00000006 9146 MOV R9,R2
512 u32 tmp1 = 0x00, tmp2 = 0xFF, handlermask = 0x00;
\ 00000008 0020 MOVS R0,#+0
\ 0000000A 0200 MOVS R2,R0
\ 0000000C FF20 MOVS R0,#+255
\ 0000000E 0300 MOVS R3,R0
\ 00000010 0020 MOVS R0,#+0
\ 00000012 0400 MOVS R4,R0
513 u32 tmppriority = 0x00;
\ 00000014 0020 MOVS R0,#+0
\ 00000016 0500 MOVS R5,R0
514
515 /* Check the parameters */
516 assert_param(IS_PRIORITY_SYSTEM_HANDLER(SystemHandler));
517 assert_param(IS_NVIC_PREEMPTION_PRIORITY(SystemHandlerPreemptionPriority));
518 assert_param(IS_NVIC_SUB_PRIORITY(SystemHandlerSubPriority));
519
520 tmppriority = (0x700 - (SCB->AIRCR & (u32)0x700))>> 0x08;
\ 00000018 1D48 LDR.N R0,??NVIC_SystemHandlerPriorityConfig_0 ;; 0xe000ed0c
\ 0000001A 0068 LDR R0,[R0, #+0]
\ 0000001C 10F4E060 ANDS R0,R0,#0x700
\ 00000020 D0F5E060 RSBS R0,R0,#+1792
\ 00000024 050A LSRS R5,R0,#+8
521 tmp1 = (0x4 - tmppriority);
\ 00000026 0420 MOVS R0,#+4
\ 00000028 401B SUBS R0,R0,R5
\ 0000002A 0200 MOVS R2,R0
522 tmp2 = tmp2 >> tmppriority;
\ 0000002C EB40 LSRS R3,R3,R5
523
524 tmppriority = (u32)SystemHandlerPreemptionPriority << tmp1;
\ 0000002E C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000030 0800 MOVS R0,R1
\ 00000032 9040 LSLS R0,R0,R2
\ 00000034 0500 MOVS R5,R0
525 tmppriority |= SystemHandlerSubPriority & tmp2;
\ 00000036 2800 MOVS R0,R5
\ 00000038 4D46 MOV R5,R9
\ 0000003A EDB2 UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
\ 0000003C 1D40 ANDS R5,R5,R3
\ 0000003E 0543 ORRS R5,R5,R0
526
527 tmppriority = tmppriority << 0x04;
\ 00000040 2D01 LSLS R5,R5,#+4
528 tmp1 = SystemHandler & (u32)0xC0;
\ 00000042 18F0C002 ANDS R2,R8,#0xC0
529 tmp1 = tmp1 >> 0x06;
\ 00000046 9209 LSRS R2,R2,#+6
530 tmp2 = (SystemHandler >> 0x08) & (u32)0x03;
\ 00000048 5FEA1820 LSRS R0,R8,#+8
\ 0000004C 8007 LSLS R0,R0,#+30 ;; ZeroExtS R0,R0,#+30,#+30
\ 0000004E 800F LSRS R0,R0,#+30
\ 00000050 0300 MOVS R3,R0
531 tmppriority = tmppriority << (tmp2 * 0x08);
\ 00000052 1800 MOVS R0,R3
\ 00000054 0826 MOVS R6,#+8
\ 00000056 7043 MULS R0,R6,R0
\ 00000058 8540 LSLS R5,R5,R0
532 handlermask = (u32)0xFF << (tmp2 * 0x08);
\ 0000005A FF20 MOVS R0,#+255
\ 0000005C 1E00 MOVS R6,R3
\ 0000005E 0827 MOVS R7,#+8
\ 00000060 7E43 MULS R6,R7,R6
\ 00000062 B040 LSLS R0,R0,R6
\ 00000064 0400 MOVS R4,R0
533
534 SCB->SHPR[tmp1] &= ~handlermask;
\ 00000066 0420 MOVS R0,#+4
\ 00000068 5043 MULS R0,R2,R0
\ 0000006A 0A4E LDR.N R6,??NVIC_SystemHandlerPriorityConfig_0+0x4 ;; 0xe000ed18
\ 0000006C 3058 LDR R0,[R6, R0]
\ 0000006E A043 BICS R0,R0,R4
\ 00000070 0426 MOVS R6,#+4
\ 00000072 5643 MULS R6,R2,R6
\ 00000074 074F LDR.N R7,??NVIC_SystemHandlerPriorityConfig_0+0x4 ;; 0xe000ed18
\ 00000076 B851 STR R0,[R7, R6]
535 SCB->SHPR[tmp1] |= tmppriority;
\ 00000078 0420 MOVS R0,#+4
\ 0000007A 5043 MULS R0,R2,R0
\ 0000007C 054E LDR.N R6,??NVIC_SystemHandlerPriorityConfig_0+0x4 ;; 0xe000ed18
\ 0000007E 3058 LDR R0,[R6, R0]
\ 00000080 2843 ORRS R0,R0,R5
\ 00000082 0426 MOVS R6,#+4
\ 00000084 5643 MULS R6,R2,R6
\ 00000086 034F LDR.N R7,??NVIC_SystemHandlerPriorityConfig_0+0x4 ;; 0xe000ed18
\ 00000088 B851 STR R0,[R7, R6]
536 }
\ 0000008A BDE8F003 POP {R4-R9}
\ 0000008E 7047 BX LR ;; return
\ ??NVIC_SystemHandlerPriorityConfig_0:
\ 00000090 0CED00E0 DC32 0xe000ed0c
\ 00000094 18ED00E0 DC32 0xe000ed18
537
538 /*******************************************************************************
539 * Function Name : NVIC_GetSystemHandlerPendingBitStatus
540 * Description : Checks whether the specified System handlers pending bit is
541 * set or not.
542 * Input : - SystemHandler: specifies the system handler pending bit to
543 * check.
544 * This parameter can be one of the following values:
545 * - SystemHandler_MemoryManage
546 * - SystemHandler_BusFault
547 * - SystemHandler_SVCall
548 * Output : None
549 * Return : The new state of System Handler pending bit(SET or RESET).
550 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -