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

📄 rccu.lst

📁 本代码已经经过修改
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000042   1860               STR         R0,[R3, #+0]
     70                                        break;}
   \   00000044   1AE0               B           ??RCCU_RCLKSourceConfig_4
     71              case RCCU_CLOCK2_16  :{// ReSet the CK2_16 Bit in the CFR
     72                                        RCCU->CFR &= ~RCCU_CK2_16_Mask;
   \                     ??RCCU_RCLKSourceConfig_1:
   \   00000046   2868               LDR         R0,[R5, #+0]
   \   00000048   A043               BIC         R0,R4
   \   0000004A   2860               STR         R0,[R5, #+0]
     73                                     // Deselect The CKAF
     74                                        RCCU->CCR   &= ~RCCU_CKAF_SEL_Mask;
   \   0000004C   F2E7               B           ??RCCU_RCLKSourceConfig_5
     75                                     // switch off the PLL1
     76                                        RCCU->PLL1CR=((RCCU->PLL1CR & ~RCCU_DX_Mask)\
     77                                        |0x00000003) & ~RCCU_FREEN_Mask;
     78                                        break;}
     79              case RCCU_PLL1_Output:{// Set the CK2_16 Bit in the CFR
     80                                        RCCU->CFR = RCCU->CFR | RCCU_CK2_16_Mask;
   \                     ??RCCU_RCLKSourceConfig_0:
   \   0000004E   2868               LDR         R0,[R5, #+0]
   \   00000050   0443               ORR         R4,R0
   \   00000052   2C60               STR         R4,[R5, #+0]
     81                                     // Waits the PLL1 to lock if DX bits are different from '111'
     82                                     // If all DX bit are set the PLL lock flag in meaningless
     83                                        if (( RCCU->PLL1CR & 0x0007 ) != 7)
   \   00000054   1868               LDR         R0,[R3, #+0]
   \   00000056   4007               LSL         R0,R0,#+0x1D
   \   00000058   400F               LSR         R0,R0,#+0x1D
   \   0000005A   0728               CMP         R0,#+0x7
   \   0000005C   02D0               BEQ         ??RCCU_RCLKSourceConfig_6
     84                                          while(!(RCCU->CFR & RCCU_LOCK_Mask));
   \                     ??RCCU_RCLKSourceConfig_7:
   \   0000005E   2868               LDR         R0,[R5, #+0]
   \   00000060   8007               LSL         R0,R0,#+0x1E
   \   00000062   FCD5               BPL         ??RCCU_RCLKSourceConfig_7
     85                                     // Deselect The CKAF
     86                                        RCCU->CCR  &= ~RCCU_CKAF_SEL_Mask;
   \                     ??RCCU_RCLKSourceConfig_6:
   \   00000064   3068               LDR         R0,[R6, #+0]
   \   00000066   0240               AND         R2,R0
   \   00000068   3260               STR         R2,[R6, #+0]
     87                                     // Select The CSU_CKSEL
     88                                        RCCU->CFR |= RCCU_CSU_CKSEL_Mask;
   \   0000006A   2868               LDR         R0,[R5, #+0]
   \   0000006C   0121               MOV         R1,#+0x1
   \   0000006E   0143               ORR         R1,R0
   \   00000070   2960               STR         R1,[R5, #+0]
     89                                        break;}
   \   00000072   03E0               B           ??RCCU_RCLKSourceConfig_4
     90              case RCCU_RTC_CLOCK  :   {RCCU->CCR |= 0x04;
   \                     ??RCCU_RCLKSourceConfig_3:
   \   00000074   3068               LDR         R0,[R6, #+0]
   \   00000076   0421               MOV         R1,#+0x4
   \   00000078   0143               ORR         R1,R0
   \   0000007A   3160               STR         R1,[R6, #+0]
     91                                        break;}
     92            }
     93          }
   \                     ??RCCU_RCLKSourceConfig_4:
   \   0000007C   F0BC               POP         {R4-R7}
   \   0000007E   00B0               ADD         SP,#+0
   \   00000080   7047               BX          LR                 ;; return
     94          
     95          /*******************************************************************************
     96          * Function Name  : RCCU_RCLKClockSource
     97          * Description    : Returns the current RCLK source clock
     98          * Input          : None
     99          * Return         : RCCU_PLL1_Output, RCCU_CLOCK2_16, RCCU_CLOCK2, RCCU_RTC_CLOCK
    100          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    101          RCCU_RCLK_Clocks RCCU_RCLKClockSource ( void )
    102          {
    103            if ((RCCU->CCR & 0x04)==0x04)
   \                     RCCU_RCLKClockSource:
   \   00000000   A020               MOV         R0,#+0xA0
   \   00000002   0006               LSL         R0,R0,#+0x18       ;; #-1610612736
   \   00000004   0068               LDR         R0,[R0, #+0]
   \   00000006   4007               LSL         R0,R0,#+0x1D
   \   00000008   01D5               BPL         ??RCCU_RCLKClockSource_0
    104              return RCCU_RTC_CLOCK;
   \   0000000A   0320               MOV         R0,#+0x3
   \   0000000C   0BE0               B           ??RCCU_RCLKClockSource_1
    105          
    106            else if ((RCCU->CFR & RCCU_CK2_16_Mask)==0)
   \                     ??RCCU_RCLKClockSource_0:
   \   0000000E   ....               LDR         R0,??DataTable6    ;; 0xa0000008
   \   00000010   0168               LDR         R1,[R0, #+0]
   \   00000012   0907               LSL         R1,R1,#+0x1C
   \   00000014   01D4               BMI         ??RCCU_RCLKClockSource_2
    107              return RCCU_CLOCK2_16;
   \   00000016   0120               MOV         R0,#+0x1
   \   00000018   05E0               B           ??RCCU_RCLKClockSource_1
    108          
    109            else if (RCCU->CFR & RCCU_CSU_CKSEL_Mask)
   \                     ??RCCU_RCLKClockSource_2:
   \   0000001A   0068               LDR         R0,[R0, #+0]
   \   0000001C   C007               LSL         R0,R0,#+0x1F
   \   0000001E   01D5               BPL         ??RCCU_RCLKClockSource_3
    110              return RCCU_PLL1_Output;
   \   00000020   0020               MOV         R0,#+0
   \   00000022   00E0               B           ??RCCU_RCLKClockSource_1
    111          
    112            else
    113              return RCCU_CLOCK2;
   \                     ??RCCU_RCLKClockSource_3:
   \   00000024   0220               MOV         R0,#+0x2
   \                     ??RCCU_RCLKClockSource_1:
   \   00000026   00B0               ADD         SP,#+0
   \   00000028   7047               BX          LR                 ;; return
    114          }
    115          
    116          /*******************************************************************************
    117          * Function Name  : RCCU_USBClockSource
    118          * Description    : Gets the RCLK source clock
    119          * Input          : None
    120          * Return         : RCCU_USB_Clocks ( RCCU_PLL2_Output, RCCU_USBCK )
    121          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    122          RCCU_USB_Clocks RCCU_USBClockSource ( void )
    123          {
    124            if ((PCU->PLL2CR & RCCU_USBEN_Mask ) >> RCCU_USBEN_Index == 1 )
   \                     RCCU_USBClockSource:
   \   00000000   ....               LDR         R0,??DataTable5    ;; 0xa000004c
   \   00000002   0088               LDRH        R0,[R0, #+0]
   \   00000004   8021               MOV         R1,#+0x80
   \   00000006   4900               LSL         R1,R1,#+0x1        ;; #+0x100
   \   00000008   0140               AND         R1,R0
   \   0000000A   0812               ASR         R0,R1,#+0x8
   \   0000000C   0128               CMP         R0,#+0x1
   \   0000000E   01D1               BNE         ??RCCU_USBClockSource_0
    125               return RCCU_PLL2_Output;
   \   00000010   0120               MOV         R0,#+0x1
   \   00000012   00E0               B           ??RCCU_USBClockSource_1
    126            else return RCCU_USBCK;
   \                     ??RCCU_USBClockSource_0:
   \   00000014   0020               MOV         R0,#+0
   \                     ??RCCU_USBClockSource_1:
   \   00000016   00B0               ADD         SP,#+0
   \   00000018   7047               BX          LR                 ;; return
    127          }
    128          
    129          /*******************************************************************************
    130          * Function Name  : RCCU_FrequencyValue
    131          * Description    : Calculates & Returns any internal RCCU clock frequency
    132          *                  passed in parametres
    133          * Input          : RCCU_Clocks ( RCCU_CLK2, RCCU_RCLK, RCCU_MCLK, RCCU_PCLK, RCCU_FCLK )
    134          * Return         : u32
    135          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    136          u32 RCCU_FrequencyValue ( RCCU_Clocks Internal_Clk )
    137          {
   \                     RCCU_FrequencyValue:
   \   00000000   F1B5               PUSH        {R0,R4-R7,LR}
    138            u32 Tmp;
    139            u8 Div, Mul;
    140            RCCU_RCLK_Clocks CurrentRCLK;
    141          
    142            Tmp = ( RCCU_Div2Status() == SET )? RCCU_Main_Osc / 2 :  RCCU_Main_Osc;
   \   00000002   ....               LDR         R0,??DataTable6    ;; 0xa0000008
   \   00000004   0068               LDR         R0,[R0, #+0]
   \   00000006   0004               LSL         R0,R0,#+0x10
   \   00000008   01D5               BPL         ??RCCU_FrequencyValue_0
   \   0000000A   2D4C               LDR         R4,??RCCU_FrequencyValue_1  ;; 0x1e8480
   \   0000000C   00E0               B           ??RCCU_FrequencyValue_2
   \                     ??RCCU_FrequencyValue_0:
   \   0000000E   2D4C               LDR         R4,??RCCU_FrequencyValue_1+0x4  ;; 0x3d0900
    143          
    144            if ( Internal_Clk == RCCU_CLK2 )
   \                     ??RCCU_FrequencyValue_2:
   \   00000010   0127               MOV         R7,#+0x1
   \   00000012   6846               MOV         R0,SP
   \   00000014   0078               LDRB        R0,[R0, #+0]
   \   00000016   0028               CMP         R0,#+0
   \   00000018   02D1               BNE         ??RCCU_FrequencyValue_3
    145            {
    146             Div = 1;
   \                     ??RCCU_FrequencyValue_4:
   \   0000001A   0125               MOV         R5,#+0x1
    147             Mul = 1;
   \   0000001C   3E1C               MOV         R6,R7
   \   0000001E   2AE0               B           ??RCCU_FrequencyValue_5

⌨️ 快捷键说明

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