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

📄 stm32f10x_nvic.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000008   7047               BX       LR               ;; return
    105          
    106          /*******************************************************************************
    107          * Function Name  : NVIC_Init
    108          * Description    : Initializes the NVIC peripheral according to the specified
    109          *                  parameters in the NVIC_InitStruct.
    110          * Input          : - NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure
    111          *                    that contains the configuration information for the
    112          *                    specified NVIC peripheral.
    113          * Output         : None
    114          * Return         : None
    115          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    116          void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
    117          {
   \                     NVIC_Init:
   \   00000000   F3B4               PUSH     {R0,R1,R4-R7}
   \   00000002   0100               MOVS     R1,R0
    118            u32 tmppriority = 0x00, tmpreg = 0x00, tmpmask = 0x00;
   \   00000004   0020               MOVS     R0,#+0
   \   00000006   0400               MOVS     R4,R0
   \   00000008   0020               MOVS     R0,#+0
   \   0000000A   0500               MOVS     R5,R0
   \   0000000C   0020               MOVS     R0,#+0
   \   0000000E   0200               MOVS     R2,R0
    119            u32 tmppre = 0, tmpsub = 0x0F;
   \   00000010   0020               MOVS     R0,#+0
   \   00000012   0090               STR      R0,[SP, #+0]
   \   00000014   0F20               MOVS     R0,#+15
   \   00000016   0300               MOVS     R3,R0
    120          
    121            /* Check the parameters */
    122            assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
    123            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_InitStruct->NVIC_IRQChannel));
    124            assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));  
    125            assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
    126              
    127            if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
   \   00000018   C878               LDRB     R0,[R1, #+3]
   \   0000001A   0028               CMP      R0,#+0
   \   0000001C   3FD0               BEQ.N    ??NVIC_Init_0
    128            {
    129              /* Compute the Corresponding IRQ Priority --------------------------------*/    
    130              tmppriority = (0x700 - (SCB->AIRCR & (u32)0x700))>> 0x08;
   \   0000001E   ....               LDR.N    R0,??DataTable24  ;; 0xe000ed0c
   \   00000020   0068               LDR      R0,[R0, #+0]
   \   00000022   10F4E060           ANDS     R0,R0,#0x700
   \   00000026   D0F5E060           RSBS     R0,R0,#+1792
   \   0000002A   040A               LSRS     R4,R0,#+8
    131              tmppre = (0x4 - tmppriority);
   \   0000002C   0420               MOVS     R0,#+4
   \   0000002E   001B               SUBS     R0,R0,R4
   \   00000030   0090               STR      R0,[SP, #+0]
    132              tmpsub = tmpsub >> tmppriority;
   \   00000032   E340               LSRS     R3,R3,R4
    133              
    134              tmppriority = (u32)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
   \   00000034   4878               LDRB     R0,[R1, #+1]
   \   00000036   009E               LDR      R6,[SP, #+0]
   \   00000038   B040               LSLS     R0,R0,R6
   \   0000003A   0400               MOVS     R4,R0
    135              tmppriority |=  NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
   \   0000003C   2000               MOVS     R0,R4
   \   0000003E   8C78               LDRB     R4,[R1, #+2]
   \   00000040   1C40               ANDS     R4,R4,R3
   \   00000042   0443               ORRS     R4,R4,R0
    136          
    137              tmppriority = tmppriority << 0x04;
   \   00000044   2401               LSLS     R4,R4,#+4
    138              tmppriority = ((u32)tmppriority) << ((NVIC_InitStruct->NVIC_IRQChannel & (u8)0x03) * 0x08);
   \   00000046   0878               LDRB     R0,[R1, #+0]
   \   00000048   8007               LSLS     R0,R0,#+30       ;; ZeroExtS R0,R0,#+30,#+30
   \   0000004A   800F               LSRS     R0,R0,#+30
   \   0000004C   0826               MOVS     R6,#+8
   \   0000004E   7043               MULS     R0,R6,R0
   \   00000050   8440               LSLS     R4,R4,R0
    139              
    140              tmpreg = NVIC->IPR[(NVIC_InitStruct->NVIC_IRQChannel >> 0x02)];
   \   00000052   0878               LDRB     R0,[R1, #+0]
   \   00000054   8010               ASRS     R0,R0,#+2
   \   00000056   0426               MOVS     R6,#+4
   \   00000058   7043               MULS     R0,R6,R0
   \   0000005A   ....               LDR.N    R6,??DataTable17  ;; 0xe000e400
   \   0000005C   3058               LDR      R0,[R6, R0]
   \   0000005E   0500               MOVS     R5,R0
    141              tmpmask = (u32)0xFF << ((NVIC_InitStruct->NVIC_IRQChannel & (u8)0x03) * 0x08);
   \   00000060   FF20               MOVS     R0,#+255
   \   00000062   0E78               LDRB     R6,[R1, #+0]
   \   00000064   B607               LSLS     R6,R6,#+30       ;; ZeroExtS R6,R6,#+30,#+30
   \   00000066   B60F               LSRS     R6,R6,#+30
   \   00000068   0827               MOVS     R7,#+8
   \   0000006A   7E43               MULS     R6,R7,R6
   \   0000006C   B040               LSLS     R0,R0,R6
   \   0000006E   0200               MOVS     R2,R0
    142              tmpreg &= ~tmpmask;
   \   00000070   9543               BICS     R5,R5,R2
    143              tmppriority &= tmpmask;  
   \   00000072   1440               ANDS     R4,R4,R2
    144              tmpreg |= tmppriority;
   \   00000074   2543               ORRS     R5,R5,R4
    145          
    146              NVIC->IPR[(NVIC_InitStruct->NVIC_IRQChannel >> 0x02)] = tmpreg;
   \   00000076   0878               LDRB     R0,[R1, #+0]
   \   00000078   8010               ASRS     R0,R0,#+2
   \   0000007A   0426               MOVS     R6,#+4
   \   0000007C   7043               MULS     R0,R6,R0
   \   0000007E   ....               LDR.N    R6,??DataTable17  ;; 0xe000e400
   \   00000080   3550               STR      R5,[R6, R0]
    147              
    148              /* Enable the Selected IRQ Channels --------------------------------------*/
    149              NVIC->ISER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
    150                (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);
   \   00000082   0878               LDRB     R0,[R1, #+0]
   \   00000084   4611               ASRS     R6,R0,#+5
   \   00000086   0420               MOVS     R0,#+4
   \   00000088   4643               MULS     R6,R0,R6
   \   0000008A   0D4F               LDR.N    R7,??NVIC_Init_1  ;; 0xe000e100
   \   0000008C   B446               MOV      R12,R6
   \   0000008E   0120               MOVS     R0,#+1
   \   00000090   0E78               LDRB     R6,[R1, #+0]
   \   00000092   F606               LSLS     R6,R6,#+27       ;; ZeroExtS R6,R6,#+27,#+27
   \   00000094   F60E               LSRS     R6,R6,#+27
   \   00000096   B040               LSLS     R0,R0,R6
   \   00000098   6646               MOV      R6,R12
   \   0000009A   B851               STR      R0,[R7, R6]
   \   0000009C   0CE0               B.N      ??NVIC_Init_2
    151            }
    152            else
    153            {
    154              /* Disable the Selected IRQ Channels -------------------------------------*/
    155              NVIC->ICER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
    156                (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);
   \                     ??NVIC_Init_0:
   \   0000009E   0878               LDRB     R0,[R1, #+0]
   \   000000A0   4611               ASRS     R6,R0,#+5
   \   000000A2   0420               MOVS     R0,#+4
   \   000000A4   4643               MULS     R6,R0,R6
   \   000000A6   ....               LDR.N    R7,??DataTable18  ;; 0xe000e180
   \   000000A8   B446               MOV      R12,R6
   \   000000AA   0120               MOVS     R0,#+1
   \   000000AC   0E78               LDRB     R6,[R1, #+0]
   \   000000AE   F606               LSLS     R6,R6,#+27       ;; ZeroExtS R6,R6,#+27,#+27
   \   000000B0   F60E               LSRS     R6,R6,#+27
   \   000000B2   B040               LSLS     R0,R0,R6
   \   000000B4   6646               MOV      R6,R12
   \   000000B6   B851               STR      R0,[R7, R6]
    157            }
    158          }
   \                     ??NVIC_Init_2:
   \   000000B8   02B0               ADD      SP,SP,#+8
   \   000000BA   F0BC               POP      {R4-R7}
   \   000000BC   7047               BX       LR               ;; return
   \   000000BE   00BF               Nop      
   \                     ??NVIC_Init_1:
   \   000000C0   00E100E0           DC32     0xe000e100
    159          
    160          /*******************************************************************************
    161          * Function Name  : NVIC_StructInit
    162          * Description    : Fills each NVIC_InitStruct member with its default value.
    163          * Input          : - NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure which
    164          *                    will be initialized.
    165          * Output         : None
    166          * Return         : None
    167          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    168          void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct)
    169          {
    170            /* NVIC_InitStruct members default value */
    171            NVIC_InitStruct->NVIC_IRQChannel = 0x00;
   \                     NVIC_StructInit:
   \   00000000   0021               MOVS     R1,#+0
   \   00000002   0170               STRB     R1,[R0, #+0]
    172            NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
   \   00000004   0021               MOVS     R1,#+0
   \   00000006   4170               STRB     R1,[R0, #+1]
    173            NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
   \   00000008   0021               MOVS     R1,#+0
   \   0000000A   8170               STRB     R1,[R0, #+2]
    174            NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
   \   0000000C   0021               MOVS     R1,#+0
   \   0000000E   C170               STRB     R1,[R0, #+3]
    175          }
   \   00000010   7047               BX       LR               ;; return
    176          
    177          /*******************************************************************************
    178          * Function Name  : NVIC_SETPRIMASK
    179          * Description    : Enables the PRIMASK priority: Raises the execution priority to 0.
    180          * Input          : None
    181          * Output         : None
    182          * Return         : None
    183          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    184          void NVIC_SETPRIMASK(void)
    185          {
   \                     NVIC_SETPRIMASK:
   \   00000000   01B5               PUSH     {R0,LR}
    186            __SETPRIMASK();
   \   00000002   ........           BL       __SETPRIMASK
    187          }
   \   00000006   01B0               ADD      SP,SP,#+4
   \   00000008   00BD               POP      {PC}             ;; return
    188          
    189          /*******************************************************************************
    190          * Function Name  : NVIC_RESETPRIMASK
    191          * Description    : Disables the PRIMASK priority.
    192          * Input          : None
    193          * Output         : None
    194          * Return         : None
    195          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    196          void NVIC_RESETPRIMASK(void)
    197          {
   \                     NVIC_RESETPRIMASK:
   \   00000000   01B5               PUSH     {R0,LR}
    198            __RESETPRIMASK();
   \   00000002   ........           BL       __RESETPRIMASK
    199          }
   \   00000006   01B0               ADD      SP,SP,#+4
   \   00000008   00BD               POP      {PC}             ;; return

⌨️ 快捷键说明

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