Files
RadioPhotonic_PCB_software/build/bsp_driver_sd.lst
2026-04-24 16:51:15 +03:00

1249 lines
56 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/ccVIJNmt.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_GetDebugInfo,"ax",%progbits
20 .align 1
21 .global BSP_SD_GetDebugInfo
22 .syntax unified
23 .thumb
24 .thumb_func
26 BSP_SD_GetDebugInfo:
27 .LVL0:
28 .LFB141:
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
ARM GAS /tmp/ccVIJNmt.s page 2
31:Src/bsp_driver_sd.c **** /* USER CODE BEGIN FirstSection */
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 **** static volatile uint8_t g_last_bsp_sd_init_status = MSD_ERROR_SD_NOT_PRESENT;
44:Src/bsp_driver_sd.c **** static volatile uint8_t g_last_bsp_sd_detect_status = SD_NOT_PRESENT;
45:Src/bsp_driver_sd.c **** static volatile uint8_t g_last_bsp_sd_hal_init_status = HAL_ERROR;
46:Src/bsp_driver_sd.c **** static volatile uint8_t g_last_bsp_sd_wide_bus_status = HAL_ERROR;
47:Src/bsp_driver_sd.c **** static volatile uint32_t g_last_bsp_sd_hal_error = 0u;
48:Src/bsp_driver_sd.c ****
49:Src/bsp_driver_sd.c **** void BSP_SD_GetDebugInfo(bsp_sd_debug_info_t *out_info)
50:Src/bsp_driver_sd.c **** {
29 .loc 1 50 1 view -0
30 .cfi_startproc
31 @ args = 0, pretend = 0, frame = 0
32 @ frame_needed = 0, uses_anonymous_args = 0
33 @ link register save eliminated.
51:Src/bsp_driver_sd.c **** if (out_info == NULL)
34 .loc 1 51 3 view .LVU1
35 .loc 1 51 6 is_stmt 0 view .LVU2
36 0000 70B1 cbz r0, .L1
52:Src/bsp_driver_sd.c **** {
53:Src/bsp_driver_sd.c **** return;
54:Src/bsp_driver_sd.c **** }
55:Src/bsp_driver_sd.c ****
56:Src/bsp_driver_sd.c **** out_info->last_init_status = g_last_bsp_sd_init_status;
37 .loc 1 56 3 is_stmt 1 view .LVU3
38 .loc 1 56 30 is_stmt 0 view .LVU4
39 0002 084A ldr r2, .L3
40 0004 1278 ldrb r2, [r2] @ zero_extendqisi2
41 0006 0270 strb r2, [r0]
57:Src/bsp_driver_sd.c **** out_info->last_detect_status = g_last_bsp_sd_detect_status;
42 .loc 1 57 3 is_stmt 1 view .LVU5
43 .loc 1 57 32 is_stmt 0 view .LVU6
44 0008 074A ldr r2, .L3+4
45 000a 1278 ldrb r2, [r2] @ zero_extendqisi2
46 000c 4270 strb r2, [r0, #1]
58:Src/bsp_driver_sd.c **** out_info->last_hal_init_status = g_last_bsp_sd_hal_init_status;
47 .loc 1 58 3 is_stmt 1 view .LVU7
48 .loc 1 58 34 is_stmt 0 view .LVU8
49 000e 074A ldr r2, .L3+8
50 0010 1278 ldrb r2, [r2] @ zero_extendqisi2
51 0012 8270 strb r2, [r0, #2]
59:Src/bsp_driver_sd.c **** out_info->last_wide_bus_status = g_last_bsp_sd_wide_bus_status;
52 .loc 1 59 3 is_stmt 1 view .LVU9
53 .loc 1 59 34 is_stmt 0 view .LVU10
54 0014 064A ldr r2, .L3+12
55 0016 1278 ldrb r2, [r2] @ zero_extendqisi2
56 0018 C270 strb r2, [r0, #3]
ARM GAS /tmp/ccVIJNmt.s page 3
60:Src/bsp_driver_sd.c **** out_info->last_hal_error = g_last_bsp_sd_hal_error;
57 .loc 1 60 3 is_stmt 1 view .LVU11
58 .loc 1 60 28 is_stmt 0 view .LVU12
59 001a 064A ldr r2, .L3+16
60 001c 1268 ldr r2, [r2]
61 001e 4260 str r2, [r0, #4]
62 .L1:
61:Src/bsp_driver_sd.c **** }
63 .loc 1 61 1 view .LVU13
64 0020 7047 bx lr
65 .L4:
66 0022 00BF .align 2
67 .L3:
68 0024 00000000 .word g_last_bsp_sd_init_status
69 0028 00000000 .word g_last_bsp_sd_detect_status
70 002c 00000000 .word g_last_bsp_sd_hal_init_status
71 0030 00000000 .word g_last_bsp_sd_wide_bus_status
72 0034 00000000 .word g_last_bsp_sd_hal_error
73 .cfi_endproc
74 .LFE141:
76 .section .text.BSP_SD_ITConfig,"ax",%progbits
77 .align 1
78 .weak BSP_SD_ITConfig
79 .syntax unified
80 .thumb
81 .thumb_func
83 BSP_SD_ITConfig:
84 .LFB143:
62:Src/bsp_driver_sd.c **** /* USER CODE END BeforeInitSection */
63:Src/bsp_driver_sd.c **** /**
64:Src/bsp_driver_sd.c **** * @brief Initializes the SD card device.
65:Src/bsp_driver_sd.c **** * @retval SD status
66:Src/bsp_driver_sd.c **** */
67:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_Init(void)
68:Src/bsp_driver_sd.c **** {
69:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
70:Src/bsp_driver_sd.c **** g_last_bsp_sd_detect_status = BSP_SD_IsDetected();
71:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = HAL_ERROR;
72:Src/bsp_driver_sd.c **** g_last_bsp_sd_wide_bus_status = HAL_ERROR;
73:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = 0u;
74:Src/bsp_driver_sd.c **** /* Check if the SD card is plugged in the slot */
75:Src/bsp_driver_sd.c **** if (g_last_bsp_sd_detect_status != SD_PRESENT)
76:Src/bsp_driver_sd.c **** {
77:Src/bsp_driver_sd.c **** g_last_bsp_sd_init_status = MSD_ERROR_SD_NOT_PRESENT;
78:Src/bsp_driver_sd.c **** return MSD_ERROR_SD_NOT_PRESENT;
79:Src/bsp_driver_sd.c **** }
80:Src/bsp_driver_sd.c **** hsd1.Init.BusWide = SDMMC_BUS_WIDE_1B;
81:Src/bsp_driver_sd.c **** hsd1.Init.ClockDiv = 118u;
82:Src/bsp_driver_sd.c **** /* HAL SD initialization */
83:Src/bsp_driver_sd.c **** sd_state = HAL_SD_Init(&hsd1);
84:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = sd_state;
85:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = hsd1.ErrorCode;
86:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */
87:Src/bsp_driver_sd.c **** if (sd_state == MSD_OK)
88:Src/bsp_driver_sd.c **** {
89:Src/bsp_driver_sd.c **** g_last_bsp_sd_wide_bus_status = HAL_OK;
90:Src/bsp_driver_sd.c **** }
ARM GAS /tmp/ccVIJNmt.s page 4
91:Src/bsp_driver_sd.c ****
92:Src/bsp_driver_sd.c **** g_last_bsp_sd_init_status = sd_state;
93:Src/bsp_driver_sd.c **** return sd_state;
94:Src/bsp_driver_sd.c **** }
95:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */
96:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
97:Src/bsp_driver_sd.c **** /* USER CODE END AfterInitSection */
98:Src/bsp_driver_sd.c ****
99:Src/bsp_driver_sd.c **** /* USER CODE BEGIN InterruptMode */
100:Src/bsp_driver_sd.c **** /**
101:Src/bsp_driver_sd.c **** * @brief Configures Interrupt mode for SD detection pin.
102:Src/bsp_driver_sd.c **** * @retval Returns 0
103:Src/bsp_driver_sd.c **** */
104:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ITConfig(void)
105:Src/bsp_driver_sd.c **** {
85 .loc 1 105 1 is_stmt 1 view -0
86 .cfi_startproc
87 @ args = 0, pretend = 0, frame = 0
88 @ frame_needed = 0, uses_anonymous_args = 0
89 @ link register save eliminated.
106: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) */
107:Src/bsp_driver_sd.c ****
108:Src/bsp_driver_sd.c **** return (uint8_t)0;
90 .loc 1 108 3 view .LVU15
109:Src/bsp_driver_sd.c **** }
91 .loc 1 109 1 is_stmt 0 view .LVU16
92 0000 0020 movs r0, #0
93 0002 7047 bx lr
94 .cfi_endproc
95 .LFE143:
97 .section .text.BSP_SD_ReadBlocks,"ax",%progbits
98 .align 1
99 .weak BSP_SD_ReadBlocks
100 .syntax unified
101 .thumb
102 .thumb_func
104 BSP_SD_ReadBlocks:
105 .LVL1:
106 .LFB144:
110:Src/bsp_driver_sd.c ****
111:Src/bsp_driver_sd.c **** /* USER CODE END InterruptMode */
112:Src/bsp_driver_sd.c ****
113:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeReadBlocksSection */
114:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
115:Src/bsp_driver_sd.c **** /* USER CODE END BeforeReadBlocksSection */
116:Src/bsp_driver_sd.c **** /**
117:Src/bsp_driver_sd.c **** * @brief Reads block(s) from a specified address in an SD card, in polling mode.
118:Src/bsp_driver_sd.c **** * @param pData: Pointer to the buffer that will contain the data to transmit
119:Src/bsp_driver_sd.c **** * @param ReadAddr: Address from where data is to be read
120:Src/bsp_driver_sd.c **** * @param NumOfBlocks: Number of SD blocks to read
121:Src/bsp_driver_sd.c **** * @param Timeout: Timeout for read operation
122:Src/bsp_driver_sd.c **** * @retval SD status
123:Src/bsp_driver_sd.c **** */
124:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t
125:Src/bsp_driver_sd.c **** {
107 .loc 1 125 1 is_stmt 1 view -0
108 .cfi_startproc
ARM GAS /tmp/ccVIJNmt.s page 5
109 @ args = 0, pretend = 0, frame = 0
110 @ frame_needed = 0, uses_anonymous_args = 0
111 .loc 1 125 1 is_stmt 0 view .LVU18
112 0000 00B5 push {lr}
113 .LCFI0:
114 .cfi_def_cfa_offset 4
115 .cfi_offset 14, -4
116 0002 83B0 sub sp, sp, #12
117 .LCFI1:
118 .cfi_def_cfa_offset 16
126:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
119 .loc 1 126 3 is_stmt 1 view .LVU19
120 .LVL2:
127:Src/bsp_driver_sd.c ****
128:Src/bsp_driver_sd.c **** if (HAL_SD_ReadBlocks(&hsd1, (uint8_t *)pData, ReadAddr, NumOfBlocks, Timeout) != HAL_OK)
121 .loc 1 128 3 view .LVU20
122 .loc 1 128 7 is_stmt 0 view .LVU21
123 0004 0093 str r3, [sp]
124 0006 1346 mov r3, r2
125 .LVL3:
126 .loc 1 128 7 view .LVU22
127 0008 0A46 mov r2, r1
128 .LVL4:
129 .loc 1 128 7 view .LVU23
130 000a 0146 mov r1, r0
131 .LVL5:
132 .loc 1 128 7 view .LVU24
133 000c 0348 ldr r0, .L10
134 .LVL6:
135 .loc 1 128 7 view .LVU25
136 000e FFF7FEFF bl HAL_SD_ReadBlocks
137 .LVL7:
138 .loc 1 128 6 discriminator 1 view .LVU26
139 0012 00B1 cbz r0, .L7
129:Src/bsp_driver_sd.c **** {
130:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR;
140 .loc 1 130 14 view .LVU27
141 0014 0120 movs r0, #1
142 .L7:
143 .LVL8:
131:Src/bsp_driver_sd.c **** }
132:Src/bsp_driver_sd.c ****
133:Src/bsp_driver_sd.c **** return sd_state;
144 .loc 1 133 3 is_stmt 1 view .LVU28
134:Src/bsp_driver_sd.c **** }
145 .loc 1 134 1 is_stmt 0 view .LVU29
146 0016 03B0 add sp, sp, #12
147 .LCFI2:
148 .cfi_def_cfa_offset 4
149 @ sp needed
150 0018 5DF804FB ldr pc, [sp], #4
151 .L11:
152 .align 2
153 .L10:
154 001c 00000000 .word hsd1
155 .cfi_endproc
156 .LFE144:
ARM GAS /tmp/ccVIJNmt.s page 6
158 .section .text.BSP_SD_WriteBlocks,"ax",%progbits
159 .align 1
160 .weak BSP_SD_WriteBlocks
161 .syntax unified
162 .thumb
163 .thumb_func
165 BSP_SD_WriteBlocks:
166 .LVL9:
167 .LFB145:
135:Src/bsp_driver_sd.c ****
136:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeWriteBlocksSection */
137:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
138:Src/bsp_driver_sd.c **** /* USER CODE END BeforeWriteBlocksSection */
139:Src/bsp_driver_sd.c **** /**
140:Src/bsp_driver_sd.c **** * @brief Writes block(s) to a specified address in an SD card, in polling mode.
141:Src/bsp_driver_sd.c **** * @param pData: Pointer to the buffer that will contain the data to transmit
142:Src/bsp_driver_sd.c **** * @param WriteAddr: Address from where data is to be written
143:Src/bsp_driver_sd.c **** * @param NumOfBlocks: Number of SD blocks to write
144:Src/bsp_driver_sd.c **** * @param Timeout: Timeout for write operation
145:Src/bsp_driver_sd.c **** * @retval SD status
146:Src/bsp_driver_sd.c **** */
147:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32
148:Src/bsp_driver_sd.c **** {
168 .loc 1 148 1 is_stmt 1 view -0
169 .cfi_startproc
170 @ args = 0, pretend = 0, frame = 0
171 @ frame_needed = 0, uses_anonymous_args = 0
172 .loc 1 148 1 is_stmt 0 view .LVU31
173 0000 00B5 push {lr}
174 .LCFI3:
175 .cfi_def_cfa_offset 4
176 .cfi_offset 14, -4
177 0002 83B0 sub sp, sp, #12
178 .LCFI4:
179 .cfi_def_cfa_offset 16
149:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
180 .loc 1 149 3 is_stmt 1 view .LVU32
181 .LVL10:
150:Src/bsp_driver_sd.c ****
151:Src/bsp_driver_sd.c **** if (HAL_SD_WriteBlocks(&hsd1, (uint8_t *)pData, WriteAddr, NumOfBlocks, Timeout) != HAL_OK)
182 .loc 1 151 3 view .LVU33
183 .loc 1 151 7 is_stmt 0 view .LVU34
184 0004 0093 str r3, [sp]
185 0006 1346 mov r3, r2
186 .LVL11:
187 .loc 1 151 7 view .LVU35
188 0008 0A46 mov r2, r1
189 .LVL12:
190 .loc 1 151 7 view .LVU36
191 000a 0146 mov r1, r0
192 .LVL13:
193 .loc 1 151 7 view .LVU37
194 000c 0348 ldr r0, .L16
195 .LVL14:
196 .loc 1 151 7 view .LVU38
197 000e FFF7FEFF bl HAL_SD_WriteBlocks
198 .LVL15:
ARM GAS /tmp/ccVIJNmt.s page 7
199 .loc 1 151 6 discriminator 1 view .LVU39
200 0012 00B1 cbz r0, .L13
152:Src/bsp_driver_sd.c **** {
153:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR;
201 .loc 1 153 14 view .LVU40
202 0014 0120 movs r0, #1
203 .L13:
204 .LVL16:
154:Src/bsp_driver_sd.c **** }
155:Src/bsp_driver_sd.c ****
156:Src/bsp_driver_sd.c **** return sd_state;
205 .loc 1 156 3 is_stmt 1 view .LVU41
157:Src/bsp_driver_sd.c **** }
206 .loc 1 157 1 is_stmt 0 view .LVU42
207 0016 03B0 add sp, sp, #12
208 .LCFI5:
209 .cfi_def_cfa_offset 4
210 @ sp needed
211 0018 5DF804FB ldr pc, [sp], #4
212 .L17:
213 .align 2
214 .L16:
215 001c 00000000 .word hsd1
216 .cfi_endproc
217 .LFE145:
219 .section .text.BSP_SD_ReadBlocks_DMA,"ax",%progbits
220 .align 1
221 .weak BSP_SD_ReadBlocks_DMA
222 .syntax unified
223 .thumb
224 .thumb_func
226 BSP_SD_ReadBlocks_DMA:
227 .LVL17:
228 .LFB146:
158:Src/bsp_driver_sd.c ****
159:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeReadDMABlocksSection */
160:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
161:Src/bsp_driver_sd.c **** /* USER CODE END BeforeReadDMABlocksSection */
162:Src/bsp_driver_sd.c **** /**
163:Src/bsp_driver_sd.c **** * @brief Reads block(s) from a specified address in an SD card, in DMA mode.
164:Src/bsp_driver_sd.c **** * @param pData: Pointer to the buffer that will contain the data to transmit
165:Src/bsp_driver_sd.c **** * @param ReadAddr: Address from where data is to be read
166:Src/bsp_driver_sd.c **** * @param NumOfBlocks: Number of SD blocks to read
167:Src/bsp_driver_sd.c **** * @retval SD status
168:Src/bsp_driver_sd.c **** */
169:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks)
170:Src/bsp_driver_sd.c **** {
229 .loc 1 170 1 is_stmt 1 view -0
230 .cfi_startproc
231 @ args = 0, pretend = 0, frame = 0
232 @ frame_needed = 0, uses_anonymous_args = 0
233 .loc 1 170 1 is_stmt 0 view .LVU44
234 0000 08B5 push {r3, lr}
235 .LCFI6:
236 .cfi_def_cfa_offset 8
237 .cfi_offset 3, -8
238 .cfi_offset 14, -4
ARM GAS /tmp/ccVIJNmt.s page 8
239 0002 1346 mov r3, r2
171:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
240 .loc 1 171 3 is_stmt 1 view .LVU45
241 .LVL18:
172:Src/bsp_driver_sd.c ****
173:Src/bsp_driver_sd.c **** /* Read block(s) in DMA transfer mode */
174:Src/bsp_driver_sd.c **** if (HAL_SD_ReadBlocks_DMA(&hsd1, (uint8_t *)pData, ReadAddr, NumOfBlocks) != HAL_OK)
242 .loc 1 174 3 view .LVU46
243 .loc 1 174 7 is_stmt 0 view .LVU47
244 0004 0A46 mov r2, r1
245 .LVL19:
246 .loc 1 174 7 view .LVU48
247 0006 0146 mov r1, r0
248 .LVL20:
249 .loc 1 174 7 view .LVU49
250 0008 0248 ldr r0, .L22
251 .LVL21:
252 .loc 1 174 7 view .LVU50
253 000a FFF7FEFF bl HAL_SD_ReadBlocks_DMA
254 .LVL22:
255 .loc 1 174 6 discriminator 1 view .LVU51
256 000e 00B1 cbz r0, .L19
175:Src/bsp_driver_sd.c **** {
176:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR;
257 .loc 1 176 14 view .LVU52
258 0010 0120 movs r0, #1
259 .L19:
260 .LVL23:
177:Src/bsp_driver_sd.c **** }
178:Src/bsp_driver_sd.c ****
179:Src/bsp_driver_sd.c **** return sd_state;
261 .loc 1 179 3 is_stmt 1 view .LVU53
180:Src/bsp_driver_sd.c **** }
262 .loc 1 180 1 is_stmt 0 view .LVU54
263 0012 08BD pop {r3, pc}
264 .L23:
265 .align 2
266 .L22:
267 0014 00000000 .word hsd1
268 .cfi_endproc
269 .LFE146:
271 .section .text.BSP_SD_WriteBlocks_DMA,"ax",%progbits
272 .align 1
273 .weak BSP_SD_WriteBlocks_DMA
274 .syntax unified
275 .thumb
276 .thumb_func
278 BSP_SD_WriteBlocks_DMA:
279 .LVL24:
280 .LFB147:
181:Src/bsp_driver_sd.c ****
182:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeWriteDMABlocksSection */
183:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
184:Src/bsp_driver_sd.c **** /* USER CODE END BeforeWriteDMABlocksSection */
185:Src/bsp_driver_sd.c **** /**
186:Src/bsp_driver_sd.c **** * @brief Writes block(s) to a specified address in an SD card, in DMA mode.
187:Src/bsp_driver_sd.c **** * @param pData: Pointer to the buffer that will contain the data to transmit
ARM GAS /tmp/ccVIJNmt.s page 9
188:Src/bsp_driver_sd.c **** * @param WriteAddr: Address from where data is to be written
189:Src/bsp_driver_sd.c **** * @param NumOfBlocks: Number of SD blocks to write
190:Src/bsp_driver_sd.c **** * @retval SD status
191:Src/bsp_driver_sd.c **** */
192:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks)
193:Src/bsp_driver_sd.c **** {
281 .loc 1 193 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 193 1 is_stmt 0 view .LVU56
286 0000 08B5 push {r3, lr}
287 .LCFI7:
288 .cfi_def_cfa_offset 8
289 .cfi_offset 3, -8
290 .cfi_offset 14, -4
291 0002 1346 mov r3, r2
194:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
292 .loc 1 194 3 is_stmt 1 view .LVU57
293 .LVL25:
195:Src/bsp_driver_sd.c ****
196:Src/bsp_driver_sd.c **** /* Write block(s) in DMA transfer mode */
197:Src/bsp_driver_sd.c **** if (HAL_SD_WriteBlocks_DMA(&hsd1, (uint8_t *)pData, WriteAddr, NumOfBlocks) != HAL_OK)
294 .loc 1 197 3 view .LVU58
295 .loc 1 197 7 is_stmt 0 view .LVU59
296 0004 0A46 mov r2, r1
297 .LVL26:
298 .loc 1 197 7 view .LVU60
299 0006 0146 mov r1, r0
300 .LVL27:
301 .loc 1 197 7 view .LVU61
302 0008 0248 ldr r0, .L28
303 .LVL28:
304 .loc 1 197 7 view .LVU62
305 000a FFF7FEFF bl HAL_SD_WriteBlocks_DMA
306 .LVL29:
307 .loc 1 197 6 discriminator 1 view .LVU63
308 000e 00B1 cbz r0, .L25
198:Src/bsp_driver_sd.c **** {
199:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR;
309 .loc 1 199 14 view .LVU64
310 0010 0120 movs r0, #1
311 .L25:
312 .LVL30:
200:Src/bsp_driver_sd.c **** }
201:Src/bsp_driver_sd.c ****
202:Src/bsp_driver_sd.c **** return sd_state;
313 .loc 1 202 3 is_stmt 1 view .LVU65
203:Src/bsp_driver_sd.c **** }
314 .loc 1 203 1 is_stmt 0 view .LVU66
315 0012 08BD pop {r3, pc}
316 .L29:
317 .align 2
318 .L28:
319 0014 00000000 .word hsd1
320 .cfi_endproc
321 .LFE147:
ARM GAS /tmp/ccVIJNmt.s page 10
323 .section .text.BSP_SD_Erase,"ax",%progbits
324 .align 1
325 .weak BSP_SD_Erase
326 .syntax unified
327 .thumb
328 .thumb_func
330 BSP_SD_Erase:
331 .LVL31:
332 .LFB148:
204:Src/bsp_driver_sd.c ****
205:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeEraseSection */
206:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
207:Src/bsp_driver_sd.c **** /* USER CODE END BeforeEraseSection */
208:Src/bsp_driver_sd.c **** /**
209:Src/bsp_driver_sd.c **** * @brief Erases the specified memory area of the given SD card.
210:Src/bsp_driver_sd.c **** * @param StartAddr: Start byte address
211:Src/bsp_driver_sd.c **** * @param EndAddr: End byte address
212:Src/bsp_driver_sd.c **** * @retval SD status
213:Src/bsp_driver_sd.c **** */
214:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
215:Src/bsp_driver_sd.c **** {
333 .loc 1 215 1 is_stmt 1 view -0
334 .cfi_startproc
335 @ args = 0, pretend = 0, frame = 0
336 @ frame_needed = 0, uses_anonymous_args = 0
337 .loc 1 215 1 is_stmt 0 view .LVU68
338 0000 08B5 push {r3, lr}
339 .LCFI8:
340 .cfi_def_cfa_offset 8
341 .cfi_offset 3, -8
342 .cfi_offset 14, -4
343 0002 0A46 mov r2, r1
216:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
344 .loc 1 216 3 is_stmt 1 view .LVU69
345 .LVL32:
217:Src/bsp_driver_sd.c ****
218:Src/bsp_driver_sd.c **** if (HAL_SD_Erase(&hsd1, StartAddr, EndAddr) != HAL_OK)
346 .loc 1 218 3 view .LVU70
347 .loc 1 218 7 is_stmt 0 view .LVU71
348 0004 0146 mov r1, r0
349 .LVL33:
350 .loc 1 218 7 view .LVU72
351 0006 0348 ldr r0, .L34
352 .LVL34:
353 .loc 1 218 7 view .LVU73
354 0008 FFF7FEFF bl HAL_SD_Erase
355 .LVL35:
356 .loc 1 218 6 discriminator 1 view .LVU74
357 000c 00B1 cbz r0, .L31
219:Src/bsp_driver_sd.c **** {
220:Src/bsp_driver_sd.c **** sd_state = MSD_ERROR;
358 .loc 1 220 14 view .LVU75
359 000e 0120 movs r0, #1
360 .L31:
361 .LVL36:
221:Src/bsp_driver_sd.c **** }
222:Src/bsp_driver_sd.c ****
ARM GAS /tmp/ccVIJNmt.s page 11
223:Src/bsp_driver_sd.c **** return sd_state;
362 .loc 1 223 3 is_stmt 1 view .LVU76
224:Src/bsp_driver_sd.c **** }
363 .loc 1 224 1 is_stmt 0 view .LVU77
364 0010 08BD pop {r3, pc}
365 .L35:
366 0012 00BF .align 2
367 .L34:
368 0014 00000000 .word hsd1
369 .cfi_endproc
370 .LFE148:
372 .section .text.BSP_SD_GetCardState,"ax",%progbits
373 .align 1
374 .weak BSP_SD_GetCardState
375 .syntax unified
376 .thumb
377 .thumb_func
379 BSP_SD_GetCardState:
380 .LFB149:
225:Src/bsp_driver_sd.c ****
226:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeGetCardStateSection */
227:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
228:Src/bsp_driver_sd.c **** /* USER CODE END BeforeGetCardStateSection */
229:Src/bsp_driver_sd.c ****
230:Src/bsp_driver_sd.c **** /**
231:Src/bsp_driver_sd.c **** * @brief Gets the current SD card data status.
232:Src/bsp_driver_sd.c **** * @param None
233:Src/bsp_driver_sd.c **** * @retval Data transfer state.
234:Src/bsp_driver_sd.c **** * This value can be one of the following values:
235:Src/bsp_driver_sd.c **** * @arg SD_TRANSFER_OK: No data transfer is acting
236:Src/bsp_driver_sd.c **** * @arg SD_TRANSFER_BUSY: Data transfer is acting
237:Src/bsp_driver_sd.c **** */
238:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_GetCardState(void)
239:Src/bsp_driver_sd.c **** {
381 .loc 1 239 1 is_stmt 1 view -0
382 .cfi_startproc
383 @ args = 0, pretend = 0, frame = 0
384 @ frame_needed = 0, uses_anonymous_args = 0
385 0000 08B5 push {r3, lr}
386 .LCFI9:
387 .cfi_def_cfa_offset 8
388 .cfi_offset 3, -8
389 .cfi_offset 14, -4
240:Src/bsp_driver_sd.c **** return ((HAL_SD_GetCardState(&hsd1) == HAL_SD_CARD_TRANSFER ) ? SD_TRANSFER_OK : SD_TRANSFER_BUSY
390 .loc 1 240 3 view .LVU79
391 .loc 1 240 12 is_stmt 0 view .LVU80
392 0002 0348 ldr r0, .L38
393 0004 FFF7FEFF bl HAL_SD_GetCardState
394 .LVL37:
241:Src/bsp_driver_sd.c **** }
395 .loc 1 241 1 view .LVU81
396 0008 0438 subs r0, r0, #4
397 000a 18BF it ne
398 000c 0120 movne r0, #1
399 000e 08BD pop {r3, pc}
400 .L39:
401 .align 2
ARM GAS /tmp/ccVIJNmt.s page 12
402 .L38:
403 0010 00000000 .word hsd1
404 .cfi_endproc
405 .LFE149:
407 .section .text.BSP_SD_GetCardInfo,"ax",%progbits
408 .align 1
409 .weak BSP_SD_GetCardInfo
410 .syntax unified
411 .thumb
412 .thumb_func
414 BSP_SD_GetCardInfo:
415 .LVL38:
416 .LFB150:
242:Src/bsp_driver_sd.c ****
243:Src/bsp_driver_sd.c **** /**
244:Src/bsp_driver_sd.c **** * @brief Get SD information about specific SD card.
245:Src/bsp_driver_sd.c **** * @param CardInfo: Pointer to HAL_SD_CardInfoTypedef structure
246:Src/bsp_driver_sd.c **** * @retval None
247:Src/bsp_driver_sd.c **** */
248:Src/bsp_driver_sd.c **** __weak void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypeDef *CardInfo)
249:Src/bsp_driver_sd.c **** {
417 .loc 1 249 1 is_stmt 1 view -0
418 .cfi_startproc
419 @ args = 0, pretend = 0, frame = 0
420 @ frame_needed = 0, uses_anonymous_args = 0
421 .loc 1 249 1 is_stmt 0 view .LVU83
422 0000 08B5 push {r3, lr}
423 .LCFI10:
424 .cfi_def_cfa_offset 8
425 .cfi_offset 3, -8
426 .cfi_offset 14, -4
427 0002 0146 mov r1, r0
250:Src/bsp_driver_sd.c **** /* Get SD card Information */
251:Src/bsp_driver_sd.c **** HAL_SD_GetCardInfo(&hsd1, CardInfo);
428 .loc 1 251 3 is_stmt 1 view .LVU84
429 0004 0148 ldr r0, .L42
430 .LVL39:
431 .loc 1 251 3 is_stmt 0 view .LVU85
432 0006 FFF7FEFF bl HAL_SD_GetCardInfo
433 .LVL40:
252:Src/bsp_driver_sd.c **** }
434 .loc 1 252 1 view .LVU86
435 000a 08BD pop {r3, pc}
436 .L43:
437 .align 2
438 .L42:
439 000c 00000000 .word hsd1
440 .cfi_endproc
441 .LFE150:
443 .section .text.BSP_SD_AbortCallback,"ax",%progbits
444 .align 1
445 .weak BSP_SD_AbortCallback
446 .syntax unified
447 .thumb
448 .thumb_func
450 BSP_SD_AbortCallback:
451 .LFB154:
ARM GAS /tmp/ccVIJNmt.s page 13
253:Src/bsp_driver_sd.c ****
254:Src/bsp_driver_sd.c **** /* USER CODE BEGIN BeforeCallBacksSection */
255:Src/bsp_driver_sd.c **** /* can be used to modify previous code / undefine following code / add code */
256:Src/bsp_driver_sd.c **** /* USER CODE END BeforeCallBacksSection */
257:Src/bsp_driver_sd.c **** /**
258:Src/bsp_driver_sd.c **** * @brief SD Abort callbacks
259:Src/bsp_driver_sd.c **** * @param hsd: SD handle
260:Src/bsp_driver_sd.c **** * @retval None
261:Src/bsp_driver_sd.c **** */
262:Src/bsp_driver_sd.c **** void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd)
263:Src/bsp_driver_sd.c **** {
264:Src/bsp_driver_sd.c **** BSP_SD_AbortCallback();
265:Src/bsp_driver_sd.c **** }
266:Src/bsp_driver_sd.c ****
267:Src/bsp_driver_sd.c **** /**
268:Src/bsp_driver_sd.c **** * @brief Tx Transfer completed callback
269:Src/bsp_driver_sd.c **** * @param hsd: SD handle
270:Src/bsp_driver_sd.c **** * @retval None
271:Src/bsp_driver_sd.c **** */
272:Src/bsp_driver_sd.c **** void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
273:Src/bsp_driver_sd.c **** {
274:Src/bsp_driver_sd.c **** BSP_SD_WriteCpltCallback();
275:Src/bsp_driver_sd.c **** }
276:Src/bsp_driver_sd.c ****
277:Src/bsp_driver_sd.c **** /**
278:Src/bsp_driver_sd.c **** * @brief Rx Transfer completed callback
279:Src/bsp_driver_sd.c **** * @param hsd: SD handle
280:Src/bsp_driver_sd.c **** * @retval None
281:Src/bsp_driver_sd.c **** */
282:Src/bsp_driver_sd.c **** void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
283:Src/bsp_driver_sd.c **** {
284:Src/bsp_driver_sd.c **** BSP_SD_ReadCpltCallback();
285:Src/bsp_driver_sd.c **** }
286:Src/bsp_driver_sd.c ****
287:Src/bsp_driver_sd.c **** /* USER CODE BEGIN CallBacksSection_C */
288:Src/bsp_driver_sd.c **** /**
289:Src/bsp_driver_sd.c **** * @brief BSP SD Abort callback
290:Src/bsp_driver_sd.c **** * @retval None
291:Src/bsp_driver_sd.c **** * @note empty (up to the user to fill it in or to remove it if useless)
292:Src/bsp_driver_sd.c **** */
293:Src/bsp_driver_sd.c **** __weak void BSP_SD_AbortCallback(void)
294:Src/bsp_driver_sd.c **** {
452 .loc 1 294 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.
295:Src/bsp_driver_sd.c ****
296:Src/bsp_driver_sd.c **** }
457 .loc 1 296 1 view .LVU88
458 0000 7047 bx lr
459 .cfi_endproc
460 .LFE154:
462 .section .text.HAL_SD_AbortCallback,"ax",%progbits
463 .align 1
464 .global HAL_SD_AbortCallback
465 .syntax unified
ARM GAS /tmp/ccVIJNmt.s page 14
466 .thumb
467 .thumb_func
469 HAL_SD_AbortCallback:
470 .LVL41:
471 .LFB151:
263:Src/bsp_driver_sd.c **** BSP_SD_AbortCallback();
472 .loc 1 263 1 view -0
473 .cfi_startproc
474 @ args = 0, pretend = 0, frame = 0
475 @ frame_needed = 0, uses_anonymous_args = 0
263:Src/bsp_driver_sd.c **** BSP_SD_AbortCallback();
476 .loc 1 263 1 is_stmt 0 view .LVU90
477 0000 08B5 push {r3, lr}
478 .LCFI11:
479 .cfi_def_cfa_offset 8
480 .cfi_offset 3, -8
481 .cfi_offset 14, -4
264:Src/bsp_driver_sd.c **** }
482 .loc 1 264 3 is_stmt 1 view .LVU91
483 0002 FFF7FEFF bl BSP_SD_AbortCallback
484 .LVL42:
265:Src/bsp_driver_sd.c ****
485 .loc 1 265 1 is_stmt 0 view .LVU92
486 0006 08BD pop {r3, pc}
487 .cfi_endproc
488 .LFE151:
490 .section .text.BSP_SD_WriteCpltCallback,"ax",%progbits
491 .align 1
492 .weak BSP_SD_WriteCpltCallback
493 .syntax unified
494 .thumb
495 .thumb_func
497 BSP_SD_WriteCpltCallback:
498 .LFB155:
297:Src/bsp_driver_sd.c ****
298:Src/bsp_driver_sd.c **** /**
299:Src/bsp_driver_sd.c **** * @brief BSP Tx Transfer completed callback
300:Src/bsp_driver_sd.c **** * @retval None
301:Src/bsp_driver_sd.c **** * @note empty (up to the user to fill it in or to remove it if useless)
302:Src/bsp_driver_sd.c **** */
303:Src/bsp_driver_sd.c **** __weak void BSP_SD_WriteCpltCallback(void)
304:Src/bsp_driver_sd.c **** {
499 .loc 1 304 1 is_stmt 1 view -0
500 .cfi_startproc
501 @ args = 0, pretend = 0, frame = 0
502 @ frame_needed = 0, uses_anonymous_args = 0
503 @ link register save eliminated.
305:Src/bsp_driver_sd.c ****
306:Src/bsp_driver_sd.c **** }
504 .loc 1 306 1 view .LVU94
505 0000 7047 bx lr
506 .cfi_endproc
507 .LFE155:
509 .section .text.HAL_SD_TxCpltCallback,"ax",%progbits
510 .align 1
511 .global HAL_SD_TxCpltCallback
512 .syntax unified
ARM GAS /tmp/ccVIJNmt.s page 15
513 .thumb
514 .thumb_func
516 HAL_SD_TxCpltCallback:
517 .LVL43:
518 .LFB152:
273:Src/bsp_driver_sd.c **** BSP_SD_WriteCpltCallback();
519 .loc 1 273 1 view -0
520 .cfi_startproc
521 @ args = 0, pretend = 0, frame = 0
522 @ frame_needed = 0, uses_anonymous_args = 0
273:Src/bsp_driver_sd.c **** BSP_SD_WriteCpltCallback();
523 .loc 1 273 1 is_stmt 0 view .LVU96
524 0000 08B5 push {r3, lr}
525 .LCFI12:
526 .cfi_def_cfa_offset 8
527 .cfi_offset 3, -8
528 .cfi_offset 14, -4
274:Src/bsp_driver_sd.c **** }
529 .loc 1 274 3 is_stmt 1 view .LVU97
530 0002 FFF7FEFF bl BSP_SD_WriteCpltCallback
531 .LVL44:
275:Src/bsp_driver_sd.c ****
532 .loc 1 275 1 is_stmt 0 view .LVU98
533 0006 08BD pop {r3, pc}
534 .cfi_endproc
535 .LFE152:
537 .section .text.BSP_SD_ReadCpltCallback,"ax",%progbits
538 .align 1
539 .weak BSP_SD_ReadCpltCallback
540 .syntax unified
541 .thumb
542 .thumb_func
544 BSP_SD_ReadCpltCallback:
545 .LFB156:
307:Src/bsp_driver_sd.c ****
308:Src/bsp_driver_sd.c **** /**
309:Src/bsp_driver_sd.c **** * @brief BSP Rx Transfer completed callback
310:Src/bsp_driver_sd.c **** * @retval None
311:Src/bsp_driver_sd.c **** * @note empty (up to the user to fill it in or to remove it if useless)
312:Src/bsp_driver_sd.c **** */
313:Src/bsp_driver_sd.c **** __weak void BSP_SD_ReadCpltCallback(void)
314:Src/bsp_driver_sd.c **** {
546 .loc 1 314 1 is_stmt 1 view -0
547 .cfi_startproc
548 @ args = 0, pretend = 0, frame = 0
549 @ frame_needed = 0, uses_anonymous_args = 0
550 @ link register save eliminated.
315:Src/bsp_driver_sd.c ****
316:Src/bsp_driver_sd.c **** }
551 .loc 1 316 1 view .LVU100
552 0000 7047 bx lr
553 .cfi_endproc
554 .LFE156:
556 .section .text.HAL_SD_RxCpltCallback,"ax",%progbits
557 .align 1
558 .global HAL_SD_RxCpltCallback
559 .syntax unified
ARM GAS /tmp/ccVIJNmt.s page 16
560 .thumb
561 .thumb_func
563 HAL_SD_RxCpltCallback:
564 .LVL45:
565 .LFB153:
283:Src/bsp_driver_sd.c **** BSP_SD_ReadCpltCallback();
566 .loc 1 283 1 view -0
567 .cfi_startproc
568 @ args = 0, pretend = 0, frame = 0
569 @ frame_needed = 0, uses_anonymous_args = 0
283:Src/bsp_driver_sd.c **** BSP_SD_ReadCpltCallback();
570 .loc 1 283 1 is_stmt 0 view .LVU102
571 0000 08B5 push {r3, lr}
572 .LCFI13:
573 .cfi_def_cfa_offset 8
574 .cfi_offset 3, -8
575 .cfi_offset 14, -4
284:Src/bsp_driver_sd.c **** }
576 .loc 1 284 3 is_stmt 1 view .LVU103
577 0002 FFF7FEFF bl BSP_SD_ReadCpltCallback
578 .LVL46:
285:Src/bsp_driver_sd.c ****
579 .loc 1 285 1 is_stmt 0 view .LVU104
580 0006 08BD pop {r3, pc}
581 .cfi_endproc
582 .LFE153:
584 .section .text.BSP_SD_IsDetected,"ax",%progbits
585 .align 1
586 .weak BSP_SD_IsDetected
587 .syntax unified
588 .thumb
589 .thumb_func
591 BSP_SD_IsDetected:
592 .LFB157:
317:Src/bsp_driver_sd.c **** /* USER CODE END CallBacksSection_C */
318:Src/bsp_driver_sd.c **** #endif
319:Src/bsp_driver_sd.c ****
320:Src/bsp_driver_sd.c **** /**
321:Src/bsp_driver_sd.c **** * @brief Detects if SD card is correctly plugged in the memory slot or not.
322:Src/bsp_driver_sd.c **** * @param None
323:Src/bsp_driver_sd.c **** * @retval Returns if SD is detected or not
324:Src/bsp_driver_sd.c **** */
325:Src/bsp_driver_sd.c **** __weak uint8_t BSP_SD_IsDetected(void)
326:Src/bsp_driver_sd.c **** {
593 .loc 1 326 1 is_stmt 1 view -0
594 .cfi_startproc
595 @ args = 0, pretend = 0, frame = 8
596 @ frame_needed = 0, uses_anonymous_args = 0
597 0000 00B5 push {lr}
598 .LCFI14:
599 .cfi_def_cfa_offset 4
600 .cfi_offset 14, -4
601 0002 83B0 sub sp, sp, #12
602 .LCFI15:
603 .cfi_def_cfa_offset 16
327:Src/bsp_driver_sd.c **** __IO uint8_t status = SD_PRESENT;
604 .loc 1 327 3 view .LVU106
ARM GAS /tmp/ccVIJNmt.s page 17
605 .loc 1 327 16 is_stmt 0 view .LVU107
606 0004 0123 movs r3, #1
607 0006 8DF80730 strb r3, [sp, #7]
328:Src/bsp_driver_sd.c ****
329:Src/bsp_driver_sd.c **** if (BSP_PlatformIsDetected() == 0x0)
608 .loc 1 329 3 is_stmt 1 view .LVU108
609 .loc 1 329 7 is_stmt 0 view .LVU109
610 000a FFF7FEFF bl BSP_PlatformIsDetected
611 .LVL47:
612 .loc 1 329 6 discriminator 1 view .LVU110
613 000e 10B9 cbnz r0, .L54
330:Src/bsp_driver_sd.c **** {
331:Src/bsp_driver_sd.c **** status = SD_NOT_PRESENT;
614 .loc 1 331 5 is_stmt 1 view .LVU111
615 .loc 1 331 12 is_stmt 0 view .LVU112
616 0010 0023 movs r3, #0
617 0012 8DF80730 strb r3, [sp, #7]
618 .L54:
332:Src/bsp_driver_sd.c **** }
333:Src/bsp_driver_sd.c ****
334:Src/bsp_driver_sd.c **** return status;
619 .loc 1 334 3 is_stmt 1 view .LVU113
620 .loc 1 334 10 is_stmt 0 view .LVU114
621 0016 9DF80700 ldrb r0, [sp, #7] @ zero_extendqisi2
335:Src/bsp_driver_sd.c **** }
622 .loc 1 335 1 view .LVU115
623 001a 03B0 add sp, sp, #12
624 .LCFI16:
625 .cfi_def_cfa_offset 4
626 @ sp needed
627 001c 5DF804FB ldr pc, [sp], #4
628 .cfi_endproc
629 .LFE157:
631 .section .text.BSP_SD_Init,"ax",%progbits
632 .align 1
633 .weak BSP_SD_Init
634 .syntax unified
635 .thumb
636 .thumb_func
638 BSP_SD_Init:
639 .LFB142:
68:Src/bsp_driver_sd.c **** uint8_t sd_state = MSD_OK;
640 .loc 1 68 1 is_stmt 1 view -0
641 .cfi_startproc
642 @ args = 0, pretend = 0, frame = 0
643 @ frame_needed = 0, uses_anonymous_args = 0
644 0000 10B5 push {r4, lr}
645 .LCFI17:
646 .cfi_def_cfa_offset 8
647 .cfi_offset 4, -8
648 .cfi_offset 14, -4
69:Src/bsp_driver_sd.c **** g_last_bsp_sd_detect_status = BSP_SD_IsDetected();
649 .loc 1 69 3 view .LVU117
650 .LVL48:
70:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = HAL_ERROR;
651 .loc 1 70 3 view .LVU118
70:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = HAL_ERROR;
ARM GAS /tmp/ccVIJNmt.s page 18
652 .loc 1 70 33 is_stmt 0 view .LVU119
653 0002 FFF7FEFF bl BSP_SD_IsDetected
654 .LVL49:
70:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = HAL_ERROR;
655 .loc 1 70 31 discriminator 1 view .LVU120
656 0006 134B ldr r3, .L61
657 0008 1870 strb r0, [r3]
71:Src/bsp_driver_sd.c **** g_last_bsp_sd_wide_bus_status = HAL_ERROR;
658 .loc 1 71 3 is_stmt 1 view .LVU121
71:Src/bsp_driver_sd.c **** g_last_bsp_sd_wide_bus_status = HAL_ERROR;
659 .loc 1 71 33 is_stmt 0 view .LVU122
660 000a 0122 movs r2, #1
661 000c 1249 ldr r1, .L61+4
662 000e 0A70 strb r2, [r1]
72:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = 0u;
663 .loc 1 72 3 is_stmt 1 view .LVU123
72:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = 0u;
664 .loc 1 72 33 is_stmt 0 view .LVU124
665 0010 1249 ldr r1, .L61+8
666 0012 0A70 strb r2, [r1]
73:Src/bsp_driver_sd.c **** /* Check if the SD card is plugged in the slot */
667 .loc 1 73 3 is_stmt 1 view .LVU125
73:Src/bsp_driver_sd.c **** /* Check if the SD card is plugged in the slot */
668 .loc 1 73 27 is_stmt 0 view .LVU126
669 0014 124A ldr r2, .L61+12
670 0016 0021 movs r1, #0
671 0018 1160 str r1, [r2]
75:Src/bsp_driver_sd.c **** {
672 .loc 1 75 3 is_stmt 1 view .LVU127
75:Src/bsp_driver_sd.c **** {
673 .loc 1 75 35 is_stmt 0 view .LVU128
674 001a 1B78 ldrb r3, [r3] @ zero_extendqisi2
675 001c DBB2 uxtb r3, r3
75:Src/bsp_driver_sd.c **** {
676 .loc 1 75 6 view .LVU129
677 001e 012B cmp r3, #1
678 0020 03D0 beq .L57
77:Src/bsp_driver_sd.c **** return MSD_ERROR_SD_NOT_PRESENT;
679 .loc 1 77 5 is_stmt 1 view .LVU130
77:Src/bsp_driver_sd.c **** return MSD_ERROR_SD_NOT_PRESENT;
680 .loc 1 77 31 is_stmt 0 view .LVU131
681 0022 0220 movs r0, #2
682 0024 0F4B ldr r3, .L61+16
683 0026 1870 strb r0, [r3]
78:Src/bsp_driver_sd.c **** }
684 .loc 1 78 5 is_stmt 1 view .LVU132
685 .LVL50:
686 .L58:
94:Src/bsp_driver_sd.c **** /* USER CODE BEGIN AfterInitSection */
687 .loc 1 94 1 is_stmt 0 view .LVU133
688 0028 10BD pop {r4, pc}
689 .LVL51:
690 .L57:
80:Src/bsp_driver_sd.c **** hsd1.Init.ClockDiv = 118u;
691 .loc 1 80 3 is_stmt 1 view .LVU134
80:Src/bsp_driver_sd.c **** hsd1.Init.ClockDiv = 118u;
692 .loc 1 80 21 is_stmt 0 view .LVU135
ARM GAS /tmp/ccVIJNmt.s page 19
693 002a 0F4C ldr r4, .L61+20
694 002c 0023 movs r3, #0
695 002e 2361 str r3, [r4, #16]
81:Src/bsp_driver_sd.c **** /* HAL SD initialization */
696 .loc 1 81 3 is_stmt 1 view .LVU136
81:Src/bsp_driver_sd.c **** /* HAL SD initialization */
697 .loc 1 81 22 is_stmt 0 view .LVU137
698 0030 7623 movs r3, #118
699 0032 A361 str r3, [r4, #24]
83:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = sd_state;
700 .loc 1 83 3 is_stmt 1 view .LVU138
83:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_init_status = sd_state;
701 .loc 1 83 14 is_stmt 0 view .LVU139
702 0034 2046 mov r0, r4
703 0036 FFF7FEFF bl HAL_SD_Init
704 .LVL52:
84:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = hsd1.ErrorCode;
705 .loc 1 84 3 is_stmt 1 view .LVU140
84:Src/bsp_driver_sd.c **** g_last_bsp_sd_hal_error = hsd1.ErrorCode;
706 .loc 1 84 33 is_stmt 0 view .LVU141
707 003a 074B ldr r3, .L61+4
708 003c 1870 strb r0, [r3]
85:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */
709 .loc 1 85 3 is_stmt 1 view .LVU142
85:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */
710 .loc 1 85 33 is_stmt 0 view .LVU143
711 003e A26B ldr r2, [r4, #56]
85:Src/bsp_driver_sd.c **** /* Configure SD Bus width (4 bits mode selected) */
712 .loc 1 85 27 view .LVU144
713 0040 074B ldr r3, .L61+12
714 0042 1A60 str r2, [r3]
87:Src/bsp_driver_sd.c **** {
715 .loc 1 87 3 is_stmt 1 view .LVU145
87:Src/bsp_driver_sd.c **** {
716 .loc 1 87 6 is_stmt 0 view .LVU146
717 0044 10B9 cbnz r0, .L59
89:Src/bsp_driver_sd.c **** }
718 .loc 1 89 5 is_stmt 1 view .LVU147
89:Src/bsp_driver_sd.c **** }
719 .loc 1 89 35 is_stmt 0 view .LVU148
720 0046 054B ldr r3, .L61+8
721 0048 0022 movs r2, #0
722 004a 1A70 strb r2, [r3]
723 .L59:
92:Src/bsp_driver_sd.c **** return sd_state;
724 .loc 1 92 3 is_stmt 1 view .LVU149
92:Src/bsp_driver_sd.c **** return sd_state;
725 .loc 1 92 29 is_stmt 0 view .LVU150
726 004c 054B ldr r3, .L61+16
727 004e 1870 strb r0, [r3]
93:Src/bsp_driver_sd.c **** }
728 .loc 1 93 3 is_stmt 1 view .LVU151
93:Src/bsp_driver_sd.c **** }
729 .loc 1 93 10 is_stmt 0 view .LVU152
730 0050 EAE7 b .L58
731 .L62:
732 0052 00BF .align 2
ARM GAS /tmp/ccVIJNmt.s page 20
733 .L61:
734 0054 00000000 .word g_last_bsp_sd_detect_status
735 0058 00000000 .word g_last_bsp_sd_hal_init_status
736 005c 00000000 .word g_last_bsp_sd_wide_bus_status
737 0060 00000000 .word g_last_bsp_sd_hal_error
738 0064 00000000 .word g_last_bsp_sd_init_status
739 0068 00000000 .word hsd1
740 .cfi_endproc
741 .LFE142:
743 .section .bss.g_last_bsp_sd_hal_error,"aw",%nobits
744 .align 2
747 g_last_bsp_sd_hal_error:
748 0000 00000000 .space 4
749 .section .data.g_last_bsp_sd_wide_bus_status,"aw"
752 g_last_bsp_sd_wide_bus_status:
753 0000 01 .byte 1
754 .section .data.g_last_bsp_sd_hal_init_status,"aw"
757 g_last_bsp_sd_hal_init_status:
758 0000 01 .byte 1
759 .section .bss.g_last_bsp_sd_detect_status,"aw",%nobits
762 g_last_bsp_sd_detect_status:
763 0000 00 .space 1
764 .section .data.g_last_bsp_sd_init_status,"aw"
767 g_last_bsp_sd_init_status:
768 0000 02 .byte 2
769 .text
770 .Letext0:
771 .file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
772 .file 3 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h"
773 .file 4 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h"
774 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h"
775 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_sdmmc.h"
776 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_sd.h"
777 .file 8 "Inc/bsp_driver_sd.h"
778 .file 9 "Inc/fatfs_platform.h"
ARM GAS /tmp/ccVIJNmt.s page 21
DEFINED SYMBOLS
*ABS*:00000000 bsp_driver_sd.c
/tmp/ccVIJNmt.s:20 .text.BSP_SD_GetDebugInfo:00000000 $t
/tmp/ccVIJNmt.s:26 .text.BSP_SD_GetDebugInfo:00000000 BSP_SD_GetDebugInfo
/tmp/ccVIJNmt.s:68 .text.BSP_SD_GetDebugInfo:00000024 $d
/tmp/ccVIJNmt.s:767 .data.g_last_bsp_sd_init_status:00000000 g_last_bsp_sd_init_status
/tmp/ccVIJNmt.s:762 .bss.g_last_bsp_sd_detect_status:00000000 g_last_bsp_sd_detect_status
/tmp/ccVIJNmt.s:757 .data.g_last_bsp_sd_hal_init_status:00000000 g_last_bsp_sd_hal_init_status
/tmp/ccVIJNmt.s:752 .data.g_last_bsp_sd_wide_bus_status:00000000 g_last_bsp_sd_wide_bus_status
/tmp/ccVIJNmt.s:747 .bss.g_last_bsp_sd_hal_error:00000000 g_last_bsp_sd_hal_error
/tmp/ccVIJNmt.s:77 .text.BSP_SD_ITConfig:00000000 $t
/tmp/ccVIJNmt.s:83 .text.BSP_SD_ITConfig:00000000 BSP_SD_ITConfig
/tmp/ccVIJNmt.s:98 .text.BSP_SD_ReadBlocks:00000000 $t
/tmp/ccVIJNmt.s:104 .text.BSP_SD_ReadBlocks:00000000 BSP_SD_ReadBlocks
/tmp/ccVIJNmt.s:154 .text.BSP_SD_ReadBlocks:0000001c $d
/tmp/ccVIJNmt.s:159 .text.BSP_SD_WriteBlocks:00000000 $t
/tmp/ccVIJNmt.s:165 .text.BSP_SD_WriteBlocks:00000000 BSP_SD_WriteBlocks
/tmp/ccVIJNmt.s:215 .text.BSP_SD_WriteBlocks:0000001c $d
/tmp/ccVIJNmt.s:220 .text.BSP_SD_ReadBlocks_DMA:00000000 $t
/tmp/ccVIJNmt.s:226 .text.BSP_SD_ReadBlocks_DMA:00000000 BSP_SD_ReadBlocks_DMA
/tmp/ccVIJNmt.s:267 .text.BSP_SD_ReadBlocks_DMA:00000014 $d
/tmp/ccVIJNmt.s:272 .text.BSP_SD_WriteBlocks_DMA:00000000 $t
/tmp/ccVIJNmt.s:278 .text.BSP_SD_WriteBlocks_DMA:00000000 BSP_SD_WriteBlocks_DMA
/tmp/ccVIJNmt.s:319 .text.BSP_SD_WriteBlocks_DMA:00000014 $d
/tmp/ccVIJNmt.s:324 .text.BSP_SD_Erase:00000000 $t
/tmp/ccVIJNmt.s:330 .text.BSP_SD_Erase:00000000 BSP_SD_Erase
/tmp/ccVIJNmt.s:368 .text.BSP_SD_Erase:00000014 $d
/tmp/ccVIJNmt.s:373 .text.BSP_SD_GetCardState:00000000 $t
/tmp/ccVIJNmt.s:379 .text.BSP_SD_GetCardState:00000000 BSP_SD_GetCardState
/tmp/ccVIJNmt.s:403 .text.BSP_SD_GetCardState:00000010 $d
/tmp/ccVIJNmt.s:408 .text.BSP_SD_GetCardInfo:00000000 $t
/tmp/ccVIJNmt.s:414 .text.BSP_SD_GetCardInfo:00000000 BSP_SD_GetCardInfo
/tmp/ccVIJNmt.s:439 .text.BSP_SD_GetCardInfo:0000000c $d
/tmp/ccVIJNmt.s:444 .text.BSP_SD_AbortCallback:00000000 $t
/tmp/ccVIJNmt.s:450 .text.BSP_SD_AbortCallback:00000000 BSP_SD_AbortCallback
/tmp/ccVIJNmt.s:463 .text.HAL_SD_AbortCallback:00000000 $t
/tmp/ccVIJNmt.s:469 .text.HAL_SD_AbortCallback:00000000 HAL_SD_AbortCallback
/tmp/ccVIJNmt.s:491 .text.BSP_SD_WriteCpltCallback:00000000 $t
/tmp/ccVIJNmt.s:497 .text.BSP_SD_WriteCpltCallback:00000000 BSP_SD_WriteCpltCallback
/tmp/ccVIJNmt.s:510 .text.HAL_SD_TxCpltCallback:00000000 $t
/tmp/ccVIJNmt.s:516 .text.HAL_SD_TxCpltCallback:00000000 HAL_SD_TxCpltCallback
/tmp/ccVIJNmt.s:538 .text.BSP_SD_ReadCpltCallback:00000000 $t
/tmp/ccVIJNmt.s:544 .text.BSP_SD_ReadCpltCallback:00000000 BSP_SD_ReadCpltCallback
/tmp/ccVIJNmt.s:557 .text.HAL_SD_RxCpltCallback:00000000 $t
/tmp/ccVIJNmt.s:563 .text.HAL_SD_RxCpltCallback:00000000 HAL_SD_RxCpltCallback
/tmp/ccVIJNmt.s:585 .text.BSP_SD_IsDetected:00000000 $t
/tmp/ccVIJNmt.s:591 .text.BSP_SD_IsDetected:00000000 BSP_SD_IsDetected
/tmp/ccVIJNmt.s:632 .text.BSP_SD_Init:00000000 $t
/tmp/ccVIJNmt.s:638 .text.BSP_SD_Init:00000000 BSP_SD_Init
/tmp/ccVIJNmt.s:734 .text.BSP_SD_Init:00000054 $d
/tmp/ccVIJNmt.s:744 .bss.g_last_bsp_sd_hal_error:00000000 $d
/tmp/ccVIJNmt.s:763 .bss.g_last_bsp_sd_detect_status:00000000 $d
UNDEFINED SYMBOLS
HAL_SD_ReadBlocks
hsd1
HAL_SD_WriteBlocks
ARM GAS /tmp/ccVIJNmt.s page 22
HAL_SD_ReadBlocks_DMA
HAL_SD_WriteBlocks_DMA
HAL_SD_Erase
HAL_SD_GetCardState
HAL_SD_GetCardInfo
BSP_PlatformIsDetected
HAL_SD_Init