📄 stm32f10x_nvic.lst
字号:
353 u32 tmp = 0x00;
354
355 /* Check the parameters */
356 assert(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
357
358 tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
\ NVIC_GetIRQChannelActiveBitStatus:
\ 00000000 0121 MOVS R1,#+1
\ 00000002 C206 LSLS R2,R0,#+27
\ 00000004 D20E LSRS R2,R2,#+27
\ 00000006 9140 LSLS R1,R1,R2
359
360 if (((NVIC->Active[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp )
\ 00000008 4011 ASRS R0,R0,#+5
\ 0000000A 054A LDR.N R2,??NVIC_GetIRQChannelActiveBitStatus_0 ;; 0xffffffffe000e300
\ 0000000C 52F82000 LDR R0,[R2, R0, LSL #+2]
\ 00000010 0840 ANDS R0,R0,R1
\ 00000012 8842 CMP R0,R1
\ 00000014 01D1 BNE.N ??NVIC_GetIRQChannelActiveBitStatus_1
361 {
362 activeirqstatus = SET;
\ 00000016 0120 MOVS R0,#+1
\ 00000018 7047 BX LR
363 }
364 else
365 {
366 activeirqstatus = RESET;
\ ??NVIC_GetIRQChannelActiveBitStatus_1:
\ 0000001A 0020 MOVS R0,#+0
367 }
368 return activeirqstatus;
\ 0000001C 7047 BX LR ;; return
\ 0000001E 00BF Nop
\ ??NVIC_GetIRQChannelActiveBitStatus_0:
\ 00000020 00E300E0 DC32 0xffffffffe000e300
369 }
370
371 /*******************************************************************************
372 * Function Name : NVIC_GetCPUID
373 * Description : Returns the ID number, the version number and the implementation
374 * details of the Cortex-M3 core.
375 * Input : None
376 * Output : None
377 * Return : CPU ID.
378 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
379 u32 NVIC_GetCPUID(void)
380 {
381 return (SCB->CPUID);
\ NVIC_GetCPUID:
\ 00000000 0148 LDR.N R0,??NVIC_GetCPUID_0 ;; 0xffffffffe000ed00
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??NVIC_GetCPUID_0:
\ 00000008 00ED00E0 DC32 0xffffffffe000ed00
382 }
383
384 /*******************************************************************************
385 * Function Name : NVIC_SetVectorTable
386 * Description : Sets the vector table location and Offset.
387 * Input : - NVIC_VectTab: specifies if the vector table is in RAM or
388 * FLASH memory.
389 * This parameter can be one of the following values:
390 * - NVIC_VectTab_RAM
391 * - NVIC_VectTab_FLASH
392 * - Offset: Vector Table base offset field.
393 * This value must be a multiple of 0x100.
394 * Output : None
395 * Return : None
396 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
397 void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
398 {
399 /* Check the parameters */
400 assert(IS_NVIC_VECTTAB(NVIC_VectTab));
401 assert(IS_NVIC_OFFSET(Offset));
402
403 SCB->ExceptionTableOffset = NVIC_VectTab | (Offset & (u32)0x1FFFFF80);
\ NVIC_SetVectorTable:
\ 00000000 .... LDR.N R2,??DataTable22 ;; 0xffffffffe000ed08
\ 00000002 024B LDR.N R3,??NVIC_SetVectorTable_0 ;; 0x1fffff80
\ 00000004 0B40 ANDS R3,R3,R1
\ 00000006 0343 ORRS R3,R3,R0
\ 00000008 1360 STR R3,[R2, #+0]
404 }
\ 0000000A 7047 BX LR ;; return
\ ??NVIC_SetVectorTable_0:
\ 0000000C 80FFFF1F DC32 0x1fffff80
405
406 /*******************************************************************************
407 * Function Name : NVIC_GenerateSystemReset
408 * Description : Generates a system reset.
409 * Input : None
410 * Output : None
411 * Return : None
412 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
413 void NVIC_GenerateSystemReset(void)
414 {
415 SCB->AIRC = AIRC_VECTKEY_MASK | (u32)0x04;
\ NVIC_GenerateSystemReset:
\ 00000000 .... LDR.N R0,??DataTable27 ;; 0xffffffffe000ed0c
\ 00000002 0149 LDR.N R1,??NVIC_GenerateSystemReset_0 ;; 0x5fa0004
\ 00000004 0160 STR R1,[R0, #+0]
416 }
\ 00000006 7047 BX LR ;; return
\ ??NVIC_GenerateSystemReset_0:
\ 00000008 0400FA05 DC32 0x5fa0004
417
418 /*******************************************************************************
419 * Function Name : NVIC_GenerateCoreReset
420 * Description : Generates a Core (Core + NVIC) reset.
421 * Input : None
422 * Output : None
423 * Return : None
424 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
425 void NVIC_GenerateCoreReset(void)
426 {
427 SCB->AIRC = AIRC_VECTKEY_MASK | (u32)0x01;
\ NVIC_GenerateCoreReset:
\ 00000000 .... LDR.N R0,??DataTable27 ;; 0xffffffffe000ed0c
\ 00000002 0149 LDR.N R1,??NVIC_GenerateCoreReset_0 ;; 0x5fa0001
\ 00000004 0160 STR R1,[R0, #+0]
428 }
\ 00000006 7047 BX LR ;; return
\ ??NVIC_GenerateCoreReset_0:
\ 00000008 0100FA05 DC32 0x5fa0001
429
430 /*******************************************************************************
431 * Function Name : NVIC_SystemLPConfig
432 * Description : Selects the condition for the system to enter low power mode.
433 * Input : - LowPowerMode: Specifies the new mode for the system to enter
434 * low power mode.
435 * This parameter can be one of the following values:
436 * - NVIC_LP_SEVONPEND
437 * - NVIC_LP_SLEEPDEEP
438 * - NVIC_LP_SLEEPONEXIT
439 * - NewState: new state of LP condition.
440 * This parameter can be: ENABLE or DISABLE.
441 * Output : None
442 * Return : None
443 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
444 void NVIC_SystemLPConfig(u8 LowPowerMode, FunctionalState NewState)
445 {
446 /* Check the parameters */
447 assert(IS_NVIC_LP(LowPowerMode));
448 assert(IS_FUNCTIONAL_STATE(NewState));
449
450 if (NewState != DISABLE)
\ NVIC_SystemLPConfig:
\ 00000000 .... LDR.N R2,??DataTable25 ;; 0xffffffffe000ed10
\ 00000002 0029 CMP R1,#+0
\ 00000004 1168 LDR R1,[R2, #+0]
\ 00000006 02D0 BEQ.N ??NVIC_SystemLPConfig_0
451 {
452 SCB->SysCtrl |= LowPowerMode;
\ 00000008 0843 ORRS R0,R0,R1
\ 0000000A 1060 STR R0,[R2, #+0]
\ 0000000C 7047 BX LR
453 }
454 else
455 {
456 SCB->SysCtrl &= (u32)(~(u32)LowPowerMode);
\ ??NVIC_SystemLPConfig_0:
\ 0000000E 8143 BICS R1,R1,R0
\ 00000010 1160 STR R1,[R2, #+0]
457 }
458 }
\ 00000012 7047 BX LR ;; return
459
460 /*******************************************************************************
461 * Function Name : NVIC_SystemHandlerConfig
462 * Description : Enables or disables the specified System Handlers.
463 * Input : - SystemHandler: specifies the system handler to be enabled
464 * or disabled.
465 * This parameter can be one of the following values:
466 * - SystemHandler_MemoryManage
467 * - SystemHandler_BusFault
468 * - SystemHandler_UsageFault
469 * - NewState: new state of specified System Handlers.
470 * This parameter can be: ENABLE or DISABLE.
471 * Output : None
472 * Return : None
473 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
474 void NVIC_SystemHandlerConfig(u32 SystemHandler, FunctionalState NewState)
475 {
476 u32 tmpreg = 0x00;
477
478 /* Check the parameters */
479 assert(IS_CONFIG_SYSTEM_HANDLER(SystemHandler));
480 assert(IS_FUNCTIONAL_STATE(NewState));
481
482 tmpreg = (u32)0x01 << (SystemHandler & (u32)0x1F);
\ NVIC_SystemHandlerConfig:
\ 00000000 0122 MOVS R2,#+1
\ 00000002 C006 LSLS R0,R0,#+27
\ 00000004 C00E LSRS R0,R0,#+27
\ 00000006 8240 LSLS R2,R2,R0
483
484 if (NewState != DISABLE)
\ 00000008 .... LDR.N R0,??DataTable32 ;; 0xffffffffe000ed24
\ 0000000A 0029 CMP R1,#+0
\ 0000000C 0168 LDR R1,[R0, #+0]
\ 0000000E 02D0 BEQ.N ??NVIC_SystemHandlerConfig_0
485 {
486 SCB->SysHandlerCtrl |= tmpreg;
\ 00000010 0A43 ORRS R2,R2,R1
\ 00000012 0260 STR R2,[R0, #+0]
\ 00000014 7047 BX LR
487 }
488 else
489 {
490 SCB->SysHandlerCtrl &= ~tmpreg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -