📄 bsp.lst
字号:
\ 0000003C 0391 STR R1,[SP, #+12]
304 adc_init.ADC_DataAlign = ADC_DataAlign_Right;
\ 0000003E 0494 STR R4,[SP, #+16]
305 adc_init.ADC_NbrOfChannel = 1;
\ 00000040 8DF81400 STRB R0,[SP, #+20]
306 ADC_Init(ADC1, &adc_init);
\ 00000044 .... LDR.N R4,??DataTable3 ;; 0x40012400
\ 00000046 01A9 ADD R1,SP,#+4
\ 00000048 2000 MOVS R0,R4
\ 0000004A ........ _BLF ADC_Init,??ADC_Init??rT
307
308 ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_13Cycles5);
\ 0000004E 0223 MOVS R3,#+2
\ 00000050 0122 MOVS R2,#+1
\ 00000052 0E21 MOVS R1,#+14
\ 00000054 2000 MOVS R0,R4
\ 00000056 ........ _BLF ADC_RegularChannelConfig,??ADC_RegularChannelConfig??rT
309 ADC_Cmd(ADC1, ENABLE);
\ 0000005A 0121 MOVS R1,#+1
\ 0000005C 2000 MOVS R0,R4
\ 0000005E ........ _BLF ADC_Cmd,??ADC_Cmd??rT
310 ADC_SoftwareStartConvCmd(ADC1, ENABLE);
\ 00000062 0121 MOVS R1,#+1
\ 00000064 2000 MOVS R0,R4
\ 00000066 ........ _BLF ADC_SoftwareStartConvCmd,??ADC_SoftwareStartConvCmd??rT
311 }
\ 0000006A 06B0 ADD SP,SP,#+24
\ 0000006C 10BD POP {R4,PC} ;; return
312
313
314 /*
315 *********************************************************************************************************
316 * BSP_ADC_GetStatus()
317 *
318 * Description : This function initializes the board's ADC
319 *
320 * Argument(s) : adc ID of the ADC to probe. For this board, the only legitimate value is 1.
321 *
322 * Return(s) : The numerator of the binary fraction representing the result of the latest ADC conversion.
323 * This value will be a 12-bit value between 0x0000 and 0x0FFF, inclusive.
324 *
325 * Caller(s) : Application.
326 *
327 * Note(s) : none.
328 *********************************************************************************************************
329 */
330
\ In segment CODE, align 4, keep-with-next
331 CPU_INT16U BSP_ADC_GetStatus (CPU_INT08U adc)
332 {
\ BSP_ADC_GetStatus:
\ 00000000 00B5 PUSH {LR}
\ 00000002 0100 MOVS R1,R0
333 CPU_INT16U result;
334
335
336 result = 0;
\ 00000004 0020 MOVS R0,#+0
337
338 if (adc == 1) {
\ 00000006 0129 CMP R1,#+1
\ 00000008 02D1 BNE.N ??BSP_ADC_GetStatus_0
339 result = ADC_GetConversionValue(ADC1);
\ 0000000A .... LDR.N R0,??DataTable3 ;; 0x40012400
\ 0000000C ........ _BLF ADC_GetConversionValue,??ADC_GetConversionValue??rT
340 }
341
342 return (result);
\ ??BSP_ADC_GetStatus_0:
\ 00000010 00BD POP {PC} ;; return
343 }
344
345 /*
346 *********************************************************************************************************
347 *********************************************************************************************************
348 * PB FUNCTIONS
349 *********************************************************************************************************
350 *********************************************************************************************************
351 */
352
353 /*
354 *********************************************************************************************************
355 * BSP_PB_Init()
356 *
357 * Description : Initialize the board's PB.
358 *
359 * Argument(s) : none.
360 *
361 * Return(s) : none.
362 *
363 * Caller(s) : BSP_Init().
364 *
365 * Note(s) : none.
366 *********************************************************************************************************
367 */
368
\ In segment CODE, align 4, keep-with-next
369 static void BSP_PB_Init (void)
370 {
\ BSP_PB_Init:
\ 00000000 31B5 PUSH {R0,R4,R5,LR}
371 GPIO_InitTypeDef gpio_init;
372
373
374 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
\ 00000002 0121 MOVS R1,#+1
\ 00000004 0420 MOVS R0,#+4
\ 00000006 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
375 gpio_init.GPIO_Pin = BSP_GPIOA_PB_WAKEUP;
\ 0000000A 0120 MOVS R0,#+1
\ 0000000C ADF80000 STRH R0,[SP, #+0]
376 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000010 0424 MOVS R4,#+4
\ 00000012 2000 MOVS R0,R4
\ 00000014 8DF80300 STRB R0,[SP, #+3]
377 GPIO_Init(GPIOB, &gpio_init);
\ 00000018 104D LDR.N R5,??BSP_PB_Init_0 ;; 0x40010c00
\ 0000001A 6946 MOV R1,SP
\ 0000001C 2800 MOVS R0,R5
\ 0000001E ........ _BLF GPIO_Init,??GPIO_Init??rT
378
379 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
\ 00000022 0121 MOVS R1,#+1
\ 00000024 1020 MOVS R0,#+16
\ 00000026 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
380 gpio_init.GPIO_Pin = BSP_GPIOC_PB_TAMPER;
\ 0000002A E002 LSLS R0,R4,#+11
\ 0000002C ADF80000 STRH R0,[SP, #+0]
381 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000030 2000 MOVS R0,R4
\ 00000032 8DF80300 STRB R0,[SP, #+3]
382 GPIO_Init(GPIOB, &gpio_init);
\ 00000036 6946 MOV R1,SP
\ 00000038 2800 MOVS R0,R5
\ 0000003A ........ _BLF GPIO_Init,??GPIO_Init??rT
383
384 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
\ 0000003E 0121 MOVS R1,#+1
\ 00000040 0802 LSLS R0,R1,#+8
\ 00000042 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
385 gpio_init.GPIO_Pin = BSP_GPIOG_PB_KEY;
\ 00000046 A001 LSLS R0,R4,#+6
\ 00000048 ADF80000 STRH R0,[SP, #+0]
386 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 0000004C 8DF80340 STRB R4,[SP, #+3]
387 GPIO_Init(GPIOG, &gpio_init);
\ 00000050 6946 MOV R1,SP
\ 00000052 .... LDR.N R0,??DataTable21 ;; 0x40012000
\ 00000054 ........ _BLF GPIO_Init,??GPIO_Init??rT
388 }
\ 00000058 31BD POP {R0,R4,R5,PC} ;; return
\ 0000005A 00BF Nop
\ ??BSP_PB_Init_0:
\ 0000005C 000C0140 DC32 0x40010c00
389
390 /*
391 *********************************************************************************************************
392 * BSP_PB_GetStatus()
393 *
394 * Description : Get the status of a push button on the board.
395 *
396 * Argument(s) : pb The ID of the push button to probe
397 *
398 * 1 probe the user push button
399 *
400 * Return(s) : DEF_FALSE if the push button is pressed.
401 * DEF_TRUE if the push button is not pressed.
402 *
403 * Caller(s) : Application.
404 *
405 * Note(s) : none.
406 *********************************************************************************************************
407 */
408
\ In segment CODE, align 4, keep-with-next
409 CPU_BOOLEAN BSP_PB_GetStatus (CPU_INT08U pb)
410 {
\ BSP_PB_GetStatus:
\ 00000000 30B5 PUSH {R4,R5,LR}
411 CPU_BOOLEAN status;
412 CPU_INT32U pin;
413
414
415 status = DEF_FALSE;
\ 00000002 0024 MOVS R4,#+0
416
417 switch (pb) {
\ 00000004 0125 MOVS R5,#+1
\ 00000006 0128 CMP R0,#+1
\ 00000008 04D0 BEQ.N ??BSP_PB_GetStatus_0
\ 0000000A 0228 CMP R0,#+2
\ 0000000C 0AD0 BEQ.N ??BSP_PB_GetStatus_1
\ 0000000E 0328 CMP R0,#+3
\ 00000010 10D0 BEQ.N ??BSP_PB_GetStatus_2
\ 00000012 16E0 B.N ??BSP_PB_GetStatus_3
418 case BSP_PB_ID_KEY:
419 pin = GPIO_ReadInputDataBit(GPIOG, BSP_GPIOG_PB_KEY);
\ ??BSP_PB_GetStatus_0:
\ 00000014 2902 LSLS R1,R5,#+8
\ 00000016 .... LDR.N R0,??DataTable21 ;; 0x40012000
\ 00000018 ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
420 if (pin == 0) {
\ 0000001C 0028 CMP R0,#+0
\ 0000001E 10D1 BNE.N ??BSP_PB_GetStatus_3
421 status = DEF_TRUE;
\ 00000020 2C00 MOVS R4,R5
\ 00000022 0EE0 B.N ??BSP_PB_GetStatus_3
422 }
423 break;
424
425 case BSP_PB_ID_WAKEUP:
426 pin = GPIO_ReadInputDataBit(GPIOA, BSP_GPIOA_PB_WAKEUP);
\ ??BSP_PB_GetStatus_1:
\ 00000024 2946 MOV R1,R5
\ 00000026 0848 LDR.N R0,??BSP_PB_GetStatus_4 ;; 0x40010800
\ 00000028 ........ _BLF GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
427 if (pin == 0) {
\ 0000002C 0028 CMP R0,#+0
\ 0000002E 08D1 BNE.N ??BSP_PB_GetStatus_3
428 status = DEF_TRUE;
\ 00000030 2C00 MOVS R4,R5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -