ARM GAS /tmp/ccLisECN.s page 1 1 .cpu cortex-m7 2 .eabi_attribute 28, 1 3 .eabi_attribute 20, 1 4 .eabi_attribute 21, 1 5 .eabi_attribute 23, 3 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 .eabi_attribute 26, 1 9 .eabi_attribute 30, 1 10 .eabi_attribute 34, 1 11 .eabi_attribute 18, 4 12 .file "bsp_driver_sd.c" 13 .text 14 .Ltext0: 15 .cfi_sections .debug_frame 16 .section .text.BSP_SD_ITConfig,"ax",%progbits 17 .align 1 18 .weak BSP_SD_ITConfig 19 .arch armv7e-m 20 .syntax unified 21 .thumb 22 .thumb_func 23 .fpu fpv5-d16 25 BSP_SD_ITConfig: 26 .LFB142: 27 .file 1 "Src/bsp_driver_sd.c" 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/ccLisECN.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/ccLisECN.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 46 .fpu fpv5-d16 48 BSP_SD_ReadBlocks: 49 .LVL0: 50 .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 **** { 51 .loc 1 100 1 is_stmt 1 view -0 52 .cfi_startproc 53 @ args = 0, pretend = 0, frame = 0 54 @ frame_needed = 0, uses_anonymous_args = 0 55 .loc 1 100 1 is_stmt 0 view .LVU4 56 0000 00B5 push {lr} 57 .LCFI0: 58 .cfi_def_cfa_offset 4 59 .cfi_offset 14, -4 60 0002 83B0 sub sp, sp, #12 61 .LCFI1: 62 .cfi_def_cfa_offset 16 101:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 63 .loc 1 101 3 is_stmt 1 view .LVU5 64 .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) 65 .loc 1 103 3 view .LVU6 66 .loc 1 103 7 is_stmt 0 view .LVU7 67 0004 0093 str r3, [sp] 68 0006 1346 mov r3, r2 69 .LVL2: 70 .loc 1 103 7 view .LVU8 71 0008 0A46 mov r2, r1 ARM GAS /tmp/ccLisECN.s page 4 72 .LVL3: 73 .loc 1 103 7 view .LVU9 74 000a 0146 mov r1, r0 75 .LVL4: 76 .loc 1 103 7 view .LVU10 77 000c 0348 ldr r0, .L6 78 .LVL5: 79 .loc 1 103 7 view .LVU11 80 000e FFF7FEFF bl HAL_SD_ReadBlocks 81 .LVL6: 82 .loc 1 103 6 view .LVU12 83 0012 00B1 cbz r0, .L3 104:Src/bsp_driver_sd.c **** { 105:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR; 84 .loc 1 105 14 view .LVU13 85 0014 0120 movs r0, #1 86 .L3: 87 .LVL7: 106:Src/bsp_driver_sd.c **** } 107:Src/bsp_driver_sd.c **** 108:Src/bsp_driver_sd.c **** return sd_state; 88 .loc 1 108 3 is_stmt 1 view .LVU14 109:Src/bsp_driver_sd.c **** } 89 .loc 1 109 1 is_stmt 0 view .LVU15 90 0016 03B0 add sp, sp, #12 91 .LCFI2: 92 .cfi_def_cfa_offset 4 93 @ sp needed 94 0018 5DF804FB ldr pc, [sp], #4 95 .L7: 96 .align 2 97 .L6: 98 001c 00000000 .word hsd1 99 .cfi_endproc 100 .LFE143: 102 .section .text.BSP_SD_WriteBlocks,"ax",%progbits 103 .align 1 104 .weak BSP_SD_WriteBlocks 105 .syntax unified 106 .thumb 107 .thumb_func 108 .fpu fpv5-d16 110 BSP_SD_WriteBlocks: 111 .LVL8: 112 .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 **** */ ARM GAS /tmp/ccLisECN.s page 5 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 **** { 113 .loc 1 123 1 is_stmt 1 view -0 114 .cfi_startproc 115 @ args = 0, pretend = 0, frame = 0 116 @ frame_needed = 0, uses_anonymous_args = 0 117 .loc 1 123 1 is_stmt 0 view .LVU17 118 0000 00B5 push {lr} 119 .LCFI3: 120 .cfi_def_cfa_offset 4 121 .cfi_offset 14, -4 122 0002 83B0 sub sp, sp, #12 123 .LCFI4: 124 .cfi_def_cfa_offset 16 124:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 125 .loc 1 124 3 is_stmt 1 view .LVU18 126 .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) 127 .loc 1 126 3 view .LVU19 128 .loc 1 126 7 is_stmt 0 view .LVU20 129 0004 0093 str r3, [sp] 130 0006 1346 mov r3, r2 131 .LVL10: 132 .loc 1 126 7 view .LVU21 133 0008 0A46 mov r2, r1 134 .LVL11: 135 .loc 1 126 7 view .LVU22 136 000a 0146 mov r1, r0 137 .LVL12: 138 .loc 1 126 7 view .LVU23 139 000c 0348 ldr r0, .L12 140 .LVL13: 141 .loc 1 126 7 view .LVU24 142 000e FFF7FEFF bl HAL_SD_WriteBlocks 143 .LVL14: 144 .loc 1 126 6 view .LVU25 145 0012 00B1 cbz r0, .L9 127:Src/bsp_driver_sd.c **** { 128:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR; 146 .loc 1 128 14 view .LVU26 147 0014 0120 movs r0, #1 148 .L9: 149 .LVL15: 129:Src/bsp_driver_sd.c **** } 130:Src/bsp_driver_sd.c **** 131:Src/bsp_driver_sd.c **** return sd_state; 150 .loc 1 131 3 is_stmt 1 view .LVU27 132:Src/bsp_driver_sd.c **** } 151 .loc 1 132 1 is_stmt 0 view .LVU28 152 0016 03B0 add sp, sp, #12 153 .LCFI5: 154 .cfi_def_cfa_offset 4 155 @ sp needed 156 0018 5DF804FB ldr pc, [sp], #4 157 .L13: 158 .align 2 ARM GAS /tmp/ccLisECN.s page 6 159 .L12: 160 001c 00000000 .word hsd1 161 .cfi_endproc 162 .LFE144: 164 .section .text.BSP_SD_ReadBlocks_DMA,"ax",%progbits 165 .align 1 166 .weak BSP_SD_ReadBlocks_DMA 167 .syntax unified 168 .thumb 169 .thumb_func 170 .fpu fpv5-d16 172 BSP_SD_ReadBlocks_DMA: 173 .LVL16: 174 .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 **** { 175 .loc 1 145 1 is_stmt 1 view -0 176 .cfi_startproc 177 @ args = 0, pretend = 0, frame = 0 178 @ frame_needed = 0, uses_anonymous_args = 0 179 .loc 1 145 1 is_stmt 0 view .LVU30 180 0000 08B5 push {r3, lr} 181 .LCFI6: 182 .cfi_def_cfa_offset 8 183 .cfi_offset 3, -8 184 .cfi_offset 14, -4 185 0002 1346 mov r3, r2 146:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 186 .loc 1 146 3 is_stmt 1 view .LVU31 187 .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) 188 .loc 1 149 3 view .LVU32 189 .loc 1 149 7 is_stmt 0 view .LVU33 190 0004 0A46 mov r2, r1 191 .LVL18: 192 .loc 1 149 7 view .LVU34 193 0006 0146 mov r1, r0 194 .LVL19: 195 .loc 1 149 7 view .LVU35 196 0008 0248 ldr r0, .L18 197 .LVL20: 198 .loc 1 149 7 view .LVU36 199 000a FFF7FEFF bl HAL_SD_ReadBlocks_DMA 200 .LVL21: ARM GAS /tmp/ccLisECN.s page 7 201 .loc 1 149 6 view .LVU37 202 000e 00B1 cbz r0, .L15 150:Src/bsp_driver_sd.c **** { 151:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR; 203 .loc 1 151 14 view .LVU38 204 0010 0120 movs r0, #1 205 .L15: 206 .LVL22: 152:Src/bsp_driver_sd.c **** } 153:Src/bsp_driver_sd.c **** 154:Src/bsp_driver_sd.c **** return sd_state; 207 .loc 1 154 3 is_stmt 1 view .LVU39 155:Src/bsp_driver_sd.c **** } 208 .loc 1 155 1 is_stmt 0 view .LVU40 209 0012 08BD pop {r3, pc} 210 .L19: 211 .align 2 212 .L18: 213 0014 00000000 .word hsd1 214 .cfi_endproc 215 .LFE145: 217 .section .text.BSP_SD_WriteBlocks_DMA,"ax",%progbits 218 .align 1 219 .weak BSP_SD_WriteBlocks_DMA 220 .syntax unified 221 .thumb 222 .thumb_func 223 .fpu fpv5-d16 225 BSP_SD_WriteBlocks_DMA: 226 .LVL23: 227 .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 **** { 228 .loc 1 168 1 is_stmt 1 view -0 229 .cfi_startproc 230 @ args = 0, pretend = 0, frame = 0 231 @ frame_needed = 0, uses_anonymous_args = 0 232 .loc 1 168 1 is_stmt 0 view .LVU42 233 0000 08B5 push {r3, lr} 234 .LCFI7: 235 .cfi_def_cfa_offset 8 236 .cfi_offset 3, -8 237 .cfi_offset 14, -4 238 0002 1346 mov r3, r2 169:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 239 .loc 1 169 3 is_stmt 1 view .LVU43 ARM GAS /tmp/ccLisECN.s page 8 240 .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) 241 .loc 1 172 3 view .LVU44 242 .loc 1 172 7 is_stmt 0 view .LVU45 243 0004 0A46 mov r2, r1 244 .LVL25: 245 .loc 1 172 7 view .LVU46 246 0006 0146 mov r1, r0 247 .LVL26: 248 .loc 1 172 7 view .LVU47 249 0008 0248 ldr r0, .L24 250 .LVL27: 251 .loc 1 172 7 view .LVU48 252 000a FFF7FEFF bl HAL_SD_WriteBlocks_DMA 253 .LVL28: 254 .loc 1 172 6 view .LVU49 255 000e 00B1 cbz r0, .L21 173:Src/bsp_driver_sd.c **** { 174:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR; 256 .loc 1 174 14 view .LVU50 257 0010 0120 movs r0, #1 258 .L21: 259 .LVL29: 175:Src/bsp_driver_sd.c **** } 176:Src/bsp_driver_sd.c **** 177:Src/bsp_driver_sd.c **** return sd_state; 260 .loc 1 177 3 is_stmt 1 view .LVU51 178:Src/bsp_driver_sd.c **** } 261 .loc 1 178 1 is_stmt 0 view .LVU52 262 0012 08BD pop {r3, pc} 263 .L25: 264 .align 2 265 .L24: 266 0014 00000000 .word hsd1 267 .cfi_endproc 268 .LFE146: 270 .section .text.BSP_SD_Erase,"ax",%progbits 271 .align 1 272 .weak BSP_SD_Erase 273 .syntax unified 274 .thumb 275 .thumb_func 276 .fpu fpv5-d16 278 BSP_SD_Erase: 279 .LVL30: 280 .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 ARM GAS /tmp/ccLisECN.s page 9 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 **** { 281 .loc 1 190 1 is_stmt 1 view -0 282 .cfi_startproc 283 @ args = 0, pretend = 0, frame = 0 284 @ frame_needed = 0, uses_anonymous_args = 0 285 .loc 1 190 1 is_stmt 0 view .LVU54 286 0000 08B5 push {r3, lr} 287 .LCFI8: 288 .cfi_def_cfa_offset 8 289 .cfi_offset 3, -8 290 .cfi_offset 14, -4 291 0002 0A46 mov r2, r1 191:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 292 .loc 1 191 3 is_stmt 1 view .LVU55 293 .LVL31: 192:Src/bsp_driver_sd.c **** 193:Src/bsp_driver_sd.c **** if (HAL_SD_Erase(&hsd1, StartAddr, EndAddr) != HAL_OK) 294 .loc 1 193 3 view .LVU56 295 .loc 1 193 7 is_stmt 0 view .LVU57 296 0004 0146 mov r1, r0 297 .LVL32: 298 .loc 1 193 7 view .LVU58 299 0006 0348 ldr r0, .L30 300 .LVL33: 301 .loc 1 193 7 view .LVU59 302 0008 FFF7FEFF bl HAL_SD_Erase 303 .LVL34: 304 .loc 1 193 6 view .LVU60 305 000c 00B1 cbz r0, .L27 194:Src/bsp_driver_sd.c **** { 195:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR; 306 .loc 1 195 14 view .LVU61 307 000e 0120 movs r0, #1 308 .L27: 309 .LVL35: 196:Src/bsp_driver_sd.c **** } 197:Src/bsp_driver_sd.c **** 198:Src/bsp_driver_sd.c **** return sd_state; 310 .loc 1 198 3 is_stmt 1 view .LVU62 199:Src/bsp_driver_sd.c **** } 311 .loc 1 199 1 is_stmt 0 view .LVU63 312 0010 08BD pop {r3, pc} 313 .L31: 314 0012 00BF .align 2 315 .L30: 316 0014 00000000 .word hsd1 317 .cfi_endproc 318 .LFE147: 320 .section .text.BSP_SD_GetCardState,"ax",%progbits 321 .align 1 322 .weak BSP_SD_GetCardState 323 .syntax unified 324 .thumb 325 .thumb_func 326 .fpu fpv5-d16 ARM GAS /tmp/ccLisECN.s page 10 328 BSP_SD_GetCardState: 329 .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 */ 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 **** { 330 .loc 1 214 1 is_stmt 1 view -0 331 .cfi_startproc 332 @ args = 0, pretend = 0, frame = 0 333 @ frame_needed = 0, uses_anonymous_args = 0 334 0000 08B5 push {r3, lr} 335 .LCFI9: 336 .cfi_def_cfa_offset 8 337 .cfi_offset 3, -8 338 .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 339 .loc 1 215 3 view .LVU65 340 .loc 1 215 12 is_stmt 0 view .LVU66 341 0002 0348 ldr r0, .L34 342 0004 FFF7FEFF bl HAL_SD_GetCardState 343 .LVL36: 216:Src/bsp_driver_sd.c **** } 344 .loc 1 216 1 view .LVU67 345 0008 0438 subs r0, r0, #4 346 000a 18BF it ne 347 000c 0120 movne r0, #1 348 000e 08BD pop {r3, pc} 349 .L35: 350 .align 2 351 .L34: 352 0010 00000000 .word hsd1 353 .cfi_endproc 354 .LFE148: 356 .section .text.BSP_SD_GetCardInfo,"ax",%progbits 357 .align 1 358 .weak BSP_SD_GetCardInfo 359 .syntax unified 360 .thumb 361 .thumb_func 362 .fpu fpv5-d16 364 BSP_SD_GetCardInfo: 365 .LVL37: 366 .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. ARM GAS /tmp/ccLisECN.s page 11 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 **** { 367 .loc 1 224 1 is_stmt 1 view -0 368 .cfi_startproc 369 @ args = 0, pretend = 0, frame = 0 370 @ frame_needed = 0, uses_anonymous_args = 0 371 .loc 1 224 1 is_stmt 0 view .LVU69 372 0000 08B5 push {r3, lr} 373 .LCFI10: 374 .cfi_def_cfa_offset 8 375 .cfi_offset 3, -8 376 .cfi_offset 14, -4 377 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); 378 .loc 1 226 3 is_stmt 1 view .LVU70 379 0004 0148 ldr r0, .L38 380 .LVL38: 381 .loc 1 226 3 is_stmt 0 view .LVU71 382 0006 FFF7FEFF bl HAL_SD_GetCardInfo 383 .LVL39: 227:Src/bsp_driver_sd.c **** } 384 .loc 1 227 1 view .LVU72 385 000a 08BD pop {r3, pc} 386 .L39: 387 .align 2 388 .L38: 389 000c 00000000 .word hsd1 390 .cfi_endproc 391 .LFE149: 393 .section .text.BSP_SD_AbortCallback,"ax",%progbits 394 .align 1 395 .weak BSP_SD_AbortCallback 396 .syntax unified 397 .thumb 398 .thumb_func 399 .fpu fpv5-d16 401 BSP_SD_AbortCallback: 402 .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 **** /** ARM GAS /tmp/ccLisECN.s page 12 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 **** } 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 **** { 403 .loc 1 269 1 is_stmt 1 view -0 404 .cfi_startproc 405 @ args = 0, pretend = 0, frame = 0 406 @ frame_needed = 0, uses_anonymous_args = 0 407 @ link register save eliminated. 270:Src/bsp_driver_sd.c **** 271:Src/bsp_driver_sd.c **** } 408 .loc 1 271 1 view .LVU74 409 0000 7047 bx lr 410 .cfi_endproc 411 .LFE153: 413 .section .text.HAL_SD_AbortCallback,"ax",%progbits 414 .align 1 415 .global HAL_SD_AbortCallback 416 .syntax unified 417 .thumb 418 .thumb_func 419 .fpu fpv5-d16 421 HAL_SD_AbortCallback: 422 .LVL40: 423 .LFB150: 238:Src/bsp_driver_sd.c **** BSP_SD_AbortCallback(); 424 .loc 1 238 1 view -0 425 .cfi_startproc 426 @ args = 0, pretend = 0, frame = 0 427 @ frame_needed = 0, uses_anonymous_args = 0 238:Src/bsp_driver_sd.c **** BSP_SD_AbortCallback(); 428 .loc 1 238 1 is_stmt 0 view .LVU76 429 0000 08B5 push {r3, lr} 430 .LCFI11: ARM GAS /tmp/ccLisECN.s page 13 431 .cfi_def_cfa_offset 8 432 .cfi_offset 3, -8 433 .cfi_offset 14, -4 239:Src/bsp_driver_sd.c **** } 434 .loc 1 239 3 is_stmt 1 view .LVU77 435 0002 FFF7FEFF bl BSP_SD_AbortCallback 436 .LVL41: 240:Src/bsp_driver_sd.c **** 437 .loc 1 240 1 is_stmt 0 view .LVU78 438 0006 08BD pop {r3, pc} 439 .cfi_endproc 440 .LFE150: 442 .section .text.BSP_SD_WriteCpltCallback,"ax",%progbits 443 .align 1 444 .weak BSP_SD_WriteCpltCallback 445 .syntax unified 446 .thumb 447 .thumb_func 448 .fpu fpv5-d16 450 BSP_SD_WriteCpltCallback: 451 .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 **** { 452 .loc 1 279 1 is_stmt 1 view -0 453 .cfi_startproc 454 @ args = 0, pretend = 0, frame = 0 455 @ frame_needed = 0, uses_anonymous_args = 0 456 @ link register save eliminated. 280:Src/bsp_driver_sd.c **** 281:Src/bsp_driver_sd.c **** } 457 .loc 1 281 1 view .LVU80 458 0000 7047 bx lr 459 .cfi_endproc 460 .LFE154: 462 .section .text.HAL_SD_TxCpltCallback,"ax",%progbits 463 .align 1 464 .global HAL_SD_TxCpltCallback 465 .syntax unified 466 .thumb 467 .thumb_func 468 .fpu fpv5-d16 470 HAL_SD_TxCpltCallback: 471 .LVL42: 472 .LFB151: 248:Src/bsp_driver_sd.c **** BSP_SD_WriteCpltCallback(); 473 .loc 1 248 1 view -0 474 .cfi_startproc 475 @ args = 0, pretend = 0, frame = 0 476 @ frame_needed = 0, uses_anonymous_args = 0 248:Src/bsp_driver_sd.c **** BSP_SD_WriteCpltCallback(); 477 .loc 1 248 1 is_stmt 0 view .LVU82 ARM GAS /tmp/ccLisECN.s page 14 478 0000 08B5 push {r3, lr} 479 .LCFI12: 480 .cfi_def_cfa_offset 8 481 .cfi_offset 3, -8 482 .cfi_offset 14, -4 249:Src/bsp_driver_sd.c **** } 483 .loc 1 249 3 is_stmt 1 view .LVU83 484 0002 FFF7FEFF bl BSP_SD_WriteCpltCallback 485 .LVL43: 250:Src/bsp_driver_sd.c **** 486 .loc 1 250 1 is_stmt 0 view .LVU84 487 0006 08BD pop {r3, pc} 488 .cfi_endproc 489 .LFE151: 491 .section .text.BSP_SD_ReadCpltCallback,"ax",%progbits 492 .align 1 493 .weak BSP_SD_ReadCpltCallback 494 .syntax unified 495 .thumb 496 .thumb_func 497 .fpu fpv5-d16 499 BSP_SD_ReadCpltCallback: 500 .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 **** { 501 .loc 1 289 1 is_stmt 1 view -0 502 .cfi_startproc 503 @ args = 0, pretend = 0, frame = 0 504 @ frame_needed = 0, uses_anonymous_args = 0 505 @ link register save eliminated. 290:Src/bsp_driver_sd.c **** 291:Src/bsp_driver_sd.c **** } 506 .loc 1 291 1 view .LVU86 507 0000 7047 bx lr 508 .cfi_endproc 509 .LFE155: 511 .section .text.HAL_SD_RxCpltCallback,"ax",%progbits 512 .align 1 513 .global HAL_SD_RxCpltCallback 514 .syntax unified 515 .thumb 516 .thumb_func 517 .fpu fpv5-d16 519 HAL_SD_RxCpltCallback: 520 .LVL44: 521 .LFB152: 258:Src/bsp_driver_sd.c **** BSP_SD_ReadCpltCallback(); 522 .loc 1 258 1 view -0 523 .cfi_startproc 524 @ args = 0, pretend = 0, frame = 0 525 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccLisECN.s page 15 258:Src/bsp_driver_sd.c **** BSP_SD_ReadCpltCallback(); 526 .loc 1 258 1 is_stmt 0 view .LVU88 527 0000 08B5 push {r3, lr} 528 .LCFI13: 529 .cfi_def_cfa_offset 8 530 .cfi_offset 3, -8 531 .cfi_offset 14, -4 259:Src/bsp_driver_sd.c **** } 532 .loc 1 259 3 is_stmt 1 view .LVU89 533 0002 FFF7FEFF bl BSP_SD_ReadCpltCallback 534 .LVL45: 260:Src/bsp_driver_sd.c **** 535 .loc 1 260 1 is_stmt 0 view .LVU90 536 0006 08BD pop {r3, pc} 537 .cfi_endproc 538 .LFE152: 540 .section .text.BSP_SD_IsDetected,"ax",%progbits 541 .align 1 542 .weak BSP_SD_IsDetected 543 .syntax unified 544 .thumb 545 .thumb_func 546 .fpu fpv5-d16 548 BSP_SD_IsDetected: 549 .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 **** { 550 .loc 1 301 1 is_stmt 1 view -0 551 .cfi_startproc 552 @ args = 0, pretend = 0, frame = 8 553 @ frame_needed = 0, uses_anonymous_args = 0 554 0000 00B5 push {lr} 555 .LCFI14: 556 .cfi_def_cfa_offset 4 557 .cfi_offset 14, -4 558 0002 83B0 sub sp, sp, #12 559 .LCFI15: 560 .cfi_def_cfa_offset 16 302:Src/bsp_driver_sd.c **** __IO uint8_t status = SD_PRESENT; 561 .loc 1 302 3 view .LVU92 562 .loc 1 302 16 is_stmt 0 view .LVU93 563 0004 0123 movs r3, #1 564 0006 8DF80730 strb r3, [sp, #7] 303:Src/bsp_driver_sd.c **** 304:Src/bsp_driver_sd.c **** if (BSP_PlatformIsDetected() == 0x0) 565 .loc 1 304 3 is_stmt 1 view .LVU94 566 .loc 1 304 7 is_stmt 0 view .LVU95 567 000a FFF7FEFF bl BSP_PlatformIsDetected 568 .LVL46: ARM GAS /tmp/ccLisECN.s page 16 569 .loc 1 304 6 view .LVU96 570 000e 10B9 cbnz r0, .L50 305:Src/bsp_driver_sd.c **** { 306:Src/bsp_driver_sd.c **** status = SD_NOT_PRESENT; 571 .loc 1 306 5 is_stmt 1 view .LVU97 572 .loc 1 306 12 is_stmt 0 view .LVU98 573 0010 0023 movs r3, #0 574 0012 8DF80730 strb r3, [sp, #7] 575 .L50: 307:Src/bsp_driver_sd.c **** } 308:Src/bsp_driver_sd.c **** 309:Src/bsp_driver_sd.c **** return status; 576 .loc 1 309 3 is_stmt 1 view .LVU99 577 .loc 1 309 10 is_stmt 0 view .LVU100 578 0016 9DF80700 ldrb r0, [sp, #7] @ zero_extendqisi2 310:Src/bsp_driver_sd.c **** } 579 .loc 1 310 1 view .LVU101 580 001a 03B0 add sp, sp, #12 581 .LCFI16: 582 .cfi_def_cfa_offset 4 583 @ sp needed 584 001c 5DF804FB ldr pc, [sp], #4 585 .cfi_endproc 586 .LFE156: 588 .section .text.BSP_SD_Init,"ax",%progbits 589 .align 1 590 .weak BSP_SD_Init 591 .syntax unified 592 .thumb 593 .thumb_func 594 .fpu fpv5-d16 596 BSP_SD_Init: 597 .LFB141: 49:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK; 598 .loc 1 49 1 is_stmt 1 view -0 599 .cfi_startproc 600 @ args = 0, pretend = 0, frame = 0 601 @ frame_needed = 0, uses_anonymous_args = 0 602 0000 38B5 push {r3, r4, r5, lr} 603 .LCFI17: 604 .cfi_def_cfa_offset 16 605 .cfi_offset 3, -16 606 .cfi_offset 4, -12 607 .cfi_offset 5, -8 608 .cfi_offset 14, -4 50:Src/bsp_driver_sd.c **** /* Check if the SD card is plugged in the slot */ 609 .loc 1 50 3 view .LVU103 610 .LVL47: 52:Src/bsp_driver_sd.c **** { 611 .loc 1 52 3 view .LVU104 52:Src/bsp_driver_sd.c **** { 612 .loc 1 52 7 is_stmt 0 view .LVU105 613 0002 FFF7FEFF bl BSP_SD_IsDetected 614 .LVL48: 52:Src/bsp_driver_sd.c **** { 615 .loc 1 52 6 view .LVU106 616 0006 0128 cmp r0, #1 ARM GAS /tmp/ccLisECN.s page 17 617 0008 02D0 beq .L57 54:Src/bsp_driver_sd.c **** } 618 .loc 1 54 12 view .LVU107 619 000a 0225 movs r5, #2 620 .LVL49: 621 .L53: 69:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */ 622 .loc 1 69 1 view .LVU108 623 000c 2846 mov r0, r5 624 000e 38BD pop {r3, r4, r5, pc} 625 .LVL50: 626 .L57: 69:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */ 627 .loc 1 69 1 view .LVU109 628 0010 0446 mov r4, r0 57:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */ 629 .loc 1 57 3 is_stmt 1 view .LVU110 57:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */ 630 .loc 1 57 14 is_stmt 0 view .LVU111 631 0012 0748 ldr r0, .L58 632 0014 FFF7FEFF bl HAL_SD_Init 633 .LVL51: 59:Src/bsp_driver_sd.c **** { 634 .loc 1 59 3 is_stmt 1 view .LVU112 59:Src/bsp_driver_sd.c **** { 635 .loc 1 59 6 is_stmt 0 view .LVU113 636 0018 0546 mov r5, r0 637 001a 0028 cmp r0, #0 638 001c F6D1 bne .L53 62:Src/bsp_driver_sd.c **** { 639 .loc 1 62 5 is_stmt 1 view .LVU114 62:Src/bsp_driver_sd.c **** { 640 .loc 1 62 9 is_stmt 0 view .LVU115 641 001e 4FF40061 mov r1, #2048 642 0022 0348 ldr r0, .L58 643 .LVL52: 62:Src/bsp_driver_sd.c **** { 644 .loc 1 62 9 view .LVU116 645 0024 FFF7FEFF bl HAL_SD_ConfigWideBusOperation 646 .LVL53: 62:Src/bsp_driver_sd.c **** { 647 .loc 1 62 8 view .LVU117 648 0028 0028 cmp r0, #0 649 002a EFD0 beq .L53 64:Src/bsp_driver_sd.c **** } 650 .loc 1 64 16 view .LVU118 651 002c 2546 mov r5, r4 652 002e EDE7 b .L53 653 .L59: 654 .align 2 655 .L58: 656 0030 00000000 .word hsd1 657 .cfi_endproc 658 .LFE141: 660 .text 661 .Letext0: 662 .file 2 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h" ARM GAS /tmp/ccLisECN.s page 18 663 .file 3 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h" 664 .file 4 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h" 665 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h" 666 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_sdmmc.h" 667 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_sd.h" 668 .file 8 "Inc/fatfs_platform.h" ARM GAS /tmp/ccLisECN.s page 19 DEFINED SYMBOLS *ABS*:0000000000000000 bsp_driver_sd.c /tmp/ccLisECN.s:17 .text.BSP_SD_ITConfig:0000000000000000 $t /tmp/ccLisECN.s:25 .text.BSP_SD_ITConfig:0000000000000000 BSP_SD_ITConfig /tmp/ccLisECN.s:41 .text.BSP_SD_ReadBlocks:0000000000000000 $t /tmp/ccLisECN.s:48 .text.BSP_SD_ReadBlocks:0000000000000000 BSP_SD_ReadBlocks /tmp/ccLisECN.s:98 .text.BSP_SD_ReadBlocks:000000000000001c $d /tmp/ccLisECN.s:103 .text.BSP_SD_WriteBlocks:0000000000000000 $t /tmp/ccLisECN.s:110 .text.BSP_SD_WriteBlocks:0000000000000000 BSP_SD_WriteBlocks /tmp/ccLisECN.s:160 .text.BSP_SD_WriteBlocks:000000000000001c $d /tmp/ccLisECN.s:165 .text.BSP_SD_ReadBlocks_DMA:0000000000000000 $t /tmp/ccLisECN.s:172 .text.BSP_SD_ReadBlocks_DMA:0000000000000000 BSP_SD_ReadBlocks_DMA /tmp/ccLisECN.s:213 .text.BSP_SD_ReadBlocks_DMA:0000000000000014 $d /tmp/ccLisECN.s:218 .text.BSP_SD_WriteBlocks_DMA:0000000000000000 $t /tmp/ccLisECN.s:225 .text.BSP_SD_WriteBlocks_DMA:0000000000000000 BSP_SD_WriteBlocks_DMA /tmp/ccLisECN.s:266 .text.BSP_SD_WriteBlocks_DMA:0000000000000014 $d /tmp/ccLisECN.s:271 .text.BSP_SD_Erase:0000000000000000 $t /tmp/ccLisECN.s:278 .text.BSP_SD_Erase:0000000000000000 BSP_SD_Erase /tmp/ccLisECN.s:316 .text.BSP_SD_Erase:0000000000000014 $d /tmp/ccLisECN.s:321 .text.BSP_SD_GetCardState:0000000000000000 $t /tmp/ccLisECN.s:328 .text.BSP_SD_GetCardState:0000000000000000 BSP_SD_GetCardState /tmp/ccLisECN.s:352 .text.BSP_SD_GetCardState:0000000000000010 $d /tmp/ccLisECN.s:357 .text.BSP_SD_GetCardInfo:0000000000000000 $t /tmp/ccLisECN.s:364 .text.BSP_SD_GetCardInfo:0000000000000000 BSP_SD_GetCardInfo /tmp/ccLisECN.s:389 .text.BSP_SD_GetCardInfo:000000000000000c $d /tmp/ccLisECN.s:394 .text.BSP_SD_AbortCallback:0000000000000000 $t /tmp/ccLisECN.s:401 .text.BSP_SD_AbortCallback:0000000000000000 BSP_SD_AbortCallback /tmp/ccLisECN.s:414 .text.HAL_SD_AbortCallback:0000000000000000 $t /tmp/ccLisECN.s:421 .text.HAL_SD_AbortCallback:0000000000000000 HAL_SD_AbortCallback /tmp/ccLisECN.s:443 .text.BSP_SD_WriteCpltCallback:0000000000000000 $t /tmp/ccLisECN.s:450 .text.BSP_SD_WriteCpltCallback:0000000000000000 BSP_SD_WriteCpltCallback /tmp/ccLisECN.s:463 .text.HAL_SD_TxCpltCallback:0000000000000000 $t /tmp/ccLisECN.s:470 .text.HAL_SD_TxCpltCallback:0000000000000000 HAL_SD_TxCpltCallback /tmp/ccLisECN.s:492 .text.BSP_SD_ReadCpltCallback:0000000000000000 $t /tmp/ccLisECN.s:499 .text.BSP_SD_ReadCpltCallback:0000000000000000 BSP_SD_ReadCpltCallback /tmp/ccLisECN.s:512 .text.HAL_SD_RxCpltCallback:0000000000000000 $t /tmp/ccLisECN.s:519 .text.HAL_SD_RxCpltCallback:0000000000000000 HAL_SD_RxCpltCallback /tmp/ccLisECN.s:541 .text.BSP_SD_IsDetected:0000000000000000 $t /tmp/ccLisECN.s:548 .text.BSP_SD_IsDetected:0000000000000000 BSP_SD_IsDetected /tmp/ccLisECN.s:589 .text.BSP_SD_Init:0000000000000000 $t /tmp/ccLisECN.s:596 .text.BSP_SD_Init:0000000000000000 BSP_SD_Init /tmp/ccLisECN.s:656 .text.BSP_SD_Init:0000000000000030 $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