📄 bsp.lst
字号:
161 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
\ 00000034 1020 MOVS R0,#+16
\ 00000036 ........ _BLF FLASH_PrefetchBufferCmd,??FLASH_PrefetchBufferCmd??rT
162 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
\ 0000003A 5FF4E011 MOVS R1,#+1835008
\ 0000003E 5FF48030 MOVS R0,#+65536
\ 00000042 ........ _BLF RCC_PLLConfig,??RCC_PLLConfig??rT
163 RCC_PLLCmd(ENABLE);
\ 00000046 0120 MOVS R0,#+1
\ 00000048 ........ _BLF RCC_PLLCmd,??RCC_PLLCmd??rT
164
165 while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {
\ ??BSP_Init_0:
\ 0000004C 3920 MOVS R0,#+57
\ 0000004E ........ _BLF RCC_GetFlagStatus,??RCC_GetFlagStatus??rT
\ 00000052 0028 CMP R0,#+0
\ 00000054 FAD0 BEQ.N ??BSP_Init_0
166 ;
167 }
168
169 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
\ 00000056 0220 MOVS R0,#+2
\ 00000058 ........ _BLF RCC_SYSCLKConfig,??RCC_SYSCLKConfig??rT
170
171 while (RCC_GetSYSCLKSource() != 0x08) {
\ ??BSP_Init_1:
\ 0000005C ........ _BLF RCC_GetSYSCLKSource,??RCC_GetSYSCLKSource??rT
\ 00000060 0828 CMP R0,#+8
\ 00000062 FBD1 BNE.N ??BSP_Init_1
172 ;
173 }
174
175 LED_Init(); /* Initialize the I/Os for the LED controls */
\ 00000064 ........ BL LED_Init
176 PB_Init(); /* Initialize the I/Os for the PB control */
\ 00000068 ........ BL PB_Init
177 Joystick_Init(); /* Initialize the I/Os for the Joystick control */
\ 0000006C ........ BL Joystick_Init
178
179 LCD_Init();
\ 00000070 ........ _BLF LCD_Init,??LCD_Init??rT
180 LCD_Clear();
\ 00000074 ........ _BLF LCD_Clear,??LCD_Clear??rT
181
182
183 Tmr_TickInit(); /* Initialize the uC/OS-II tick interrupt */
\ 00000078 ........ BL Tmr_TickInit
184 }
\ 0000007C 00BD POP {PC} ;; return
185
186
187 /*
188 *********************************************************************************************************
189 * DISABLE ALL INTERRUPTS
190 *
191 * Description : This function disables all interrupts from the interrupt controller.
192 *
193 * Arguments : None.
194 *
195 * Returns : None.
196 *********************************************************************************************************
197 */
198
\ In segment CODE, align 4, keep-with-next
199 void BSP_IntDisAll (void)
200 {
\ BSP_IntDisAll:
\ 00000000 00B5 PUSH {LR}
201 CPU_IntDis();
\ 00000002 ........ _BLF CPU_IntDis,??CPU_IntDis??rT
202 }
\ 00000006 00BD POP {PC} ;; return
203
204
205 /*
206 *********************************************************************************************************
207 * GET THE CPU CLOCK FREQUENCY
208 *
209 * Description: This function reads CPU registers to determine the CPU clock frequency of the chip in KHz.
210 *
211 * Argument(s): None.
212 *
213 * Returns : The CPU clock frequency, in Hz.
214 *********************************************************************************************************
215 */
216
\ In segment CODE, align 4, keep-with-next
217 CPU_INT32U BSP_CPU_ClkFreq (void)
218 {
\ BSP_CPU_ClkFreq:
\ 00000000 10B5 PUSH {R4,LR}
219 static RCC_ClocksTypeDef rcc_clocks;
220
221
222 RCC_GetClocksFreq(&rcc_clocks);
\ 00000002 034C LDR.N R4,??BSP_CPU_ClkFreq_0 ;; ??rcc_clocks
\ 00000004 2000 MOVS R0,R4
\ 00000006 ........ _BLF RCC_GetClocksFreq,??RCC_GetClocksFreq??rT
223
224 return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
\ 0000000A 6068 LDR R0,[R4, #+4]
\ 0000000C 10BD POP {R4,PC} ;; return
\ 0000000E 00BF Nop
\ ??BSP_CPU_ClkFreq_0:
\ 00000010 ........ DC32 ??rcc_clocks
225 }
\ In segment DATA_Z, align 4, align-sorted
\ ??rcc_clocks:
\ 00000000 DS8 20
226
227
228 /*
229 ******************************************************************************************************************************
230 ******************************************************************************************************************************
231 ** PB and LED Functions
232 ******************************************************************************************************************************
233 ******************************************************************************************************************************
234 */
235
236 /*
237 *********************************************************************************************************
238 * PB INITIALIZATION
239 *
240 * Description : This function initializes the board's PB
241 *
242 * Arguments : none
243 *
244 * Returns ; none
245 *********************************************************************************************************
246 */
247
\ In segment CODE, align 4, keep-with-next
248 static void PB_Init (void)
249 {
\ PB_Init:
\ 00000000 01B5 PUSH {R0,LR}
250 GPIO_InitTypeDef gpio_init;
251
252
253 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
\ 00000002 0121 MOVS R1,#+1
\ 00000004 0820 MOVS R0,#+8
\ 00000006 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
254 gpio_init.GPIO_Pin = GPIOB_PB_KEY;
\ 0000000A 5FF40070 MOVS R0,#+512
\ 0000000E ADF80000 STRH R0,[SP, #+0]
255 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000012 0420 MOVS R0,#+4
\ 00000014 8DF80300 STRB R0,[SP, #+3]
256 GPIO_Init(GPIOB, &gpio_init);
\ 00000018 6946 MOV R1,SP
\ 0000001A .... LDR.N R0,??DataTable1 ;; 0x40010c00
\ 0000001C ........ _BLF GPIO_Init,??GPIO_Init??rT
257 }
\ 00000020 01BD POP {R0,PC} ;; return
258
259
260 /*
261 *********************************************************************************************************
262 * GET 'PUSH BUTTON' STATUS
263 *
264 * Description : This function is used to get the status of any push button on the board.
265 *
266 * Arguments : push_button is the number of the push button to probe
267 * 1 probe the user push button
268 *
269 * Returns : DEF_TRUE if the push button is pressed
270 * DEF_FALSE if the push button is not pressed
271 *********************************************************************************************************
272 */
273
\ In segment CODE, align 4, keep-with-next
274 CPU_BOOLEAN PB_GetStatus (CPU_INT08U pb)
275 {
\ PB_GetStatus:
\ 00000000 10B5 PUSH {R4,LR}
276 CPU_BOOLEAN status;
277 CPU_INT32U pin;
278
279
280 status = DEF_FALSE;
\ 00000002 0024 MOVS R4,#+0
281
282 switch (pb) {
\ 00000004 0128 CMP R0,#+1
\ 00000006 07D1 BNE.N ??PB_GetStatus_0
283 case 1:
284 pin = GPIO_ReadInputDataBit(GPIOB, GPIOB_PB_KEY);
\ 00000008 5FF40071 MOVS R1,#+512
\ 0000000C .... LDR.N R0,??DataTable1 ;; 0x40010c00
\ 0000000E ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
285 if (pin == 0) {
\ 00000012 0028 CMP R0,#+0
\ 00000014 00D1 BNE.N ??PB_GetStatus_0
286 status = DEF_TRUE;
\ 00000016 0124 MOVS R4,#+1
287 }
288 break;
289
290 default:
291 break;
292 }
293
294 return (status);
\ ??PB_GetStatus_0:
\ 00000018 2000 MOVS R0,R4
\ 0000001A 10BD POP {R4,PC} ;; return
295 }
296
297 /*
298 *********************************************************************************************************
299 * JOYSTICK INITIALIZATION
300 *
301 * Description : This function initializes the board's joystick.
302 *
303 * Arguments : none
304 *
305 * Returns : none
306 *********************************************************************************************************
307 */
308
\ In segment CODE, align 4, keep-with-next
309 static void Joystick_Init (void)
310 {
\ Joystick_Init:
\ 00000000 11B5 PUSH {R0,R4,LR}
311 GPIO_InitTypeDef gpio_init;
312
313
314 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -