📄 bsp.lst
字号:
\ 00000002 0121 MOVS R1,#+1
\ 00000004 6020 MOVS R0,#+96
\ 00000006 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
315
316 /* Configure JOY_UP, JOY_SEL, JOY_DOWN */
317 gpio_init.GPIO_Pin = GPIOD_JOY_UP | GPIOD_JOY_SEL | GPIOD_JOY_DOWN;
\ 0000000A 5FF4A240 MOVS R0,#+20736
\ 0000000E ADF80000 STRH R0,[SP, #+0]
318 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000012 0424 MOVS R4,#+4
\ 00000014 8DF80340 STRB R4,[SP, #+3]
319 GPIO_Init(GPIOD, &gpio_init);
\ 00000018 6946 MOV R1,SP
\ 0000001A .... LDR.N R0,??DataTable5 ;; 0x40011400
\ 0000001C ........ _BLF GPIO_Init,??GPIO_Init??rT
320
321 /* Configure JOY_LEFT & JOY_RIGHT */
322 gpio_init.GPIO_Pin = GPIOE_JOY_LEFT | GPIOE_JOY_RIGHT;
\ 00000020 0320 MOVS R0,#+3
\ 00000022 ADF80000 STRH R0,[SP, #+0]
323 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000026 8DF80340 STRB R4,[SP, #+3]
324 GPIO_Init(GPIOE, &gpio_init);
\ 0000002A 6946 MOV R1,SP
\ 0000002C .... LDR.N R0,??DataTable4 ;; 0x40011800
\ 0000002E ........ _BLF GPIO_Init,??GPIO_Init??rT
325 }
\ 00000032 11BD POP {R0,R4,PC} ;; return
326
327 /*
328 *********************************************************************************************************
329 * GET JOYSTICK STATUS
330 *
331 * Description : This function is used to get the status of the joystick on the board.
332 *
333 * Arguments : none
334 *
335 * Returns : JOYSTICK_CENTER if the joystick is being pressed.
336 * JOYSTICK_LEFT if the joystick is toggled left.
337 * JOYSTICK_RIGHT if the joystick is toggled right.
338 * JOYSTICK_UP if the joystick is toggled up.
339 * JOYSTICK_DOWN if the joystick is toggled down.
340 *
341 *********************************************************************************************************
342 */
343
\ In segment CODE, align 4, keep-with-next
344 CPU_INT32U Joystick_GetStatus (void)
345 {
\ Joystick_GetStatus:
\ 00000000 30B5 PUSH {R4,R5,LR}
346 CPU_BOOLEAN pin;
347 CPU_BOOLEAN status;
348
349 status = 0;
\ 00000002 0024 MOVS R4,#+0
350
351 pin = GPIO_ReadInputDataBit(GPIOE, GPIOE_JOY_RIGHT);
\ 00000004 .... LDR.N R5,??DataTable4 ;; 0x40011800
\ 00000006 0221 MOVS R1,#+2
\ 00000008 2800 MOVS R0,R5
\ 0000000A ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
352 if (pin == 0) {
\ 0000000E 0028 CMP R0,#+0
\ 00000010 00D1 BNE.N ??Joystick_GetStatus_0
353 status |= JOYSTICK_LEFT;
\ 00000012 0424 MOVS R4,#+4
354 }
355
356 pin = GPIO_ReadInputDataBit(GPIOE, GPIOE_JOY_LEFT);
\ ??Joystick_GetStatus_0:
\ 00000014 0121 MOVS R1,#+1
\ 00000016 2800 MOVS R0,R5
\ 00000018 ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
357 if (pin == 0) {
\ 0000001C 0028 CMP R0,#+0
\ 0000001E 01D1 BNE.N ??Joystick_GetStatus_1
358 status |= JOYSTICK_RIGHT;
\ 00000020 54F00804 ORRS R4,R4,#0x8
359 }
360
361 pin = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_UP);
\ ??Joystick_GetStatus_1:
\ 00000024 .... LDR.N R5,??DataTable5 ;; 0x40011400
\ 00000026 A90D LSRS R1,R5,#+22
\ 00000028 2800 MOVS R0,R5
\ 0000002A ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
362 if (pin == 0) {
\ 0000002E 0028 CMP R0,#+0
\ 00000030 02D1 BNE.N ??Joystick_GetStatus_2
363 status |= JOYSTICK_UP;
\ 00000032 54F00104 ORRS R4,R4,#0x1
\ 00000036 E4B2 UXTB R4,R4
364 }
365
366 pin = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_DOWN);
\ ??Joystick_GetStatus_2:
\ 00000038 5FF48041 MOVS R1,#+16384
\ 0000003C 2800 MOVS R0,R5
\ 0000003E ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
367 if (pin == 0) {
\ 00000042 0028 CMP R0,#+0
\ 00000044 02D1 BNE.N ??Joystick_GetStatus_3
368 status |= JOYSTICK_DOWN;
\ 00000046 54F00204 ORRS R4,R4,#0x2
\ 0000004A E4B2 UXTB R4,R4
369 }
370
371 pin = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_SEL);
\ ??Joystick_GetStatus_3:
\ 0000004C A90C LSRS R1,R5,#+18
\ 0000004E 2800 MOVS R0,R5
\ 00000050 ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
372 if (pin == 0) {
\ 00000054 0028 CMP R0,#+0
\ 00000056 02D1 BNE.N ??Joystick_GetStatus_4
373 status |= JOYSTICK_CENTER;
\ 00000058 54F01004 ORRS R4,R4,#0x10
\ 0000005C E4B2 UXTB R4,R4
374 }
375
376 return (status);
\ ??Joystick_GetStatus_4:
\ 0000005E 2000 MOVS R0,R4
\ 00000060 30BD POP {R4,R5,PC} ;; return
377 }
378
379 /*
380 *********************************************************************************************************
381 * LED INITIALIZATION
382 *
383 * Description : This function initializes the board's LEDs
384 *
385 * Arguments : none
386 *
387 * Returns : none
388 *********************************************************************************************************
389 */
390
\ In segment CODE, align 4, keep-with-next
391 static void LED_Init (void)
392 {
\ LED_Init:
\ 00000000 01B5 PUSH {R0,LR}
393 GPIO_InitTypeDef gpio_init;
394
395
396 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
\ 00000002 0121 MOVS R1,#+1
\ 00000004 1020 MOVS R0,#+16
\ 00000006 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
397
398 gpio_init.GPIO_Pin = GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4;
\ 0000000A 5FF47070 MOVS R0,#+960
\ 0000000E ADF80000 STRH R0,[SP, #+0]
399 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
\ 00000012 0320 MOVS R0,#+3
\ 00000014 8DF80200 STRB R0,[SP, #+2]
400 gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
\ 00000018 1020 MOVS R0,#+16
\ 0000001A 8DF80300 STRB R0,[SP, #+3]
401 GPIO_Init(GPIOC, &gpio_init);
\ 0000001E 6946 MOV R1,SP
\ 00000020 .... LDR.N R0,??DataTable9 ;; 0x40011000
\ 00000022 ........ _BLF GPIO_Init,??GPIO_Init??rT
402 }
\ 00000026 01BD POP {R0,PC} ;; return
403
404
405 /*
406 *********************************************************************************************************
407 * LED ON
408 *
409 * Description : This function is used to control any or all the LEDs on the board.
410 *
411 * Arguments : led is the number of the LED to control
412 * 0 indicates that you want ALL the LEDs to be ON
413 * 1 turns ON user LED on the board
414 *
415 * Returns : none
416 *********************************************************************************************************
417 */
418
\ In segment CODE, align 4, keep-with-next
419 void LED_On (CPU_INT08U led)
420 {
\ LED_On:
\ 00000000 00B5 PUSH {LR}
\ 00000002 0100 MOVS R1,R0
421 switch (led) {
\ 00000004 .... LDR.N R0,??DataTable9 ;; 0x40011000
\ 00000006 0429 CMP R1,#+4
\ 00000008 18D8 BHI.N ??LED_On_1
\ 0000000A DFE801F0 TBB [PC, R1]
\ ??LED_On_0:
\ 0000000E 03080C10 DC8 +3,+8,+12,+16
\ 00000012 1400 DC8 +20,+0
422 case 0:
423 GPIO_SetBits(GPIOC, GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4);
\ ??LED_On_2:
\ 00000014 5FF47071 MOVS R1,#+960
\ 00000018 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 0000001C 00BD POP {PC}
424 break;
425
426 case 1:
427 GPIO_SetBits(GPIOC, GPIOC_LED1);
\ ??LED_On_3:
\ 0000001E 4021 MOVS R1,#+64
\ 00000020 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 00000024 00BD POP {PC}
428 break;
429
430 case 2:
431 GPIO_SetBits(GPIOC, GPIOC_LED2);
\ ??LED_On_4:
\ 00000026 8021 MOVS R1,#+128
\ 00000028 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 0000002C 00BD POP {PC}
432 break;
433
434 case 3:
435 GPIO_SetBits(GPIOC, GPIOC_LED3);
\ ??LED_On_5:
\ 0000002E 810D LSRS R1,R0,#+22
\ 00000030 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 00000034 00BD POP {PC}
436 break;
437
438 case 4:
439 GPIO_SetBits(GPIOC, GPIOC_LED4);
\ ??LED_On_6:
\ 00000036 410D LSRS R1,R0,#+21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -