⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_nvic.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 5 页
字号:
    200          
    201          /*******************************************************************************
    202          * Function Name  : NVIC_SETFAULTMASK
    203          * Description    : Enables the FAULTMASK priority: Raises the execution priority to -1.
    204          * Input          : None
    205          * Output         : None
    206          * Return         : None
    207          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    208          void NVIC_SETFAULTMASK(void)
    209          {
   \                     NVIC_SETFAULTMASK:
   \   00000000   01B5               PUSH     {R0,LR}
    210            __SETFAULTMASK();
   \   00000002   ........           BL       __SETFAULTMASK
    211          }
   \   00000006   01B0               ADD      SP,SP,#+4
   \   00000008   00BD               POP      {PC}             ;; return
    212          
    213          /*******************************************************************************
    214          * Function Name  : NVIC_RESETFAULTMASK
    215          * Description    : Disables the FAULTMASK priority.
    216          * Input          : None
    217          * Output         : None
    218          * Return         : None
    219          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    220          void NVIC_RESETFAULTMASK(void)
    221          {
   \                     NVIC_RESETFAULTMASK:
   \   00000000   01B5               PUSH     {R0,LR}
    222            __RESETFAULTMASK();
   \   00000002   ........           BL       __RESETFAULTMASK
    223          }
   \   00000006   01B0               ADD      SP,SP,#+4
   \   00000008   00BD               POP      {PC}             ;; return
    224          
    225          /*******************************************************************************
    226          * Function Name  : NVIC_BASEPRICONFIG
    227          * Description    : The execution priority can be changed from 15 (lowest 
    228                             configurable priority) to 1.
    229          * Input          : None
    230          * Output         : None
    231          * Return         : None
    232          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    233          void NVIC_BASEPRICONFIG(u32 NewPriority)
    234          {
   \                     NVIC_BASEPRICONFIG:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    235            /* Check the parameters */
    236            assert_param(IS_NVIC_BASE_PRI(NewPriority));
    237            
    238            __BASEPRICONFIG(NewPriority << 0x04);
   \   00000004   2001               LSLS     R0,R4,#+4
   \   00000006   ........           BL       __BASEPRICONFIG
    239          }
   \   0000000A   10BD               POP      {R4,PC}          ;; return
    240          
    241          /*******************************************************************************
    242          * Function Name  : NVIC_GetBASEPRI
    243          * Description    : Returns the BASEPRI mask value.
    244          * Input          : None
    245          * Output         : None
    246          * Return         : BASEPRI register value
    247          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    248          u32 NVIC_GetBASEPRI(void)
    249          {
   \                     NVIC_GetBASEPRI:
   \   00000000   01B5               PUSH     {R0,LR}
    250            return (__GetBASEPRI());
   \   00000002   ........           BL       __GetBASEPRI
   \   00000006   01B0               ADD      SP,SP,#+4
   \   00000008   00BD               POP      {PC}             ;; return
    251          }
    252          
    253          /*******************************************************************************
    254          * Function Name  : NVIC_GetCurrentPendingIRQChannel
    255          * Description    : Returns the current pending IRQ channel identifier.
    256          * Input          : None
    257          * Output         : None
    258          * Return         : Pending IRQ Channel Identifier.
    259          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    260          u16 NVIC_GetCurrentPendingIRQChannel(void)
    261          {
    262            return ((u16)((SCB->ICSR & (u32)0x003FF000) >> 0x0C));
   \                     NVIC_GetCurrentPendingIRQChannel:
   \   00000000   ....               LDR.N    R0,??DataTable21  ;; 0xe000ed04
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   0249               LDR.N    R1,??NVIC_GetCurrentPendingIRQChannel_0  ;; 0x3ff000
   \   00000006   0140               ANDS     R1,R1,R0
   \   00000008   080B               LSRS     R0,R1,#+12
   \   0000000A   80B2               UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
   \   0000000C   7047               BX       LR               ;; return
   \   0000000E   00BF               Nop      
   \                     ??NVIC_GetCurrentPendingIRQChannel_0:
   \   00000010   00F03F00           DC32     0x3ff000
    263          }
    264          
    265          /*******************************************************************************
    266          * Function Name  : NVIC_GetIRQChannelPendingBitStatus
    267          * Description    : Checks whether the specified IRQ Channel pending bit is set
    268          *                  or not.
    269          * Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to check.
    270          * Output         : None
    271          * Return         : The new state of IRQ Channel pending bit(SET or RESET).
    272          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    273          ITStatus NVIC_GetIRQChannelPendingBitStatus(u8 NVIC_IRQChannel)
    274          {
   \                     NVIC_GetIRQChannelPendingBitStatus:
   \   00000000   11B4               PUSH     {R0,R4}
   \   00000002   0100               MOVS     R1,R0
    275            ITStatus pendingirqstatus = RESET;
   \   00000004   0023               MOVS     R3,#+0
   \   00000006   1800               MOVS     R0,R3
    276            u32 tmp = 0x00;
   \   00000008   0023               MOVS     R3,#+0
   \   0000000A   1A00               MOVS     R2,R3
    277            
    278            /* Check the parameters */
    279            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    280            
    281            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
    282          
    283            if (((NVIC->ISPR[(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_GetIRQChannelPendingBitStatus_0  ;; 0xe000e200
   \   00000020   E358               LDR      R3,[R4, R3]
   \   00000022   1340               ANDS     R3,R3,R2
   \   00000024   9342               CMP      R3,R2
   \   00000026   02D1               BNE.N    ??NVIC_GetIRQChannelPendingBitStatus_1
    284            {
    285              pendingirqstatus = SET;
   \   00000028   0123               MOVS     R3,#+1
   \   0000002A   1800               MOVS     R0,R3
   \   0000002C   01E0               B.N      ??NVIC_GetIRQChannelPendingBitStatus_2
    286            }
    287            else
    288            {
    289              pendingirqstatus = RESET;
   \                     ??NVIC_GetIRQChannelPendingBitStatus_1:
   \   0000002E   0023               MOVS     R3,#+0
   \   00000030   1800               MOVS     R0,R3
    290            }
    291            return pendingirqstatus;
   \                     ??NVIC_GetIRQChannelPendingBitStatus_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_GetIRQChannelPendingBitStatus_0:
   \   0000003C   00E200E0           DC32     0xe000e200
    292          }
    293          
    294          /*******************************************************************************
    295          * Function Name  : NVIC_SetIRQChannelPendingBit
    296          * Description    : Sets the NVIC抯 interrupt pending bit.
    297          * Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to Set.
    298          * Output         : None
    299          * Return         : None
    300          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    301          void NVIC_SetIRQChannelPendingBit(u8 NVIC_IRQChannel)
    302          {
    303            /* Check the parameters */
    304            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    305            
    306            *(u32*)0xE000EF00 = (u32)NVIC_IRQChannel;
   \                     NVIC_SetIRQChannelPendingBit:
   \   00000000   0149               LDR.N    R1,??NVIC_SetIRQChannelPendingBit_0  ;; 0xe000ef00
   \   00000002   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   00000004   0860               STR      R0,[R1, #+0]
    307          }
   \   00000006   7047               BX       LR               ;; return
   \                     ??NVIC_SetIRQChannelPendingBit_0:
   \   00000008   00EF00E0           DC32     0xe000ef00
    308          
    309          /*******************************************************************************
    310          * Function Name  : NVIC_ClearIRQChannelPendingBit
    311          * Description    : Clears the NVIC抯 interrupt pending bit.
    312          * Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to clear.
    313          * Output         : None
    314          * Return         : None
    315          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    316          void NVIC_ClearIRQChannelPendingBit(u8 NVIC_IRQChannel)
    317          {
   \                     NVIC_ClearIRQChannelPendingBit:
   \   00000000   11B4               PUSH     {R0,R4}
    318            /* Check the parameters */
    319            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    320            
    321            NVIC->ICPR[(NVIC_IRQChannel >> 0x05)] = (u32)0x01 << (NVIC_IRQChannel & (u32)0x1F);
   \   00000002   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   00000004   4111               ASRS     R1,R0,#+5
   \   00000006   0422               MOVS     R2,#+4
   \   00000008   5143               MULS     R1,R2,R1
   \   0000000A   ....               LDR.N    R2,??DataTable20  ;; 0xe000e280
   \   0000000C   0123               MOVS     R3,#+1
   \   0000000E   C406               LSLS     R4,R0,#+27       ;; ZeroExtS R4,R0,#+27,#+27
   \   00000010   E40E               LSRS     R4,R4,#+27
   \   00000012   A340               LSLS     R3,R3,R4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -