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