ARM GAS  /tmp/ccwhiVas.s 			page 1


   1              		.cpu cortex-m7
   2              		.arch armv7e-m
   3              		.fpu fpv5-d16
   4              		.eabi_attribute 28, 1
   5              		.eabi_attribute 20, 1
   6              		.eabi_attribute 21, 1
   7              		.eabi_attribute 23, 3
   8              		.eabi_attribute 24, 1
   9              		.eabi_attribute 25, 1
  10              		.eabi_attribute 26, 1
  11              		.eabi_attribute 30, 1
  12              		.eabi_attribute 34, 1
  13              		.eabi_attribute 18, 4
  14              		.file	"bsp_driver_sd.c"
  15              		.text
  16              	.Ltext0:
  17              		.cfi_sections	.debug_frame
  18              		.file 1 "Src/bsp_driver_sd.c"
  19              		.section	.text.BSP_SD_ITConfig,"ax",%progbits
  20              		.align	1
  21              		.weak	BSP_SD_ITConfig
  22              		.syntax unified
  23              		.thumb
  24              		.thumb_func
  26              	BSP_SD_ITConfig:
  27              	.LFB142:
   1:Src/bsp_driver_sd.c **** /* USER CODE BEGIN Header */
   2:Src/bsp_driver_sd.c **** /**
   3:Src/bsp_driver_sd.c ****  ******************************************************************************
   4:Src/bsp_driver_sd.c ****  * @file    bsp_driver_sd.c for F7 (based on stm32756g_eval_sd.c)
   5:Src/bsp_driver_sd.c ****  * @brief   This file includes a generic uSD card driver.
   6:Src/bsp_driver_sd.c ****  *          To be completed by the user according to the board used for the project.
   7:Src/bsp_driver_sd.c ****  * @note    Some functions generated as weak: they can be overridden by
   8:Src/bsp_driver_sd.c ****  *          - code in user files
   9:Src/bsp_driver_sd.c ****  *          - or BSP code from the FW pack files
  10:Src/bsp_driver_sd.c ****  *          if such files are added to the generated project (by the user).
  11:Src/bsp_driver_sd.c ****  ******************************************************************************
  12:Src/bsp_driver_sd.c ****   * @attention
  13:Src/bsp_driver_sd.c ****   *
  14:Src/bsp_driver_sd.c ****   * Copyright (c) 2023 STMicroelectronics.
  15:Src/bsp_driver_sd.c ****   * All rights reserved.
  16:Src/bsp_driver_sd.c ****   *
  17:Src/bsp_driver_sd.c ****   * This software is licensed under terms that can be found in the LICENSE file
  18:Src/bsp_driver_sd.c ****   * in the root directory of this software component.
  19:Src/bsp_driver_sd.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
  20:Src/bsp_driver_sd.c ****   *
  21:Src/bsp_driver_sd.c ****  ******************************************************************************
  22:Src/bsp_driver_sd.c ****  */
  23:Src/bsp_driver_sd.c **** /* USER CODE END Header */
  24:Src/bsp_driver_sd.c **** 
  25:Src/bsp_driver_sd.c **** #ifdef OLD_API
  26:Src/bsp_driver_sd.c **** /* kept to avoid issue when migrating old projects. */
  27:Src/bsp_driver_sd.c **** /* USER CODE BEGIN 0 */
  28:Src/bsp_driver_sd.c **** 
  29:Src/bsp_driver_sd.c **** /* USER CODE END 0 */
  30:Src/bsp_driver_sd.c **** #else
  31:Src/bsp_driver_sd.c **** /* USER CODE BEGIN FirstSection */
ARM GAS  /tmp/ccwhiVas.s 			page 2


  32:Src/bsp_driver_sd.c **** /* can be used to modify / undefine following code or add new definitions */
  33:Src/bsp_driver_sd.c **** /* USER CODE END FirstSection */
  34:Src/bsp_driver_sd.c **** /* Includes ------------------------------------------------------------------*/
  35:Src/bsp_driver_sd.c **** #include "bsp_driver_sd.h"
  36:Src/bsp_driver_sd.c **** 
  37:Src/bsp_driver_sd.c **** /* Extern variables ---------------------------------------------------------*/
  38:Src/bsp_driver_sd.c **** 
  39:Src/bsp_driver_sd.c **** extern SD_HandleTypeDef hsd1;
  40:Src/bsp_driver_sd.c **** 
  41:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeInitSection */
  42:Src/bsp_driver_sd.c **** /* can be used to modify / undefine following code or add code */
  43:Src/bsp_driver_sd.c **** /* USER CODE END BeforeInitSection */
  44:Src/bsp_driver_sd.c **** /**
  45:Src/bsp_driver_sd.c ****   * @brief  Initializes the SD card device.
  46:Src/bsp_driver_sd.c ****   * @retval SD status
  47:Src/bsp_driver_sd.c ****   */
  48:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_Init(void)
  49:Src/bsp_driver_sd.c **** {
  50:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
  51:Src/bsp_driver_sd.c ****   /* Check if the SD card is plugged in the slot */
  52:Src/bsp_driver_sd.c ****   if (BSP_SD_IsDetected() != SD_PRESENT)
  53:Src/bsp_driver_sd.c ****   {
  54:Src/bsp_driver_sd.c ****     return MSD_ERROR_SD_NOT_PRESENT;
  55:Src/bsp_driver_sd.c ****   }
  56:Src/bsp_driver_sd.c ****   /* HAL SD initialization */
  57:Src/bsp_driver_sd.c ****   sd_state = HAL_SD_Init(&hsd1);
  58:Src/bsp_driver_sd.c ****   /* Configure SD Bus width (4 bits mode selected) */
  59:Src/bsp_driver_sd.c ****   if (sd_state == MSD_OK)
  60:Src/bsp_driver_sd.c ****   {
  61:Src/bsp_driver_sd.c ****     /* Enable wide operation */
  62:Src/bsp_driver_sd.c ****     if (HAL_SD_ConfigWideBusOperation(&hsd1, SDMMC_BUS_WIDE_4B) != HAL_OK)
  63:Src/bsp_driver_sd.c ****     {
  64:Src/bsp_driver_sd.c ****       sd_state = MSD_ERROR;
  65:Src/bsp_driver_sd.c ****     }
  66:Src/bsp_driver_sd.c ****   }
  67:Src/bsp_driver_sd.c **** 
  68:Src/bsp_driver_sd.c ****   return sd_state;
  69:Src/bsp_driver_sd.c **** }
  70:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */
  71:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
  72:Src/bsp_driver_sd.c **** /* USER CODE END AfterInitSection */
  73:Src/bsp_driver_sd.c **** 
  74:Src/bsp_driver_sd.c **** /* USER CODE BEGIN InterruptMode */
  75:Src/bsp_driver_sd.c **** /**
  76:Src/bsp_driver_sd.c ****   * @brief  Configures Interrupt mode for SD detection pin.
  77:Src/bsp_driver_sd.c ****   * @retval Returns 0
  78:Src/bsp_driver_sd.c ****   */
  79:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ITConfig(void)
  80:Src/bsp_driver_sd.c **** {
  28              		.loc 1 80 1 view -0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  32              		@ link register save eliminated.
  81:Src/bsp_driver_sd.c ****   /* Code to be updated by the user or replaced by one from the FW pack (in a stmxxxx_sd.c file) */
  82:Src/bsp_driver_sd.c **** 
  83:Src/bsp_driver_sd.c ****   return (uint8_t)0;
ARM GAS  /tmp/ccwhiVas.s 			page 3


  33              		.loc 1 83 3 view .LVU1
  84:Src/bsp_driver_sd.c **** }
  34              		.loc 1 84 1 is_stmt 0 view .LVU2
  35 0000 0020     		movs	r0, #0
  36 0002 7047     		bx	lr
  37              		.cfi_endproc
  38              	.LFE142:
  40              		.section	.text.BSP_SD_ReadBlocks,"ax",%progbits
  41              		.align	1
  42              		.weak	BSP_SD_ReadBlocks
  43              		.syntax unified
  44              		.thumb
  45              		.thumb_func
  47              	BSP_SD_ReadBlocks:
  48              	.LVL0:
  49              	.LFB143:
  85:Src/bsp_driver_sd.c **** 
  86:Src/bsp_driver_sd.c **** /* USER CODE END InterruptMode */
  87:Src/bsp_driver_sd.c **** 
  88:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeReadBlocksSection */
  89:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
  90:Src/bsp_driver_sd.c **** /* USER CODE END BeforeReadBlocksSection */
  91:Src/bsp_driver_sd.c **** /**
  92:Src/bsp_driver_sd.c ****   * @brief  Reads block(s) from a specified address in an SD card, in polling mode.
  93:Src/bsp_driver_sd.c ****   * @param  pData: Pointer to the buffer that will contain the data to transmit
  94:Src/bsp_driver_sd.c ****   * @param  ReadAddr: Address from where data is to be read
  95:Src/bsp_driver_sd.c ****   * @param  NumOfBlocks: Number of SD blocks to read
  96:Src/bsp_driver_sd.c ****   * @param  Timeout: Timeout for read operation
  97:Src/bsp_driver_sd.c ****   * @retval SD status
  98:Src/bsp_driver_sd.c ****   */
  99:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t
 100:Src/bsp_driver_sd.c **** {
  50              		.loc 1 100 1 is_stmt 1 view -0
  51              		.cfi_startproc
  52              		@ args = 0, pretend = 0, frame = 0
  53              		@ frame_needed = 0, uses_anonymous_args = 0
  54              		.loc 1 100 1 is_stmt 0 view .LVU4
  55 0000 00B5     		push	{lr}
  56              	.LCFI0:
  57              		.cfi_def_cfa_offset 4
  58              		.cfi_offset 14, -4
  59 0002 83B0     		sub	sp, sp, #12
  60              	.LCFI1:
  61              		.cfi_def_cfa_offset 16
 101:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
  62              		.loc 1 101 3 is_stmt 1 view .LVU5
  63              	.LVL1:
 102:Src/bsp_driver_sd.c **** 
 103:Src/bsp_driver_sd.c ****   if (HAL_SD_ReadBlocks(&hsd1, (uint8_t *)pData, ReadAddr, NumOfBlocks, Timeout) != HAL_OK)
  64              		.loc 1 103 3 view .LVU6
  65              		.loc 1 103 7 is_stmt 0 view .LVU7
  66 0004 0093     		str	r3, [sp]
  67 0006 1346     		mov	r3, r2
  68              	.LVL2:
  69              		.loc 1 103 7 view .LVU8
  70 0008 0A46     		mov	r2, r1
  71              	.LVL3:
ARM GAS  /tmp/ccwhiVas.s 			page 4


  72              		.loc 1 103 7 view .LVU9
  73 000a 0146     		mov	r1, r0
  74              	.LVL4:
  75              		.loc 1 103 7 view .LVU10
  76 000c 0348     		ldr	r0, .L6
  77              	.LVL5:
  78              		.loc 1 103 7 view .LVU11
  79 000e FFF7FEFF 		bl	HAL_SD_ReadBlocks
  80              	.LVL6:
  81              		.loc 1 103 6 discriminator 1 view .LVU12
  82 0012 00B1     		cbz	r0, .L3
 104:Src/bsp_driver_sd.c ****   {
 105:Src/bsp_driver_sd.c ****     sd_state = MSD_ERROR;
  83              		.loc 1 105 14 view .LVU13
  84 0014 0120     		movs	r0, #1
  85              	.L3:
  86              	.LVL7:
 106:Src/bsp_driver_sd.c ****   }
 107:Src/bsp_driver_sd.c **** 
 108:Src/bsp_driver_sd.c ****   return sd_state;
  87              		.loc 1 108 3 is_stmt 1 view .LVU14
 109:Src/bsp_driver_sd.c **** }
  88              		.loc 1 109 1 is_stmt 0 view .LVU15
  89 0016 03B0     		add	sp, sp, #12
  90              	.LCFI2:
  91              		.cfi_def_cfa_offset 4
  92              		@ sp needed
  93 0018 5DF804FB 		ldr	pc, [sp], #4
  94              	.L7:
  95              		.align	2
  96              	.L6:
  97 001c 00000000 		.word	hsd1
  98              		.cfi_endproc
  99              	.LFE143:
 101              		.section	.text.BSP_SD_WriteBlocks,"ax",%progbits
 102              		.align	1
 103              		.weak	BSP_SD_WriteBlocks
 104              		.syntax unified
 105              		.thumb
 106              		.thumb_func
 108              	BSP_SD_WriteBlocks:
 109              	.LVL8:
 110              	.LFB144:
 110:Src/bsp_driver_sd.c **** 
 111:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeWriteBlocksSection */
 112:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 113:Src/bsp_driver_sd.c **** /* USER CODE END BeforeWriteBlocksSection */
 114:Src/bsp_driver_sd.c **** /**
 115:Src/bsp_driver_sd.c ****   * @brief  Writes block(s) to a specified address in an SD card, in polling mode.
 116:Src/bsp_driver_sd.c ****   * @param  pData: Pointer to the buffer that will contain the data to transmit
 117:Src/bsp_driver_sd.c ****   * @param  WriteAddr: Address from where data is to be written
 118:Src/bsp_driver_sd.c ****   * @param  NumOfBlocks: Number of SD blocks to write
 119:Src/bsp_driver_sd.c ****   * @param  Timeout: Timeout for write operation
 120:Src/bsp_driver_sd.c ****   * @retval SD status
 121:Src/bsp_driver_sd.c ****   */
 122:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32
 123:Src/bsp_driver_sd.c **** {
ARM GAS  /tmp/ccwhiVas.s 			page 5


 111              		.loc 1 123 1 is_stmt 1 view -0
 112              		.cfi_startproc
 113              		@ args = 0, pretend = 0, frame = 0
 114              		@ frame_needed = 0, uses_anonymous_args = 0
 115              		.loc 1 123 1 is_stmt 0 view .LVU17
 116 0000 00B5     		push	{lr}
 117              	.LCFI3:
 118              		.cfi_def_cfa_offset 4
 119              		.cfi_offset 14, -4
 120 0002 83B0     		sub	sp, sp, #12
 121              	.LCFI4:
 122              		.cfi_def_cfa_offset 16
 124:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
 123              		.loc 1 124 3 is_stmt 1 view .LVU18
 124              	.LVL9:
 125:Src/bsp_driver_sd.c **** 
 126:Src/bsp_driver_sd.c ****   if (HAL_SD_WriteBlocks(&hsd1, (uint8_t *)pData, WriteAddr, NumOfBlocks, Timeout) != HAL_OK)
 125              		.loc 1 126 3 view .LVU19
 126              		.loc 1 126 7 is_stmt 0 view .LVU20
 127 0004 0093     		str	r3, [sp]
 128 0006 1346     		mov	r3, r2
 129              	.LVL10:
 130              		.loc 1 126 7 view .LVU21
 131 0008 0A46     		mov	r2, r1
 132              	.LVL11:
 133              		.loc 1 126 7 view .LVU22
 134 000a 0146     		mov	r1, r0
 135              	.LVL12:
 136              		.loc 1 126 7 view .LVU23
 137 000c 0348     		ldr	r0, .L12
 138              	.LVL13:
 139              		.loc 1 126 7 view .LVU24
 140 000e FFF7FEFF 		bl	HAL_SD_WriteBlocks
 141              	.LVL14:
 142              		.loc 1 126 6 discriminator 1 view .LVU25
 143 0012 00B1     		cbz	r0, .L9
 127:Src/bsp_driver_sd.c ****   {
 128:Src/bsp_driver_sd.c ****     sd_state = MSD_ERROR;
 144              		.loc 1 128 14 view .LVU26
 145 0014 0120     		movs	r0, #1
 146              	.L9:
 147              	.LVL15:
 129:Src/bsp_driver_sd.c ****   }
 130:Src/bsp_driver_sd.c **** 
 131:Src/bsp_driver_sd.c ****   return sd_state;
 148              		.loc 1 131 3 is_stmt 1 view .LVU27
 132:Src/bsp_driver_sd.c **** }
 149              		.loc 1 132 1 is_stmt 0 view .LVU28
 150 0016 03B0     		add	sp, sp, #12
 151              	.LCFI5:
 152              		.cfi_def_cfa_offset 4
 153              		@ sp needed
 154 0018 5DF804FB 		ldr	pc, [sp], #4
 155              	.L13:
 156              		.align	2
 157              	.L12:
 158 001c 00000000 		.word	hsd1
ARM GAS  /tmp/ccwhiVas.s 			page 6


 159              		.cfi_endproc
 160              	.LFE144:
 162              		.section	.text.BSP_SD_ReadBlocks_DMA,"ax",%progbits
 163              		.align	1
 164              		.weak	BSP_SD_ReadBlocks_DMA
 165              		.syntax unified
 166              		.thumb
 167              		.thumb_func
 169              	BSP_SD_ReadBlocks_DMA:
 170              	.LVL16:
 171              	.LFB145:
 133:Src/bsp_driver_sd.c **** 
 134:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeReadDMABlocksSection */
 135:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 136:Src/bsp_driver_sd.c **** /* USER CODE END BeforeReadDMABlocksSection */
 137:Src/bsp_driver_sd.c **** /**
 138:Src/bsp_driver_sd.c ****   * @brief  Reads block(s) from a specified address in an SD card, in DMA mode.
 139:Src/bsp_driver_sd.c ****   * @param  pData: Pointer to the buffer that will contain the data to transmit
 140:Src/bsp_driver_sd.c ****   * @param  ReadAddr: Address from where data is to be read
 141:Src/bsp_driver_sd.c ****   * @param  NumOfBlocks: Number of SD blocks to read
 142:Src/bsp_driver_sd.c ****   * @retval SD status
 143:Src/bsp_driver_sd.c ****   */
 144:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks)
 145:Src/bsp_driver_sd.c **** {
 172              		.loc 1 145 1 is_stmt 1 view -0
 173              		.cfi_startproc
 174              		@ args = 0, pretend = 0, frame = 0
 175              		@ frame_needed = 0, uses_anonymous_args = 0
 176              		.loc 1 145 1 is_stmt 0 view .LVU30
 177 0000 08B5     		push	{r3, lr}
 178              	.LCFI6:
 179              		.cfi_def_cfa_offset 8
 180              		.cfi_offset 3, -8
 181              		.cfi_offset 14, -4
 182 0002 1346     		mov	r3, r2
 146:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
 183              		.loc 1 146 3 is_stmt 1 view .LVU31
 184              	.LVL17:
 147:Src/bsp_driver_sd.c **** 
 148:Src/bsp_driver_sd.c ****   /* Read block(s) in DMA transfer mode */
 149:Src/bsp_driver_sd.c ****   if (HAL_SD_ReadBlocks_DMA(&hsd1, (uint8_t *)pData, ReadAddr, NumOfBlocks) != HAL_OK)
 185              		.loc 1 149 3 view .LVU32
 186              		.loc 1 149 7 is_stmt 0 view .LVU33
 187 0004 0A46     		mov	r2, r1
 188              	.LVL18:
 189              		.loc 1 149 7 view .LVU34
 190 0006 0146     		mov	r1, r0
 191              	.LVL19:
 192              		.loc 1 149 7 view .LVU35
 193 0008 0248     		ldr	r0, .L18
 194              	.LVL20:
 195              		.loc 1 149 7 view .LVU36
 196 000a FFF7FEFF 		bl	HAL_SD_ReadBlocks_DMA
 197              	.LVL21:
 198              		.loc 1 149 6 discriminator 1 view .LVU37
 199 000e 00B1     		cbz	r0, .L15
 150:Src/bsp_driver_sd.c ****   {
ARM GAS  /tmp/ccwhiVas.s 			page 7


 151:Src/bsp_driver_sd.c ****     sd_state = MSD_ERROR;
 200              		.loc 1 151 14 view .LVU38
 201 0010 0120     		movs	r0, #1
 202              	.L15:
 203              	.LVL22:
 152:Src/bsp_driver_sd.c ****   }
 153:Src/bsp_driver_sd.c **** 
 154:Src/bsp_driver_sd.c ****   return sd_state;
 204              		.loc 1 154 3 is_stmt 1 view .LVU39
 155:Src/bsp_driver_sd.c **** }
 205              		.loc 1 155 1 is_stmt 0 view .LVU40
 206 0012 08BD     		pop	{r3, pc}
 207              	.L19:
 208              		.align	2
 209              	.L18:
 210 0014 00000000 		.word	hsd1
 211              		.cfi_endproc
 212              	.LFE145:
 214              		.section	.text.BSP_SD_WriteBlocks_DMA,"ax",%progbits
 215              		.align	1
 216              		.weak	BSP_SD_WriteBlocks_DMA
 217              		.syntax unified
 218              		.thumb
 219              		.thumb_func
 221              	BSP_SD_WriteBlocks_DMA:
 222              	.LVL23:
 223              	.LFB146:
 156:Src/bsp_driver_sd.c **** 
 157:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeWriteDMABlocksSection */
 158:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 159:Src/bsp_driver_sd.c **** /* USER CODE END BeforeWriteDMABlocksSection */
 160:Src/bsp_driver_sd.c **** /**
 161:Src/bsp_driver_sd.c ****   * @brief  Writes block(s) to a specified address in an SD card, in DMA mode.
 162:Src/bsp_driver_sd.c ****   * @param  pData: Pointer to the buffer that will contain the data to transmit
 163:Src/bsp_driver_sd.c ****   * @param  WriteAddr: Address from where data is to be written
 164:Src/bsp_driver_sd.c ****   * @param  NumOfBlocks: Number of SD blocks to write
 165:Src/bsp_driver_sd.c ****   * @retval SD status
 166:Src/bsp_driver_sd.c ****   */
 167:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks)
 168:Src/bsp_driver_sd.c **** {
 224              		.loc 1 168 1 is_stmt 1 view -0
 225              		.cfi_startproc
 226              		@ args = 0, pretend = 0, frame = 0
 227              		@ frame_needed = 0, uses_anonymous_args = 0
 228              		.loc 1 168 1 is_stmt 0 view .LVU42
 229 0000 08B5     		push	{r3, lr}
 230              	.LCFI7:
 231              		.cfi_def_cfa_offset 8
 232              		.cfi_offset 3, -8
 233              		.cfi_offset 14, -4
 234 0002 1346     		mov	r3, r2
 169:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
 235              		.loc 1 169 3 is_stmt 1 view .LVU43
 236              	.LVL24:
 170:Src/bsp_driver_sd.c **** 
 171:Src/bsp_driver_sd.c ****   /* Write block(s) in DMA transfer mode */
 172:Src/bsp_driver_sd.c ****   if (HAL_SD_WriteBlocks_DMA(&hsd1, (uint8_t *)pData, WriteAddr, NumOfBlocks) != HAL_OK)
ARM GAS  /tmp/ccwhiVas.s 			page 8


 237              		.loc 1 172 3 view .LVU44
 238              		.loc 1 172 7 is_stmt 0 view .LVU45
 239 0004 0A46     		mov	r2, r1
 240              	.LVL25:
 241              		.loc 1 172 7 view .LVU46
 242 0006 0146     		mov	r1, r0
 243              	.LVL26:
 244              		.loc 1 172 7 view .LVU47
 245 0008 0248     		ldr	r0, .L24
 246              	.LVL27:
 247              		.loc 1 172 7 view .LVU48
 248 000a FFF7FEFF 		bl	HAL_SD_WriteBlocks_DMA
 249              	.LVL28:
 250              		.loc 1 172 6 discriminator 1 view .LVU49
 251 000e 00B1     		cbz	r0, .L21
 173:Src/bsp_driver_sd.c ****   {
 174:Src/bsp_driver_sd.c ****     sd_state = MSD_ERROR;
 252              		.loc 1 174 14 view .LVU50
 253 0010 0120     		movs	r0, #1
 254              	.L21:
 255              	.LVL29:
 175:Src/bsp_driver_sd.c ****   }
 176:Src/bsp_driver_sd.c **** 
 177:Src/bsp_driver_sd.c ****   return sd_state;
 256              		.loc 1 177 3 is_stmt 1 view .LVU51
 178:Src/bsp_driver_sd.c **** }
 257              		.loc 1 178 1 is_stmt 0 view .LVU52
 258 0012 08BD     		pop	{r3, pc}
 259              	.L25:
 260              		.align	2
 261              	.L24:
 262 0014 00000000 		.word	hsd1
 263              		.cfi_endproc
 264              	.LFE146:
 266              		.section	.text.BSP_SD_Erase,"ax",%progbits
 267              		.align	1
 268              		.weak	BSP_SD_Erase
 269              		.syntax unified
 270              		.thumb
 271              		.thumb_func
 273              	BSP_SD_Erase:
 274              	.LVL30:
 275              	.LFB147:
 179:Src/bsp_driver_sd.c **** 
 180:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeEraseSection */
 181:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 182:Src/bsp_driver_sd.c **** /* USER CODE END BeforeEraseSection */
 183:Src/bsp_driver_sd.c **** /**
 184:Src/bsp_driver_sd.c ****   * @brief  Erases the specified memory area of the given SD card.
 185:Src/bsp_driver_sd.c ****   * @param  StartAddr: Start byte address
 186:Src/bsp_driver_sd.c ****   * @param  EndAddr: End byte address
 187:Src/bsp_driver_sd.c ****   * @retval SD status
 188:Src/bsp_driver_sd.c ****   */
 189:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
 190:Src/bsp_driver_sd.c **** {
 276              		.loc 1 190 1 is_stmt 1 view -0
 277              		.cfi_startproc
ARM GAS  /tmp/ccwhiVas.s 			page 9


 278              		@ args = 0, pretend = 0, frame = 0
 279              		@ frame_needed = 0, uses_anonymous_args = 0
 280              		.loc 1 190 1 is_stmt 0 view .LVU54
 281 0000 08B5     		push	{r3, lr}
 282              	.LCFI8:
 283              		.cfi_def_cfa_offset 8
 284              		.cfi_offset 3, -8
 285              		.cfi_offset 14, -4
 286 0002 0A46     		mov	r2, r1
 191:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
 287              		.loc 1 191 3 is_stmt 1 view .LVU55
 288              	.LVL31:
 192:Src/bsp_driver_sd.c **** 
 193:Src/bsp_driver_sd.c ****   if (HAL_SD_Erase(&hsd1, StartAddr, EndAddr) != HAL_OK)
 289              		.loc 1 193 3 view .LVU56
 290              		.loc 1 193 7 is_stmt 0 view .LVU57
 291 0004 0146     		mov	r1, r0
 292              	.LVL32:
 293              		.loc 1 193 7 view .LVU58
 294 0006 0348     		ldr	r0, .L30
 295              	.LVL33:
 296              		.loc 1 193 7 view .LVU59
 297 0008 FFF7FEFF 		bl	HAL_SD_Erase
 298              	.LVL34:
 299              		.loc 1 193 6 discriminator 1 view .LVU60
 300 000c 00B1     		cbz	r0, .L27
 194:Src/bsp_driver_sd.c ****   {
 195:Src/bsp_driver_sd.c ****     sd_state = MSD_ERROR;
 301              		.loc 1 195 14 view .LVU61
 302 000e 0120     		movs	r0, #1
 303              	.L27:
 304              	.LVL35:
 196:Src/bsp_driver_sd.c ****   }
 197:Src/bsp_driver_sd.c **** 
 198:Src/bsp_driver_sd.c ****   return sd_state;
 305              		.loc 1 198 3 is_stmt 1 view .LVU62
 199:Src/bsp_driver_sd.c **** }
 306              		.loc 1 199 1 is_stmt 0 view .LVU63
 307 0010 08BD     		pop	{r3, pc}
 308              	.L31:
 309 0012 00BF     		.align	2
 310              	.L30:
 311 0014 00000000 		.word	hsd1
 312              		.cfi_endproc
 313              	.LFE147:
 315              		.section	.text.BSP_SD_GetCardState,"ax",%progbits
 316              		.align	1
 317              		.weak	BSP_SD_GetCardState
 318              		.syntax unified
 319              		.thumb
 320              		.thumb_func
 322              	BSP_SD_GetCardState:
 323              	.LFB148:
 200:Src/bsp_driver_sd.c **** 
 201:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeGetCardStateSection */
 202:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 203:Src/bsp_driver_sd.c **** /* USER CODE END BeforeGetCardStateSection */
ARM GAS  /tmp/ccwhiVas.s 			page 10


 204:Src/bsp_driver_sd.c **** 
 205:Src/bsp_driver_sd.c **** /**
 206:Src/bsp_driver_sd.c ****   * @brief  Gets the current SD card data status.
 207:Src/bsp_driver_sd.c ****   * @param  None
 208:Src/bsp_driver_sd.c ****   * @retval Data transfer state.
 209:Src/bsp_driver_sd.c ****   *          This value can be one of the following values:
 210:Src/bsp_driver_sd.c ****   *            @arg  SD_TRANSFER_OK: No data transfer is acting
 211:Src/bsp_driver_sd.c ****   *            @arg  SD_TRANSFER_BUSY: Data transfer is acting
 212:Src/bsp_driver_sd.c ****   */
 213:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_GetCardState(void)
 214:Src/bsp_driver_sd.c **** {
 324              		.loc 1 214 1 is_stmt 1 view -0
 325              		.cfi_startproc
 326              		@ args = 0, pretend = 0, frame = 0
 327              		@ frame_needed = 0, uses_anonymous_args = 0
 328 0000 08B5     		push	{r3, lr}
 329              	.LCFI9:
 330              		.cfi_def_cfa_offset 8
 331              		.cfi_offset 3, -8
 332              		.cfi_offset 14, -4
 215:Src/bsp_driver_sd.c ****   return ((HAL_SD_GetCardState(&hsd1) == HAL_SD_CARD_TRANSFER ) ? SD_TRANSFER_OK : SD_TRANSFER_BUSY
 333              		.loc 1 215 3 view .LVU65
 334              		.loc 1 215 12 is_stmt 0 view .LVU66
 335 0002 0348     		ldr	r0, .L34
 336 0004 FFF7FEFF 		bl	HAL_SD_GetCardState
 337              	.LVL36:
 216:Src/bsp_driver_sd.c **** }
 338              		.loc 1 216 1 view .LVU67
 339 0008 0438     		subs	r0, r0, #4
 340 000a 18BF     		it	ne
 341 000c 0120     		movne	r0, #1
 342 000e 08BD     		pop	{r3, pc}
 343              	.L35:
 344              		.align	2
 345              	.L34:
 346 0010 00000000 		.word	hsd1
 347              		.cfi_endproc
 348              	.LFE148:
 350              		.section	.text.BSP_SD_GetCardInfo,"ax",%progbits
 351              		.align	1
 352              		.weak	BSP_SD_GetCardInfo
 353              		.syntax unified
 354              		.thumb
 355              		.thumb_func
 357              	BSP_SD_GetCardInfo:
 358              	.LVL37:
 359              	.LFB149:
 217:Src/bsp_driver_sd.c **** 
 218:Src/bsp_driver_sd.c **** /**
 219:Src/bsp_driver_sd.c ****   * @brief  Get SD information about specific SD card.
 220:Src/bsp_driver_sd.c ****   * @param  CardInfo: Pointer to HAL_SD_CardInfoTypedef structure
 221:Src/bsp_driver_sd.c ****   * @retval None
 222:Src/bsp_driver_sd.c ****   */
 223:Src/bsp_driver_sd.c **** __weak void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypeDef *CardInfo)
 224:Src/bsp_driver_sd.c **** {
 360              		.loc 1 224 1 is_stmt 1 view -0
 361              		.cfi_startproc
ARM GAS  /tmp/ccwhiVas.s 			page 11


 362              		@ args = 0, pretend = 0, frame = 0
 363              		@ frame_needed = 0, uses_anonymous_args = 0
 364              		.loc 1 224 1 is_stmt 0 view .LVU69
 365 0000 08B5     		push	{r3, lr}
 366              	.LCFI10:
 367              		.cfi_def_cfa_offset 8
 368              		.cfi_offset 3, -8
 369              		.cfi_offset 14, -4
 370 0002 0146     		mov	r1, r0
 225:Src/bsp_driver_sd.c ****   /* Get SD card Information */
 226:Src/bsp_driver_sd.c ****   HAL_SD_GetCardInfo(&hsd1, CardInfo);
 371              		.loc 1 226 3 is_stmt 1 view .LVU70
 372 0004 0148     		ldr	r0, .L38
 373              	.LVL38:
 374              		.loc 1 226 3 is_stmt 0 view .LVU71
 375 0006 FFF7FEFF 		bl	HAL_SD_GetCardInfo
 376              	.LVL39:
 227:Src/bsp_driver_sd.c **** }
 377              		.loc 1 227 1 view .LVU72
 378 000a 08BD     		pop	{r3, pc}
 379              	.L39:
 380              		.align	2
 381              	.L38:
 382 000c 00000000 		.word	hsd1
 383              		.cfi_endproc
 384              	.LFE149:
 386              		.section	.text.BSP_SD_AbortCallback,"ax",%progbits
 387              		.align	1
 388              		.weak	BSP_SD_AbortCallback
 389              		.syntax unified
 390              		.thumb
 391              		.thumb_func
 393              	BSP_SD_AbortCallback:
 394              	.LFB153:
 228:Src/bsp_driver_sd.c **** 
 229:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeCallBacksSection */
 230:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
 231:Src/bsp_driver_sd.c **** /* USER CODE END BeforeCallBacksSection */
 232:Src/bsp_driver_sd.c **** /**
 233:Src/bsp_driver_sd.c ****   * @brief SD Abort callbacks
 234:Src/bsp_driver_sd.c ****   * @param hsd: SD handle
 235:Src/bsp_driver_sd.c ****   * @retval None
 236:Src/bsp_driver_sd.c ****   */
 237:Src/bsp_driver_sd.c **** void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd)
 238:Src/bsp_driver_sd.c **** {
 239:Src/bsp_driver_sd.c ****   BSP_SD_AbortCallback();
 240:Src/bsp_driver_sd.c **** }
 241:Src/bsp_driver_sd.c **** 
 242:Src/bsp_driver_sd.c **** /**
 243:Src/bsp_driver_sd.c ****   * @brief Tx Transfer completed callback
 244:Src/bsp_driver_sd.c ****   * @param hsd: SD handle
 245:Src/bsp_driver_sd.c ****   * @retval None
 246:Src/bsp_driver_sd.c ****   */
 247:Src/bsp_driver_sd.c **** void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
 248:Src/bsp_driver_sd.c **** {
 249:Src/bsp_driver_sd.c ****   BSP_SD_WriteCpltCallback();
 250:Src/bsp_driver_sd.c **** }
ARM GAS  /tmp/ccwhiVas.s 			page 12


 251:Src/bsp_driver_sd.c **** 
 252:Src/bsp_driver_sd.c **** /**
 253:Src/bsp_driver_sd.c ****   * @brief Rx Transfer completed callback
 254:Src/bsp_driver_sd.c ****   * @param hsd: SD handle
 255:Src/bsp_driver_sd.c ****   * @retval None
 256:Src/bsp_driver_sd.c ****   */
 257:Src/bsp_driver_sd.c **** void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
 258:Src/bsp_driver_sd.c **** {
 259:Src/bsp_driver_sd.c ****   BSP_SD_ReadCpltCallback();
 260:Src/bsp_driver_sd.c **** }
 261:Src/bsp_driver_sd.c **** 
 262:Src/bsp_driver_sd.c **** /* USER CODE BEGIN CallBacksSection_C */
 263:Src/bsp_driver_sd.c **** /**
 264:Src/bsp_driver_sd.c ****   * @brief BSP SD Abort callback
 265:Src/bsp_driver_sd.c ****   * @retval None
 266:Src/bsp_driver_sd.c ****   * @note empty (up to the user to fill it in or to remove it if useless)
 267:Src/bsp_driver_sd.c ****   */
 268:Src/bsp_driver_sd.c **** __weak void BSP_SD_AbortCallback(void)
 269:Src/bsp_driver_sd.c **** {
 395              		.loc 1 269 1 is_stmt 1 view -0
 396              		.cfi_startproc
 397              		@ args = 0, pretend = 0, frame = 0
 398              		@ frame_needed = 0, uses_anonymous_args = 0
 399              		@ link register save eliminated.
 270:Src/bsp_driver_sd.c **** 
 271:Src/bsp_driver_sd.c **** }
 400              		.loc 1 271 1 view .LVU74
 401 0000 7047     		bx	lr
 402              		.cfi_endproc
 403              	.LFE153:
 405              		.section	.text.HAL_SD_AbortCallback,"ax",%progbits
 406              		.align	1
 407              		.global	HAL_SD_AbortCallback
 408              		.syntax unified
 409              		.thumb
 410              		.thumb_func
 412              	HAL_SD_AbortCallback:
 413              	.LVL40:
 414              	.LFB150:
 238:Src/bsp_driver_sd.c ****   BSP_SD_AbortCallback();
 415              		.loc 1 238 1 view -0
 416              		.cfi_startproc
 417              		@ args = 0, pretend = 0, frame = 0
 418              		@ frame_needed = 0, uses_anonymous_args = 0
 238:Src/bsp_driver_sd.c ****   BSP_SD_AbortCallback();
 419              		.loc 1 238 1 is_stmt 0 view .LVU76
 420 0000 08B5     		push	{r3, lr}
 421              	.LCFI11:
 422              		.cfi_def_cfa_offset 8
 423              		.cfi_offset 3, -8
 424              		.cfi_offset 14, -4
 239:Src/bsp_driver_sd.c **** }
 425              		.loc 1 239 3 is_stmt 1 view .LVU77
 426 0002 FFF7FEFF 		bl	BSP_SD_AbortCallback
 427              	.LVL41:
 240:Src/bsp_driver_sd.c **** 
 428              		.loc 1 240 1 is_stmt 0 view .LVU78
ARM GAS  /tmp/ccwhiVas.s 			page 13


 429 0006 08BD     		pop	{r3, pc}
 430              		.cfi_endproc
 431              	.LFE150:
 433              		.section	.text.BSP_SD_WriteCpltCallback,"ax",%progbits
 434              		.align	1
 435              		.weak	BSP_SD_WriteCpltCallback
 436              		.syntax unified
 437              		.thumb
 438              		.thumb_func
 440              	BSP_SD_WriteCpltCallback:
 441              	.LFB154:
 272:Src/bsp_driver_sd.c **** 
 273:Src/bsp_driver_sd.c **** /**
 274:Src/bsp_driver_sd.c ****   * @brief BSP Tx Transfer completed callback
 275:Src/bsp_driver_sd.c ****   * @retval None
 276:Src/bsp_driver_sd.c ****   * @note empty (up to the user to fill it in or to remove it if useless)
 277:Src/bsp_driver_sd.c ****   */
 278:Src/bsp_driver_sd.c **** __weak void BSP_SD_WriteCpltCallback(void)
 279:Src/bsp_driver_sd.c **** {
 442              		.loc 1 279 1 is_stmt 1 view -0
 443              		.cfi_startproc
 444              		@ args = 0, pretend = 0, frame = 0
 445              		@ frame_needed = 0, uses_anonymous_args = 0
 446              		@ link register save eliminated.
 280:Src/bsp_driver_sd.c **** 
 281:Src/bsp_driver_sd.c **** }
 447              		.loc 1 281 1 view .LVU80
 448 0000 7047     		bx	lr
 449              		.cfi_endproc
 450              	.LFE154:
 452              		.section	.text.HAL_SD_TxCpltCallback,"ax",%progbits
 453              		.align	1
 454              		.global	HAL_SD_TxCpltCallback
 455              		.syntax unified
 456              		.thumb
 457              		.thumb_func
 459              	HAL_SD_TxCpltCallback:
 460              	.LVL42:
 461              	.LFB151:
 248:Src/bsp_driver_sd.c ****   BSP_SD_WriteCpltCallback();
 462              		.loc 1 248 1 view -0
 463              		.cfi_startproc
 464              		@ args = 0, pretend = 0, frame = 0
 465              		@ frame_needed = 0, uses_anonymous_args = 0
 248:Src/bsp_driver_sd.c ****   BSP_SD_WriteCpltCallback();
 466              		.loc 1 248 1 is_stmt 0 view .LVU82
 467 0000 08B5     		push	{r3, lr}
 468              	.LCFI12:
 469              		.cfi_def_cfa_offset 8
 470              		.cfi_offset 3, -8
 471              		.cfi_offset 14, -4
 249:Src/bsp_driver_sd.c **** }
 472              		.loc 1 249 3 is_stmt 1 view .LVU83
 473 0002 FFF7FEFF 		bl	BSP_SD_WriteCpltCallback
 474              	.LVL43:
 250:Src/bsp_driver_sd.c **** 
 475              		.loc 1 250 1 is_stmt 0 view .LVU84
ARM GAS  /tmp/ccwhiVas.s 			page 14


 476 0006 08BD     		pop	{r3, pc}
 477              		.cfi_endproc
 478              	.LFE151:
 480              		.section	.text.BSP_SD_ReadCpltCallback,"ax",%progbits
 481              		.align	1
 482              		.weak	BSP_SD_ReadCpltCallback
 483              		.syntax unified
 484              		.thumb
 485              		.thumb_func
 487              	BSP_SD_ReadCpltCallback:
 488              	.LFB155:
 282:Src/bsp_driver_sd.c **** 
 283:Src/bsp_driver_sd.c **** /**
 284:Src/bsp_driver_sd.c ****   * @brief BSP Rx Transfer completed callback
 285:Src/bsp_driver_sd.c ****   * @retval None
 286:Src/bsp_driver_sd.c ****   * @note empty (up to the user to fill it in or to remove it if useless)
 287:Src/bsp_driver_sd.c ****   */
 288:Src/bsp_driver_sd.c **** __weak void BSP_SD_ReadCpltCallback(void)
 289:Src/bsp_driver_sd.c **** {
 489              		.loc 1 289 1 is_stmt 1 view -0
 490              		.cfi_startproc
 491              		@ args = 0, pretend = 0, frame = 0
 492              		@ frame_needed = 0, uses_anonymous_args = 0
 493              		@ link register save eliminated.
 290:Src/bsp_driver_sd.c **** 
 291:Src/bsp_driver_sd.c **** }
 494              		.loc 1 291 1 view .LVU86
 495 0000 7047     		bx	lr
 496              		.cfi_endproc
 497              	.LFE155:
 499              		.section	.text.HAL_SD_RxCpltCallback,"ax",%progbits
 500              		.align	1
 501              		.global	HAL_SD_RxCpltCallback
 502              		.syntax unified
 503              		.thumb
 504              		.thumb_func
 506              	HAL_SD_RxCpltCallback:
 507              	.LVL44:
 508              	.LFB152:
 258:Src/bsp_driver_sd.c ****   BSP_SD_ReadCpltCallback();
 509              		.loc 1 258 1 view -0
 510              		.cfi_startproc
 511              		@ args = 0, pretend = 0, frame = 0
 512              		@ frame_needed = 0, uses_anonymous_args = 0
 258:Src/bsp_driver_sd.c ****   BSP_SD_ReadCpltCallback();
 513              		.loc 1 258 1 is_stmt 0 view .LVU88
 514 0000 08B5     		push	{r3, lr}
 515              	.LCFI13:
 516              		.cfi_def_cfa_offset 8
 517              		.cfi_offset 3, -8
 518              		.cfi_offset 14, -4
 259:Src/bsp_driver_sd.c **** }
 519              		.loc 1 259 3 is_stmt 1 view .LVU89
 520 0002 FFF7FEFF 		bl	BSP_SD_ReadCpltCallback
 521              	.LVL45:
 260:Src/bsp_driver_sd.c **** 
 522              		.loc 1 260 1 is_stmt 0 view .LVU90
ARM GAS  /tmp/ccwhiVas.s 			page 15


 523 0006 08BD     		pop	{r3, pc}
 524              		.cfi_endproc
 525              	.LFE152:
 527              		.section	.text.BSP_SD_IsDetected,"ax",%progbits
 528              		.align	1
 529              		.weak	BSP_SD_IsDetected
 530              		.syntax unified
 531              		.thumb
 532              		.thumb_func
 534              	BSP_SD_IsDetected:
 535              	.LFB156:
 292:Src/bsp_driver_sd.c **** /* USER CODE END CallBacksSection_C */
 293:Src/bsp_driver_sd.c **** #endif
 294:Src/bsp_driver_sd.c **** 
 295:Src/bsp_driver_sd.c **** /**
 296:Src/bsp_driver_sd.c ****  * @brief  Detects if SD card is correctly plugged in the memory slot or not.
 297:Src/bsp_driver_sd.c ****  * @param  None
 298:Src/bsp_driver_sd.c ****  * @retval Returns if SD is detected or not
 299:Src/bsp_driver_sd.c ****  */
 300:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_IsDetected(void)
 301:Src/bsp_driver_sd.c **** {
 536              		.loc 1 301 1 is_stmt 1 view -0
 537              		.cfi_startproc
 538              		@ args = 0, pretend = 0, frame = 8
 539              		@ frame_needed = 0, uses_anonymous_args = 0
 540 0000 00B5     		push	{lr}
 541              	.LCFI14:
 542              		.cfi_def_cfa_offset 4
 543              		.cfi_offset 14, -4
 544 0002 83B0     		sub	sp, sp, #12
 545              	.LCFI15:
 546              		.cfi_def_cfa_offset 16
 302:Src/bsp_driver_sd.c ****   __IO uint8_t status = SD_PRESENT;
 547              		.loc 1 302 3 view .LVU92
 548              		.loc 1 302 16 is_stmt 0 view .LVU93
 549 0004 0123     		movs	r3, #1
 550 0006 8DF80730 		strb	r3, [sp, #7]
 303:Src/bsp_driver_sd.c **** 
 304:Src/bsp_driver_sd.c ****   if (BSP_PlatformIsDetected() == 0x0)
 551              		.loc 1 304 3 is_stmt 1 view .LVU94
 552              		.loc 1 304 7 is_stmt 0 view .LVU95
 553 000a FFF7FEFF 		bl	BSP_PlatformIsDetected
 554              	.LVL46:
 555              		.loc 1 304 6 discriminator 1 view .LVU96
 556 000e 10B9     		cbnz	r0, .L50
 305:Src/bsp_driver_sd.c ****   {
 306:Src/bsp_driver_sd.c ****     status = SD_NOT_PRESENT;
 557              		.loc 1 306 5 is_stmt 1 view .LVU97
 558              		.loc 1 306 12 is_stmt 0 view .LVU98
 559 0010 0023     		movs	r3, #0
 560 0012 8DF80730 		strb	r3, [sp, #7]
 561              	.L50:
 307:Src/bsp_driver_sd.c ****   }
 308:Src/bsp_driver_sd.c **** 
 309:Src/bsp_driver_sd.c ****   return status;
 562              		.loc 1 309 3 is_stmt 1 view .LVU99
 563              		.loc 1 309 10 is_stmt 0 view .LVU100
ARM GAS  /tmp/ccwhiVas.s 			page 16


 564 0016 9DF80700 		ldrb	r0, [sp, #7]	@ zero_extendqisi2
 310:Src/bsp_driver_sd.c **** }
 565              		.loc 1 310 1 view .LVU101
 566 001a 03B0     		add	sp, sp, #12
 567              	.LCFI16:
 568              		.cfi_def_cfa_offset 4
 569              		@ sp needed
 570 001c 5DF804FB 		ldr	pc, [sp], #4
 571              		.cfi_endproc
 572              	.LFE156:
 574              		.section	.text.BSP_SD_Init,"ax",%progbits
 575              		.align	1
 576              		.weak	BSP_SD_Init
 577              		.syntax unified
 578              		.thumb
 579              		.thumb_func
 581              	BSP_SD_Init:
 582              	.LFB141:
  49:Src/bsp_driver_sd.c ****   uint8_t sd_state = MSD_OK;
 583              		.loc 1 49 1 is_stmt 1 view -0
 584              		.cfi_startproc
 585              		@ args = 0, pretend = 0, frame = 0
 586              		@ frame_needed = 0, uses_anonymous_args = 0
 587 0000 38B5     		push	{r3, r4, r5, lr}
 588              	.LCFI17:
 589              		.cfi_def_cfa_offset 16
 590              		.cfi_offset 3, -16
 591              		.cfi_offset 4, -12
 592              		.cfi_offset 5, -8
 593              		.cfi_offset 14, -4
  50:Src/bsp_driver_sd.c ****   /* Check if the SD card is plugged in the slot */
 594              		.loc 1 50 3 view .LVU103
 595              	.LVL47:
  52:Src/bsp_driver_sd.c ****   {
 596              		.loc 1 52 3 view .LVU104
  52:Src/bsp_driver_sd.c ****   {
 597              		.loc 1 52 7 is_stmt 0 view .LVU105
 598 0002 FFF7FEFF 		bl	BSP_SD_IsDetected
 599              	.LVL48:
  52:Src/bsp_driver_sd.c ****   {
 600              		.loc 1 52 6 discriminator 1 view .LVU106
 601 0006 0128     		cmp	r0, #1
 602 0008 02D0     		beq	.L57
  54:Src/bsp_driver_sd.c ****   }
 603              		.loc 1 54 12 view .LVU107
 604 000a 0225     		movs	r5, #2
 605              	.LVL49:
 606              	.L53:
  69:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */
 607              		.loc 1 69 1 view .LVU108
 608 000c 2846     		mov	r0, r5
 609 000e 38BD     		pop	{r3, r4, r5, pc}
 610              	.LVL50:
 611              	.L57:
  69:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */
 612              		.loc 1 69 1 view .LVU109
 613 0010 0446     		mov	r4, r0
ARM GAS  /tmp/ccwhiVas.s 			page 17


  57:Src/bsp_driver_sd.c ****   /* Configure SD Bus width (4 bits mode selected) */
 614              		.loc 1 57 3 is_stmt 1 view .LVU110
  57:Src/bsp_driver_sd.c ****   /* Configure SD Bus width (4 bits mode selected) */
 615              		.loc 1 57 14 is_stmt 0 view .LVU111
 616 0012 0748     		ldr	r0, .L58
 617 0014 FFF7FEFF 		bl	HAL_SD_Init
 618              	.LVL51:
  59:Src/bsp_driver_sd.c ****   {
 619              		.loc 1 59 3 is_stmt 1 view .LVU112
  59:Src/bsp_driver_sd.c ****   {
 620              		.loc 1 59 6 is_stmt 0 view .LVU113
 621 0018 0546     		mov	r5, r0
 622 001a 0028     		cmp	r0, #0
 623 001c F6D1     		bne	.L53
  62:Src/bsp_driver_sd.c ****     {
 624              		.loc 1 62 5 is_stmt 1 view .LVU114
  62:Src/bsp_driver_sd.c ****     {
 625              		.loc 1 62 9 is_stmt 0 view .LVU115
 626 001e 4FF40061 		mov	r1, #2048
 627 0022 0348     		ldr	r0, .L58
 628              	.LVL52:
  62:Src/bsp_driver_sd.c ****     {
 629              		.loc 1 62 9 view .LVU116
 630 0024 FFF7FEFF 		bl	HAL_SD_ConfigWideBusOperation
 631              	.LVL53:
  62:Src/bsp_driver_sd.c ****     {
 632              		.loc 1 62 8 discriminator 1 view .LVU117
 633 0028 0028     		cmp	r0, #0
 634 002a EFD0     		beq	.L53
  64:Src/bsp_driver_sd.c ****     }
 635              		.loc 1 64 16 view .LVU118
 636 002c 2546     		mov	r5, r4
 637              	.LVL54:
  64:Src/bsp_driver_sd.c ****     }
 638              		.loc 1 64 16 view .LVU119
 639 002e EDE7     		b	.L53
 640              	.L59:
 641              		.align	2
 642              	.L58:
 643 0030 00000000 		.word	hsd1
 644              		.cfi_endproc
 645              	.LFE141:
 647              		.text
 648              	.Letext0:
 649              		.file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
 650              		.file 3 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h"
 651              		.file 4 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h"
 652              		.file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h"
 653              		.file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_sdmmc.h"
 654              		.file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_sd.h"
 655              		.file 8 "Inc/fatfs_platform.h"
ARM GAS  /tmp/ccwhiVas.s 			page 18


DEFINED SYMBOLS
                            *ABS*:00000000 bsp_driver_sd.c
     /tmp/ccwhiVas.s:20     .text.BSP_SD_ITConfig:00000000 $t
     /tmp/ccwhiVas.s:26     .text.BSP_SD_ITConfig:00000000 BSP_SD_ITConfig
     /tmp/ccwhiVas.s:41     .text.BSP_SD_ReadBlocks:00000000 $t
     /tmp/ccwhiVas.s:47     .text.BSP_SD_ReadBlocks:00000000 BSP_SD_ReadBlocks
     /tmp/ccwhiVas.s:97     .text.BSP_SD_ReadBlocks:0000001c $d
     /tmp/ccwhiVas.s:102    .text.BSP_SD_WriteBlocks:00000000 $t
     /tmp/ccwhiVas.s:108    .text.BSP_SD_WriteBlocks:00000000 BSP_SD_WriteBlocks
     /tmp/ccwhiVas.s:158    .text.BSP_SD_WriteBlocks:0000001c $d
     /tmp/ccwhiVas.s:163    .text.BSP_SD_ReadBlocks_DMA:00000000 $t
     /tmp/ccwhiVas.s:169    .text.BSP_SD_ReadBlocks_DMA:00000000 BSP_SD_ReadBlocks_DMA
     /tmp/ccwhiVas.s:210    .text.BSP_SD_ReadBlocks_DMA:00000014 $d
     /tmp/ccwhiVas.s:215    .text.BSP_SD_WriteBlocks_DMA:00000000 $t
     /tmp/ccwhiVas.s:221    .text.BSP_SD_WriteBlocks_DMA:00000000 BSP_SD_WriteBlocks_DMA
     /tmp/ccwhiVas.s:262    .text.BSP_SD_WriteBlocks_DMA:00000014 $d
     /tmp/ccwhiVas.s:267    .text.BSP_SD_Erase:00000000 $t
     /tmp/ccwhiVas.s:273    .text.BSP_SD_Erase:00000000 BSP_SD_Erase
     /tmp/ccwhiVas.s:311    .text.BSP_SD_Erase:00000014 $d
     /tmp/ccwhiVas.s:316    .text.BSP_SD_GetCardState:00000000 $t
     /tmp/ccwhiVas.s:322    .text.BSP_SD_GetCardState:00000000 BSP_SD_GetCardState
     /tmp/ccwhiVas.s:346    .text.BSP_SD_GetCardState:00000010 $d
     /tmp/ccwhiVas.s:351    .text.BSP_SD_GetCardInfo:00000000 $t
     /tmp/ccwhiVas.s:357    .text.BSP_SD_GetCardInfo:00000000 BSP_SD_GetCardInfo
     /tmp/ccwhiVas.s:382    .text.BSP_SD_GetCardInfo:0000000c $d
     /tmp/ccwhiVas.s:387    .text.BSP_SD_AbortCallback:00000000 $t
     /tmp/ccwhiVas.s:393    .text.BSP_SD_AbortCallback:00000000 BSP_SD_AbortCallback
     /tmp/ccwhiVas.s:406    .text.HAL_SD_AbortCallback:00000000 $t
     /tmp/ccwhiVas.s:412    .text.HAL_SD_AbortCallback:00000000 HAL_SD_AbortCallback
     /tmp/ccwhiVas.s:434    .text.BSP_SD_WriteCpltCallback:00000000 $t
     /tmp/ccwhiVas.s:440    .text.BSP_SD_WriteCpltCallback:00000000 BSP_SD_WriteCpltCallback
     /tmp/ccwhiVas.s:453    .text.HAL_SD_TxCpltCallback:00000000 $t
     /tmp/ccwhiVas.s:459    .text.HAL_SD_TxCpltCallback:00000000 HAL_SD_TxCpltCallback
     /tmp/ccwhiVas.s:481    .text.BSP_SD_ReadCpltCallback:00000000 $t
     /tmp/ccwhiVas.s:487    .text.BSP_SD_ReadCpltCallback:00000000 BSP_SD_ReadCpltCallback
     /tmp/ccwhiVas.s:500    .text.HAL_SD_RxCpltCallback:00000000 $t
     /tmp/ccwhiVas.s:506    .text.HAL_SD_RxCpltCallback:00000000 HAL_SD_RxCpltCallback
     /tmp/ccwhiVas.s:528    .text.BSP_SD_IsDetected:00000000 $t
     /tmp/ccwhiVas.s:534    .text.BSP_SD_IsDetected:00000000 BSP_SD_IsDetected
     /tmp/ccwhiVas.s:575    .text.BSP_SD_Init:00000000 $t
     /tmp/ccwhiVas.s:581    .text.BSP_SD_Init:00000000 BSP_SD_Init
     /tmp/ccwhiVas.s:643    .text.BSP_SD_Init:00000030 $d

UNDEFINED SYMBOLS
HAL_SD_ReadBlocks
hsd1
HAL_SD_WriteBlocks
HAL_SD_ReadBlocks_DMA
HAL_SD_WriteBlocks_DMA
HAL_SD_Erase
HAL_SD_GetCardState
HAL_SD_GetCardInfo
BSP_PlatformIsDetected
HAL_SD_Init
HAL_SD_ConfigWideBusOperation
