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

📄 stm32f10x_nvic.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000006   01BD               POP      {R0,PC}          ;; return
    202          
    203          /*******************************************************************************
    204          * Function Name  : NVIC_SETFAULTMASK
    205          * Description    : Enables the FAULTMASK priority: Raises the execution priority to -1.
    206          * Input          : None
    207          * Output         : None
    208          * Return         : None
    209          *******************************************************************************/

   \                                 In section .text, align 2, keep-with-next
    210          void NVIC_SETFAULTMASK(void)
    211          {
   \                     NVIC_SETFAULTMASK:
   \   00000000   80B5               PUSH     {R7,LR}
    212            __SETFAULTMASK();
   \   00000002   ........           BL       __SETFAULTMASK
    213          }
   \   00000006   01BD               POP      {R0,PC}          ;; return
    214          
    215          /*******************************************************************************
    216          * Function Name  : NVIC_RESETFAULTMASK
    217          * Description    : Disables the FAULTMASK priority.
    218          * Input          : None
    219          * Output         : None
    220          * Return         : None
    221          *******************************************************************************/

   \                                 In section .text, align 2, keep-with-next
    222          void NVIC_RESETFAULTMASK(void)
    223          {
   \                     NVIC_RESETFAULTMASK:
   \   00000000   80B5               PUSH     {R7,LR}
    224            __RESETFAULTMASK();
   \   00000002   ........           BL       __RESETFAULTMASK
    225          }
   \   00000006   01BD               POP      {R0,PC}          ;; return
    226          
    227          /*******************************************************************************
    228          * Function Name  : NVIC_BASEPRICONFIG
    229          * Description    : The execution priority can be changed from 15 (lowest 
    230                             configurable priority) to 1. Writing a zero  value will disable 
    231          *                  the mask of execution priority.
    232          * Input          : None
    233          * Output         : None
    234          * Return         : None
    235          *******************************************************************************/

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

   \                                 In section .text, align 2, keep-with-next
    251          u32 NVIC_GetBASEPRI(void)
    252          {
   \                     NVIC_GetBASEPRI:
   \   00000000   80B5               PUSH     {R7,LR}
    253            return (__GetBASEPRI());
   \   00000002   ........           BL       __GetBASEPRI
   \   00000006   02BD               POP      {R1,PC}          ;; return
    254          }
    255          
    256          /*******************************************************************************
    257          * Function Name  : NVIC_GetCurrentPendingIRQChannel
    258          * Description    : Returns the current pending IRQ channel identifier.
    259          * Input          : None
    260          * Output         : None
    261          * Return         : Pending IRQ Channel Identifier.
    262          *******************************************************************************/

   \                                 In section .text, align 2, keep-with-next
    263          u16 NVIC_GetCurrentPendingIRQChannel(void)
    264          {
    265            return ((u16)((SCB->ICSR & (u32)0x003FF000) >> 0x0C));
   \                     NVIC_GetCurrentPendingIRQChannel:
   \   00000000   ....               LDR.N    R0,??DataTable22_7  ;; 0xe000ed04
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   000B               LSRS     R0,R0,#+12
   \   00000006   8005               LSLS     R0,R0,#+22
   \   00000008   800D               LSRS     R0,R0,#+22
   \   0000000A   7047               BX       LR               ;; return
    266          }
    267          
    268          /*******************************************************************************
    269          * Function Name  : NVIC_GetIRQChannelPendingBitStatus
    270          * Description    : Checks whether the specified IRQ Channel pending bit is set
    271          *                  or not.
    272          * Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to check.
    273          * Output         : None
    274          * Return         : The new state of IRQ Channel pending bit(SET or RESET).
    275          *******************************************************************************/

   \                                 In section .text, align 2, keep-with-next
    276          ITStatus NVIC_GetIRQChannelPendingBitStatus(u8 NVIC_IRQChannel)
    277          {
   \                     NVIC_GetIRQChannelPendingBitStatus:
   \   00000000   10B4               PUSH     {R4}
   \   00000002   0100               MOVS     R1,R0
    278            ITStatus pendingirqstatus = RESET;
   \   00000004   0020               MOVS     R0,#+0
    279            u32 tmp = 0x00;
   \   00000006   0022               MOVS     R2,#+0
    280            
    281            /* Check the parameters */
    282            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    283            
    284            tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
   \   00000008   0123               MOVS     R3,#+1
   \   0000000A   11F01F04           ANDS     R4,R1,#0x1F
   \   0000000E   A340               LSLS     R3,R3,R4
   \   00000010   1A00               MOVS     R2,R3
    285          
    286            if (((NVIC->ISPR[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp)
   \   00000012   C9B2               UXTB     R1,R1            ;; ZeroExt  R1,R1,#+24,#+24
   \   00000014   4B11               ASRS     R3,R1,#+5
   \   00000016   ....               LDR.N    R4,??DataTable22_19  ;; 0xe000e200
   \   00000018   54F82330           LDR      R3,[R4, R3, LSL #+2]
   \   0000001C   1340               ANDS     R3,R2,R3
   \   0000001E   9342               CMP      R3,R2
   \   00000020   02D1               BNE.N    ??NVIC_GetIRQChannelPendingBitStatus_0
    287            {
    288              pendingirqstatus = SET;
   \   00000022   0123               MOVS     R3,#+1
   \   00000024   1800               MOVS     R0,R3
   \   00000026   01E0               B.N      ??NVIC_GetIRQChannelPendingBitStatus_1
    289            }
    290            else
    291            {
    292              pendingirqstatus = RESET;
   \                     ??NVIC_GetIRQChannelPendingBitStatus_0:
   \   00000028   0023               MOVS     R3,#+0
   \   0000002A   1800               MOVS     R0,R3
    293            }
    294            return pendingirqstatus;
   \                     ??NVIC_GetIRQChannelPendingBitStatus_1:
   \   0000002C   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   0000002E   10BC               POP      {R4}
   \   00000030   7047               BX       LR               ;; return
    295          }
    296          
    297          /*******************************************************************************
    298          * Function Name  : NVIC_SetIRQChannelPendingBit
    299          * Description    : Sets the NVIC抯 interrupt pending bit.
    300          * Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to Set.
    301          * Output         : None
    302          * Return         : None
    303          *******************************************************************************/

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

   \                                 In section .text, align 2, keep-with-next
    319          void NVIC_ClearIRQChannelPendingBit(u8 NVIC_IRQChannel)
    320          {
   \                     NVIC_ClearIRQChannelPendingBit:
   \   00000000   10B4               PUSH     {R4}
    321            /* Check the parameters */
    322            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    323            
    324            NVIC->ICPR[(NVIC_IRQChannel >> 0x05)] = (u32)0x01 << (NVIC_IRQChannel & (u32)0x1F);
   \   00000002   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000004   4111               ASRS     R1,R0,#+5
   \   00000006   ....               LDR.N    R2,??DataTable22_3  ;; 0xe000e280
   \   00000008   0123               MOVS     R3,#+1
   \   0000000A   10F01F04           ANDS     R4,R0,#0x1F
   \   0000000E   A340               LSLS     R3,R3,R4
   \   00000010   42F82130           STR      R3,[R2, R1, LSL #+2]
    325          }
   \   00000014   10BC               POP      {R4}
   \   00000016   7047               BX       LR               ;; return
    326          
    327          /*******************************************************************************
    328          * Function Name  : NVIC_GetCurrentActiveHandler
    329          * Description    : Returns the current active Handler (IRQ Channel and
    330          *                  SystemHandler) identifier.
    331          * Input          : None
    332          * Output         : None
    333          * Return         : Active Handler Identifier.
    334          *******************************************************************************/

   \                                 In section .text, align 2, keep-with-next
    335          u16 NVIC_GetCurrentActiveHandler(void)
    336          {

⌨️ 快捷键说明

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