📄 rccu.lst
字号:
\ 00000058 0070A0E1 MOV R7,R0
115 switch ( CurrentRCLK ){
\ 0000005C 0700A0E1 MOV R0,R7
\ 00000060 000050E3 CMP R0,#+0
\ 00000064 1000000A BEQ ??RCCU_FrequencyValue_4
\ 00000068 010050E3 CMP R0,#+0x1
\ 0000006C 0400000A BEQ ??RCCU_FrequencyValue_5
\ 00000070 020050E3 CMP R0,#+0x2
\ 00000074 0700000A BEQ ??RCCU_FrequencyValue_6
\ 00000078 030050E3 CMP R0,#+0x3
\ 0000007C 2D00000A BEQ ??RCCU_FrequencyValue_7
\ 00000080 320000EA B ??RCCU_FrequencyValue_3
116 case RCCU_CLOCK2_16 : Div = 16;
\ ??RCCU_FrequencyValue_5:
\ 00000084 1000A0E3 MOV R0,#+0x10
\ 00000088 0050A0E1 MOV R5,R0
117 Mul = 1;
\ 0000008C 0100A0E3 MOV R0,#+0x1
\ 00000090 0060A0E1 MOV R6,R0
\ 00000094 2D0000EA B ??RCCU_FrequencyValue_3
118 break;
119 case RCCU_CLOCK2 : Div = 1;
\ ??RCCU_FrequencyValue_6:
\ 00000098 0100A0E3 MOV R0,#+0x1
\ 0000009C 0050A0E1 MOV R5,R0
120 Mul = 1;
\ 000000A0 0100A0E3 MOV R0,#+0x1
\ 000000A4 0060A0E1 MOV R6,R0
\ 000000A8 280000EA B ??RCCU_FrequencyValue_3
121 break;
122 case RCCU_PLL1_Output :{
123 Mul=(RCCU->PLL1CR & RCCU_MX_Mask ) >> RCCU_MX_Index;
\ ??RCCU_FrequencyValue_4:
\ 000000AC ........ LDR R0,??DataTable33 ;; RCCU
\ 000000B0 000090E5 LDR R0,[R0, #+0]
\ 000000B4 180090E5 LDR R0,[R0, #+0x18]
\ 000000B8 300010E2 ANDS R0,R0,#+0x30
\ 000000BC 2002B0E1 MOVS R0,R0, LSR #+0x4
\ 000000C0 0060A0E1 MOV R6,R0
124 switch ( Mul ) {
\ 000000C4 0600A0E1 MOV R0,R6
\ 000000C8 FF0010E2 ANDS R0,R0,#+0xFF ;; Zero extend
\ 000000CC 000050E3 CMP R0,#+0
\ 000000D0 0600000A BEQ ??RCCU_FrequencyValue_8
\ 000000D4 010050E3 CMP R0,#+0x1
\ 000000D8 0700000A BEQ ??RCCU_FrequencyValue_9
\ 000000DC 020050E3 CMP R0,#+0x2
\ 000000E0 0800000A BEQ ??RCCU_FrequencyValue_10
\ 000000E4 030050E3 CMP R0,#+0x3
\ 000000E8 0900000A BEQ ??RCCU_FrequencyValue_11
\ 000000EC 0A0000EA B ??RCCU_FrequencyValue_12
125 case 0: Mul = 20; break;
\ ??RCCU_FrequencyValue_8:
\ 000000F0 1400A0E3 MOV R0,#+0x14
\ 000000F4 0060A0E1 MOV R6,R0
\ 000000F8 070000EA B ??RCCU_FrequencyValue_12
126 case 1: Mul = 12; break;
\ ??RCCU_FrequencyValue_9:
\ 000000FC 0C00A0E3 MOV R0,#+0xC
\ 00000100 0060A0E1 MOV R6,R0
\ 00000104 040000EA B ??RCCU_FrequencyValue_12
127 case 2: Mul = 24; break;
\ ??RCCU_FrequencyValue_10:
\ 00000108 1800A0E3 MOV R0,#+0x18
\ 0000010C 0060A0E1 MOV R6,R0
\ 00000110 010000EA B ??RCCU_FrequencyValue_12
128 case 3: Mul = 16; break;
\ ??RCCU_FrequencyValue_11:
\ 00000114 1000A0E3 MOV R0,#+0x10
\ 00000118 0060A0E1 MOV R6,R0
129 }
130 Div = ( RCCU->PLL1CR & RCCU_DX_Mask ) + 1;
\ ??RCCU_FrequencyValue_12:
\ 0000011C ........ LDR R0,??DataTable33 ;; RCCU
\ 00000120 000090E5 LDR R0,[R0, #+0]
\ 00000124 180090E5 LDR R0,[R0, #+0x18]
\ 00000128 070010E2 ANDS R0,R0,#+0x7
\ 0000012C 010090E2 ADDS R0,R0,#+0x1
\ 00000130 0050A0E1 MOV R5,R0
131 break;
\ 00000134 050000EA B ??RCCU_FrequencyValue_3
132 }
133 case RCCU_RTC_CLOCK : Mul = 1;
\ ??RCCU_FrequencyValue_7:
\ 00000138 0100A0E3 MOV R0,#+0x1
\ 0000013C 0060A0E1 MOV R6,R0
134 Div = 1;
\ 00000140 0100A0E3 MOV R0,#+0x1
\ 00000144 0050A0E1 MOV R5,R0
135 Tmp = RCCU_RTC_Osc;
\ 00000148 800CA0E3 MOV R0,#+0x8000
\ 0000014C 0080A0E1 MOV R8,R0
136 break;
137 }
138 }
139 switch ( Internal_Clk ){
\ ??RCCU_FrequencyValue_3:
\ 00000150 0400A0E1 MOV R0,R4
\ 00000154 020050E3 CMP R0,#+0x2
\ 00000158 0400000A BEQ ??RCCU_FrequencyValue_13
\ 0000015C 030050E3 CMP R0,#+0x3
\ 00000160 0800000A BEQ ??RCCU_FrequencyValue_14
\ 00000164 040050E3 CMP R0,#+0x4
\ 00000168 0D00000A BEQ ??RCCU_FrequencyValue_15
\ 0000016C 110000EA B ??RCCU_FrequencyValue_16
140 case RCCU_MCLK :{Div <<= PCU->MDIVR & RCCU_FACT_Mask;
\ ??RCCU_FrequencyValue_13:
\ 00000170 ........ LDR R0,??DataTable36 ;; PCU
\ 00000174 000090E5 LDR R0,[R0, #+0]
\ 00000178 B000D0E1 LDRH R0,[R0, #+0]
\ 0000017C 030010E2 ANDS R0,R0,#+0x3
\ 00000180 1550B0E1 MOVS R5,R5, LSL R0
141 break;
\ 00000184 0B0000EA B ??RCCU_FrequencyValue_16
142 }
143 case RCCU_PCLK :{
144 Div <<=(PCU->PDIVR & RCCU_FACT2_Mask ) >> RCCU_FACT2_Index;
\ ??RCCU_FrequencyValue_14:
\ 00000188 ........ LDR R0,??DataTable36 ;; PCU
\ 0000018C 000090E5 LDR R0,[R0, #+0]
\ 00000190 B400D0E1 LDRH R0,[R0, #+0x4]
\ 00000194 C00F10E2 ANDS R0,R0,#+0x300
\ 00000198 4004B0E1 MOVS R0,R0, ASR #+0x8
\ 0000019C 1550B0E1 MOVS R5,R5, LSL R0
145 break;
\ 000001A0 040000EA B ??RCCU_FrequencyValue_16
146 }
147 case RCCU_FCLK :{
148 Div <<= PCU->PDIVR & 0x3;
\ ??RCCU_FrequencyValue_15:
\ 000001A4 ........ LDR R0,??DataTable36 ;; PCU
\ 000001A8 000090E5 LDR R0,[R0, #+0]
\ 000001AC B400D0E1 LDRH R0,[R0, #+0x4]
\ 000001B0 030010E2 ANDS R0,R0,#+0x3
\ 000001B4 1550B0E1 MOVS R5,R5, LSL R0
149 break;
150 }
151 }
152 return (Tmp * Mul) / Div;
\ ??RCCU_FrequencyValue_16:
\ 000001B8 FF6016E2 ANDS R6,R6,#+0xFF ;; Zero extend
\ 000001BC 960810E0 MULS R0,R6,R8
\ 000001C0 FF5015E2 ANDS R5,R5,#+0xFF ;; Zero extend
\ 000001C4 0510A0E1 MOV R1,R5
\ 000001C8 ........ _BLF ??divu32_a,??rA??divu32_a
\ 000001CC 0100A0E1 MOV R0,R1
\ 000001D0 F041BDE8 LDMIA SP!,{R4-R8,LR} ;; Pop
\ 000001D4 1EFF2FE1 BX LR ;; return
153 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable33:
\ 00000000 ........ DC32 RCCU
\ In segment CODE, align 4, keep-with-next
\ ??DataTable36:
\ 00000000 ........ DC32 PCU
154
Maximum stack usage in bytes:
Function CSTACK
-------- ------
RCCU_Div2Status 0
RCCU_FrequencyValue 24
RCCU_PLL1Config 4
RCCU_PLL2Config 4
RCCU_RCLKClockSource 0
RCCU_RCLKSourceConfig 0
RCCU_USBClockSource 0
Segment part sizes:
Function/Label Bytes
-------------- -----
RCCU_Div2Status 40
RCCU_PLL1Config 68
RCCU_PLL2Config 80
RCCU_RCLKSourceConfig 416
RCCU_RCLKClockSource 92
RCCU_USBClockSource 44
RCCU_FrequencyValue 472
??DataTable33 4
??DataTable36 4
Others 48
1 268 bytes in segment CODE
1 180 bytes of CODE memory (+ 88 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -