📄 bsp_periph.lst
字号:
\ 00000036 13D9 BLS.N ??BSP_PeriphClkFreqGet_3
\ 00000038 E41E SUBS R4,R4,#+3
\ 0000003A 062C CMP R4,#+6
\ 0000003C 10D9 BLS.N ??BSP_PeriphClkFreqGet_3
\ 0000003E 083C SUBS R4,R4,#+8
\ 00000040 0ED0 BEQ.N ??BSP_PeriphClkFreqGet_3
\ 00000042 A41E SUBS R4,R4,#+2
\ 00000044 022C CMP R4,#+2
\ 00000046 0BD9 BLS.N ??BSP_PeriphClkFreqGet_3
\ 00000048 15E0 B.N ??BSP_PeriphClkFreqGet_4
119 case BSP_PERIPH_ID_DMA1:
120 case BSP_PERIPH_ID_DMA2:
121 case BSP_PERIPH_ID_SRAM:
122 case BSP_PERIPH_ID_FLITF:
123 case BSP_PERIPH_ID_CRC:
124 case BSP_PERIPH_ID_FSMC:
125 case BSP_PERIPH_ID_SDIO:
126 return (clk_freq);
127
128 case BSP_PERIPH_ID_AFIO:
129 case BSP_PERIPH_ID_IOPA:
130 case BSP_PERIPH_ID_IOPB:
131 case BSP_PERIPH_ID_IOPC:
132 case BSP_PERIPH_ID_IOPD:
133 case BSP_PERIPH_ID_IOPE:
134 case BSP_PERIPH_ID_IOPF:
135 case BSP_PERIPH_ID_IOPG:
136 case BSP_PERIPH_ID_ADC1:
137 case BSP_PERIPH_ID_ADC2:
138 case BSP_PERIPH_ID_TIM1:
139 case BSP_PERIPH_ID_SPI1:
140 case BSP_PERIPH_ID_TIM8:
141 case BSP_PERIPH_ID_USART1:
142 case BSP_PERIPH_ID_ADC3:
143 clk_div = (BSP_PERIPH_REG_RCC_CFGR & 0x00003800) >> 11;
\ ??BSP_PeriphClkFreqGet_2:
\ 0000004A 0968 LDR R1,[R1, #+0]
\ 0000004C 11F46051 ANDS R1,R1,#0x3800
\ 00000050 C90A LSRS R1,R1,#+11
144 if (clk_div < 4) {
\ 00000052 0429 CMP R1,#+4
\ 00000054 10D3 BCC.N ??BSP_PeriphClkFreqGet_1
145 return (clk_freq);
146 }
147 clk_div = (clk_div - 3) << 1;
148 clk_freq /= clk_div;
149 return (clk_freq);
\ 00000056 C91E SUBS R1,R1,#+3
\ 00000058 4900 LSLS R1,R1,#+1
\ 0000005A B0FBF1F0 UDIV R0,R0,R1
\ 0000005E 10BD POP {R4,PC}
150
151 case BSP_PERIPH_ID_TIM2:
152 case BSP_PERIPH_ID_TIM3:
153 case BSP_PERIPH_ID_TIM4:
154 case BSP_PERIPH_ID_TIM5:
155 case BSP_PERIPH_ID_TIM6:
156 case BSP_PERIPH_ID_TIM7:
157 case BSP_PERIPH_ID_WWDG:
158 case BSP_PERIPH_ID_SPI2:
159 case BSP_PERIPH_ID_SPI3:
160 case BSP_PERIPH_ID_USART2:
161 case BSP_PERIPH_ID_USART3:
162 case BSP_PERIPH_ID_USART4:
163 case BSP_PERIPH_ID_USART5:
164 case BSP_PERIPH_ID_I2C1:
165 case BSP_PERIPH_ID_I2C2:
166 case BSP_PERIPH_ID_USB:
167 case BSP_PERIPH_ID_CAN:
168 case BSP_PERIPH_ID_BKP:
169 case BSP_PERIPH_ID_PWR:
170 case BSP_PERIPH_ID_DAC:
171 clk_div = (BSP_PERIPH_REG_RCC_CFGR & 0x00000700) >> 8;
\ ??BSP_PeriphClkFreqGet_3:
\ 00000060 0968 LDR R1,[R1, #+0]
\ 00000062 11F4E061 ANDS R1,R1,#0x700
\ 00000066 090A LSRS R1,R1,#+8
172 if (clk_div < 4) {
\ 00000068 0429 CMP R1,#+4
\ 0000006A 05D3 BCC.N ??BSP_PeriphClkFreqGet_1
173 return (clk_freq);
174 }
175 clk_div = (clk_div - 3) << 1;
176 clk_freq /= clk_div;
177 return (clk_freq);
\ 0000006C C91E SUBS R1,R1,#+3
\ 0000006E 4900 LSLS R1,R1,#+1
\ 00000070 B0FBF1F0 UDIV R0,R0,R1
\ 00000074 10BD POP {R4,PC}
178 }
179
180 return ((CPU_INT32U)0);
\ ??BSP_PeriphClkFreqGet_4:
\ 00000076 0020 MOVS R0,#+0
\ ??BSP_PeriphClkFreqGet_1:
\ 00000078 10BD POP {R4,PC} ;; return
\ 0000007A 00BF Nop
\ ??BSP_PeriphClkFreqGet_0:
\ 0000007C 04100240 DC32 0x40021004
181 }
182
183
184 /*
185 *********************************************************************************************************
186 * BSP_PeriphEn()
187 *
188 * Description : Enable clock for peripheral.
189 *
190 * Argument(s) : pwr_clk_id Power/clock ID.
191 *
192 * Return(s) : none.
193 *
194 * Caller(s) : Application.
195 *
196 * Note(s) : none.
197 *********************************************************************************************************
198 */
199
\ In segment CODE, align 4, keep-with-next
200 void BSP_PeriphEn (CPU_DATA pwr_clk_id)
201 {
\ BSP_PeriphEn:
\ 00000000 00B5 PUSH {LR}
202 switch (pwr_clk_id) {
\ 00000002 0100 MOVS R1,R0
\ 00000004 0229 CMP R1,#+2
\ 00000006 1DD9 BLS.N ??BSP_PeriphEn_0
\ 00000008 091F SUBS R1,R1,#+4
\ 0000000A 1BD0 BEQ.N ??BSP_PeriphEn_0
\ 0000000C 891E SUBS R1,R1,#+2
\ 0000000E 19D0 BEQ.N ??BSP_PeriphEn_0
\ 00000010 891E SUBS R1,R1,#+2
\ 00000012 17D0 BEQ.N ??BSP_PeriphEn_0
\ 00000014 891E SUBS R1,R1,#+2
\ 00000016 15D0 BEQ.N ??BSP_PeriphEn_0
\ 00000018 1639 SUBS R1,R1,#+22
\ 0000001A 1AD0 BEQ.N ??BSP_PeriphEn_1
\ 0000001C 891E SUBS R1,R1,#+2
\ 0000001E 0D29 CMP R1,#+13
\ 00000020 17D9 BLS.N ??BSP_PeriphEn_1
\ 00000022 1E39 SUBS R1,R1,#+30
\ 00000024 0529 CMP R1,#+5
\ 00000026 1CD9 BLS.N ??BSP_PeriphEn_2
\ 00000028 0B39 SUBS R1,R1,#+11
\ 0000002A 1AD0 BEQ.N ??BSP_PeriphEn_2
\ 0000002C C91E SUBS R1,R1,#+3
\ 0000002E 0129 CMP R1,#+1
\ 00000030 17D9 BLS.N ??BSP_PeriphEn_2
\ 00000032 C91E SUBS R1,R1,#+3
\ 00000034 0629 CMP R1,#+6
\ 00000036 14D9 BLS.N ??BSP_PeriphEn_2
\ 00000038 0839 SUBS R1,R1,#+8
\ 0000003A 12D0 BEQ.N ??BSP_PeriphEn_2
\ 0000003C 891E SUBS R1,R1,#+2
\ 0000003E 0229 CMP R1,#+2
\ 00000040 0FD9 BLS.N ??BSP_PeriphEn_2
\ 00000042 00BD POP {PC}
203 case BSP_PERIPH_ID_DMA1:
204 case BSP_PERIPH_ID_DMA2:
205 case BSP_PERIPH_ID_SRAM:
206 case BSP_PERIPH_ID_FLITF:
207 case BSP_PERIPH_ID_CRC:
208 case BSP_PERIPH_ID_FSMC:
209 case BSP_PERIPH_ID_SDIO:
210 BSP_PERIPH_REG_RCC_AHBENR |= DEF_BIT(pwr_clk_id);
\ ??BSP_PeriphEn_0:
\ 00000044 .... LDR.N R1,??DataTable3 ;; 0x40021014
\ 00000046 0A68 LDR R2,[R1, #+0]
\ 00000048 0123 MOVS R3,#+1
\ 0000004A 8340 LSLS R3,R3,R0
\ 0000004C 1343 ORRS R3,R3,R2
\ 0000004E 0B60 STR R3,[R1, #+0]
\ 00000050 00BD POP {PC}
211 break;
212
213 case BSP_PERIPH_ID_AFIO:
214 case BSP_PERIPH_ID_IOPA:
215 case BSP_PERIPH_ID_IOPB:
216 case BSP_PERIPH_ID_IOPC:
217 case BSP_PERIPH_ID_IOPD:
218 case BSP_PERIPH_ID_IOPE:
219 case BSP_PERIPH_ID_IOPF:
220 case BSP_PERIPH_ID_IOPG:
221 case BSP_PERIPH_ID_ADC1:
222 case BSP_PERIPH_ID_ADC2:
223 case BSP_PERIPH_ID_TIM1:
224 case BSP_PERIPH_ID_SPI1:
225 case BSP_PERIPH_ID_TIM8:
226 case BSP_PERIPH_ID_USART1:
227 case BSP_PERIPH_ID_ADC3:
228 BSP_PERIPH_REG_RCC_APB2ENR |= DEF_BIT(pwr_clk_id - 32);
\ ??BSP_PeriphEn_1:
\ 00000052 .... LDR.N R1,??DataTable4 ;; 0x40021018
\ 00000054 0A68 LDR R2,[R1, #+0]
\ 00000056 0123 MOVS R3,#+1
\ 00000058 E030 ADDS R0,R0,#+224
\ 0000005A 8340 LSLS R3,R3,R0
\ 0000005C 1343 ORRS R3,R3,R2
\ 0000005E 0B60 STR R3,[R1, #+0]
\ 00000060 00BD POP {PC}
229 break;
230
231 case BSP_PERIPH_ID_TIM2:
232 case BSP_PERIPH_ID_TIM3:
233 case BSP_PERIPH_ID_TIM4:
234 case BSP_PERIPH_ID_TIM5:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -