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