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

853 lines
36 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/cc1MJofu.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 "sd_diskio.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .file 1 "Src/sd_diskio.c"
19 .section .text.SD_CheckStatus,"ax",%progbits
20 .align 1
21 .syntax unified
22 .thumb
23 .thumb_func
25 SD_CheckStatus:
26 .LVL0:
27 .LFB1185:
1:Src/sd_diskio.c **** /* USER CODE BEGIN Header */
2:Src/sd_diskio.c **** /**
3:Src/sd_diskio.c **** ******************************************************************************
4:Src/sd_diskio.c **** * @file sd_diskio.c
5:Src/sd_diskio.c **** * @brief SD Disk I/O driver
6:Src/sd_diskio.c **** ******************************************************************************
7:Src/sd_diskio.c **** * @attention
8:Src/sd_diskio.c **** *
9:Src/sd_diskio.c **** * Copyright (c) 2023 STMicroelectronics.
10:Src/sd_diskio.c **** * All rights reserved.
11:Src/sd_diskio.c **** *
12:Src/sd_diskio.c **** * This software is licensed under terms that can be found in the LICENSE file
13:Src/sd_diskio.c **** * in the root directory of this software component.
14:Src/sd_diskio.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
15:Src/sd_diskio.c **** *
16:Src/sd_diskio.c **** ******************************************************************************
17:Src/sd_diskio.c **** */
18:Src/sd_diskio.c **** /* USER CODE END Header */
19:Src/sd_diskio.c ****
20:Src/sd_diskio.c **** /* Note: code generation based on sd_diskio_template_bspv1.c v2.1.4
21:Src/sd_diskio.c **** as "Use dma template" is disabled. */
22:Src/sd_diskio.c ****
23:Src/sd_diskio.c **** /* USER CODE BEGIN firstSection */
24:Src/sd_diskio.c **** /* can be used to modify / undefine following code or add new definitions */
25:Src/sd_diskio.c **** /* USER CODE END firstSection*/
26:Src/sd_diskio.c ****
27:Src/sd_diskio.c **** /* Includes ------------------------------------------------------------------*/
28:Src/sd_diskio.c **** #include "ff_gen_drv.h"
29:Src/sd_diskio.c **** #include "sd_diskio.h"
30:Src/sd_diskio.c ****
31:Src/sd_diskio.c **** /* Private typedef -----------------------------------------------------------*/
ARM GAS /tmp/cc1MJofu.s page 2
32:Src/sd_diskio.c **** /* Private define ------------------------------------------------------------*/
33:Src/sd_diskio.c **** /* use the default SD timout as defined in the platform BSP driver*/
34:Src/sd_diskio.c **** #if defined(SDMMC_DATATIMEOUT)
35:Src/sd_diskio.c **** #define SD_TIMEOUT SDMMC_DATATIMEOUT
36:Src/sd_diskio.c **** #elif defined(SD_DATATIMEOUT)
37:Src/sd_diskio.c **** #define SD_TIMEOUT SD_DATATIMEOUT
38:Src/sd_diskio.c **** #else
39:Src/sd_diskio.c **** #define SD_TIMEOUT 30 * 1000
40:Src/sd_diskio.c **** #endif
41:Src/sd_diskio.c ****
42:Src/sd_diskio.c **** #define SD_DEFAULT_BLOCK_SIZE 512
43:Src/sd_diskio.c ****
44:Src/sd_diskio.c **** /*
45:Src/sd_diskio.c **** * Depending on the use case, the SD card initialization could be done at the
46:Src/sd_diskio.c **** * application level: if it is the case define the flag below to disable
47:Src/sd_diskio.c **** * the BSP_SD_Init() call in the SD_Initialize() and add a call to
48:Src/sd_diskio.c **** * BSP_SD_Init() elsewhere in the application.
49:Src/sd_diskio.c **** */
50:Src/sd_diskio.c **** /* USER CODE BEGIN disableSDInit */
51:Src/sd_diskio.c **** /* #define DISABLE_SD_INIT */
52:Src/sd_diskio.c **** /* USER CODE END disableSDInit */
53:Src/sd_diskio.c ****
54:Src/sd_diskio.c **** /* Private variables ---------------------------------------------------------*/
55:Src/sd_diskio.c **** /* Disk status */
56:Src/sd_diskio.c **** static volatile DSTATUS Stat = STA_NOINIT;
57:Src/sd_diskio.c **** static volatile DSTATUS g_last_initialize_status = STA_NOINIT;
58:Src/sd_diskio.c **** static volatile DSTATUS g_last_status_result = STA_NOINIT;
59:Src/sd_diskio.c ****
60:Src/sd_diskio.c **** /* Private function prototypes -----------------------------------------------*/
61:Src/sd_diskio.c **** static DSTATUS SD_CheckStatus(BYTE lun);
62:Src/sd_diskio.c **** DSTATUS SD_initialize (BYTE);
63:Src/sd_diskio.c **** DSTATUS SD_status (BYTE);
64:Src/sd_diskio.c **** DRESULT SD_read (BYTE, BYTE*, DWORD, UINT);
65:Src/sd_diskio.c **** #if _USE_WRITE == 1
66:Src/sd_diskio.c **** DRESULT SD_write (BYTE, const BYTE*, DWORD, UINT);
67:Src/sd_diskio.c **** #endif /* _USE_WRITE == 1 */
68:Src/sd_diskio.c **** #if _USE_IOCTL == 1
69:Src/sd_diskio.c **** DRESULT SD_ioctl (BYTE, BYTE, void*);
70:Src/sd_diskio.c **** #endif /* _USE_IOCTL == 1 */
71:Src/sd_diskio.c ****
72:Src/sd_diskio.c **** const Diskio_drvTypeDef SD_Driver =
73:Src/sd_diskio.c **** {
74:Src/sd_diskio.c **** SD_initialize,
75:Src/sd_diskio.c **** SD_status,
76:Src/sd_diskio.c **** SD_read,
77:Src/sd_diskio.c **** #if _USE_WRITE == 1
78:Src/sd_diskio.c **** SD_write,
79:Src/sd_diskio.c **** #endif /* _USE_WRITE == 1 */
80:Src/sd_diskio.c ****
81:Src/sd_diskio.c **** #if _USE_IOCTL == 1
82:Src/sd_diskio.c **** SD_ioctl,
83:Src/sd_diskio.c **** #endif /* _USE_IOCTL == 1 */
84:Src/sd_diskio.c **** };
85:Src/sd_diskio.c ****
86:Src/sd_diskio.c **** /* USER CODE BEGIN beforeFunctionSection */
87:Src/sd_diskio.c **** /* can be used to modify / undefine following code or add new code */
88:Src/sd_diskio.c **** DSTATUS sd_diskio_debug_get_last_initialize_status(void)
ARM GAS /tmp/cc1MJofu.s page 3
89:Src/sd_diskio.c **** {
90:Src/sd_diskio.c **** return g_last_initialize_status;
91:Src/sd_diskio.c **** }
92:Src/sd_diskio.c ****
93:Src/sd_diskio.c **** DSTATUS sd_diskio_debug_get_last_status_result(void)
94:Src/sd_diskio.c **** {
95:Src/sd_diskio.c **** return g_last_status_result;
96:Src/sd_diskio.c **** }
97:Src/sd_diskio.c **** /* USER CODE END beforeFunctionSection */
98:Src/sd_diskio.c ****
99:Src/sd_diskio.c **** /* Private functions ---------------------------------------------------------*/
100:Src/sd_diskio.c ****
101:Src/sd_diskio.c **** static DSTATUS SD_CheckStatus(BYTE lun)
102:Src/sd_diskio.c **** {
28 .loc 1 102 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 .loc 1 102 1 is_stmt 0 view .LVU1
33 0000 08B5 push {r3, lr}
34 .LCFI0:
35 .cfi_def_cfa_offset 8
36 .cfi_offset 3, -8
37 .cfi_offset 14, -4
103:Src/sd_diskio.c **** Stat = STA_NOINIT;
38 .loc 1 103 3 is_stmt 1 view .LVU2
39 .loc 1 103 8 is_stmt 0 view .LVU3
40 0002 074B ldr r3, .L4
41 0004 0122 movs r2, #1
42 0006 1A70 strb r2, [r3]
104:Src/sd_diskio.c ****
105:Src/sd_diskio.c **** if(BSP_SD_GetCardState() == MSD_OK)
43 .loc 1 105 3 is_stmt 1 view .LVU4
44 .loc 1 105 6 is_stmt 0 view .LVU5
45 0008 FFF7FEFF bl BSP_SD_GetCardState
46 .LVL1:
47 .loc 1 105 5 discriminator 1 view .LVU6
48 000c 20B9 cbnz r0, .L2
106:Src/sd_diskio.c **** {
107:Src/sd_diskio.c **** Stat &= ~STA_NOINIT;
49 .loc 1 107 5 is_stmt 1 view .LVU7
50 .loc 1 107 10 is_stmt 0 view .LVU8
51 000e 044A ldr r2, .L4
52 0010 1378 ldrb r3, [r2] @ zero_extendqisi2
53 0012 03F0FE03 and r3, r3, #254
54 0016 1370 strb r3, [r2]
55 .L2:
108:Src/sd_diskio.c **** }
109:Src/sd_diskio.c ****
110:Src/sd_diskio.c **** return Stat;
56 .loc 1 110 3 is_stmt 1 view .LVU9
57 .loc 1 110 10 is_stmt 0 view .LVU10
58 0018 014B ldr r3, .L4
59 001a 1878 ldrb r0, [r3] @ zero_extendqisi2
111:Src/sd_diskio.c **** }
60 .loc 1 111 1 view .LVU11
61 001c 08BD pop {r3, pc}
ARM GAS /tmp/cc1MJofu.s page 4
62 .L5:
63 001e 00BF .align 2
64 .L4:
65 0020 00000000 .word Stat
66 .cfi_endproc
67 .LFE1185:
69 .section .text.SD_initialize,"ax",%progbits
70 .align 1
71 .global SD_initialize
72 .syntax unified
73 .thumb
74 .thumb_func
76 SD_initialize:
77 .LVL2:
78 .LFB1186:
112:Src/sd_diskio.c ****
113:Src/sd_diskio.c **** /**
114:Src/sd_diskio.c **** * @brief Initializes a Drive
115:Src/sd_diskio.c **** * @param lun : not used
116:Src/sd_diskio.c **** * @retval DSTATUS: Operation status
117:Src/sd_diskio.c **** */
118:Src/sd_diskio.c **** DSTATUS SD_initialize(BYTE lun)
119:Src/sd_diskio.c **** {
79 .loc 1 119 1 is_stmt 1 view -0
80 .cfi_startproc
81 @ args = 0, pretend = 0, frame = 0
82 @ frame_needed = 0, uses_anonymous_args = 0
83 .loc 1 119 1 is_stmt 0 view .LVU13
84 0000 10B5 push {r4, lr}
85 .LCFI1:
86 .cfi_def_cfa_offset 8
87 .cfi_offset 4, -8
88 .cfi_offset 14, -4
89 0002 0446 mov r4, r0
120:Src/sd_diskio.c **** Stat = STA_NOINIT;
90 .loc 1 120 1 is_stmt 1 view .LVU14
91 .loc 1 120 6 is_stmt 0 view .LVU15
92 0004 094B ldr r3, .L10
93 0006 0122 movs r2, #1
94 0008 1A70 strb r2, [r3]
121:Src/sd_diskio.c ****
122:Src/sd_diskio.c **** #if !defined(DISABLE_SD_INIT)
123:Src/sd_diskio.c ****
124:Src/sd_diskio.c **** if(BSP_SD_Init() == MSD_OK)
95 .loc 1 124 3 is_stmt 1 view .LVU16
96 .loc 1 124 6 is_stmt 0 view .LVU17
97 000a FFF7FEFF bl BSP_SD_Init
98 .LVL3:
99 .loc 1 124 5 discriminator 1 view .LVU18
100 000e 30B1 cbz r0, .L9
101 .L7:
125:Src/sd_diskio.c **** {
126:Src/sd_diskio.c **** Stat = SD_CheckStatus(lun);
127:Src/sd_diskio.c **** }
128:Src/sd_diskio.c ****
129:Src/sd_diskio.c **** #else
130:Src/sd_diskio.c **** Stat = SD_CheckStatus(lun);
ARM GAS /tmp/cc1MJofu.s page 5
131:Src/sd_diskio.c **** #endif
132:Src/sd_diskio.c ****
133:Src/sd_diskio.c **** g_last_initialize_status = Stat;
102 .loc 1 133 3 is_stmt 1 view .LVU19
103 .loc 1 133 28 is_stmt 0 view .LVU20
104 0010 064A ldr r2, .L10
105 0012 1378 ldrb r3, [r2] @ zero_extendqisi2
106 0014 DBB2 uxtb r3, r3
107 0016 0649 ldr r1, .L10+4
108 0018 0B70 strb r3, [r1]
134:Src/sd_diskio.c ****
135:Src/sd_diskio.c **** return Stat;
109 .loc 1 135 3 is_stmt 1 view .LVU21
110 .loc 1 135 10 is_stmt 0 view .LVU22
111 001a 1078 ldrb r0, [r2] @ zero_extendqisi2
136:Src/sd_diskio.c **** }
112 .loc 1 136 1 view .LVU23
113 001c 10BD pop {r4, pc}
114 .LVL4:
115 .L9:
126:Src/sd_diskio.c **** }
116 .loc 1 126 5 is_stmt 1 view .LVU24
126:Src/sd_diskio.c **** }
117 .loc 1 126 12 is_stmt 0 view .LVU25
118 001e 2046 mov r0, r4
119 0020 FFF7FEFF bl SD_CheckStatus
120 .LVL5:
126:Src/sd_diskio.c **** }
121 .loc 1 126 10 discriminator 1 view .LVU26
122 0024 014B ldr r3, .L10
123 0026 1870 strb r0, [r3]
124 0028 F2E7 b .L7
125 .L11:
126 002a 00BF .align 2
127 .L10:
128 002c 00000000 .word Stat
129 0030 00000000 .word g_last_initialize_status
130 .cfi_endproc
131 .LFE1186:
133 .section .text.SD_status,"ax",%progbits
134 .align 1
135 .global SD_status
136 .syntax unified
137 .thumb
138 .thumb_func
140 SD_status:
141 .LVL6:
142 .LFB1187:
137:Src/sd_diskio.c ****
138:Src/sd_diskio.c **** /**
139:Src/sd_diskio.c **** * @brief Gets Disk Status
140:Src/sd_diskio.c **** * @param lun : not used
141:Src/sd_diskio.c **** * @retval DSTATUS: Operation status
142:Src/sd_diskio.c **** */
143:Src/sd_diskio.c **** DSTATUS SD_status(BYTE lun)
144:Src/sd_diskio.c **** {
143 .loc 1 144 1 is_stmt 1 view -0
ARM GAS /tmp/cc1MJofu.s page 6
144 .cfi_startproc
145 @ args = 0, pretend = 0, frame = 0
146 @ frame_needed = 0, uses_anonymous_args = 0
147 .loc 1 144 1 is_stmt 0 view .LVU28
148 0000 08B5 push {r3, lr}
149 .LCFI2:
150 .cfi_def_cfa_offset 8
151 .cfi_offset 3, -8
152 .cfi_offset 14, -4
145:Src/sd_diskio.c **** g_last_status_result = SD_CheckStatus(lun);
153 .loc 1 145 3 is_stmt 1 view .LVU29
154 .loc 1 145 26 is_stmt 0 view .LVU30
155 0002 FFF7FEFF bl SD_CheckStatus
156 .LVL7:
157 .loc 1 145 24 discriminator 1 view .LVU31
158 0006 024B ldr r3, .L14
159 0008 1870 strb r0, [r3]
146:Src/sd_diskio.c **** return g_last_status_result;
160 .loc 1 146 3 is_stmt 1 view .LVU32
161 .loc 1 146 10 is_stmt 0 view .LVU33
162 000a 1878 ldrb r0, [r3] @ zero_extendqisi2
147:Src/sd_diskio.c **** }
163 .loc 1 147 1 view .LVU34
164 000c 08BD pop {r3, pc}
165 .L15:
166 000e 00BF .align 2
167 .L14:
168 0010 00000000 .word g_last_status_result
169 .cfi_endproc
170 .LFE1187:
172 .section .text.SD_read,"ax",%progbits
173 .align 1
174 .global SD_read
175 .syntax unified
176 .thumb
177 .thumb_func
179 SD_read:
180 .LVL8:
181 .LFB1188:
148:Src/sd_diskio.c ****
149:Src/sd_diskio.c **** /* USER CODE BEGIN beforeReadSection */
150:Src/sd_diskio.c **** /* can be used to modify previous code / undefine following code / add new code */
151:Src/sd_diskio.c **** /* USER CODE END beforeReadSection */
152:Src/sd_diskio.c **** /**
153:Src/sd_diskio.c **** * @brief Reads Sector(s)
154:Src/sd_diskio.c **** * @param lun : not used
155:Src/sd_diskio.c **** * @param *buff: Data buffer to store read data
156:Src/sd_diskio.c **** * @param sector: Sector address (LBA)
157:Src/sd_diskio.c **** * @param count: Number of sectors to read (1..128)
158:Src/sd_diskio.c **** * @retval DRESULT: Operation result
159:Src/sd_diskio.c **** */
160:Src/sd_diskio.c ****
161:Src/sd_diskio.c **** DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count)
162:Src/sd_diskio.c **** {
182 .loc 1 162 1 is_stmt 1 view -0
183 .cfi_startproc
184 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/cc1MJofu.s page 7
185 @ frame_needed = 0, uses_anonymous_args = 0
186 .loc 1 162 1 is_stmt 0 view .LVU36
187 0000 08B5 push {r3, lr}
188 .LCFI3:
189 .cfi_def_cfa_offset 8
190 .cfi_offset 3, -8
191 .cfi_offset 14, -4
192 0002 0846 mov r0, r1
193 .LVL9:
194 .loc 1 162 1 view .LVU37
195 0004 1146 mov r1, r2
196 .LVL10:
197 .loc 1 162 1 view .LVU38
198 0006 1A46 mov r2, r3
199 .LVL11:
163:Src/sd_diskio.c **** DRESULT res = RES_ERROR;
200 .loc 1 163 3 is_stmt 1 view .LVU39
164:Src/sd_diskio.c ****
165:Src/sd_diskio.c **** if(BSP_SD_ReadBlocks((uint32_t*)buff,
201 .loc 1 165 3 view .LVU40
202 .loc 1 165 6 is_stmt 0 view .LVU41
203 0008 4FF0FF33 mov r3, #-1
204 .LVL12:
205 .loc 1 165 6 view .LVU42
206 000c FFF7FEFF bl BSP_SD_ReadBlocks
207 .LVL13:
208 .loc 1 165 5 discriminator 1 view .LVU43
209 0010 30B9 cbnz r0, .L19
210 .L18:
166:Src/sd_diskio.c **** (uint32_t) (sector),
167:Src/sd_diskio.c **** count, SD_TIMEOUT) == MSD_OK)
168:Src/sd_diskio.c **** {
169:Src/sd_diskio.c **** /* wait until the read operation is finished */
170:Src/sd_diskio.c **** while(BSP_SD_GetCardState()!= MSD_OK)
171:Src/sd_diskio.c **** {
172:Src/sd_diskio.c **** }
211 .loc 1 172 5 is_stmt 1 view .LVU44
170:Src/sd_diskio.c **** {
212 .loc 1 170 32 discriminator 1 view .LVU45
170:Src/sd_diskio.c **** {
213 .loc 1 170 11 is_stmt 0 discriminator 1 view .LVU46
214 0012 FFF7FEFF bl BSP_SD_GetCardState
215 .LVL14:
170:Src/sd_diskio.c **** {
216 .loc 1 170 32 discriminator 1 view .LVU47
217 0016 0346 mov r3, r0
218 0018 0028 cmp r0, #0
219 001a FAD1 bne .L18
220 .L17:
221 .LVL15:
173:Src/sd_diskio.c **** res = RES_OK;
174:Src/sd_diskio.c **** }
175:Src/sd_diskio.c ****
176:Src/sd_diskio.c **** return res;
222 .loc 1 176 3 is_stmt 1 view .LVU48
177:Src/sd_diskio.c **** }
223 .loc 1 177 1 is_stmt 0 view .LVU49
ARM GAS /tmp/cc1MJofu.s page 8
224 001c 1846 mov r0, r3
225 001e 08BD pop {r3, pc}
226 .LVL16:
227 .L19:
163:Src/sd_diskio.c ****
228 .loc 1 163 11 view .LVU50
229 0020 0123 movs r3, #1
230 0022 FBE7 b .L17
231 .cfi_endproc
232 .LFE1188:
234 .section .text.SD_write,"ax",%progbits
235 .align 1
236 .global SD_write
237 .syntax unified
238 .thumb
239 .thumb_func
241 SD_write:
242 .LVL17:
243 .LFB1189:
178:Src/sd_diskio.c ****
179:Src/sd_diskio.c **** /* USER CODE BEGIN beforeWriteSection */
180:Src/sd_diskio.c **** /* can be used to modify previous code / undefine following code / add new code */
181:Src/sd_diskio.c **** /* USER CODE END beforeWriteSection */
182:Src/sd_diskio.c **** /**
183:Src/sd_diskio.c **** * @brief Writes Sector(s)
184:Src/sd_diskio.c **** * @param lun : not used
185:Src/sd_diskio.c **** * @param *buff: Data to be written
186:Src/sd_diskio.c **** * @param sector: Sector address (LBA)
187:Src/sd_diskio.c **** * @param count: Number of sectors to write (1..128)
188:Src/sd_diskio.c **** * @retval DRESULT: Operation result
189:Src/sd_diskio.c **** */
190:Src/sd_diskio.c **** #if _USE_WRITE == 1
191:Src/sd_diskio.c ****
192:Src/sd_diskio.c **** DRESULT SD_write(BYTE lun, const BYTE *buff, DWORD sector, UINT count)
193:Src/sd_diskio.c **** {
244 .loc 1 193 1 is_stmt 1 view -0
245 .cfi_startproc
246 @ args = 0, pretend = 0, frame = 0
247 @ frame_needed = 0, uses_anonymous_args = 0
248 .loc 1 193 1 is_stmt 0 view .LVU52
249 0000 08B5 push {r3, lr}
250 .LCFI4:
251 .cfi_def_cfa_offset 8
252 .cfi_offset 3, -8
253 .cfi_offset 14, -4
254 0002 0846 mov r0, r1
255 .LVL18:
256 .loc 1 193 1 view .LVU53
257 0004 1146 mov r1, r2
258 .LVL19:
259 .loc 1 193 1 view .LVU54
260 0006 1A46 mov r2, r3
261 .LVL20:
194:Src/sd_diskio.c **** DRESULT res = RES_ERROR;
262 .loc 1 194 3 is_stmt 1 view .LVU55
195:Src/sd_diskio.c ****
196:Src/sd_diskio.c **** if(BSP_SD_WriteBlocks((uint32_t*)buff,
ARM GAS /tmp/cc1MJofu.s page 9
263 .loc 1 196 3 view .LVU56
264 .loc 1 196 6 is_stmt 0 view .LVU57
265 0008 4FF0FF33 mov r3, #-1
266 .LVL21:
267 .loc 1 196 6 view .LVU58
268 000c FFF7FEFF bl BSP_SD_WriteBlocks
269 .LVL22:
270 .loc 1 196 5 discriminator 1 view .LVU59
271 0010 30B9 cbnz r0, .L24
272 .L23:
197:Src/sd_diskio.c **** (uint32_t)(sector),
198:Src/sd_diskio.c **** count, SD_TIMEOUT) == MSD_OK)
199:Src/sd_diskio.c **** {
200:Src/sd_diskio.c **** /* wait until the Write operation is finished */
201:Src/sd_diskio.c **** while(BSP_SD_GetCardState() != MSD_OK)
202:Src/sd_diskio.c **** {
203:Src/sd_diskio.c **** }
273 .loc 1 203 5 is_stmt 1 view .LVU60
201:Src/sd_diskio.c **** {
274 .loc 1 201 33 discriminator 1 view .LVU61
201:Src/sd_diskio.c **** {
275 .loc 1 201 11 is_stmt 0 discriminator 1 view .LVU62
276 0012 FFF7FEFF bl BSP_SD_GetCardState
277 .LVL23:
201:Src/sd_diskio.c **** {
278 .loc 1 201 33 discriminator 1 view .LVU63
279 0016 0346 mov r3, r0
280 0018 0028 cmp r0, #0
281 001a FAD1 bne .L23
282 .L22:
283 .LVL24:
204:Src/sd_diskio.c **** res = RES_OK;
205:Src/sd_diskio.c **** }
206:Src/sd_diskio.c ****
207:Src/sd_diskio.c **** return res;
284 .loc 1 207 3 is_stmt 1 view .LVU64
208:Src/sd_diskio.c **** }
285 .loc 1 208 1 is_stmt 0 view .LVU65
286 001c 1846 mov r0, r3
287 001e 08BD pop {r3, pc}
288 .LVL25:
289 .L24:
194:Src/sd_diskio.c ****
290 .loc 1 194 11 view .LVU66
291 0020 0123 movs r3, #1
292 0022 FBE7 b .L22
293 .cfi_endproc
294 .LFE1189:
296 .section .text.SD_ioctl,"ax",%progbits
297 .align 1
298 .global SD_ioctl
299 .syntax unified
300 .thumb
301 .thumb_func
303 SD_ioctl:
304 .LVL26:
305 .LFB1190:
ARM GAS /tmp/cc1MJofu.s page 10
209:Src/sd_diskio.c **** #endif /* _USE_WRITE == 1 */
210:Src/sd_diskio.c ****
211:Src/sd_diskio.c **** /* USER CODE BEGIN beforeIoctlSection */
212:Src/sd_diskio.c **** /* can be used to modify previous code / undefine following code / add new code */
213:Src/sd_diskio.c **** /* USER CODE END beforeIoctlSection */
214:Src/sd_diskio.c **** /**
215:Src/sd_diskio.c **** * @brief I/O control operation
216:Src/sd_diskio.c **** * @param lun : not used
217:Src/sd_diskio.c **** * @param cmd: Control code
218:Src/sd_diskio.c **** * @param *buff: Buffer to send/receive control data
219:Src/sd_diskio.c **** * @retval DRESULT: Operation result
220:Src/sd_diskio.c **** */
221:Src/sd_diskio.c **** #if _USE_IOCTL == 1
222:Src/sd_diskio.c **** DRESULT SD_ioctl(BYTE lun, BYTE cmd, void *buff)
223:Src/sd_diskio.c **** {
306 .loc 1 223 1 is_stmt 1 view -0
307 .cfi_startproc
308 @ args = 0, pretend = 0, frame = 32
309 @ frame_needed = 0, uses_anonymous_args = 0
310 .loc 1 223 1 is_stmt 0 view .LVU68
311 0000 30B5 push {r4, r5, lr}
312 .LCFI5:
313 .cfi_def_cfa_offset 12
314 .cfi_offset 4, -12
315 .cfi_offset 5, -8
316 .cfi_offset 14, -4
317 0002 89B0 sub sp, sp, #36
318 .LCFI6:
319 .cfi_def_cfa_offset 48
224:Src/sd_diskio.c **** DRESULT res = RES_ERROR;
320 .loc 1 224 3 is_stmt 1 view .LVU69
321 .LVL27:
225:Src/sd_diskio.c **** BSP_SD_CardInfo CardInfo;
322 .loc 1 225 3 view .LVU70
226:Src/sd_diskio.c ****
227:Src/sd_diskio.c **** if (Stat & STA_NOINIT) return RES_NOTRDY;
323 .loc 1 227 3 view .LVU71
324 .loc 1 227 12 is_stmt 0 view .LVU72
325 0004 134B ldr r3, .L36
326 0006 1878 ldrb r0, [r3] @ zero_extendqisi2
327 .LVL28:
328 .loc 1 227 6 view .LVU73
329 0008 10F00104 ands r4, r0, #1
330 000c 1BD1 bne .L33
331 000e 1546 mov r5, r2
228:Src/sd_diskio.c ****
229:Src/sd_diskio.c **** switch (cmd)
332 .loc 1 229 3 is_stmt 1 view .LVU74
333 0010 0329 cmp r1, #3
334 0012 1CD8 bhi .L34
335 0014 DFE801F0 tbb [pc, r1]
336 .L29:
337 0018 02 .byte (.L32-.L29)/2
338 0019 04 .byte (.L31-.L29)/2
339 001a 0A .byte (.L30-.L29)/2
340 001b 10 .byte (.L28-.L29)/2
341 .p2align 1
ARM GAS /tmp/cc1MJofu.s page 11
342 .L32:
343 001c 0C46 mov r4, r1
344 001e 13E0 b .L27
345 .L31:
230:Src/sd_diskio.c **** {
231:Src/sd_diskio.c **** /* Make sure that no pending write process */
232:Src/sd_diskio.c **** case CTRL_SYNC :
233:Src/sd_diskio.c **** res = RES_OK;
234:Src/sd_diskio.c **** break;
235:Src/sd_diskio.c ****
236:Src/sd_diskio.c **** /* Get number of sectors on the disk (DWORD) */
237:Src/sd_diskio.c **** case GET_SECTOR_COUNT :
238:Src/sd_diskio.c **** BSP_SD_GetCardInfo(&CardInfo);
346 .loc 1 238 5 view .LVU75
347 0020 6846 mov r0, sp
348 0022 FFF7FEFF bl BSP_SD_GetCardInfo
349 .LVL29:
239:Src/sd_diskio.c **** *(DWORD*)buff = CardInfo.LogBlockNbr;
350 .loc 1 239 5 view .LVU76
351 .loc 1 239 29 is_stmt 0 view .LVU77
352 0026 069B ldr r3, [sp, #24]
353 .loc 1 239 19 view .LVU78
354 0028 2B60 str r3, [r5]
240:Src/sd_diskio.c **** res = RES_OK;
355 .loc 1 240 5 is_stmt 1 view .LVU79
356 .LVL30:
241:Src/sd_diskio.c **** break;
357 .loc 1 241 5 view .LVU80
358 002a 0DE0 b .L27
359 .LVL31:
360 .L30:
242:Src/sd_diskio.c ****
243:Src/sd_diskio.c **** /* Get R/W sector size (WORD) */
244:Src/sd_diskio.c **** case GET_SECTOR_SIZE :
245:Src/sd_diskio.c **** BSP_SD_GetCardInfo(&CardInfo);
361 .loc 1 245 5 view .LVU81
362 002c 6846 mov r0, sp
363 002e FFF7FEFF bl BSP_SD_GetCardInfo
364 .LVL32:
246:Src/sd_diskio.c **** *(WORD*)buff = CardInfo.LogBlockSize;
365 .loc 1 246 5 view .LVU82
366 .loc 1 246 28 is_stmt 0 view .LVU83
367 0032 079B ldr r3, [sp, #28]
368 .loc 1 246 18 view .LVU84
369 0034 2B80 strh r3, [r5] @ movhi
247:Src/sd_diskio.c **** res = RES_OK;
370 .loc 1 247 5 is_stmt 1 view .LVU85
371 .LVL33:
248:Src/sd_diskio.c **** break;
372 .loc 1 248 5 view .LVU86
373 0036 07E0 b .L27
374 .LVL34:
375 .L28:
249:Src/sd_diskio.c ****
250:Src/sd_diskio.c **** /* Get erase block size in unit of sector (DWORD) */
251:Src/sd_diskio.c **** case GET_BLOCK_SIZE :
252:Src/sd_diskio.c **** BSP_SD_GetCardInfo(&CardInfo);
ARM GAS /tmp/cc1MJofu.s page 12
376 .loc 1 252 5 view .LVU87
377 0038 6846 mov r0, sp
378 003a FFF7FEFF bl BSP_SD_GetCardInfo
379 .LVL35:
253:Src/sd_diskio.c **** *(DWORD*)buff = CardInfo.LogBlockSize / SD_DEFAULT_BLOCK_SIZE;
380 .loc 1 253 5 view .LVU88
381 .loc 1 253 29 is_stmt 0 view .LVU89
382 003e 079B ldr r3, [sp, #28]
383 .loc 1 253 43 view .LVU90
384 0040 5B0A lsrs r3, r3, #9
385 .loc 1 253 19 view .LVU91
386 0042 2B60 str r3, [r5]
254:Src/sd_diskio.c **** res = RES_OK;
387 .loc 1 254 5 is_stmt 1 view .LVU92
388 .LVL36:
255:Src/sd_diskio.c **** break;
389 .loc 1 255 5 view .LVU93
390 0044 00E0 b .L27
391 .LVL37:
392 .L33:
227:Src/sd_diskio.c ****
393 .loc 1 227 33 is_stmt 0 discriminator 1 view .LVU94
394 0046 0324 movs r4, #3
395 .LVL38:
396 .L27:
256:Src/sd_diskio.c ****
257:Src/sd_diskio.c **** default:
258:Src/sd_diskio.c **** res = RES_PARERR;
259:Src/sd_diskio.c **** }
260:Src/sd_diskio.c ****
261:Src/sd_diskio.c **** return res;
262:Src/sd_diskio.c **** }
397 .loc 1 262 1 view .LVU95
398 0048 2046 mov r0, r4
399 004a 09B0 add sp, sp, #36
400 .LCFI7:
401 .cfi_remember_state
402 .cfi_def_cfa_offset 12
403 @ sp needed
404 004c 30BD pop {r4, r5, pc}
405 .LVL39:
406 .L34:
407 .LCFI8:
408 .cfi_restore_state
258:Src/sd_diskio.c **** }
409 .loc 1 258 9 view .LVU96
410 004e 0424 movs r4, #4
411 0050 FAE7 b .L27
412 .L37:
413 0052 00BF .align 2
414 .L36:
415 0054 00000000 .word Stat
416 .cfi_endproc
417 .LFE1190:
419 .section .text.sd_diskio_debug_get_last_initialize_status,"ax",%progbits
420 .align 1
421 .global sd_diskio_debug_get_last_initialize_status
ARM GAS /tmp/cc1MJofu.s page 13
422 .syntax unified
423 .thumb
424 .thumb_func
426 sd_diskio_debug_get_last_initialize_status:
427 .LFB1183:
89:Src/sd_diskio.c **** return g_last_initialize_status;
428 .loc 1 89 1 is_stmt 1 view -0
429 .cfi_startproc
430 @ args = 0, pretend = 0, frame = 0
431 @ frame_needed = 0, uses_anonymous_args = 0
432 @ link register save eliminated.
90:Src/sd_diskio.c **** }
433 .loc 1 90 3 view .LVU98
90:Src/sd_diskio.c **** }
434 .loc 1 90 10 is_stmt 0 view .LVU99
435 0000 014B ldr r3, .L39
436 0002 1878 ldrb r0, [r3] @ zero_extendqisi2
91:Src/sd_diskio.c ****
437 .loc 1 91 1 view .LVU100
438 0004 7047 bx lr
439 .L40:
440 0006 00BF .align 2
441 .L39:
442 0008 00000000 .word g_last_initialize_status
443 .cfi_endproc
444 .LFE1183:
446 .section .text.sd_diskio_debug_get_last_status_result,"ax",%progbits
447 .align 1
448 .global sd_diskio_debug_get_last_status_result
449 .syntax unified
450 .thumb
451 .thumb_func
453 sd_diskio_debug_get_last_status_result:
454 .LFB1184:
94:Src/sd_diskio.c **** return g_last_status_result;
455 .loc 1 94 1 is_stmt 1 view -0
456 .cfi_startproc
457 @ args = 0, pretend = 0, frame = 0
458 @ frame_needed = 0, uses_anonymous_args = 0
459 @ link register save eliminated.
95:Src/sd_diskio.c **** }
460 .loc 1 95 3 view .LVU102
95:Src/sd_diskio.c **** }
461 .loc 1 95 10 is_stmt 0 view .LVU103
462 0000 014B ldr r3, .L42
463 0002 1878 ldrb r0, [r3] @ zero_extendqisi2
96:Src/sd_diskio.c **** /* USER CODE END beforeFunctionSection */
464 .loc 1 96 1 view .LVU104
465 0004 7047 bx lr
466 .L43:
467 0006 00BF .align 2
468 .L42:
469 0008 00000000 .word g_last_status_result
470 .cfi_endproc
471 .LFE1184:
473 .global SD_Driver
474 .section .rodata.SD_Driver,"a"
ARM GAS /tmp/cc1MJofu.s page 14
475 .align 2
478 SD_Driver:
479 0000 00000000 .word SD_initialize
480 0004 00000000 .word SD_status
481 0008 00000000 .word SD_read
482 000c 00000000 .word SD_write
483 0010 00000000 .word SD_ioctl
484 .section .data.g_last_status_result,"aw"
487 g_last_status_result:
488 0000 01 .byte 1
489 .section .data.g_last_initialize_status,"aw"
492 g_last_initialize_status:
493 0000 01 .byte 1
494 .section .data.Stat,"aw"
497 Stat:
498 0000 01 .byte 1
499 .text
500 .Letext0:
501 .file 2 "Middlewares/Third_Party/FatFs/src/integer.h"
502 .file 3 "Middlewares/Third_Party/FatFs/src/diskio.h"
503 .file 4 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
504 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_sd.h"
505 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_dma.h"
506 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_tim.h"
507 .file 8 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_rcc.h"
508 .file 9 "Middlewares/Third_Party/FatFs/src/ff_gen_drv.h"
509 .file 10 "Inc/bsp_driver_sd.h"
510 .file 11 "Inc/sd_diskio.h"
ARM GAS /tmp/cc1MJofu.s page 15
DEFINED SYMBOLS
*ABS*:00000000 sd_diskio.c
/tmp/cc1MJofu.s:20 .text.SD_CheckStatus:00000000 $t
/tmp/cc1MJofu.s:25 .text.SD_CheckStatus:00000000 SD_CheckStatus
/tmp/cc1MJofu.s:65 .text.SD_CheckStatus:00000020 $d
/tmp/cc1MJofu.s:497 .data.Stat:00000000 Stat
/tmp/cc1MJofu.s:70 .text.SD_initialize:00000000 $t
/tmp/cc1MJofu.s:76 .text.SD_initialize:00000000 SD_initialize
/tmp/cc1MJofu.s:128 .text.SD_initialize:0000002c $d
/tmp/cc1MJofu.s:492 .data.g_last_initialize_status:00000000 g_last_initialize_status
/tmp/cc1MJofu.s:134 .text.SD_status:00000000 $t
/tmp/cc1MJofu.s:140 .text.SD_status:00000000 SD_status
/tmp/cc1MJofu.s:168 .text.SD_status:00000010 $d
/tmp/cc1MJofu.s:487 .data.g_last_status_result:00000000 g_last_status_result
/tmp/cc1MJofu.s:173 .text.SD_read:00000000 $t
/tmp/cc1MJofu.s:179 .text.SD_read:00000000 SD_read
/tmp/cc1MJofu.s:235 .text.SD_write:00000000 $t
/tmp/cc1MJofu.s:241 .text.SD_write:00000000 SD_write
/tmp/cc1MJofu.s:297 .text.SD_ioctl:00000000 $t
/tmp/cc1MJofu.s:303 .text.SD_ioctl:00000000 SD_ioctl
/tmp/cc1MJofu.s:337 .text.SD_ioctl:00000018 $d
/tmp/cc1MJofu.s:341 .text.SD_ioctl:0000001c $t
/tmp/cc1MJofu.s:415 .text.SD_ioctl:00000054 $d
/tmp/cc1MJofu.s:420 .text.sd_diskio_debug_get_last_initialize_status:00000000 $t
/tmp/cc1MJofu.s:426 .text.sd_diskio_debug_get_last_initialize_status:00000000 sd_diskio_debug_get_last_initialize_status
/tmp/cc1MJofu.s:442 .text.sd_diskio_debug_get_last_initialize_status:00000008 $d
/tmp/cc1MJofu.s:447 .text.sd_diskio_debug_get_last_status_result:00000000 $t
/tmp/cc1MJofu.s:453 .text.sd_diskio_debug_get_last_status_result:00000000 sd_diskio_debug_get_last_status_result
/tmp/cc1MJofu.s:469 .text.sd_diskio_debug_get_last_status_result:00000008 $d
/tmp/cc1MJofu.s:478 .rodata.SD_Driver:00000000 SD_Driver
/tmp/cc1MJofu.s:475 .rodata.SD_Driver:00000000 $d
UNDEFINED SYMBOLS
BSP_SD_GetCardState
BSP_SD_Init
BSP_SD_ReadBlocks
BSP_SD_WriteBlocks
BSP_SD_GetCardInfo