ARM GAS /tmp/cccCjqCZ.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 "File_Handling.c" 15 .text 16 .Ltext0: 17 .cfi_sections .debug_frame 18 .file 1 "Src/File_Handling.c" 19 .section .text.Send_Uart,"ax",%progbits 20 .align 1 21 .global Send_Uart 22 .syntax unified 23 .thumb 24 .thumb_func 26 Send_Uart: 27 .LVL0: 28 .LFB1186: 1:Src/File_Handling.c **** /* 2:Src/File_Handling.c **** * File_Handling_RTOS.c 3:Src/File_Handling.c **** * 4:Src/File_Handling.c **** * Created on: 14-May-2020 5:Src/File_Handling.c **** * Author: Controllerstech 6:Src/File_Handling.c **** */ 7:Src/File_Handling.c **** 8:Src/File_Handling.c **** #include 9:Src/File_Handling.c **** #include "stm32f7xx_hal.h" 10:Src/File_Handling.c **** 11:Src/File_Handling.c **** #define UART USART1 12:Src/File_Handling.c **** 13:Src/File_Handling.c **** 14:Src/File_Handling.c **** 15:Src/File_Handling.c **** /* =============================>>>>>>>> NO CHANGES AFTER THIS LINE =============================== 16:Src/File_Handling.c **** 17:Src/File_Handling.c **** FATFS fs; // file system 18:Src/File_Handling.c **** FIL fil; // File 19:Src/File_Handling.c **** FILINFO fno; 20:Src/File_Handling.c **** extern FRESULT fresult; // result 21:Src/File_Handling.c **** extern unsigned long sizeoffile; 22:Src/File_Handling.c **** UINT br, bw; // File read/write count 23:Src/File_Handling.c **** 24:Src/File_Handling.c **** /**** capacity related *****/ 25:Src/File_Handling.c **** FATFS *pfs; 26:Src/File_Handling.c **** DWORD fre_clust; 27:Src/File_Handling.c **** uint32_t total, free_space; 28:Src/File_Handling.c **** 29:Src/File_Handling.c **** 30:Src/File_Handling.c **** void Send_Uart (char *string) ARM GAS /tmp/cccCjqCZ.s page 2 31:Src/File_Handling.c **** { 29 .loc 1 31 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. 32:Src/File_Handling.c **** //HAL_UART_Transmit(UART, (uint8_t *)string, strlen (string), HAL_MAX_DELAY); 33:Src/File_Handling.c **** } 34 .loc 1 33 1 view .LVU1 35 0000 7047 bx lr 36 .cfi_endproc 37 .LFE1186: 39 .section .text.Mount_SD,"ax",%progbits 40 .align 1 41 .global Mount_SD 42 .syntax unified 43 .thumb 44 .thumb_func 46 Mount_SD: 47 .LVL1: 48 .LFB1187: 34:Src/File_Handling.c **** 35:Src/File_Handling.c **** 36:Src/File_Handling.c **** 37:Src/File_Handling.c **** int Mount_SD (const TCHAR* path) 38:Src/File_Handling.c **** { 49 .loc 1 38 1 view -0 50 .cfi_startproc 51 @ args = 0, pretend = 0, frame = 0 52 @ frame_needed = 0, uses_anonymous_args = 0 53 .loc 1 38 1 is_stmt 0 view .LVU3 54 0000 08B5 push {r3, lr} 55 .LCFI0: 56 .cfi_def_cfa_offset 8 57 .cfi_offset 3, -8 58 .cfi_offset 14, -4 59 0002 0146 mov r1, r0 39:Src/File_Handling.c **** fresult = f_mount(&fs, path, 1); 60 .loc 1 39 2 is_stmt 1 view .LVU4 61 .loc 1 39 12 is_stmt 0 view .LVU5 62 0004 0122 movs r2, #1 63 0006 0548 ldr r0, .L6 64 .LVL2: 65 .loc 1 39 12 view .LVU6 66 0008 FFF7FEFF bl f_mount 67 .LVL3: 68 .loc 1 39 10 discriminator 1 view .LVU7 69 000c 044B ldr r3, .L6+4 70 000e 1870 strb r0, [r3] 40:Src/File_Handling.c **** if (fresult != FR_OK) return 1; 71 .loc 1 40 2 is_stmt 1 view .LVU8 72 .loc 1 40 5 is_stmt 0 view .LVU9 73 0010 08B1 cbz r0, .L4 74 .loc 1 40 31 discriminator 1 view .LVU10 75 0012 0120 movs r0, #1 76 .L2: 41:Src/File_Handling.c **** else return 0; ARM GAS /tmp/cccCjqCZ.s page 3 42:Src/File_Handling.c **** } 77 .loc 1 42 1 view .LVU11 78 0014 08BD pop {r3, pc} 79 .L4: 41:Src/File_Handling.c **** else return 0; 80 .loc 1 41 14 view .LVU12 81 0016 0020 movs r0, #0 82 0018 FCE7 b .L2 83 .L7: 84 001a 00BF .align 2 85 .L6: 86 001c 00000000 .word fs 87 0020 00000000 .word fresult 88 .cfi_endproc 89 .LFE1187: 91 .section .text.Unmount_SD,"ax",%progbits 92 .align 1 93 .global Unmount_SD 94 .syntax unified 95 .thumb 96 .thumb_func 98 Unmount_SD: 99 .LVL4: 100 .LFB1188: 43:Src/File_Handling.c **** 44:Src/File_Handling.c **** int Unmount_SD (const TCHAR* path) 45:Src/File_Handling.c **** { 101 .loc 1 45 1 is_stmt 1 view -0 102 .cfi_startproc 103 @ args = 0, pretend = 0, frame = 0 104 @ frame_needed = 0, uses_anonymous_args = 0 105 .loc 1 45 1 is_stmt 0 view .LVU14 106 0000 08B5 push {r3, lr} 107 .LCFI1: 108 .cfi_def_cfa_offset 8 109 .cfi_offset 3, -8 110 .cfi_offset 14, -4 111 0002 0146 mov r1, r0 46:Src/File_Handling.c **** fresult = f_mount(NULL, path, 1); 112 .loc 1 46 2 is_stmt 1 view .LVU15 113 .loc 1 46 12 is_stmt 0 view .LVU16 114 0004 0122 movs r2, #1 115 0006 0020 movs r0, #0 116 .LVL5: 117 .loc 1 46 12 view .LVU17 118 0008 FFF7FEFF bl f_mount 119 .LVL6: 120 .loc 1 46 10 discriminator 1 view .LVU18 121 000c 034B ldr r3, .L12 122 000e 1870 strb r0, [r3] 47:Src/File_Handling.c **** if (fresult == FR_OK) return 0;//Send_Uart ("SD CARD UNMOUNTED successfully...\n\n\n"); 123 .loc 1 47 2 is_stmt 1 view .LVU19 124 .loc 1 47 5 is_stmt 0 view .LVU20 125 0010 08B1 cbz r0, .L10 48:Src/File_Handling.c **** return 1;//else Send_Uart("ERROR!!! in UNMOUNTING SD CARD\n\n\n"); 126 .loc 1 48 9 view .LVU21 127 0012 0120 movs r0, #1 ARM GAS /tmp/cccCjqCZ.s page 4 128 .L8: 49:Src/File_Handling.c **** } 129 .loc 1 49 1 view .LVU22 130 0014 08BD pop {r3, pc} 131 .L10: 47:Src/File_Handling.c **** if (fresult == FR_OK) return 0;//Send_Uart ("SD CARD UNMOUNTED successfully...\n\n\n"); 132 .loc 1 47 31 discriminator 1 view .LVU23 133 0016 0020 movs r0, #0 134 0018 FCE7 b .L8 135 .L13: 136 001a 00BF .align 2 137 .L12: 138 001c 00000000 .word fresult 139 .cfi_endproc 140 .LFE1188: 142 .section .rodata.Scan_SD.str1.4,"aMS",%progbits,1 143 .align 2 144 .LC0: 145 0000 53595354 .ascii "SYSTEM~1\000" 145 454D7E31 145 00 146 0009 000000 .align 2 147 .LC1: 148 000c 4469723A .ascii "Dir: %s\015\012\000" 148 2025730D 148 0A00 149 0016 0000 .align 2 150 .LC2: 151 0018 2F257300 .ascii "/%s\000" 152 .align 2 153 .LC3: 154 001c 46696C65 .ascii "File: %s/%s\012\000" 154 3A202573 154 2F25730A 154 00 155 .section .text.Scan_SD,"ax",%progbits 156 .align 1 157 .global Scan_SD 158 .syntax unified 159 .thumb 160 .thumb_func 162 Scan_SD: 163 .LVL7: 164 .LFB1189: 50:Src/File_Handling.c **** 51:Src/File_Handling.c **** /* Start node to be scanned (***also used as work area***) */ 52:Src/File_Handling.c **** FRESULT Scan_SD (char* pat) 53:Src/File_Handling.c **** { 165 .loc 1 53 1 is_stmt 1 view -0 166 .cfi_startproc 167 @ args = 0, pretend = 0, frame = 48 168 @ frame_needed = 0, uses_anonymous_args = 0 169 .loc 1 53 1 is_stmt 0 view .LVU25 170 0000 70B5 push {r4, r5, r6, lr} 171 .LCFI2: 172 .cfi_def_cfa_offset 16 173 .cfi_offset 4, -16 ARM GAS /tmp/cccCjqCZ.s page 5 174 .cfi_offset 5, -12 175 .cfi_offset 6, -8 176 .cfi_offset 14, -4 177 0002 8CB0 sub sp, sp, #48 178 .LCFI3: 179 .cfi_def_cfa_offset 64 180 0004 0546 mov r5, r0 54:Src/File_Handling.c **** DIR dir; 181 .loc 1 54 5 is_stmt 1 view .LVU26 55:Src/File_Handling.c **** UINT i; 182 .loc 1 55 5 view .LVU27 56:Src/File_Handling.c **** char *path = malloc(20*sizeof (char)); 183 .loc 1 56 5 view .LVU28 184 .loc 1 56 18 is_stmt 0 view .LVU29 185 0006 1420 movs r0, #20 186 .LVL8: 187 .loc 1 56 18 view .LVU30 188 0008 FFF7FEFF bl malloc 189 .LVL9: 190 000c 0446 mov r4, r0 191 .LVL10: 57:Src/File_Handling.c **** sprintf (path, "%s",pat); 192 .loc 1 57 5 is_stmt 1 view .LVU31 193 000e 2946 mov r1, r5 194 0010 FFF7FEFF bl strcpy 195 .LVL11: 58:Src/File_Handling.c **** 59:Src/File_Handling.c **** fresult = f_opendir(&dir, path); /* Open the directory */ 196 .loc 1 59 5 view .LVU32 197 .loc 1 59 15 is_stmt 0 view .LVU33 198 0014 2146 mov r1, r4 199 0016 6846 mov r0, sp 200 0018 FFF7FEFF bl f_opendir 201 .LVL12: 202 .loc 1 59 13 discriminator 1 view .LVU34 203 001c 264B ldr r3, .L21 204 001e 1870 strb r0, [r3] 60:Src/File_Handling.c **** if (fresult == FR_OK) 205 .loc 1 60 5 is_stmt 1 view .LVU35 206 .loc 1 60 8 is_stmt 0 view .LVU36 207 0020 0028 cmp r0, #0 208 0022 42D1 bne .L16 209 0024 0BE0 b .L15 210 .LVL13: 211 .L18: 212 .LBB2: 61:Src/File_Handling.c **** { 62:Src/File_Handling.c **** for (;;) 63:Src/File_Handling.c **** { 64:Src/File_Handling.c **** fresult = f_readdir(&dir, &fno); /* Read a directory item */ 65:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 66:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 67:Src/File_Handling.c **** { 68:Src/File_Handling.c **** if (!(strcmp ("SYSTEM~1", fno.fname))) continue; 69:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 70:Src/File_Handling.c **** sprintf (buf, "Dir: %s\r\n", fno.fname); 71:Src/File_Handling.c **** Send_Uart(buf); ARM GAS /tmp/cccCjqCZ.s page 6 72:Src/File_Handling.c **** free(buf); 73:Src/File_Handling.c **** i = strlen(path); 74:Src/File_Handling.c **** sprintf(&path[i], "/%s", fno.fname); 75:Src/File_Handling.c **** fresult = Scan_SD(path); /* Enter the directory */ 76:Src/File_Handling.c **** if (fresult != FR_OK) break; 77:Src/File_Handling.c **** path[i] = 0; 78:Src/File_Handling.c **** } 79:Src/File_Handling.c **** else 80:Src/File_Handling.c **** { /* It is a file. */ 81:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 213 .loc 1 81 16 is_stmt 1 view .LVU37 214 .loc 1 81 28 is_stmt 0 view .LVU38 215 0026 1E20 movs r0, #30 216 0028 FFF7FEFF bl malloc 217 .LVL14: 218 002c 0546 mov r5, r0 219 .LVL15: 82:Src/File_Handling.c **** sprintf(buf,"File: %s/%s\n", path, fno.fname); 220 .loc 1 82 16 is_stmt 1 view .LVU39 221 002e 234B ldr r3, .L21+4 222 0030 2246 mov r2, r4 223 0032 2349 ldr r1, .L21+8 224 0034 FFF7FEFF bl sprintf 225 .LVL16: 83:Src/File_Handling.c **** Send_Uart(buf); 226 .loc 1 83 16 view .LVU40 84:Src/File_Handling.c **** free(buf); 227 .loc 1 84 16 view .LVU41 228 0038 2846 mov r0, r5 229 003a FFF7FEFF bl free 230 .LVL17: 231 .L15: 232 .loc 1 84 16 is_stmt 0 view .LVU42 233 .LBE2: 62:Src/File_Handling.c **** { 234 .loc 1 62 9 is_stmt 1 view .LVU43 64:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 235 .loc 1 64 13 view .LVU44 64:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 236 .loc 1 64 23 is_stmt 0 view .LVU45 237 003e 2149 ldr r1, .L21+12 238 0040 6846 mov r0, sp 239 0042 FFF7FEFF bl f_readdir 240 .LVL18: 64:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 241 .loc 1 64 21 discriminator 1 view .LVU46 242 0046 1C4B ldr r3, .L21 243 0048 1870 strb r0, [r3] 65:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 244 .loc 1 65 13 is_stmt 1 view .LVU47 65:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 245 .loc 1 65 16 is_stmt 0 view .LVU48 246 004a 58BB cbnz r0, .L17 65:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 247 .loc 1 65 46 discriminator 1 view .LVU49 248 004c 1D4B ldr r3, .L21+12 249 004e 5B7A ldrb r3, [r3, #9] @ zero_extendqisi2 ARM GAS /tmp/cccCjqCZ.s page 7 65:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 250 .loc 1 65 34 discriminator 1 view .LVU50 251 0050 43B3 cbz r3, .L17 66:Src/File_Handling.c **** { 252 .loc 1 66 13 is_stmt 1 view .LVU51 66:Src/File_Handling.c **** { 253 .loc 1 66 20 is_stmt 0 view .LVU52 254 0052 1C4B ldr r3, .L21+12 255 0054 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 66:Src/File_Handling.c **** { 256 .loc 1 66 16 view .LVU53 257 0056 13F0100F tst r3, #16 258 005a E4D0 beq .L18 259 .LBB3: 68:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 260 .loc 1 68 14 is_stmt 1 view .LVU54 68:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 261 .loc 1 68 20 is_stmt 0 view .LVU55 262 005c 1749 ldr r1, .L21+4 263 005e 1A48 ldr r0, .L21+16 264 0060 FFF7FEFF bl strcmp 265 .LVL19: 68:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 266 .loc 1 68 17 discriminator 1 view .LVU56 267 0064 0028 cmp r0, #0 268 0066 EAD0 beq .L15 69:Src/File_Handling.c **** sprintf (buf, "Dir: %s\r\n", fno.fname); 269 .loc 1 69 14 is_stmt 1 view .LVU57 69:Src/File_Handling.c **** sprintf (buf, "Dir: %s\r\n", fno.fname); 270 .loc 1 69 26 is_stmt 0 view .LVU58 271 0068 1E20 movs r0, #30 272 006a FFF7FEFF bl malloc 273 .LVL20: 274 006e 0546 mov r5, r0 275 .LVL21: 70:Src/File_Handling.c **** Send_Uart(buf); 276 .loc 1 70 14 is_stmt 1 view .LVU59 277 0070 124E ldr r6, .L21+4 278 0072 3246 mov r2, r6 279 0074 1549 ldr r1, .L21+20 280 0076 FFF7FEFF bl sprintf 281 .LVL22: 71:Src/File_Handling.c **** free(buf); 282 .loc 1 71 14 view .LVU60 72:Src/File_Handling.c **** i = strlen(path); 283 .loc 1 72 14 view .LVU61 284 007a 2846 mov r0, r5 285 007c FFF7FEFF bl free 286 .LVL23: 73:Src/File_Handling.c **** sprintf(&path[i], "/%s", fno.fname); 287 .loc 1 73 17 view .LVU62 73:Src/File_Handling.c **** sprintf(&path[i], "/%s", fno.fname); 288 .loc 1 73 21 is_stmt 0 view .LVU63 289 0080 2046 mov r0, r4 290 0082 FFF7FEFF bl strlen 291 .LVL24: 292 0086 0546 mov r5, r0 ARM GAS /tmp/cccCjqCZ.s page 8 293 .LVL25: 74:Src/File_Handling.c **** fresult = Scan_SD(path); /* Enter the directory */ 294 .loc 1 74 17 is_stmt 1 view .LVU64 295 0088 3246 mov r2, r6 296 008a 1149 ldr r1, .L21+24 297 008c 2018 adds r0, r4, r0 298 .LVL26: 74:Src/File_Handling.c **** fresult = Scan_SD(path); /* Enter the directory */ 299 .loc 1 74 17 is_stmt 0 view .LVU65 300 008e FFF7FEFF bl sprintf 301 .LVL27: 75:Src/File_Handling.c **** if (fresult != FR_OK) break; 302 .loc 1 75 17 is_stmt 1 view .LVU66 75:Src/File_Handling.c **** if (fresult != FR_OK) break; 303 .loc 1 75 27 is_stmt 0 view .LVU67 304 0092 2046 mov r0, r4 305 0094 FFF7FEFF bl Scan_SD 306 .LVL28: 75:Src/File_Handling.c **** if (fresult != FR_OK) break; 307 .loc 1 75 25 discriminator 1 view .LVU68 308 0098 074B ldr r3, .L21 309 009a 1870 strb r0, [r3] 76:Src/File_Handling.c **** path[i] = 0; 310 .loc 1 76 17 is_stmt 1 view .LVU69 76:Src/File_Handling.c **** path[i] = 0; 311 .loc 1 76 20 is_stmt 0 view .LVU70 312 009c 10B9 cbnz r0, .L17 77:Src/File_Handling.c **** } 313 .loc 1 77 17 is_stmt 1 view .LVU71 77:Src/File_Handling.c **** } 314 .loc 1 77 25 is_stmt 0 view .LVU72 315 009e 0023 movs r3, #0 316 00a0 6355 strb r3, [r4, r5] 317 .LBE3: 318 00a2 CCE7 b .L15 319 .LVL29: 320 .L17: 85:Src/File_Handling.c **** } 86:Src/File_Handling.c **** } 87:Src/File_Handling.c **** f_closedir(&dir); 321 .loc 1 87 9 is_stmt 1 view .LVU73 322 00a4 6846 mov r0, sp 323 00a6 FFF7FEFF bl f_closedir 324 .LVL30: 325 .L16: 88:Src/File_Handling.c **** } 89:Src/File_Handling.c **** free(path); 326 .loc 1 89 5 view .LVU74 327 00aa 2046 mov r0, r4 328 00ac FFF7FEFF bl free 329 .LVL31: 90:Src/File_Handling.c **** return fresult; 330 .loc 1 90 5 view .LVU75 91:Src/File_Handling.c **** } 331 .loc 1 91 1 is_stmt 0 view .LVU76 332 00b0 014B ldr r3, .L21 333 00b2 1878 ldrb r0, [r3] @ zero_extendqisi2 ARM GAS /tmp/cccCjqCZ.s page 9 334 00b4 0CB0 add sp, sp, #48 335 .LCFI4: 336 .cfi_def_cfa_offset 16 337 @ sp needed 338 00b6 70BD pop {r4, r5, r6, pc} 339 .LVL32: 340 .L22: 341 .loc 1 91 1 view .LVU77 342 .align 2 343 .L21: 344 00b8 00000000 .word fresult 345 00bc 09000000 .word fno+9 346 00c0 1C000000 .word .LC3 347 00c4 00000000 .word fno 348 00c8 00000000 .word .LC0 349 00cc 0C000000 .word .LC1 350 00d0 18000000 .word .LC2 351 .cfi_endproc 352 .LFE1189: 354 .section .rodata.Format_SD.str1.4,"aMS",%progbits,1 355 .align 2 356 .LC4: 357 0000 2F00 .ascii "/\000" 358 .section .text.Format_SD,"ax",%progbits 359 .align 1 360 .global Format_SD 361 .syntax unified 362 .thumb 363 .thumb_func 365 Format_SD: 366 .LFB1190: 92:Src/File_Handling.c **** 93:Src/File_Handling.c **** /* Only supports removing files from home directory */ 94:Src/File_Handling.c **** FRESULT Format_SD (void) 95:Src/File_Handling.c **** { 367 .loc 1 95 1 is_stmt 1 view -0 368 .cfi_startproc 369 @ args = 0, pretend = 0, frame = 48 370 @ frame_needed = 0, uses_anonymous_args = 0 371 0000 10B5 push {r4, lr} 372 .LCFI5: 373 .cfi_def_cfa_offset 8 374 .cfi_offset 4, -8 375 .cfi_offset 14, -4 376 0002 8CB0 sub sp, sp, #48 377 .LCFI6: 378 .cfi_def_cfa_offset 56 96:Src/File_Handling.c **** DIR dir; 379 .loc 1 96 5 view .LVU79 97:Src/File_Handling.c **** char *path = malloc(20*sizeof (char)); 380 .loc 1 97 5 view .LVU80 381 .loc 1 97 18 is_stmt 0 view .LVU81 382 0004 1420 movs r0, #20 383 0006 FFF7FEFF bl malloc 384 .LVL33: 385 000a 0446 mov r4, r0 386 .LVL34: ARM GAS /tmp/cccCjqCZ.s page 10 98:Src/File_Handling.c **** sprintf (path, "%s","/"); 387 .loc 1 98 5 is_stmt 1 view .LVU82 388 000c 1A4B ldr r3, .L30 389 000e 1B88 ldrh r3, [r3] @ unaligned 390 0010 0380 strh r3, [r0] @ unaligned 99:Src/File_Handling.c **** 100:Src/File_Handling.c **** fresult = f_opendir(&dir, path); /* Open the directory */ 391 .loc 1 100 5 view .LVU83 392 .loc 1 100 15 is_stmt 0 view .LVU84 393 0012 0146 mov r1, r0 394 0014 6846 mov r0, sp 395 .LVL35: 396 .loc 1 100 15 view .LVU85 397 0016 FFF7FEFF bl f_opendir 398 .LVL36: 399 .loc 1 100 13 discriminator 1 view .LVU86 400 001a 184B ldr r3, .L30+4 401 001c 1870 strb r0, [r3] 101:Src/File_Handling.c **** if (fresult == FR_OK) 402 .loc 1 101 5 is_stmt 1 view .LVU87 403 .loc 1 101 8 is_stmt 0 view .LVU88 404 001e 18BB cbnz r0, .L25 405 0020 04E0 b .L24 406 .L27: 102:Src/File_Handling.c **** { 103:Src/File_Handling.c **** for (;;) 104:Src/File_Handling.c **** { 105:Src/File_Handling.c **** fresult = f_readdir(&dir, &fno); /* Read a directory item */ 106:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 107:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 108:Src/File_Handling.c **** { 109:Src/File_Handling.c **** if (!(strcmp ("SYSTEM~1", fno.fname))) continue; 110:Src/File_Handling.c **** fresult = f_unlink(fno.fname); 111:Src/File_Handling.c **** if (fresult == FR_DENIED) continue; 112:Src/File_Handling.c **** } 113:Src/File_Handling.c **** else 114:Src/File_Handling.c **** { /* It is a file. */ 115:Src/File_Handling.c **** fresult = f_unlink(fno.fname); 407 .loc 1 115 16 is_stmt 1 view .LVU89 408 .loc 1 115 26 is_stmt 0 view .LVU90 409 0022 1748 ldr r0, .L30+8 410 0024 FFF7FEFF bl f_unlink 411 .LVL37: 412 .loc 1 115 24 discriminator 1 view .LVU91 413 0028 144B ldr r3, .L30+4 414 002a 1870 strb r0, [r3] 415 .L24: 103:Src/File_Handling.c **** { 416 .loc 1 103 9 is_stmt 1 view .LVU92 105:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 417 .loc 1 105 13 view .LVU93 105:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 418 .loc 1 105 23 is_stmt 0 view .LVU94 419 002c 1549 ldr r1, .L30+12 420 002e 6846 mov r0, sp 421 0030 FFF7FEFF bl f_readdir 422 .LVL38: ARM GAS /tmp/cccCjqCZ.s page 11 105:Src/File_Handling.c **** if (fresult != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ 423 .loc 1 105 21 discriminator 1 view .LVU95 424 0034 114B ldr r3, .L30+4 425 0036 1870 strb r0, [r3] 106:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 426 .loc 1 106 13 is_stmt 1 view .LVU96 106:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 427 .loc 1 106 16 is_stmt 0 view .LVU97 428 0038 98B9 cbnz r0, .L26 106:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 429 .loc 1 106 46 discriminator 1 view .LVU98 430 003a 124B ldr r3, .L30+12 431 003c 5B7A ldrb r3, [r3, #9] @ zero_extendqisi2 106:Src/File_Handling.c **** if (fno.fattrib & AM_DIR) /* It is a directory */ 432 .loc 1 106 34 discriminator 1 view .LVU99 433 003e 83B1 cbz r3, .L26 107:Src/File_Handling.c **** { 434 .loc 1 107 13 is_stmt 1 view .LVU100 107:Src/File_Handling.c **** { 435 .loc 1 107 20 is_stmt 0 view .LVU101 436 0040 104B ldr r3, .L30+12 437 0042 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 107:Src/File_Handling.c **** { 438 .loc 1 107 16 view .LVU102 439 0044 13F0100F tst r3, #16 440 0048 EBD0 beq .L27 109:Src/File_Handling.c **** fresult = f_unlink(fno.fname); 441 .loc 1 109 14 is_stmt 1 view .LVU103 109:Src/File_Handling.c **** fresult = f_unlink(fno.fname); 442 .loc 1 109 20 is_stmt 0 view .LVU104 443 004a 0D49 ldr r1, .L30+8 444 004c 0E48 ldr r0, .L30+16 445 004e FFF7FEFF bl strcmp 446 .LVL39: 109:Src/File_Handling.c **** fresult = f_unlink(fno.fname); 447 .loc 1 109 17 discriminator 1 view .LVU105 448 0052 0028 cmp r0, #0 449 0054 EAD0 beq .L24 110:Src/File_Handling.c **** if (fresult == FR_DENIED) continue; 450 .loc 1 110 14 is_stmt 1 view .LVU106 110:Src/File_Handling.c **** if (fresult == FR_DENIED) continue; 451 .loc 1 110 24 is_stmt 0 view .LVU107 452 0056 0A48 ldr r0, .L30+8 453 0058 FFF7FEFF bl f_unlink 454 .LVL40: 110:Src/File_Handling.c **** if (fresult == FR_DENIED) continue; 455 .loc 1 110 22 discriminator 1 view .LVU108 456 005c 074B ldr r3, .L30+4 457 005e 1870 strb r0, [r3] 111:Src/File_Handling.c **** } 458 .loc 1 111 14 is_stmt 1 view .LVU109 111:Src/File_Handling.c **** } 459 .loc 1 111 40 discriminator 1 view .LVU110 460 0060 E4E7 b .L24 461 .L26: 116:Src/File_Handling.c **** } 117:Src/File_Handling.c **** } ARM GAS /tmp/cccCjqCZ.s page 12 118:Src/File_Handling.c **** f_closedir(&dir); 462 .loc 1 118 9 view .LVU111 463 0062 6846 mov r0, sp 464 0064 FFF7FEFF bl f_closedir 465 .LVL41: 466 .L25: 119:Src/File_Handling.c **** } 120:Src/File_Handling.c **** free(path); 467 .loc 1 120 5 view .LVU112 468 0068 2046 mov r0, r4 469 006a FFF7FEFF bl free 470 .LVL42: 121:Src/File_Handling.c **** return fresult; 471 .loc 1 121 5 view .LVU113 122:Src/File_Handling.c **** } 472 .loc 1 122 1 is_stmt 0 view .LVU114 473 006e 034B ldr r3, .L30+4 474 0070 1878 ldrb r0, [r3] @ zero_extendqisi2 475 0072 0CB0 add sp, sp, #48 476 .LCFI7: 477 .cfi_def_cfa_offset 8 478 @ sp needed 479 0074 10BD pop {r4, pc} 480 .LVL43: 481 .L31: 482 .loc 1 122 1 view .LVU115 483 0076 00BF .align 2 484 .L30: 485 0078 00000000 .word .LC4 486 007c 00000000 .word fresult 487 0080 09000000 .word fno+9 488 0084 00000000 .word fno 489 0088 00000000 .word .LC0 490 .cfi_endproc 491 .LFE1190: 493 .section .text.Write_File,"ax",%progbits 494 .align 1 495 .global Write_File 496 .syntax unified 497 .thumb 498 .thumb_func 500 Write_File: 501 .LVL44: 502 .LFB1191: 123:Src/File_Handling.c **** 124:Src/File_Handling.c **** 125:Src/File_Handling.c **** 126:Src/File_Handling.c **** 127:Src/File_Handling.c **** FRESULT Write_File (char *name, char *data) 128:Src/File_Handling.c **** { 503 .loc 1 128 1 is_stmt 1 view -0 504 .cfi_startproc 505 @ args = 0, pretend = 0, frame = 0 506 @ frame_needed = 0, uses_anonymous_args = 0 507 .loc 1 128 1 is_stmt 0 view .LVU117 508 0000 70B5 push {r4, r5, r6, lr} 509 .LCFI8: ARM GAS /tmp/cccCjqCZ.s page 13 510 .cfi_def_cfa_offset 16 511 .cfi_offset 4, -16 512 .cfi_offset 5, -12 513 .cfi_offset 6, -8 514 .cfi_offset 14, -4 515 0002 0446 mov r4, r0 516 0004 0D46 mov r5, r1 129:Src/File_Handling.c **** 130:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 131:Src/File_Handling.c **** fresult = f_stat (name, &fno); 517 .loc 1 131 2 is_stmt 1 view .LVU118 518 .loc 1 131 12 is_stmt 0 view .LVU119 519 0006 1249 ldr r1, .L37 520 .LVL45: 521 .loc 1 131 12 view .LVU120 522 0008 FFF7FEFF bl f_stat 523 .LVL46: 524 .loc 1 131 10 discriminator 1 view .LVU121 525 000c 114B ldr r3, .L37+4 526 000e 1870 strb r0, [r3] 132:Src/File_Handling.c **** if (fresult != FR_OK) 527 .loc 1 132 2 is_stmt 1 view .LVU122 528 .loc 1 132 5 is_stmt 0 view .LVU123 529 0010 08B1 cbz r0, .L33 530 .LBB4: 133:Src/File_Handling.c **** { 134:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 531 .loc 1 134 3 is_stmt 1 view .LVU124 135:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 136:Src/File_Handling.c **** //Send_Uart (buf); 137:Src/File_Handling.c **** free(buf); 532 .loc 1 137 6 view .LVU125 138:Src/File_Handling.c **** return fresult; 533 .loc 1 138 6 view .LVU126 534 .loc 1 138 13 is_stmt 0 view .LVU127 535 0012 C0B2 uxtb r0, r0 536 .LVL47: 537 .L34: 538 .loc 1 138 13 view .LVU128 539 .LBE4: 139:Src/File_Handling.c **** } 140:Src/File_Handling.c **** 141:Src/File_Handling.c **** else 142:Src/File_Handling.c **** { 143:Src/File_Handling.c **** /* Create a file with read write access and open it */ 144:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_OPEN_EXISTING | FA_WRITE); 145:Src/File_Handling.c **** if (fresult != FR_OK) 146:Src/File_Handling.c **** { 147:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 148:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 149:Src/File_Handling.c **** //Send_Uart(buf); 150:Src/File_Handling.c **** free(buf); 151:Src/File_Handling.c **** return fresult; 152:Src/File_Handling.c **** } 153:Src/File_Handling.c **** 154:Src/File_Handling.c **** else 155:Src/File_Handling.c **** { ARM GAS /tmp/cccCjqCZ.s page 14 156:Src/File_Handling.c **** fresult = f_write(&fil, data, strlen(data), &bw); 157:Src/File_Handling.c **** if (fresult != FR_OK) 158:Src/File_Handling.c **** { 159:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 160:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d while writing to the FILE *%s*\n\n", fresult, name); 161:Src/File_Handling.c **** //Send_Uart(buf); 162:Src/File_Handling.c **** free(buf); 163:Src/File_Handling.c **** } 164:Src/File_Handling.c **** 165:Src/File_Handling.c **** /* Close file */ 166:Src/File_Handling.c **** fresult = f_close(&fil); 167:Src/File_Handling.c **** if (fresult != FR_OK) 168:Src/File_Handling.c **** { 169:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 170:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in closing file *%s* after writing it\n\n", fresult, name); 171:Src/File_Handling.c **** //Send_Uart(buf); 172:Src/File_Handling.c **** free(buf); 173:Src/File_Handling.c **** } 174:Src/File_Handling.c **** else 175:Src/File_Handling.c **** { 176:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 177:Src/File_Handling.c **** //sprintf (buf, "File *%s* is WRITTEN and CLOSED successfully\n", name); 178:Src/File_Handling.c **** //Send_Uart(buf); 179:Src/File_Handling.c **** free(buf); 180:Src/File_Handling.c **** } 181:Src/File_Handling.c **** } 182:Src/File_Handling.c **** return fresult; 183:Src/File_Handling.c **** } 184:Src/File_Handling.c **** } 540 .loc 1 184 1 view .LVU129 541 0014 70BD pop {r4, r5, r6, pc} 542 .LVL48: 543 .L33: 144:Src/File_Handling.c **** if (fresult != FR_OK) 544 .loc 1 144 6 is_stmt 1 view .LVU130 144:Src/File_Handling.c **** if (fresult != FR_OK) 545 .loc 1 144 16 is_stmt 0 view .LVU131 546 0016 0222 movs r2, #2 547 0018 2146 mov r1, r4 548 001a 0F48 ldr r0, .L37+8 549 001c FFF7FEFF bl f_open 550 .LVL49: 144:Src/File_Handling.c **** if (fresult != FR_OK) 551 .loc 1 144 14 discriminator 1 view .LVU132 552 0020 0C4B ldr r3, .L37+4 553 0022 1870 strb r0, [r3] 145:Src/File_Handling.c **** { 554 .loc 1 145 6 is_stmt 1 view .LVU133 145:Src/File_Handling.c **** { 555 .loc 1 145 9 is_stmt 0 view .LVU134 556 0024 08B1 cbz r0, .L35 557 .LBB5: 147:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 558 .loc 1 147 7 is_stmt 1 view .LVU135 150:Src/File_Handling.c **** return fresult; 559 .loc 1 150 10 view .LVU136 151:Src/File_Handling.c **** } ARM GAS /tmp/cccCjqCZ.s page 15 560 .loc 1 151 10 view .LVU137 151:Src/File_Handling.c **** } 561 .loc 1 151 17 is_stmt 0 view .LVU138 562 0026 C0B2 uxtb r0, r0 563 0028 F4E7 b .L34 564 .L35: 565 .LBE5: 156:Src/File_Handling.c **** if (fresult != FR_OK) 566 .loc 1 156 7 is_stmt 1 view .LVU139 156:Src/File_Handling.c **** if (fresult != FR_OK) 567 .loc 1 156 17 is_stmt 0 view .LVU140 568 002a 2846 mov r0, r5 569 002c FFF7FEFF bl strlen 570 .LVL50: 571 0030 0246 mov r2, r0 156:Src/File_Handling.c **** if (fresult != FR_OK) 572 .loc 1 156 17 discriminator 1 view .LVU141 573 0032 094E ldr r6, .L37+8 574 0034 094B ldr r3, .L37+12 575 0036 2946 mov r1, r5 576 0038 3046 mov r0, r6 577 003a FFF7FEFF bl f_write 578 .LVL51: 156:Src/File_Handling.c **** if (fresult != FR_OK) 579 .loc 1 156 15 discriminator 2 view .LVU142 580 003e 054C ldr r4, .L37+4 581 .LVL52: 156:Src/File_Handling.c **** if (fresult != FR_OK) 582 .loc 1 156 15 discriminator 2 view .LVU143 583 0040 2070 strb r0, [r4] 157:Src/File_Handling.c **** { 584 .loc 1 157 7 is_stmt 1 view .LVU144 159:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d while writing to the FILE *%s*\n\n", fresult, name); 585 .loc 1 159 8 view .LVU145 162:Src/File_Handling.c **** } 586 .loc 1 162 8 view .LVU146 166:Src/File_Handling.c **** if (fresult != FR_OK) 587 .loc 1 166 7 view .LVU147 166:Src/File_Handling.c **** if (fresult != FR_OK) 588 .loc 1 166 17 is_stmt 0 view .LVU148 589 0042 3046 mov r0, r6 590 0044 FFF7FEFF bl f_close 591 .LVL53: 166:Src/File_Handling.c **** if (fresult != FR_OK) 592 .loc 1 166 15 discriminator 1 view .LVU149 593 0048 2070 strb r0, [r4] 167:Src/File_Handling.c **** { 594 .loc 1 167 7 is_stmt 1 view .LVU150 176:Src/File_Handling.c **** //sprintf (buf, "File *%s* is WRITTEN and CLOSED successfully\n", name); 595 .loc 1 176 8 view .LVU151 179:Src/File_Handling.c **** } 596 .loc 1 179 8 view .LVU152 182:Src/File_Handling.c **** } 597 .loc 1 182 6 view .LVU153 182:Src/File_Handling.c **** } 598 .loc 1 182 13 is_stmt 0 view .LVU154 599 004a C0B2 uxtb r0, r0 ARM GAS /tmp/cccCjqCZ.s page 16 600 004c E2E7 b .L34 601 .L38: 602 004e 00BF .align 2 603 .L37: 604 0050 00000000 .word fno 605 0054 00000000 .word fresult 606 0058 00000000 .word fil 607 005c 00000000 .word bw 608 .cfi_endproc 609 .LFE1191: 611 .section .text.Write_File_byte,"ax",%progbits 612 .align 1 613 .global Write_File_byte 614 .syntax unified 615 .thumb 616 .thumb_func 618 Write_File_byte: 619 .LVL54: 620 .LFB1192: 185:Src/File_Handling.c **** 186:Src/File_Handling.c **** FRESULT Write_File_byte (char *name, uint8_t *data, unsigned int bytesize) 187:Src/File_Handling.c **** { 621 .loc 1 187 1 is_stmt 1 view -0 622 .cfi_startproc 623 @ args = 0, pretend = 0, frame = 0 624 @ frame_needed = 0, uses_anonymous_args = 0 625 .loc 1 187 1 is_stmt 0 view .LVU156 626 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 627 .LCFI9: 628 .cfi_def_cfa_offset 24 629 .cfi_offset 3, -24 630 .cfi_offset 4, -20 631 .cfi_offset 5, -16 632 .cfi_offset 6, -12 633 .cfi_offset 7, -8 634 .cfi_offset 14, -4 635 0002 0446 mov r4, r0 636 0004 0D46 mov r5, r1 637 0006 1646 mov r6, r2 188:Src/File_Handling.c **** 189:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 190:Src/File_Handling.c **** fresult = f_stat (name, &fno); 638 .loc 1 190 2 is_stmt 1 view .LVU157 639 .loc 1 190 12 is_stmt 0 view .LVU158 640 0008 1049 ldr r1, .L44 641 .LVL55: 642 .loc 1 190 12 view .LVU159 643 000a FFF7FEFF bl f_stat 644 .LVL56: 645 .loc 1 190 10 discriminator 1 view .LVU160 646 000e 104B ldr r3, .L44+4 647 0010 1870 strb r0, [r3] 191:Src/File_Handling.c **** if (fresult != FR_OK) 648 .loc 1 191 2 is_stmt 1 view .LVU161 649 .loc 1 191 5 is_stmt 0 view .LVU162 650 0012 08B1 cbz r0, .L40 651 .LBB6: ARM GAS /tmp/cccCjqCZ.s page 17 192:Src/File_Handling.c **** { 193:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 652 .loc 1 193 3 is_stmt 1 view .LVU163 194:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 195:Src/File_Handling.c **** //Send_Uart (buf); 196:Src/File_Handling.c **** free(buf); 653 .loc 1 196 6 view .LVU164 197:Src/File_Handling.c **** return fresult; 654 .loc 1 197 6 view .LVU165 655 .loc 1 197 13 is_stmt 0 view .LVU166 656 0014 C0B2 uxtb r0, r0 657 .LVL57: 658 .L41: 659 .loc 1 197 13 view .LVU167 660 .LBE6: 198:Src/File_Handling.c **** } 199:Src/File_Handling.c **** 200:Src/File_Handling.c **** else 201:Src/File_Handling.c **** { 202:Src/File_Handling.c **** /* Create a file with read write access and open it */ 203:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_OPEN_EXISTING | FA_WRITE); 204:Src/File_Handling.c **** if (fresult != FR_OK) 205:Src/File_Handling.c **** { 206:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 207:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 208:Src/File_Handling.c **** //Send_Uart(buf); 209:Src/File_Handling.c **** free(buf); 210:Src/File_Handling.c **** return fresult; 211:Src/File_Handling.c **** } 212:Src/File_Handling.c **** 213:Src/File_Handling.c **** else 214:Src/File_Handling.c **** { 215:Src/File_Handling.c **** fresult = f_write(&fil, data, bytesize, &bw); 216:Src/File_Handling.c **** if (fresult != FR_OK) 217:Src/File_Handling.c **** { 218:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 219:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d while writing to the FILE *%s*\n\n", fresult, name); 220:Src/File_Handling.c **** //Send_Uart(buf); 221:Src/File_Handling.c **** free(buf); 222:Src/File_Handling.c **** } 223:Src/File_Handling.c **** 224:Src/File_Handling.c **** /* Close file */ 225:Src/File_Handling.c **** fresult = f_close(&fil); 226:Src/File_Handling.c **** if (fresult != FR_OK) 227:Src/File_Handling.c **** { 228:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 229:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in closing file *%s* after writing it\n\n", fresult, name); 230:Src/File_Handling.c **** //Send_Uart(buf); 231:Src/File_Handling.c **** free(buf); 232:Src/File_Handling.c **** } 233:Src/File_Handling.c **** else 234:Src/File_Handling.c **** { 235:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 236:Src/File_Handling.c **** //sprintf (buf, "File *%s* is WRITTEN and CLOSED successfully\n", name); 237:Src/File_Handling.c **** //Send_Uart(buf); 238:Src/File_Handling.c **** free(buf); 239:Src/File_Handling.c **** } ARM GAS /tmp/cccCjqCZ.s page 18 240:Src/File_Handling.c **** } 241:Src/File_Handling.c **** return fresult; 242:Src/File_Handling.c **** } 243:Src/File_Handling.c **** } 661 .loc 1 243 1 view .LVU168 662 0016 F8BD pop {r3, r4, r5, r6, r7, pc} 663 .LVL58: 664 .L40: 203:Src/File_Handling.c **** if (fresult != FR_OK) 665 .loc 1 203 6 is_stmt 1 view .LVU169 203:Src/File_Handling.c **** if (fresult != FR_OK) 666 .loc 1 203 16 is_stmt 0 view .LVU170 667 0018 0222 movs r2, #2 668 001a 2146 mov r1, r4 669 001c 0D48 ldr r0, .L44+8 670 001e FFF7FEFF bl f_open 671 .LVL59: 203:Src/File_Handling.c **** if (fresult != FR_OK) 672 .loc 1 203 14 discriminator 1 view .LVU171 673 0022 0B4B ldr r3, .L44+4 674 0024 1870 strb r0, [r3] 204:Src/File_Handling.c **** { 675 .loc 1 204 6 is_stmt 1 view .LVU172 204:Src/File_Handling.c **** { 676 .loc 1 204 9 is_stmt 0 view .LVU173 677 0026 08B1 cbz r0, .L42 678 .LBB7: 206:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 679 .loc 1 206 7 is_stmt 1 view .LVU174 209:Src/File_Handling.c **** return fresult; 680 .loc 1 209 10 view .LVU175 210:Src/File_Handling.c **** } 681 .loc 1 210 10 view .LVU176 210:Src/File_Handling.c **** } 682 .loc 1 210 17 is_stmt 0 view .LVU177 683 0028 C0B2 uxtb r0, r0 684 002a F4E7 b .L41 685 .L42: 686 .LBE7: 215:Src/File_Handling.c **** if (fresult != FR_OK) 687 .loc 1 215 7 is_stmt 1 view .LVU178 215:Src/File_Handling.c **** if (fresult != FR_OK) 688 .loc 1 215 17 is_stmt 0 view .LVU179 689 002c 094F ldr r7, .L44+8 690 002e 0A4B ldr r3, .L44+12 691 0030 3246 mov r2, r6 692 0032 2946 mov r1, r5 693 0034 3846 mov r0, r7 694 0036 FFF7FEFF bl f_write 695 .LVL60: 215:Src/File_Handling.c **** if (fresult != FR_OK) 696 .loc 1 215 15 discriminator 1 view .LVU180 697 003a 054C ldr r4, .L44+4 698 .LVL61: 215:Src/File_Handling.c **** if (fresult != FR_OK) 699 .loc 1 215 15 discriminator 1 view .LVU181 700 003c 2070 strb r0, [r4] ARM GAS /tmp/cccCjqCZ.s page 19 216:Src/File_Handling.c **** { 701 .loc 1 216 7 is_stmt 1 view .LVU182 218:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d while writing to the FILE *%s*\n\n", fresult, name); 702 .loc 1 218 8 view .LVU183 221:Src/File_Handling.c **** } 703 .loc 1 221 8 view .LVU184 225:Src/File_Handling.c **** if (fresult != FR_OK) 704 .loc 1 225 7 view .LVU185 225:Src/File_Handling.c **** if (fresult != FR_OK) 705 .loc 1 225 17 is_stmt 0 view .LVU186 706 003e 3846 mov r0, r7 707 0040 FFF7FEFF bl f_close 708 .LVL62: 225:Src/File_Handling.c **** if (fresult != FR_OK) 709 .loc 1 225 15 discriminator 1 view .LVU187 710 0044 2070 strb r0, [r4] 226:Src/File_Handling.c **** { 711 .loc 1 226 7 is_stmt 1 view .LVU188 235:Src/File_Handling.c **** //sprintf (buf, "File *%s* is WRITTEN and CLOSED successfully\n", name); 712 .loc 1 235 8 view .LVU189 238:Src/File_Handling.c **** } 713 .loc 1 238 8 view .LVU190 241:Src/File_Handling.c **** } 714 .loc 1 241 6 view .LVU191 241:Src/File_Handling.c **** } 715 .loc 1 241 13 is_stmt 0 view .LVU192 716 0046 C0B2 uxtb r0, r0 717 0048 E5E7 b .L41 718 .L45: 719 004a 00BF .align 2 720 .L44: 721 004c 00000000 .word fno 722 0050 00000000 .word fresult 723 0054 00000000 .word fil 724 0058 00000000 .word bw 725 .cfi_endproc 726 .LFE1192: 728 .section .rodata.Read_File.str1.4,"aMS",%progbits,1 729 .align 2 730 .LC5: 731 0000 45525252 .ascii "ERRROR!!! *%s* does not exists\012\012\000" 731 4F522121 731 21202A25 731 732A2064 731 6F657320 732 0021 000000 .align 2 733 .LC6: 734 0024 4552524F .ascii "ERROR!!! No. %d in opening file *%s*\012\012\000" 734 52212121 734 204E6F2E 734 20256420 734 696E206F 735 004b 00 .align 2 736 .LC7: 737 004c 4552524F .ascii "ERROR!!! No. %d in reading file *%s*\012\012\000" 737 52212121 737 204E6F2E ARM GAS /tmp/cccCjqCZ.s page 20 737 20256420 737 696E2072 738 0073 00 .align 2 739 .LC8: 740 0074 4552524F .ascii "ERROR!!! No. %d in closing file *%s*\012\012\000" 740 52212121 740 204E6F2E 740 20256420 740 696E2063 741 009b 00 .align 2 742 .LC9: 743 009c 46696C65 .ascii "File *%s* CLOSED successfully\012\000" 743 202A2573 743 2A20434C 743 4F534544 743 20737563 744 .section .text.Read_File,"ax",%progbits 745 .align 1 746 .global Read_File 747 .syntax unified 748 .thumb 749 .thumb_func 751 Read_File: 752 .LVL63: 753 .LFB1193: 244:Src/File_Handling.c **** 245:Src/File_Handling.c **** FRESULT Read_File (char *name) 246:Src/File_Handling.c **** { 754 .loc 1 246 1 is_stmt 1 view -0 755 .cfi_startproc 756 @ args = 0, pretend = 0, frame = 0 757 @ frame_needed = 0, uses_anonymous_args = 0 758 .loc 1 246 1 is_stmt 0 view .LVU194 759 0000 70B5 push {r4, r5, r6, lr} 760 .LCFI10: 761 .cfi_def_cfa_offset 16 762 .cfi_offset 4, -16 763 .cfi_offset 5, -12 764 .cfi_offset 6, -8 765 .cfi_offset 14, -4 766 0002 0446 mov r4, r0 247:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 248:Src/File_Handling.c **** fresult = f_stat (name, &fno); 767 .loc 1 248 2 is_stmt 1 view .LVU195 768 .loc 1 248 12 is_stmt 0 view .LVU196 769 0004 3749 ldr r1, .L55 770 0006 FFF7FEFF bl f_stat 771 .LVL64: 772 .loc 1 248 10 discriminator 1 view .LVU197 773 000a 374B ldr r3, .L55+4 774 000c 1870 strb r0, [r3] 249:Src/File_Handling.c **** if (fresult != FR_OK) 775 .loc 1 249 2 is_stmt 1 view .LVU198 776 .loc 1 249 5 is_stmt 0 view .LVU199 777 000e B8B9 cbnz r0, .L54 778 .LBB8: 250:Src/File_Handling.c **** { ARM GAS /tmp/cccCjqCZ.s page 21 251:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 252:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); 253:Src/File_Handling.c **** Send_Uart (buf); 254:Src/File_Handling.c **** free(buf); 255:Src/File_Handling.c **** return fresult; 256:Src/File_Handling.c **** } 257:Src/File_Handling.c **** 258:Src/File_Handling.c **** else 259:Src/File_Handling.c **** { 260:Src/File_Handling.c **** /* Open file to read */ 261:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_READ); 779 .loc 1 261 3 is_stmt 1 view .LVU200 780 .loc 1 261 13 is_stmt 0 view .LVU201 781 0010 0122 movs r2, #1 782 0012 2146 mov r1, r4 783 0014 3548 ldr r0, .L55+8 784 0016 FFF7FEFF bl f_open 785 .LVL65: 786 001a 0546 mov r5, r0 787 .loc 1 261 11 discriminator 1 view .LVU202 788 001c 324B ldr r3, .L55+4 789 001e 1870 strb r0, [r3] 262:Src/File_Handling.c **** 263:Src/File_Handling.c **** if (fresult != FR_OK) 790 .loc 1 263 3 is_stmt 1 view .LVU203 791 .loc 1 263 6 is_stmt 0 view .LVU204 792 0020 E0B1 cbz r0, .L49 793 .LBB9: 264:Src/File_Handling.c **** { 265:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 794 .loc 1 265 4 is_stmt 1 view .LVU205 795 .loc 1 265 16 is_stmt 0 view .LVU206 796 0022 6420 movs r0, #100 797 0024 FFF7FEFF bl malloc 798 .LVL66: 799 0028 0646 mov r6, r0 800 .LVL67: 266:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 801 .loc 1 266 4 is_stmt 1 view .LVU207 802 002a 2346 mov r3, r4 803 002c 2A46 mov r2, r5 804 002e 3049 ldr r1, .L55+12 805 0030 FFF7FEFF bl sprintf 806 .LVL68: 267:Src/File_Handling.c **** Send_Uart(buf); 807 .loc 1 267 7 view .LVU208 268:Src/File_Handling.c **** free(buf); 808 .loc 1 268 7 view .LVU209 809 0034 3046 mov r0, r6 810 0036 FFF7FEFF bl free 811 .LVL69: 269:Src/File_Handling.c **** return fresult; 812 .loc 1 269 7 view .LVU210 813 .loc 1 269 14 is_stmt 0 view .LVU211 814 003a 2B4B ldr r3, .L55+4 815 003c 1878 ldrb r0, [r3] @ zero_extendqisi2 816 003e 0CE0 b .L48 ARM GAS /tmp/cccCjqCZ.s page 22 817 .LVL70: 818 .L54: 819 .loc 1 269 14 view .LVU212 820 .LBE9: 821 .LBE8: 822 .LBB13: 251:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); 823 .loc 1 251 3 is_stmt 1 view .LVU213 251:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); 824 .loc 1 251 15 is_stmt 0 view .LVU214 825 0040 6420 movs r0, #100 826 0042 FFF7FEFF bl malloc 827 .LVL71: 828 0046 0546 mov r5, r0 829 .LVL72: 252:Src/File_Handling.c **** Send_Uart (buf); 830 .loc 1 252 3 is_stmt 1 view .LVU215 831 0048 2246 mov r2, r4 832 004a 2A49 ldr r1, .L55+16 833 004c FFF7FEFF bl sprintf 834 .LVL73: 253:Src/File_Handling.c **** free(buf); 835 .loc 1 253 3 view .LVU216 254:Src/File_Handling.c **** return fresult; 836 .loc 1 254 3 view .LVU217 837 0050 2846 mov r0, r5 838 0052 FFF7FEFF bl free 839 .LVL74: 255:Src/File_Handling.c **** } 840 .loc 1 255 6 view .LVU218 255:Src/File_Handling.c **** } 841 .loc 1 255 13 is_stmt 0 view .LVU219 842 0056 244B ldr r3, .L55+4 843 0058 1878 ldrb r0, [r3] @ zero_extendqisi2 844 .LVL75: 845 .L48: 255:Src/File_Handling.c **** } 846 .loc 1 255 13 view .LVU220 847 .LBE13: 270:Src/File_Handling.c **** } 271:Src/File_Handling.c **** 272:Src/File_Handling.c **** /* Read data from the file 273:Src/File_Handling.c **** * see the function details for the arguments */ 274:Src/File_Handling.c **** 275:Src/File_Handling.c **** char *buffer = malloc(sizeof(f_size(&fil))); 276:Src/File_Handling.c **** fresult = f_read (&fil, buffer, f_size(&fil), &br); 277:Src/File_Handling.c **** if (fresult != FR_OK) 278:Src/File_Handling.c **** { 279:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 280:Src/File_Handling.c **** free(buffer); 281:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in reading file *%s*\n\n", fresult, name); 282:Src/File_Handling.c **** Send_Uart(buffer); 283:Src/File_Handling.c **** free(buf); 284:Src/File_Handling.c **** } 285:Src/File_Handling.c **** 286:Src/File_Handling.c **** else 287:Src/File_Handling.c **** { ARM GAS /tmp/cccCjqCZ.s page 23 288:Src/File_Handling.c **** Send_Uart(buffer); 289:Src/File_Handling.c **** free(buffer); 290:Src/File_Handling.c **** 291:Src/File_Handling.c **** /* Close file */ 292:Src/File_Handling.c **** fresult = f_close(&fil); 293:Src/File_Handling.c **** if (fresult != FR_OK) 294:Src/File_Handling.c **** { 295:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 296:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 297:Src/File_Handling.c **** Send_Uart(buf); 298:Src/File_Handling.c **** free(buf); 299:Src/File_Handling.c **** } 300:Src/File_Handling.c **** else 301:Src/File_Handling.c **** { 302:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 303:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 304:Src/File_Handling.c **** Send_Uart(buf); 305:Src/File_Handling.c **** free(buf); 306:Src/File_Handling.c **** } 307:Src/File_Handling.c **** } 308:Src/File_Handling.c **** return fresult; 309:Src/File_Handling.c **** } 310:Src/File_Handling.c **** } 848 .loc 1 310 1 view .LVU221 849 005a 70BD pop {r4, r5, r6, pc} 850 .LVL76: 851 .L49: 852 .LBB14: 275:Src/File_Handling.c **** fresult = f_read (&fil, buffer, f_size(&fil), &br); 853 .loc 1 275 3 is_stmt 1 view .LVU222 275:Src/File_Handling.c **** fresult = f_read (&fil, buffer, f_size(&fil), &br); 854 .loc 1 275 18 is_stmt 0 view .LVU223 855 005c 0420 movs r0, #4 856 005e FFF7FEFF bl malloc 857 .LVL77: 858 0062 0546 mov r5, r0 859 .LVL78: 276:Src/File_Handling.c **** if (fresult != FR_OK) 860 .loc 1 276 3 is_stmt 1 view .LVU224 276:Src/File_Handling.c **** if (fresult != FR_OK) 861 .loc 1 276 35 is_stmt 0 view .LVU225 862 0064 2148 ldr r0, .L55+8 863 .LVL79: 276:Src/File_Handling.c **** if (fresult != FR_OK) 864 .loc 1 276 13 view .LVU226 865 0066 244B ldr r3, .L55+20 866 0068 C268 ldr r2, [r0, #12] 867 006a 2946 mov r1, r5 868 006c FFF7FEFF bl f_read 869 .LVL80: 276:Src/File_Handling.c **** if (fresult != FR_OK) 870 .loc 1 276 11 discriminator 1 view .LVU227 871 0070 1D4B ldr r3, .L55+4 872 0072 1870 strb r0, [r3] 277:Src/File_Handling.c **** { 873 .loc 1 277 3 is_stmt 1 view .LVU228 277:Src/File_Handling.c **** { ARM GAS /tmp/cccCjqCZ.s page 24 874 .loc 1 277 6 is_stmt 0 view .LVU229 875 0074 98B1 cbz r0, .L50 876 .LBB10: 279:Src/File_Handling.c **** free(buffer); 877 .loc 1 279 4 is_stmt 1 view .LVU230 279:Src/File_Handling.c **** free(buffer); 878 .loc 1 279 16 is_stmt 0 view .LVU231 879 0076 6420 movs r0, #100 880 0078 FFF7FEFF bl malloc 881 .LVL81: 882 007c 0646 mov r6, r0 883 .LVL82: 280:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in reading file *%s*\n\n", fresult, name); 884 .loc 1 280 4 is_stmt 1 view .LVU232 885 007e 2846 mov r0, r5 886 .LVL83: 280:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in reading file *%s*\n\n", fresult, name); 887 .loc 1 280 4 is_stmt 0 view .LVU233 888 0080 FFF7FEFF bl free 889 .LVL84: 281:Src/File_Handling.c **** Send_Uart(buffer); 890 .loc 1 281 5 is_stmt 1 view .LVU234 891 0084 2346 mov r3, r4 892 0086 184A ldr r2, .L55+4 893 0088 1278 ldrb r2, [r2] @ zero_extendqisi2 894 008a 1C49 ldr r1, .L55+24 895 008c 3046 mov r0, r6 896 008e FFF7FEFF bl sprintf 897 .LVL85: 282:Src/File_Handling.c **** free(buf); 898 .loc 1 282 6 view .LVU235 283:Src/File_Handling.c **** } 899 .loc 1 283 6 view .LVU236 900 0092 3046 mov r0, r6 901 0094 FFF7FEFF bl free 902 .LVL86: 903 .L51: 283:Src/File_Handling.c **** } 904 .loc 1 283 6 is_stmt 0 view .LVU237 905 .LBE10: 308:Src/File_Handling.c **** } 906 .loc 1 308 6 is_stmt 1 view .LVU238 308:Src/File_Handling.c **** } 907 .loc 1 308 13 is_stmt 0 view .LVU239 908 0098 134B ldr r3, .L55+4 909 009a 1878 ldrb r0, [r3] @ zero_extendqisi2 910 009c DDE7 b .L48 911 .LVL87: 912 .L50: 288:Src/File_Handling.c **** free(buffer); 913 .loc 1 288 4 is_stmt 1 view .LVU240 289:Src/File_Handling.c **** 914 .loc 1 289 4 view .LVU241 915 009e 2846 mov r0, r5 916 00a0 FFF7FEFF bl free 917 .LVL88: 292:Src/File_Handling.c **** if (fresult != FR_OK) ARM GAS /tmp/cccCjqCZ.s page 25 918 .loc 1 292 4 view .LVU242 292:Src/File_Handling.c **** if (fresult != FR_OK) 919 .loc 1 292 14 is_stmt 0 view .LVU243 920 00a4 1148 ldr r0, .L55+8 921 00a6 FFF7FEFF bl f_close 922 .LVL89: 923 00aa 0546 mov r5, r0 924 .LVL90: 292:Src/File_Handling.c **** if (fresult != FR_OK) 925 .loc 1 292 12 discriminator 1 view .LVU244 926 00ac 0E4B ldr r3, .L55+4 927 00ae 1870 strb r0, [r3] 293:Src/File_Handling.c **** { 928 .loc 1 293 4 is_stmt 1 view .LVU245 293:Src/File_Handling.c **** { 929 .loc 1 293 7 is_stmt 0 view .LVU246 930 00b0 60B1 cbz r0, .L52 931 .LBB11: 295:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 932 .loc 1 295 5 is_stmt 1 view .LVU247 295:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 933 .loc 1 295 17 is_stmt 0 view .LVU248 934 00b2 6420 movs r0, #100 935 00b4 FFF7FEFF bl malloc 936 .LVL91: 937 00b8 0646 mov r6, r0 938 .LVL92: 296:Src/File_Handling.c **** Send_Uart(buf); 939 .loc 1 296 5 is_stmt 1 view .LVU249 940 00ba 2346 mov r3, r4 941 00bc 2A46 mov r2, r5 942 00be 1049 ldr r1, .L55+28 943 00c0 FFF7FEFF bl sprintf 944 .LVL93: 297:Src/File_Handling.c **** free(buf); 945 .loc 1 297 5 view .LVU250 298:Src/File_Handling.c **** } 946 .loc 1 298 5 view .LVU251 947 00c4 3046 mov r0, r6 948 00c6 FFF7FEFF bl free 949 .LVL94: 950 .LBE11: 951 00ca E5E7 b .L51 952 .LVL95: 953 .L52: 954 .LBB12: 302:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 955 .loc 1 302 5 view .LVU252 302:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 956 .loc 1 302 17 is_stmt 0 view .LVU253 957 00cc 6420 movs r0, #100 958 00ce FFF7FEFF bl malloc 959 .LVL96: 960 00d2 0546 mov r5, r0 961 .LVL97: 303:Src/File_Handling.c **** Send_Uart(buf); 962 .loc 1 303 5 is_stmt 1 view .LVU254 ARM GAS /tmp/cccCjqCZ.s page 26 963 00d4 2246 mov r2, r4 964 00d6 0B49 ldr r1, .L55+32 965 00d8 FFF7FEFF bl sprintf 966 .LVL98: 304:Src/File_Handling.c **** free(buf); 967 .loc 1 304 5 view .LVU255 305:Src/File_Handling.c **** } 968 .loc 1 305 5 view .LVU256 969 00dc 2846 mov r0, r5 970 00de FFF7FEFF bl free 971 .LVL99: 972 00e2 D9E7 b .L51 973 .L56: 974 .align 2 975 .L55: 976 00e4 00000000 .word fno 977 00e8 00000000 .word fresult 978 00ec 00000000 .word fil 979 00f0 24000000 .word .LC6 980 00f4 00000000 .word .LC5 981 00f8 00000000 .word br 982 00fc 4C000000 .word .LC7 983 0100 74000000 .word .LC8 984 0104 9C000000 .word .LC9 985 .LBE12: 986 .LBE14: 987 .cfi_endproc 988 .LFE1193: 990 .section .rodata.Seek_Read_File.str1.4,"aMS",%progbits,1 991 .align 2 992 .LC10: 993 0000 4552524F .ascii "ERROR!!! Can't seek the file: *%s*\012\012\000" 993 52212121 993 2043616E 993 27742073 993 65656B20 994 .section .text.Seek_Read_File,"ax",%progbits 995 .align 1 996 .global Seek_Read_File 997 .syntax unified 998 .thumb 999 .thumb_func 1001 Seek_Read_File: 1002 .LVL100: 1003 .LFB1194: 311:Src/File_Handling.c **** 312:Src/File_Handling.c **** FRESULT Seek_Read_File (char *name, uint8_t *data, unsigned int bytesize, unsigned long goto_label) 313:Src/File_Handling.c **** { 1004 .loc 1 313 1 view -0 1005 .cfi_startproc 1006 @ args = 0, pretend = 0, frame = 0 1007 @ frame_needed = 0, uses_anonymous_args = 0 1008 .loc 1 313 1 is_stmt 0 view .LVU258 1009 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1010 .LCFI11: 1011 .cfi_def_cfa_offset 24 1012 .cfi_offset 4, -24 ARM GAS /tmp/cccCjqCZ.s page 27 1013 .cfi_offset 5, -20 1014 .cfi_offset 6, -16 1015 .cfi_offset 7, -12 1016 .cfi_offset 8, -8 1017 .cfi_offset 14, -4 1018 0004 0446 mov r4, r0 1019 0006 0F46 mov r7, r1 1020 0008 9046 mov r8, r2 1021 000a 1D46 mov r5, r3 314:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 315:Src/File_Handling.c **** fresult = f_stat (name, &fno); 1022 .loc 1 315 2 is_stmt 1 view .LVU259 1023 .loc 1 315 12 is_stmt 0 view .LVU260 1024 000c 4349 ldr r1, .L70 1025 .LVL101: 1026 .loc 1 315 12 view .LVU261 1027 000e FFF7FEFF bl f_stat 1028 .LVL102: 1029 .loc 1 315 10 discriminator 1 view .LVU262 1030 0012 434B ldr r3, .L70+4 1031 0014 1870 strb r0, [r3] 316:Src/File_Handling.c **** if (fresult != FR_OK) 1032 .loc 1 316 2 is_stmt 1 view .LVU263 1033 .loc 1 316 5 is_stmt 0 view .LVU264 1034 0016 E8B9 cbnz r0, .L67 317:Src/File_Handling.c **** { 318:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 319:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); 320:Src/File_Handling.c **** //Send_Uart (buf); 321:Src/File_Handling.c **** free(buf); 322:Src/File_Handling.c **** return fresult; 323:Src/File_Handling.c **** } 324:Src/File_Handling.c **** 325:Src/File_Handling.c **** else 326:Src/File_Handling.c **** { 327:Src/File_Handling.c **** /* Open file to read */ 328:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_READ); 1035 .loc 1 328 3 is_stmt 1 view .LVU265 1036 .loc 1 328 13 is_stmt 0 view .LVU266 1037 0018 0122 movs r2, #1 1038 001a 2146 mov r1, r4 1039 001c 4148 ldr r0, .L70+8 1040 001e FFF7FEFF bl f_open 1041 .LVL103: 1042 0022 0646 mov r6, r0 1043 .loc 1 328 11 discriminator 1 view .LVU267 1044 0024 3E4B ldr r3, .L70+4 1045 0026 1870 strb r0, [r3] 329:Src/File_Handling.c **** 330:Src/File_Handling.c **** if (fresult != FR_OK) 1046 .loc 1 330 3 is_stmt 1 view .LVU268 1047 .loc 1 330 6 is_stmt 0 view .LVU269 1048 0028 18BB cbnz r0, .L68 331:Src/File_Handling.c **** { 332:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 333:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 334:Src/File_Handling.c **** //Send_Uart(buf); ARM GAS /tmp/cccCjqCZ.s page 28 335:Src/File_Handling.c **** free(buf); 336:Src/File_Handling.c **** return fresult; 337:Src/File_Handling.c **** } 338:Src/File_Handling.c **** 339:Src/File_Handling.c **** /* Read data from the file 340:Src/File_Handling.c **** * see the function details for the arguments */ 341:Src/File_Handling.c **** 342:Src/File_Handling.c **** //char *buffer = malloc(sizeof(f_size(&fil))); 343:Src/File_Handling.c **** fresult = f_lseek (&fil, goto_label); /* Move file pointer of the file object */ 1049 .loc 1 343 3 is_stmt 1 view .LVU270 1050 .loc 1 343 14 is_stmt 0 view .LVU271 1051 002a 2946 mov r1, r5 1052 002c 3D48 ldr r0, .L70+8 1053 002e FFF7FEFF bl f_lseek 1054 .LVL104: 1055 .loc 1 343 11 discriminator 1 view .LVU272 1056 0032 3B4B ldr r3, .L70+4 1057 0034 1870 strb r0, [r3] 344:Src/File_Handling.c **** if (fresult != FR_OK) 1058 .loc 1 344 3 is_stmt 1 view .LVU273 1059 .loc 1 344 6 is_stmt 0 view .LVU274 1060 0036 58B3 cbz r0, .L61 1061 .LBB15: 345:Src/File_Handling.c **** { 346:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1062 .loc 1 346 4 is_stmt 1 view .LVU275 1063 .loc 1 346 16 is_stmt 0 view .LVU276 1064 0038 6420 movs r0, #100 1065 003a FFF7FEFF bl malloc 1066 .LVL105: 1067 003e 0546 mov r5, r0 1068 .LVL106: 347:Src/File_Handling.c **** //free(buffer); 348:Src/File_Handling.c **** sprintf (buf, "ERROR!!! Can't seek the file: *%s*\n\n", name); 1069 .loc 1 348 5 is_stmt 1 view .LVU277 1070 0040 2246 mov r2, r4 1071 0042 3949 ldr r1, .L70+12 1072 0044 FFF7FEFF bl sprintf 1073 .LVL107: 349:Src/File_Handling.c **** //Send_Uart(buffer); 350:Src/File_Handling.c **** free(buf); 1074 .loc 1 350 5 view .LVU278 1075 0048 2846 mov r0, r5 1076 004a FFF7FEFF bl free 1077 .LVL108: 351:Src/File_Handling.c **** return fresult; 1078 .loc 1 351 4 view .LVU279 1079 .loc 1 351 11 is_stmt 0 view .LVU280 1080 004e 344B ldr r3, .L70+4 1081 0050 1878 ldrb r0, [r3] @ zero_extendqisi2 1082 0052 0CE0 b .L59 1083 .LVL109: 1084 .L67: 1085 .loc 1 351 11 view .LVU281 1086 .LBE15: 1087 .LBB16: 318:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); ARM GAS /tmp/cccCjqCZ.s page 29 1088 .loc 1 318 3 is_stmt 1 view .LVU282 318:Src/File_Handling.c **** sprintf (buf, "ERRROR!!! *%s* does not exists\n\n", name); 1089 .loc 1 318 15 is_stmt 0 view .LVU283 1090 0054 6420 movs r0, #100 1091 0056 FFF7FEFF bl malloc 1092 .LVL110: 1093 005a 0546 mov r5, r0 1094 .LVL111: 319:Src/File_Handling.c **** //Send_Uart (buf); 1095 .loc 1 319 3 is_stmt 1 view .LVU284 1096 005c 2246 mov r2, r4 1097 005e 3349 ldr r1, .L70+16 1098 0060 FFF7FEFF bl sprintf 1099 .LVL112: 321:Src/File_Handling.c **** return fresult; 1100 .loc 1 321 3 view .LVU285 1101 0064 2846 mov r0, r5 1102 0066 FFF7FEFF bl free 1103 .LVL113: 322:Src/File_Handling.c **** } 1104 .loc 1 322 6 view .LVU286 322:Src/File_Handling.c **** } 1105 .loc 1 322 13 is_stmt 0 view .LVU287 1106 006a 2D4B ldr r3, .L70+4 1107 006c 1878 ldrb r0, [r3] @ zero_extendqisi2 1108 .LVL114: 1109 .L59: 322:Src/File_Handling.c **** } 1110 .loc 1 322 13 view .LVU288 1111 .LBE16: 352:Src/File_Handling.c **** } 353:Src/File_Handling.c **** fresult = f_read (&fil, data, bytesize, &br); 354:Src/File_Handling.c **** if (fresult != FR_OK) 355:Src/File_Handling.c **** { 356:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 357:Src/File_Handling.c **** //free(buffer); 358:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in reading file *%s*\n\n", fresult, name); 359:Src/File_Handling.c **** //Send_Uart(buffer); 360:Src/File_Handling.c **** free(buf); 361:Src/File_Handling.c **** 362:Src/File_Handling.c **** } 363:Src/File_Handling.c **** 364:Src/File_Handling.c **** else 365:Src/File_Handling.c **** { 366:Src/File_Handling.c **** //Send_Uart(buffer); 367:Src/File_Handling.c **** //free(buffer); 368:Src/File_Handling.c **** if (goto_label==0)//Set size of file in first 4 bytes 369:Src/File_Handling.c **** { 370:Src/File_Handling.c **** sizeoffile = f_size(&fil); 371:Src/File_Handling.c **** data[0] = (uint8_t) (sizeoffile&0xff); 372:Src/File_Handling.c **** data[1] = (uint8_t) ((sizeoffile>>8)&0xff); 373:Src/File_Handling.c **** data[2] = (uint8_t) ((sizeoffile>>16)&0xff); 374:Src/File_Handling.c **** data[3] = (uint8_t) ((sizeoffile>>24)&0xff); 375:Src/File_Handling.c **** } 376:Src/File_Handling.c **** 377:Src/File_Handling.c **** /* Close file */ 378:Src/File_Handling.c **** fresult = f_close(&fil); ARM GAS /tmp/cccCjqCZ.s page 30 379:Src/File_Handling.c **** if (fresult != FR_OK) 380:Src/File_Handling.c **** { 381:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 382:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 383:Src/File_Handling.c **** //Send_Uart(buf); 384:Src/File_Handling.c **** free(buf); 385:Src/File_Handling.c **** } 386:Src/File_Handling.c **** else 387:Src/File_Handling.c **** { 388:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 389:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 390:Src/File_Handling.c **** //Send_Uart(buf); 391:Src/File_Handling.c **** free(buf); 392:Src/File_Handling.c **** } 393:Src/File_Handling.c **** } 394:Src/File_Handling.c **** return fresult; 395:Src/File_Handling.c **** } 396:Src/File_Handling.c **** } 1112 .loc 1 396 1 view .LVU289 1113 006e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1114 .LVL115: 1115 .L68: 1116 .LBB17: 332:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 1117 .loc 1 332 4 is_stmt 1 view .LVU290 332:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 1118 .loc 1 332 16 is_stmt 0 view .LVU291 1119 0072 6420 movs r0, #100 1120 0074 FFF7FEFF bl malloc 1121 .LVL116: 1122 0078 0546 mov r5, r0 1123 .LVL117: 333:Src/File_Handling.c **** //Send_Uart(buf); 1124 .loc 1 333 4 is_stmt 1 view .LVU292 1125 007a 2346 mov r3, r4 1126 007c 3246 mov r2, r6 1127 007e 2C49 ldr r1, .L70+20 1128 0080 FFF7FEFF bl sprintf 1129 .LVL118: 335:Src/File_Handling.c **** return fresult; 1130 .loc 1 335 7 view .LVU293 1131 0084 2846 mov r0, r5 1132 0086 FFF7FEFF bl free 1133 .LVL119: 336:Src/File_Handling.c **** } 1134 .loc 1 336 7 view .LVU294 336:Src/File_Handling.c **** } 1135 .loc 1 336 14 is_stmt 0 view .LVU295 1136 008a 254B ldr r3, .L70+4 1137 008c 1878 ldrb r0, [r3] @ zero_extendqisi2 1138 008e EEE7 b .L59 1139 .LVL120: 1140 .L61: 336:Src/File_Handling.c **** } 1141 .loc 1 336 14 view .LVU296 1142 .LBE17: 353:Src/File_Handling.c **** if (fresult != FR_OK) ARM GAS /tmp/cccCjqCZ.s page 31 1143 .loc 1 353 3 is_stmt 1 view .LVU297 353:Src/File_Handling.c **** if (fresult != FR_OK) 1144 .loc 1 353 13 is_stmt 0 view .LVU298 1145 0090 284B ldr r3, .L70+24 1146 0092 4246 mov r2, r8 1147 0094 3946 mov r1, r7 1148 0096 2348 ldr r0, .L70+8 1149 0098 FFF7FEFF bl f_read 1150 .LVL121: 1151 009c 0646 mov r6, r0 353:Src/File_Handling.c **** if (fresult != FR_OK) 1152 .loc 1 353 11 discriminator 1 view .LVU299 1153 009e 204B ldr r3, .L70+4 1154 00a0 1870 strb r0, [r3] 354:Src/File_Handling.c **** { 1155 .loc 1 354 3 is_stmt 1 view .LVU300 354:Src/File_Handling.c **** { 1156 .loc 1 354 6 is_stmt 0 view .LVU301 1157 00a2 08BB cbnz r0, .L69 368:Src/File_Handling.c **** { 1158 .loc 1 368 4 is_stmt 1 view .LVU302 368:Src/File_Handling.c **** { 1159 .loc 1 368 7 is_stmt 0 view .LVU303 1160 00a4 55B9 cbnz r5, .L64 370:Src/File_Handling.c **** data[0] = (uint8_t) (sizeoffile&0xff); 1161 .loc 1 370 5 is_stmt 1 view .LVU304 370:Src/File_Handling.c **** data[0] = (uint8_t) (sizeoffile&0xff); 1162 .loc 1 370 18 is_stmt 0 view .LVU305 1163 00a6 1F4B ldr r3, .L70+8 1164 00a8 DA68 ldr r2, [r3, #12] 370:Src/File_Handling.c **** data[0] = (uint8_t) (sizeoffile&0xff); 1165 .loc 1 370 16 view .LVU306 1166 00aa 234B ldr r3, .L70+28 1167 00ac 1A60 str r2, [r3] 371:Src/File_Handling.c **** data[1] = (uint8_t) ((sizeoffile>>8)&0xff); 1168 .loc 1 371 5 is_stmt 1 view .LVU307 371:Src/File_Handling.c **** data[1] = (uint8_t) ((sizeoffile>>8)&0xff); 1169 .loc 1 371 13 is_stmt 0 view .LVU308 1170 00ae 3A70 strb r2, [r7] 372:Src/File_Handling.c **** data[2] = (uint8_t) ((sizeoffile>>16)&0xff); 1171 .loc 1 372 5 is_stmt 1 view .LVU309 372:Src/File_Handling.c **** data[2] = (uint8_t) ((sizeoffile>>16)&0xff); 1172 .loc 1 372 15 is_stmt 0 view .LVU310 1173 00b0 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2 372:Src/File_Handling.c **** data[2] = (uint8_t) ((sizeoffile>>16)&0xff); 1174 .loc 1 372 13 view .LVU311 1175 00b2 7A70 strb r2, [r7, #1] 373:Src/File_Handling.c **** data[3] = (uint8_t) ((sizeoffile>>24)&0xff); 1176 .loc 1 373 5 is_stmt 1 view .LVU312 373:Src/File_Handling.c **** data[3] = (uint8_t) ((sizeoffile>>24)&0xff); 1177 .loc 1 373 15 is_stmt 0 view .LVU313 1178 00b4 9A78 ldrb r2, [r3, #2] @ zero_extendqisi2 373:Src/File_Handling.c **** data[3] = (uint8_t) ((sizeoffile>>24)&0xff); 1179 .loc 1 373 13 view .LVU314 1180 00b6 BA70 strb r2, [r7, #2] 374:Src/File_Handling.c **** } 1181 .loc 1 374 5 is_stmt 1 view .LVU315 ARM GAS /tmp/cccCjqCZ.s page 32 374:Src/File_Handling.c **** } 1182 .loc 1 374 15 is_stmt 0 view .LVU316 1183 00b8 DB78 ldrb r3, [r3, #3] @ zero_extendqisi2 374:Src/File_Handling.c **** } 1184 .loc 1 374 13 view .LVU317 1185 00ba FB70 strb r3, [r7, #3] 1186 .L64: 378:Src/File_Handling.c **** if (fresult != FR_OK) 1187 .loc 1 378 4 is_stmt 1 view .LVU318 378:Src/File_Handling.c **** if (fresult != FR_OK) 1188 .loc 1 378 14 is_stmt 0 view .LVU319 1189 00bc 1948 ldr r0, .L70+8 1190 00be FFF7FEFF bl f_close 1191 .LVL122: 1192 00c2 0546 mov r5, r0 1193 .LVL123: 378:Src/File_Handling.c **** if (fresult != FR_OK) 1194 .loc 1 378 12 discriminator 1 view .LVU320 1195 00c4 164B ldr r3, .L70+4 1196 00c6 1870 strb r0, [r3] 379:Src/File_Handling.c **** { 1197 .loc 1 379 4 is_stmt 1 view .LVU321 379:Src/File_Handling.c **** { 1198 .loc 1 379 7 is_stmt 0 view .LVU322 1199 00c8 D8B1 cbz r0, .L65 1200 .LBB18: 381:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 1201 .loc 1 381 5 is_stmt 1 view .LVU323 381:Src/File_Handling.c **** sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 1202 .loc 1 381 17 is_stmt 0 view .LVU324 1203 00ca 6420 movs r0, #100 1204 00cc FFF7FEFF bl malloc 1205 .LVL124: 1206 00d0 0646 mov r6, r0 1207 .LVL125: 382:Src/File_Handling.c **** //Send_Uart(buf); 1208 .loc 1 382 5 is_stmt 1 view .LVU325 1209 00d2 2346 mov r3, r4 1210 00d4 2A46 mov r2, r5 1211 00d6 1949 ldr r1, .L70+32 1212 00d8 FFF7FEFF bl sprintf 1213 .LVL126: 384:Src/File_Handling.c **** } 1214 .loc 1 384 5 view .LVU326 1215 00dc 3046 mov r0, r6 1216 00de FFF7FEFF bl free 1217 .LVL127: 1218 .L63: 384:Src/File_Handling.c **** } 1219 .loc 1 384 5 is_stmt 0 view .LVU327 1220 .LBE18: 394:Src/File_Handling.c **** } 1221 .loc 1 394 6 is_stmt 1 view .LVU328 394:Src/File_Handling.c **** } 1222 .loc 1 394 13 is_stmt 0 view .LVU329 1223 00e2 0F4B ldr r3, .L70+4 1224 00e4 1878 ldrb r0, [r3] @ zero_extendqisi2 ARM GAS /tmp/cccCjqCZ.s page 33 1225 00e6 C2E7 b .L59 1226 .LVL128: 1227 .L69: 1228 .LBB19: 356:Src/File_Handling.c **** //free(buffer); 1229 .loc 1 356 4 is_stmt 1 view .LVU330 356:Src/File_Handling.c **** //free(buffer); 1230 .loc 1 356 16 is_stmt 0 view .LVU331 1231 00e8 6420 movs r0, #100 1232 00ea FFF7FEFF bl malloc 1233 .LVL129: 1234 00ee 0546 mov r5, r0 1235 .LVL130: 358:Src/File_Handling.c **** //Send_Uart(buffer); 1236 .loc 1 358 5 is_stmt 1 view .LVU332 1237 00f0 2346 mov r3, r4 1238 00f2 3246 mov r2, r6 1239 00f4 1249 ldr r1, .L70+36 1240 00f6 FFF7FEFF bl sprintf 1241 .LVL131: 360:Src/File_Handling.c **** 1242 .loc 1 360 5 view .LVU333 1243 00fa 2846 mov r0, r5 1244 00fc FFF7FEFF bl free 1245 .LVL132: 1246 .LBE19: 1247 0100 EFE7 b .L63 1248 .LVL133: 1249 .L65: 1250 .LBB20: 388:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 1251 .loc 1 388 5 view .LVU334 388:Src/File_Handling.c **** sprintf (buf, "File *%s* CLOSED successfully\n", name); 1252 .loc 1 388 17 is_stmt 0 view .LVU335 1253 0102 6420 movs r0, #100 1254 0104 FFF7FEFF bl malloc 1255 .LVL134: 1256 0108 0546 mov r5, r0 1257 .LVL135: 389:Src/File_Handling.c **** //Send_Uart(buf); 1258 .loc 1 389 5 is_stmt 1 view .LVU336 1259 010a 2246 mov r2, r4 1260 010c 0D49 ldr r1, .L70+40 1261 010e FFF7FEFF bl sprintf 1262 .LVL136: 391:Src/File_Handling.c **** } 1263 .loc 1 391 5 view .LVU337 1264 0112 2846 mov r0, r5 1265 0114 FFF7FEFF bl free 1266 .LVL137: 1267 0118 E3E7 b .L63 1268 .L71: 1269 011a 00BF .align 2 1270 .L70: 1271 011c 00000000 .word fno 1272 0120 00000000 .word fresult 1273 0124 00000000 .word fil ARM GAS /tmp/cccCjqCZ.s page 34 1274 0128 00000000 .word .LC10 1275 012c 00000000 .word .LC5 1276 0130 24000000 .word .LC6 1277 0134 00000000 .word br 1278 0138 00000000 .word sizeoffile 1279 013c 74000000 .word .LC8 1280 0140 4C000000 .word .LC7 1281 0144 9C000000 .word .LC9 1282 .LBE20: 1283 .cfi_endproc 1284 .LFE1194: 1286 .section .text.Create_File,"ax",%progbits 1287 .align 1 1288 .global Create_File 1289 .syntax unified 1290 .thumb 1291 .thumb_func 1293 Create_File: 1294 .LVL138: 1295 .LFB1195: 397:Src/File_Handling.c **** 398:Src/File_Handling.c **** FRESULT Create_File (char *name) 399:Src/File_Handling.c **** { 1296 .loc 1 399 1 view -0 1297 .cfi_startproc 1298 @ args = 0, pretend = 0, frame = 0 1299 @ frame_needed = 0, uses_anonymous_args = 0 1300 .loc 1 399 1 is_stmt 0 view .LVU339 1301 0000 10B5 push {r4, lr} 1302 .LCFI12: 1303 .cfi_def_cfa_offset 8 1304 .cfi_offset 4, -8 1305 .cfi_offset 14, -4 1306 0002 0446 mov r4, r0 400:Src/File_Handling.c **** fresult = f_stat (name, &fno); 1307 .loc 1 400 2 is_stmt 1 view .LVU340 1308 .loc 1 400 12 is_stmt 0 view .LVU341 1309 0004 0C49 ldr r1, .L77 1310 0006 FFF7FEFF bl f_stat 1311 .LVL139: 1312 .loc 1 400 10 discriminator 1 view .LVU342 1313 000a 0C4B ldr r3, .L77+4 1314 000c 1870 strb r0, [r3] 401:Src/File_Handling.c **** if (fresult == FR_OK) 1315 .loc 1 401 2 is_stmt 1 view .LVU343 1316 .loc 1 401 5 is_stmt 0 view .LVU344 1317 000e 08B9 cbnz r0, .L73 1318 .LBB21: 402:Src/File_Handling.c **** { 403:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1319 .loc 1 403 3 is_stmt 1 view .LVU345 404:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* already exists!!!!\n use Update_File \n\n",name); 405:Src/File_Handling.c **** //Send_Uart(buf); 406:Src/File_Handling.c **** free(buf); 1320 .loc 1 406 3 view .LVU346 407:Src/File_Handling.c **** return fresult; 1321 .loc 1 407 6 view .LVU347 ARM GAS /tmp/cccCjqCZ.s page 35 1322 .loc 1 407 13 is_stmt 0 view .LVU348 1323 0010 C0B2 uxtb r0, r0 1324 .L74: 1325 .LBE21: 408:Src/File_Handling.c **** } 409:Src/File_Handling.c **** else 410:Src/File_Handling.c **** { 411:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_CREATE_ALWAYS|FA_READ|FA_WRITE); 412:Src/File_Handling.c **** if (fresult != FR_OK) 413:Src/File_Handling.c **** { 414:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 415:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in creating file *%s*\n\n", fresult, name); 416:Src/File_Handling.c **** //Send_Uart(buf); 417:Src/File_Handling.c **** free(buf); 418:Src/File_Handling.c **** return fresult; 419:Src/File_Handling.c **** } 420:Src/File_Handling.c **** else 421:Src/File_Handling.c **** { 422:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 423:Src/File_Handling.c **** //sprintf (buf, "*%s* created successfully\n Now use Write_File to write data\n",name); 424:Src/File_Handling.c **** //Send_Uart(buf); 425:Src/File_Handling.c **** free(buf); 426:Src/File_Handling.c **** } 427:Src/File_Handling.c **** 428:Src/File_Handling.c **** fresult = f_close(&fil); 429:Src/File_Handling.c **** if (fresult != FR_OK) 430:Src/File_Handling.c **** { 431:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 432:Src/File_Handling.c **** //sprintf (buf, "ERROR No. %d in closing file *%s*\n\n", fresult, name); 433:Src/File_Handling.c **** //Send_Uart(buf); 434:Src/File_Handling.c **** free(buf); 435:Src/File_Handling.c **** } 436:Src/File_Handling.c **** else 437:Src/File_Handling.c **** { 438:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 439:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 440:Src/File_Handling.c **** //Send_Uart(buf); 441:Src/File_Handling.c **** free(buf); 442:Src/File_Handling.c **** } 443:Src/File_Handling.c **** } 444:Src/File_Handling.c **** return fresult; 445:Src/File_Handling.c **** } 1326 .loc 1 445 1 view .LVU349 1327 0012 10BD pop {r4, pc} 1328 .LVL140: 1329 .L73: 411:Src/File_Handling.c **** if (fresult != FR_OK) 1330 .loc 1 411 3 is_stmt 1 view .LVU350 411:Src/File_Handling.c **** if (fresult != FR_OK) 1331 .loc 1 411 13 is_stmt 0 view .LVU351 1332 0014 0B22 movs r2, #11 1333 0016 2146 mov r1, r4 1334 0018 0948 ldr r0, .L77+8 1335 001a FFF7FEFF bl f_open 1336 .LVL141: 411:Src/File_Handling.c **** if (fresult != FR_OK) 1337 .loc 1 411 11 discriminator 1 view .LVU352 ARM GAS /tmp/cccCjqCZ.s page 36 1338 001e 074B ldr r3, .L77+4 1339 0020 1870 strb r0, [r3] 412:Src/File_Handling.c **** { 1340 .loc 1 412 3 is_stmt 1 view .LVU353 412:Src/File_Handling.c **** { 1341 .loc 1 412 6 is_stmt 0 view .LVU354 1342 0022 08B1 cbz r0, .L75 1343 .LBB22: 414:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in creating file *%s*\n\n", fresult, name); 1344 .loc 1 414 4 is_stmt 1 view .LVU355 417:Src/File_Handling.c **** return fresult; 1345 .loc 1 417 4 view .LVU356 418:Src/File_Handling.c **** } 1346 .loc 1 418 7 view .LVU357 418:Src/File_Handling.c **** } 1347 .loc 1 418 14 is_stmt 0 view .LVU358 1348 0024 C0B2 uxtb r0, r0 1349 0026 F4E7 b .L74 1350 .L75: 1351 .LBE22: 422:Src/File_Handling.c **** //sprintf (buf, "*%s* created successfully\n Now use Write_File to write data\n",name); 1352 .loc 1 422 4 is_stmt 1 view .LVU359 425:Src/File_Handling.c **** } 1353 .loc 1 425 4 view .LVU360 428:Src/File_Handling.c **** if (fresult != FR_OK) 1354 .loc 1 428 3 view .LVU361 428:Src/File_Handling.c **** if (fresult != FR_OK) 1355 .loc 1 428 13 is_stmt 0 view .LVU362 1356 0028 0548 ldr r0, .L77+8 1357 002a FFF7FEFF bl f_close 1358 .LVL142: 428:Src/File_Handling.c **** if (fresult != FR_OK) 1359 .loc 1 428 11 discriminator 1 view .LVU363 1360 002e 034B ldr r3, .L77+4 1361 0030 1870 strb r0, [r3] 429:Src/File_Handling.c **** { 1362 .loc 1 429 3 is_stmt 1 view .LVU364 438:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 1363 .loc 1 438 4 view .LVU365 441:Src/File_Handling.c **** } 1364 .loc 1 441 4 view .LVU366 444:Src/File_Handling.c **** } 1365 .loc 1 444 5 view .LVU367 444:Src/File_Handling.c **** } 1366 .loc 1 444 12 is_stmt 0 view .LVU368 1367 0032 C0B2 uxtb r0, r0 1368 0034 EDE7 b .L74 1369 .L78: 1370 0036 00BF .align 2 1371 .L77: 1372 0038 00000000 .word fno 1373 003c 00000000 .word fresult 1374 0040 00000000 .word fil 1375 .cfi_endproc 1376 .LFE1195: 1378 .section .text.Update_File,"ax",%progbits 1379 .align 1 ARM GAS /tmp/cccCjqCZ.s page 37 1380 .global Update_File 1381 .syntax unified 1382 .thumb 1383 .thumb_func 1385 Update_File: 1386 .LVL143: 1387 .LFB1196: 446:Src/File_Handling.c **** 447:Src/File_Handling.c **** FRESULT Update_File (char *name, char *data) 448:Src/File_Handling.c **** { 1388 .loc 1 448 1 is_stmt 1 view -0 1389 .cfi_startproc 1390 @ args = 0, pretend = 0, frame = 0 1391 @ frame_needed = 0, uses_anonymous_args = 0 1392 .loc 1 448 1 is_stmt 0 view .LVU370 1393 0000 70B5 push {r4, r5, r6, lr} 1394 .LCFI13: 1395 .cfi_def_cfa_offset 16 1396 .cfi_offset 4, -16 1397 .cfi_offset 5, -12 1398 .cfi_offset 6, -8 1399 .cfi_offset 14, -4 1400 0002 0446 mov r4, r0 1401 0004 0D46 mov r5, r1 449:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 450:Src/File_Handling.c **** fresult = f_stat (name, &fno); 1402 .loc 1 450 2 is_stmt 1 view .LVU371 1403 .loc 1 450 12 is_stmt 0 view .LVU372 1404 0006 1249 ldr r1, .L84 1405 .LVL144: 1406 .loc 1 450 12 view .LVU373 1407 0008 FFF7FEFF bl f_stat 1408 .LVL145: 1409 .loc 1 450 10 discriminator 1 view .LVU374 1410 000c 114B ldr r3, .L84+4 1411 000e 1870 strb r0, [r3] 451:Src/File_Handling.c **** if (fresult != FR_OK) 1412 .loc 1 451 2 is_stmt 1 view .LVU375 1413 .loc 1 451 5 is_stmt 0 view .LVU376 1414 0010 08B1 cbz r0, .L80 1415 .LBB23: 452:Src/File_Handling.c **** { 453:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1416 .loc 1 453 3 is_stmt 1 view .LVU377 454:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 455:Src/File_Handling.c **** //Send_Uart (buf); 456:Src/File_Handling.c **** free(buf); 1417 .loc 1 456 3 view .LVU378 457:Src/File_Handling.c **** return fresult; 1418 .loc 1 457 6 view .LVU379 1419 .loc 1 457 13 is_stmt 0 view .LVU380 1420 0012 C0B2 uxtb r0, r0 1421 .LVL146: 1422 .L81: 1423 .loc 1 457 13 view .LVU381 1424 .LBE23: 458:Src/File_Handling.c **** } ARM GAS /tmp/cccCjqCZ.s page 38 459:Src/File_Handling.c **** 460:Src/File_Handling.c **** else 461:Src/File_Handling.c **** { 462:Src/File_Handling.c **** /* Create a file with read write access and open it */ 463:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_OPEN_APPEND | FA_WRITE); 464:Src/File_Handling.c **** if (fresult != FR_OK) 465:Src/File_Handling.c **** { 466:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 467:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 468:Src/File_Handling.c **** //Send_Uart(buf); 469:Src/File_Handling.c **** free(buf); 470:Src/File_Handling.c **** return fresult; 471:Src/File_Handling.c **** } 472:Src/File_Handling.c **** 473:Src/File_Handling.c **** /* Writing text */ 474:Src/File_Handling.c **** fresult = f_write(&fil, data, strlen (data), &bw); 475:Src/File_Handling.c **** if (fresult != FR_OK) 476:Src/File_Handling.c **** { 477:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 478:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in writing file *%s*\n\n", fresult, name); 479:Src/File_Handling.c **** //Send_Uart(buf); 480:Src/File_Handling.c **** free(buf); 481:Src/File_Handling.c **** } 482:Src/File_Handling.c **** 483:Src/File_Handling.c **** else 484:Src/File_Handling.c **** { 485:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 486:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 487:Src/File_Handling.c **** //Send_Uart(buf); 488:Src/File_Handling.c **** free(buf); 489:Src/File_Handling.c **** } 490:Src/File_Handling.c **** 491:Src/File_Handling.c **** /* Close file */ 492:Src/File_Handling.c **** fresult = f_close(&fil); 493:Src/File_Handling.c **** if (fresult != FR_OK) 494:Src/File_Handling.c **** { 495:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 496:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 497:Src/File_Handling.c **** //Send_Uart(buf); 498:Src/File_Handling.c **** free(buf); 499:Src/File_Handling.c **** } 500:Src/File_Handling.c **** else 501:Src/File_Handling.c **** { 502:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 503:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 504:Src/File_Handling.c **** //Send_Uart(buf); 505:Src/File_Handling.c **** free(buf); 506:Src/File_Handling.c **** } 507:Src/File_Handling.c **** } 508:Src/File_Handling.c **** return fresult; 509:Src/File_Handling.c **** } 1425 .loc 1 509 1 view .LVU382 1426 0014 70BD pop {r4, r5, r6, pc} 1427 .LVL147: 1428 .L80: 463:Src/File_Handling.c **** if (fresult != FR_OK) 1429 .loc 1 463 6 is_stmt 1 view .LVU383 ARM GAS /tmp/cccCjqCZ.s page 39 463:Src/File_Handling.c **** if (fresult != FR_OK) 1430 .loc 1 463 16 is_stmt 0 view .LVU384 1431 0016 3222 movs r2, #50 1432 0018 2146 mov r1, r4 1433 001a 0F48 ldr r0, .L84+8 1434 001c FFF7FEFF bl f_open 1435 .LVL148: 463:Src/File_Handling.c **** if (fresult != FR_OK) 1436 .loc 1 463 14 discriminator 1 view .LVU385 1437 0020 0C4B ldr r3, .L84+4 1438 0022 1870 strb r0, [r3] 464:Src/File_Handling.c **** { 1439 .loc 1 464 6 is_stmt 1 view .LVU386 464:Src/File_Handling.c **** { 1440 .loc 1 464 9 is_stmt 0 view .LVU387 1441 0024 08B1 cbz r0, .L82 1442 .LBB24: 466:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 1443 .loc 1 466 7 is_stmt 1 view .LVU388 469:Src/File_Handling.c **** return fresult; 1444 .loc 1 469 10 view .LVU389 470:Src/File_Handling.c **** } 1445 .loc 1 470 10 view .LVU390 470:Src/File_Handling.c **** } 1446 .loc 1 470 17 is_stmt 0 view .LVU391 1447 0026 C0B2 uxtb r0, r0 1448 0028 F4E7 b .L81 1449 .L82: 1450 .LBE24: 474:Src/File_Handling.c **** if (fresult != FR_OK) 1451 .loc 1 474 6 is_stmt 1 view .LVU392 474:Src/File_Handling.c **** if (fresult != FR_OK) 1452 .loc 1 474 16 is_stmt 0 view .LVU393 1453 002a 2846 mov r0, r5 1454 002c FFF7FEFF bl strlen 1455 .LVL149: 1456 0030 0246 mov r2, r0 474:Src/File_Handling.c **** if (fresult != FR_OK) 1457 .loc 1 474 16 discriminator 1 view .LVU394 1458 0032 094E ldr r6, .L84+8 1459 0034 094B ldr r3, .L84+12 1460 0036 2946 mov r1, r5 1461 0038 3046 mov r0, r6 1462 003a FFF7FEFF bl f_write 1463 .LVL150: 474:Src/File_Handling.c **** if (fresult != FR_OK) 1464 .loc 1 474 14 discriminator 2 view .LVU395 1465 003e 054C ldr r4, .L84+4 1466 .LVL151: 474:Src/File_Handling.c **** if (fresult != FR_OK) 1467 .loc 1 474 14 discriminator 2 view .LVU396 1468 0040 2070 strb r0, [r4] 475:Src/File_Handling.c **** { 1469 .loc 1 475 6 is_stmt 1 view .LVU397 485:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 1470 .loc 1 485 7 view .LVU398 488:Src/File_Handling.c **** } ARM GAS /tmp/cccCjqCZ.s page 40 1471 .loc 1 488 7 view .LVU399 492:Src/File_Handling.c **** if (fresult != FR_OK) 1472 .loc 1 492 6 view .LVU400 492:Src/File_Handling.c **** if (fresult != FR_OK) 1473 .loc 1 492 16 is_stmt 0 view .LVU401 1474 0042 3046 mov r0, r6 1475 0044 FFF7FEFF bl f_close 1476 .LVL152: 492:Src/File_Handling.c **** if (fresult != FR_OK) 1477 .loc 1 492 14 discriminator 1 view .LVU402 1478 0048 2070 strb r0, [r4] 493:Src/File_Handling.c **** { 1479 .loc 1 493 6 is_stmt 1 view .LVU403 502:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 1480 .loc 1 502 7 view .LVU404 505:Src/File_Handling.c **** } 1481 .loc 1 505 7 view .LVU405 508:Src/File_Handling.c **** } 1482 .loc 1 508 5 view .LVU406 508:Src/File_Handling.c **** } 1483 .loc 1 508 12 is_stmt 0 view .LVU407 1484 004a C0B2 uxtb r0, r0 1485 004c E2E7 b .L81 1486 .L85: 1487 004e 00BF .align 2 1488 .L84: 1489 0050 00000000 .word fno 1490 0054 00000000 .word fresult 1491 0058 00000000 .word fil 1492 005c 00000000 .word bw 1493 .cfi_endproc 1494 .LFE1196: 1496 .section .rodata.Remove_File.str1.4,"aMS",%progbits,1 1497 .align 2 1498 .LC11: 1499 0000 4552524F .ascii "ERROR!!! *%s* does not exists\012\012\000" 1499 52212121 1499 202A2573 1499 2A20646F 1499 6573206E 1500 .align 2 1501 .LC12: 1502 0020 2A25732A .ascii "*%s* has been removed successfully\012\000" 1502 20686173 1502 20626565 1502 6E207265 1502 6D6F7665 1503 .align 2 1504 .LC13: 1505 0044 4552524F .ascii "ERROR No. %d in removing *%s*\012\012\000" 1505 52204E6F 1505 2E202564 1505 20696E20 1505 72656D6F 1506 .section .text.Remove_File,"ax",%progbits 1507 .align 1 1508 .global Remove_File ARM GAS /tmp/cccCjqCZ.s page 41 1509 .syntax unified 1510 .thumb 1511 .thumb_func 1513 Remove_File: 1514 .LVL153: 1515 .LFB1197: 510:Src/File_Handling.c **** 511:Src/File_Handling.c **** FRESULT Remove_File (char *name) 512:Src/File_Handling.c **** { 1516 .loc 1 512 1 is_stmt 1 view -0 1517 .cfi_startproc 1518 @ args = 0, pretend = 0, frame = 0 1519 @ frame_needed = 0, uses_anonymous_args = 0 1520 .loc 1 512 1 is_stmt 0 view .LVU409 1521 0000 70B5 push {r4, r5, r6, lr} 1522 .LCFI14: 1523 .cfi_def_cfa_offset 16 1524 .cfi_offset 4, -16 1525 .cfi_offset 5, -12 1526 .cfi_offset 6, -8 1527 .cfi_offset 14, -4 1528 0002 0446 mov r4, r0 513:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 514:Src/File_Handling.c **** fresult = f_stat (name, &fno); 1529 .loc 1 514 2 is_stmt 1 view .LVU410 1530 .loc 1 514 12 is_stmt 0 view .LVU411 1531 0004 1A49 ldr r1, .L93 1532 0006 FFF7FEFF bl f_stat 1533 .LVL154: 1534 .loc 1 514 10 discriminator 1 view .LVU412 1535 000a 1A4B ldr r3, .L93+4 1536 000c 1870 strb r0, [r3] 515:Src/File_Handling.c **** if (fresult != FR_OK) 1537 .loc 1 515 2 is_stmt 1 view .LVU413 1538 .loc 1 515 5 is_stmt 0 view .LVU414 1539 000e A0B9 cbnz r0, .L92 516:Src/File_Handling.c **** { 517:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 518:Src/File_Handling.c **** sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 519:Src/File_Handling.c **** Send_Uart (buf); 520:Src/File_Handling.c **** free(buf); 521:Src/File_Handling.c **** return fresult; 522:Src/File_Handling.c **** } 523:Src/File_Handling.c **** 524:Src/File_Handling.c **** else 525:Src/File_Handling.c **** { 526:Src/File_Handling.c **** fresult = f_unlink (name); 1540 .loc 1 526 3 is_stmt 1 view .LVU415 1541 .loc 1 526 13 is_stmt 0 view .LVU416 1542 0010 2046 mov r0, r4 1543 0012 FFF7FEFF bl f_unlink 1544 .LVL155: 1545 0016 0546 mov r5, r0 1546 .loc 1 526 11 discriminator 1 view .LVU417 1547 0018 164B ldr r3, .L93+4 1548 001a 1870 strb r0, [r3] 527:Src/File_Handling.c **** if (fresult == FR_OK) ARM GAS /tmp/cccCjqCZ.s page 42 1549 .loc 1 527 3 is_stmt 1 view .LVU418 1550 .loc 1 527 6 is_stmt 0 view .LVU419 1551 001c D8B9 cbnz r0, .L89 1552 .LBB25: 528:Src/File_Handling.c **** { 529:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1553 .loc 1 529 4 is_stmt 1 view .LVU420 1554 .loc 1 529 16 is_stmt 0 view .LVU421 1555 001e 6420 movs r0, #100 1556 0020 FFF7FEFF bl malloc 1557 .LVL156: 1558 0024 0546 mov r5, r0 1559 .LVL157: 530:Src/File_Handling.c **** sprintf (buf, "*%s* has been removed successfully\n", name); 1560 .loc 1 530 4 is_stmt 1 view .LVU422 1561 0026 2246 mov r2, r4 1562 0028 1349 ldr r1, .L93+8 1563 002a FFF7FEFF bl sprintf 1564 .LVL158: 531:Src/File_Handling.c **** Send_Uart (buf); 1565 .loc 1 531 4 view .LVU423 532:Src/File_Handling.c **** free(buf); 1566 .loc 1 532 4 view .LVU424 1567 002e 2846 mov r0, r5 1568 0030 FFF7FEFF bl free 1569 .LVL159: 1570 .L90: 1571 .loc 1 532 4 is_stmt 0 view .LVU425 1572 .LBE25: 533:Src/File_Handling.c **** } 534:Src/File_Handling.c **** 535:Src/File_Handling.c **** else 536:Src/File_Handling.c **** { 537:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 538:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in removing *%s*\n\n",fresult, name); 539:Src/File_Handling.c **** Send_Uart (buf); 540:Src/File_Handling.c **** free(buf); 541:Src/File_Handling.c **** } 542:Src/File_Handling.c **** } 543:Src/File_Handling.c **** return fresult; 1573 .loc 1 543 2 is_stmt 1 view .LVU426 1574 .loc 1 543 9 is_stmt 0 view .LVU427 1575 0034 0F4B ldr r3, .L93+4 1576 0036 1878 ldrb r0, [r3] @ zero_extendqisi2 1577 .L88: 544:Src/File_Handling.c **** } 1578 .loc 1 544 1 view .LVU428 1579 0038 70BD pop {r4, r5, r6, pc} 1580 .LVL160: 1581 .L92: 1582 .LBB26: 517:Src/File_Handling.c **** sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 1583 .loc 1 517 3 is_stmt 1 view .LVU429 517:Src/File_Handling.c **** sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 1584 .loc 1 517 15 is_stmt 0 view .LVU430 1585 003a 6420 movs r0, #100 1586 003c FFF7FEFF bl malloc ARM GAS /tmp/cccCjqCZ.s page 43 1587 .LVL161: 1588 0040 0546 mov r5, r0 1589 .LVL162: 518:Src/File_Handling.c **** Send_Uart (buf); 1590 .loc 1 518 3 is_stmt 1 view .LVU431 1591 0042 2246 mov r2, r4 1592 0044 0D49 ldr r1, .L93+12 1593 0046 FFF7FEFF bl sprintf 1594 .LVL163: 519:Src/File_Handling.c **** free(buf); 1595 .loc 1 519 3 view .LVU432 520:Src/File_Handling.c **** return fresult; 1596 .loc 1 520 3 view .LVU433 1597 004a 2846 mov r0, r5 1598 004c FFF7FEFF bl free 1599 .LVL164: 521:Src/File_Handling.c **** } 1600 .loc 1 521 3 view .LVU434 521:Src/File_Handling.c **** } 1601 .loc 1 521 10 is_stmt 0 view .LVU435 1602 0050 084B ldr r3, .L93+4 1603 0052 1878 ldrb r0, [r3] @ zero_extendqisi2 1604 0054 F0E7 b .L88 1605 .LVL165: 1606 .L89: 521:Src/File_Handling.c **** } 1607 .loc 1 521 10 view .LVU436 1608 .LBE26: 1609 .LBB27: 537:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in removing *%s*\n\n",fresult, name); 1610 .loc 1 537 4 is_stmt 1 view .LVU437 537:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in removing *%s*\n\n",fresult, name); 1611 .loc 1 537 16 is_stmt 0 view .LVU438 1612 0056 6420 movs r0, #100 1613 0058 FFF7FEFF bl malloc 1614 .LVL166: 1615 005c 0646 mov r6, r0 1616 .LVL167: 538:Src/File_Handling.c **** Send_Uart (buf); 1617 .loc 1 538 4 is_stmt 1 view .LVU439 1618 005e 2346 mov r3, r4 1619 0060 2A46 mov r2, r5 1620 0062 0749 ldr r1, .L93+16 1621 0064 FFF7FEFF bl sprintf 1622 .LVL168: 539:Src/File_Handling.c **** free(buf); 1623 .loc 1 539 4 view .LVU440 540:Src/File_Handling.c **** } 1624 .loc 1 540 4 view .LVU441 1625 0068 3046 mov r0, r6 1626 006a FFF7FEFF bl free 1627 .LVL169: 1628 006e E1E7 b .L90 1629 .L94: 1630 .align 2 1631 .L93: 1632 0070 00000000 .word fno ARM GAS /tmp/cccCjqCZ.s page 44 1633 0074 00000000 .word fresult 1634 0078 20000000 .word .LC12 1635 007c 00000000 .word .LC11 1636 0080 44000000 .word .LC13 1637 .LBE27: 1638 .cfi_endproc 1639 .LFE1197: 1641 .section .rodata.Create_Dir.str1.4,"aMS",%progbits,1 1642 .align 2 1643 .LC14: 1644 0000 2A25732A .ascii "*%s* has been created successfully\012\000" 1644 20686173 1644 20626565 1644 6E206372 1644 65617465 1645 .align 2 1646 .LC15: 1647 0024 4552524F .ascii "ERROR No. %d in creating directory *%s*\012\012\000" 1647 52204E6F 1647 2E202564 1647 20696E20 1647 63726561 1648 .section .text.Create_Dir,"ax",%progbits 1649 .align 1 1650 .global Create_Dir 1651 .syntax unified 1652 .thumb 1653 .thumb_func 1655 Create_Dir: 1656 .LVL170: 1657 .LFB1198: 545:Src/File_Handling.c **** 546:Src/File_Handling.c **** FRESULT Create_Dir (char *name) 547:Src/File_Handling.c **** { 1658 .loc 1 547 1 view -0 1659 .cfi_startproc 1660 @ args = 0, pretend = 0, frame = 0 1661 @ frame_needed = 0, uses_anonymous_args = 0 1662 .loc 1 547 1 is_stmt 0 view .LVU443 1663 0000 70B5 push {r4, r5, r6, lr} 1664 .LCFI15: 1665 .cfi_def_cfa_offset 16 1666 .cfi_offset 4, -16 1667 .cfi_offset 5, -12 1668 .cfi_offset 6, -8 1669 .cfi_offset 14, -4 1670 0002 0546 mov r5, r0 548:Src/File_Handling.c **** fresult = f_mkdir(name); 1671 .loc 1 548 5 is_stmt 1 view .LVU444 1672 .loc 1 548 15 is_stmt 0 view .LVU445 1673 0004 FFF7FEFF bl f_mkdir 1674 .LVL171: 1675 .loc 1 548 13 discriminator 1 view .LVU446 1676 0008 0F4B ldr r3, .L99 1677 000a 1870 strb r0, [r3] 549:Src/File_Handling.c **** if (fresult == FR_OK) 1678 .loc 1 549 5 is_stmt 1 view .LVU447 ARM GAS /tmp/cccCjqCZ.s page 45 1679 .loc 1 549 8 is_stmt 0 view .LVU448 1680 000c 68B9 cbnz r0, .L96 1681 .LBB28: 550:Src/File_Handling.c **** { 551:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1682 .loc 1 551 6 is_stmt 1 view .LVU449 1683 .loc 1 551 18 is_stmt 0 view .LVU450 1684 000e 6420 movs r0, #100 1685 0010 FFF7FEFF bl malloc 1686 .LVL172: 1687 0014 0446 mov r4, r0 1688 .LVL173: 552:Src/File_Handling.c **** sprintf (buf, "*%s* has been created successfully\n", name); 1689 .loc 1 552 6 is_stmt 1 view .LVU451 1690 0016 2A46 mov r2, r5 1691 0018 0C49 ldr r1, .L99+4 1692 001a FFF7FEFF bl sprintf 1693 .LVL174: 553:Src/File_Handling.c **** Send_Uart (buf); 1694 .loc 1 553 6 view .LVU452 554:Src/File_Handling.c **** free(buf); 1695 .loc 1 554 6 view .LVU453 1696 001e 2046 mov r0, r4 1697 0020 FFF7FEFF bl free 1698 .LVL175: 1699 .L97: 1700 .loc 1 554 6 is_stmt 0 view .LVU454 1701 .LBE28: 555:Src/File_Handling.c **** } 556:Src/File_Handling.c **** else 557:Src/File_Handling.c **** { 558:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 559:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in creating directory *%s*\n\n", fresult,name); 560:Src/File_Handling.c **** Send_Uart(buf); 561:Src/File_Handling.c **** free(buf); 562:Src/File_Handling.c **** } 563:Src/File_Handling.c **** return fresult; 1702 .loc 1 563 5 is_stmt 1 view .LVU455 564:Src/File_Handling.c **** } 1703 .loc 1 564 1 is_stmt 0 view .LVU456 1704 0024 084B ldr r3, .L99 1705 0026 1878 ldrb r0, [r3] @ zero_extendqisi2 1706 0028 70BD pop {r4, r5, r6, pc} 1707 .LVL176: 1708 .L96: 1709 .loc 1 564 1 view .LVU457 1710 002a 0446 mov r4, r0 1711 .LBB29: 558:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in creating directory *%s*\n\n", fresult,name); 1712 .loc 1 558 6 is_stmt 1 view .LVU458 558:Src/File_Handling.c **** sprintf (buf, "ERROR No. %d in creating directory *%s*\n\n", fresult,name); 1713 .loc 1 558 18 is_stmt 0 view .LVU459 1714 002c 6420 movs r0, #100 1715 002e FFF7FEFF bl malloc 1716 .LVL177: 1717 0032 0646 mov r6, r0 1718 .LVL178: ARM GAS /tmp/cccCjqCZ.s page 46 559:Src/File_Handling.c **** Send_Uart(buf); 1719 .loc 1 559 6 is_stmt 1 view .LVU460 1720 0034 2B46 mov r3, r5 1721 0036 2246 mov r2, r4 1722 0038 0549 ldr r1, .L99+8 1723 003a FFF7FEFF bl sprintf 1724 .LVL179: 560:Src/File_Handling.c **** free(buf); 1725 .loc 1 560 6 view .LVU461 561:Src/File_Handling.c **** } 1726 .loc 1 561 6 view .LVU462 1727 003e 3046 mov r0, r6 1728 0040 FFF7FEFF bl free 1729 .LVL180: 1730 0044 EEE7 b .L97 1731 .L100: 1732 0046 00BF .align 2 1733 .L99: 1734 0048 00000000 .word fresult 1735 004c 00000000 .word .LC14 1736 0050 24000000 .word .LC15 1737 .LBE29: 1738 .cfi_endproc 1739 .LFE1198: 1741 .section .rodata.Check_SD_Space.str1.4,"aMS",%progbits,1 1742 .align 2 1743 .LC16: 1744 0000 00 .ascii "\000" 1745 0001 000000 .align 2 1746 .LC17: 1747 0004 53442043 .ascii "SD CARD Total Size: \011%lu\012\000" 1747 41524420 1747 546F7461 1747 6C205369 1747 7A653A20 1748 001e 0000 .align 2 1749 .LC18: 1750 0020 53442043 .ascii "SD CARD Free Space: \011%lu\012\000" 1750 41524420 1750 46726565 1750 20537061 1750 63653A20 1751 .section .text.Check_SD_Space,"ax",%progbits 1752 .align 1 1753 .global Check_SD_Space 1754 .syntax unified 1755 .thumb 1756 .thumb_func 1758 Check_SD_Space: 1759 .LFB1199: 565:Src/File_Handling.c **** 566:Src/File_Handling.c **** void Check_SD_Space (void) 567:Src/File_Handling.c **** { 1760 .loc 1 567 1 view -0 1761 .cfi_startproc 1762 @ args = 0, pretend = 0, frame = 0 1763 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cccCjqCZ.s page 47 1764 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1765 .LCFI16: 1766 .cfi_def_cfa_offset 24 1767 .cfi_offset 3, -24 1768 .cfi_offset 4, -20 1769 .cfi_offset 5, -16 1770 .cfi_offset 6, -12 1771 .cfi_offset 7, -8 1772 .cfi_offset 14, -4 1773 0002 2DED028B vpush.64 {d8} 1774 .LCFI17: 1775 .cfi_def_cfa_offset 32 1776 .cfi_offset 80, -32 1777 .cfi_offset 81, -28 568:Src/File_Handling.c **** /* Check free space */ 569:Src/File_Handling.c **** f_getfree("", &fre_clust, &pfs); 1778 .loc 1 569 5 view .LVU464 1779 0006 234D ldr r5, .L103 1780 0008 234F ldr r7, .L103+4 1781 000a 2A46 mov r2, r5 1782 000c 3946 mov r1, r7 1783 000e 2348 ldr r0, .L103+8 1784 0010 FFF7FEFF bl f_getfree 1785 .LVL181: 570:Src/File_Handling.c **** 571:Src/File_Handling.c **** total = (uint32_t)((pfs->n_fatent - 2) * pfs->csize * 0.5); 1786 .loc 1 571 5 view .LVU465 1787 .loc 1 571 28 is_stmt 0 view .LVU466 1788 0014 2A68 ldr r2, [r5] 1789 0016 9369 ldr r3, [r2, #24] 1790 .loc 1 571 39 view .LVU467 1791 0018 023B subs r3, r3, #2 1792 .loc 1 571 49 view .LVU468 1793 001a 5289 ldrh r2, [r2, #10] 1794 .loc 1 571 44 view .LVU469 1795 001c 02FB03F3 mul r3, r2, r3 1796 .loc 1 571 57 view .LVU470 1797 0020 07EE903A vmov s15, r3 @ int 1798 0024 B8EE677B vcvt.f64.u32 d7, s15 1799 0028 B6EE008B vmov.f64 d8, #5.0e-1 1800 002c 27EE087B vmul.f64 d7, d7, d8 1801 .loc 1 571 13 view .LVU471 1802 0030 FCEEC77B vcvt.u32.f64 s15, d7 1803 0034 17EE904A vmov r4, s15 @ int 1804 .loc 1 571 11 view .LVU472 1805 0038 194B ldr r3, .L103+12 1806 003a C3ED007A vstr.32 s15, [r3] @ int 572:Src/File_Handling.c **** char *buf = malloc(30*sizeof(char)); 1807 .loc 1 572 5 is_stmt 1 view .LVU473 1808 .loc 1 572 17 is_stmt 0 view .LVU474 1809 003e 1E20 movs r0, #30 1810 0040 FFF7FEFF bl malloc 1811 .LVL182: 1812 0044 0646 mov r6, r0 1813 .LVL183: 573:Src/File_Handling.c **** sprintf (buf, "SD CARD Total Size: \t%lu\n",total); 1814 .loc 1 573 5 is_stmt 1 view .LVU475 ARM GAS /tmp/cccCjqCZ.s page 48 1815 0046 2246 mov r2, r4 1816 0048 1649 ldr r1, .L103+16 1817 004a FFF7FEFF bl sprintf 1818 .LVL184: 574:Src/File_Handling.c **** Send_Uart(buf); 1819 .loc 1 574 5 view .LVU476 575:Src/File_Handling.c **** free(buf); 1820 .loc 1 575 5 view .LVU477 1821 004e 3046 mov r0, r6 1822 0050 FFF7FEFF bl free 1823 .LVL185: 576:Src/File_Handling.c **** free_space = (uint32_t)(fre_clust * pfs->csize * 0.5); 1824 .loc 1 576 5 view .LVU478 1825 .loc 1 576 44 is_stmt 0 view .LVU479 1826 0054 2B68 ldr r3, [r5] 1827 0056 5B89 ldrh r3, [r3, #10] 1828 .loc 1 576 39 view .LVU480 1829 0058 3A68 ldr r2, [r7] 1830 005a 02FB03F3 mul r3, r2, r3 1831 005e 07EE103A vmov s14, r3 @ int 1832 .loc 1 576 52 view .LVU481 1833 0062 B8EE477B vcvt.f64.u32 d7, s14 1834 0066 27EE087B vmul.f64 d7, d7, d8 1835 .loc 1 576 18 view .LVU482 1836 006a FCEEC77B vcvt.u32.f64 s15, d7 1837 006e 17EE904A vmov r4, s15 @ int 1838 .loc 1 576 16 view .LVU483 1839 0072 0D4B ldr r3, .L103+20 1840 0074 C3ED007A vstr.32 s15, [r3] @ int 577:Src/File_Handling.c **** buf = malloc(30*sizeof(char)); 1841 .loc 1 577 5 is_stmt 1 view .LVU484 1842 .loc 1 577 11 is_stmt 0 view .LVU485 1843 0078 1E20 movs r0, #30 1844 007a FFF7FEFF bl malloc 1845 .LVL186: 1846 007e 0546 mov r5, r0 1847 .LVL187: 578:Src/File_Handling.c **** sprintf (buf, "SD CARD Free Space: \t%lu\n",free_space); 1848 .loc 1 578 5 is_stmt 1 view .LVU486 1849 0080 2246 mov r2, r4 1850 0082 0A49 ldr r1, .L103+24 1851 0084 FFF7FEFF bl sprintf 1852 .LVL188: 579:Src/File_Handling.c **** Send_Uart(buf); 1853 .loc 1 579 5 view .LVU487 580:Src/File_Handling.c **** free(buf); 1854 .loc 1 580 5 view .LVU488 1855 0088 2846 mov r0, r5 1856 008a FFF7FEFF bl free 1857 .LVL189: 581:Src/File_Handling.c **** } 1858 .loc 1 581 1 is_stmt 0 view .LVU489 1859 008e BDEC028B vldm sp!, {d8} 1860 .LCFI18: 1861 .cfi_restore 80 1862 .cfi_restore 81 1863 .cfi_def_cfa_offset 24 ARM GAS /tmp/cccCjqCZ.s page 49 1864 0092 F8BD pop {r3, r4, r5, r6, r7, pc} 1865 .LVL190: 1866 .L104: 1867 .loc 1 581 1 view .LVU490 1868 .align 2 1869 .L103: 1870 0094 00000000 .word pfs 1871 0098 00000000 .word fre_clust 1872 009c 00000000 .word .LC16 1873 00a0 00000000 .word total 1874 00a4 04000000 .word .LC17 1875 00a8 00000000 .word free_space 1876 00ac 20000000 .word .LC18 1877 .cfi_endproc 1878 .LFE1199: 1880 .section .text.Update_File_float,"ax",%progbits 1881 .align 1 1882 .global Update_File_float 1883 .syntax unified 1884 .thumb 1885 .thumb_func 1887 Update_File_float: 1888 .LVL191: 1889 .LFB1200: 582:Src/File_Handling.c **** 583:Src/File_Handling.c **** FRESULT Update_File_float (char *name, float *data, unsigned int bytesize) 584:Src/File_Handling.c **** { 1890 .loc 1 584 1 is_stmt 1 view -0 1891 .cfi_startproc 1892 @ args = 0, pretend = 0, frame = 0 1893 @ frame_needed = 0, uses_anonymous_args = 0 1894 .loc 1 584 1 is_stmt 0 view .LVU492 1895 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1896 .LCFI19: 1897 .cfi_def_cfa_offset 24 1898 .cfi_offset 3, -24 1899 .cfi_offset 4, -20 1900 .cfi_offset 5, -16 1901 .cfi_offset 6, -12 1902 .cfi_offset 7, -8 1903 .cfi_offset 14, -4 1904 0002 0446 mov r4, r0 1905 0004 0D46 mov r5, r1 1906 0006 1646 mov r6, r2 585:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 586:Src/File_Handling.c **** fresult = f_stat (name, &fno); 1907 .loc 1 586 2 is_stmt 1 view .LVU493 1908 .loc 1 586 12 is_stmt 0 view .LVU494 1909 0008 1049 ldr r1, .L110 1910 .LVL192: 1911 .loc 1 586 12 view .LVU495 1912 000a FFF7FEFF bl f_stat 1913 .LVL193: 1914 .loc 1 586 10 discriminator 1 view .LVU496 1915 000e 104B ldr r3, .L110+4 1916 0010 1870 strb r0, [r3] 587:Src/File_Handling.c **** if (fresult != FR_OK) ARM GAS /tmp/cccCjqCZ.s page 50 1917 .loc 1 587 2 is_stmt 1 view .LVU497 1918 .loc 1 587 5 is_stmt 0 view .LVU498 1919 0012 08B1 cbz r0, .L106 1920 .LBB30: 588:Src/File_Handling.c **** { 589:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 1921 .loc 1 589 3 is_stmt 1 view .LVU499 590:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 591:Src/File_Handling.c **** //Send_Uart (buf); 592:Src/File_Handling.c **** free(buf); 1922 .loc 1 592 3 view .LVU500 593:Src/File_Handling.c **** return fresult; 1923 .loc 1 593 6 view .LVU501 1924 .loc 1 593 13 is_stmt 0 view .LVU502 1925 0014 C0B2 uxtb r0, r0 1926 .LVL194: 1927 .L107: 1928 .loc 1 593 13 view .LVU503 1929 .LBE30: 594:Src/File_Handling.c **** } 595:Src/File_Handling.c **** 596:Src/File_Handling.c **** else 597:Src/File_Handling.c **** { 598:Src/File_Handling.c **** /* Create a file with read write access and open it */ 599:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_OPEN_APPEND | FA_WRITE); 600:Src/File_Handling.c **** if (fresult != FR_OK) 601:Src/File_Handling.c **** { 602:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 603:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 604:Src/File_Handling.c **** //Send_Uart(buf); 605:Src/File_Handling.c **** free(buf); 606:Src/File_Handling.c **** return fresult; 607:Src/File_Handling.c **** } 608:Src/File_Handling.c **** 609:Src/File_Handling.c **** /* Writing text */ 610:Src/File_Handling.c **** fresult = f_write(&fil, data, bytesize, &bw); 611:Src/File_Handling.c **** if (fresult != FR_OK) 612:Src/File_Handling.c **** { 613:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 614:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in writing file *%s*\n\n", fresult, name); 615:Src/File_Handling.c **** //Send_Uart(buf); 616:Src/File_Handling.c **** free(buf); 617:Src/File_Handling.c **** } 618:Src/File_Handling.c **** 619:Src/File_Handling.c **** else 620:Src/File_Handling.c **** { 621:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 622:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 623:Src/File_Handling.c **** //Send_Uart(buf); 624:Src/File_Handling.c **** free(buf); 625:Src/File_Handling.c **** } 626:Src/File_Handling.c **** 627:Src/File_Handling.c **** /* Close file */ 628:Src/File_Handling.c **** fresult = f_close(&fil); 629:Src/File_Handling.c **** if (fresult != FR_OK) 630:Src/File_Handling.c **** { 631:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); ARM GAS /tmp/cccCjqCZ.s page 51 632:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 633:Src/File_Handling.c **** //Send_Uart(buf); 634:Src/File_Handling.c **** free(buf); 635:Src/File_Handling.c **** } 636:Src/File_Handling.c **** else 637:Src/File_Handling.c **** { 638:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 639:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 640:Src/File_Handling.c **** //Send_Uart(buf); 641:Src/File_Handling.c **** free(buf); 642:Src/File_Handling.c **** } 643:Src/File_Handling.c **** } 644:Src/File_Handling.c **** return fresult; 645:Src/File_Handling.c **** } 1930 .loc 1 645 1 view .LVU504 1931 0016 F8BD pop {r3, r4, r5, r6, r7, pc} 1932 .LVL195: 1933 .L106: 599:Src/File_Handling.c **** if (fresult != FR_OK) 1934 .loc 1 599 6 is_stmt 1 view .LVU505 599:Src/File_Handling.c **** if (fresult != FR_OK) 1935 .loc 1 599 16 is_stmt 0 view .LVU506 1936 0018 3222 movs r2, #50 1937 001a 2146 mov r1, r4 1938 001c 0D48 ldr r0, .L110+8 1939 001e FFF7FEFF bl f_open 1940 .LVL196: 599:Src/File_Handling.c **** if (fresult != FR_OK) 1941 .loc 1 599 14 discriminator 1 view .LVU507 1942 0022 0B4B ldr r3, .L110+4 1943 0024 1870 strb r0, [r3] 600:Src/File_Handling.c **** { 1944 .loc 1 600 6 is_stmt 1 view .LVU508 600:Src/File_Handling.c **** { 1945 .loc 1 600 9 is_stmt 0 view .LVU509 1946 0026 08B1 cbz r0, .L108 1947 .LBB31: 602:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 1948 .loc 1 602 7 is_stmt 1 view .LVU510 605:Src/File_Handling.c **** return fresult; 1949 .loc 1 605 10 view .LVU511 606:Src/File_Handling.c **** } 1950 .loc 1 606 10 view .LVU512 606:Src/File_Handling.c **** } 1951 .loc 1 606 17 is_stmt 0 view .LVU513 1952 0028 C0B2 uxtb r0, r0 1953 002a F4E7 b .L107 1954 .L108: 1955 .LBE31: 610:Src/File_Handling.c **** if (fresult != FR_OK) 1956 .loc 1 610 6 is_stmt 1 view .LVU514 610:Src/File_Handling.c **** if (fresult != FR_OK) 1957 .loc 1 610 16 is_stmt 0 view .LVU515 1958 002c 094F ldr r7, .L110+8 1959 002e 0A4B ldr r3, .L110+12 1960 0030 3246 mov r2, r6 1961 0032 2946 mov r1, r5 ARM GAS /tmp/cccCjqCZ.s page 52 1962 0034 3846 mov r0, r7 1963 0036 FFF7FEFF bl f_write 1964 .LVL197: 610:Src/File_Handling.c **** if (fresult != FR_OK) 1965 .loc 1 610 14 discriminator 1 view .LVU516 1966 003a 054C ldr r4, .L110+4 1967 .LVL198: 610:Src/File_Handling.c **** if (fresult != FR_OK) 1968 .loc 1 610 14 discriminator 1 view .LVU517 1969 003c 2070 strb r0, [r4] 611:Src/File_Handling.c **** { 1970 .loc 1 611 6 is_stmt 1 view .LVU518 621:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 1971 .loc 1 621 7 view .LVU519 624:Src/File_Handling.c **** } 1972 .loc 1 624 7 view .LVU520 628:Src/File_Handling.c **** if (fresult != FR_OK) 1973 .loc 1 628 6 view .LVU521 628:Src/File_Handling.c **** if (fresult != FR_OK) 1974 .loc 1 628 16 is_stmt 0 view .LVU522 1975 003e 3846 mov r0, r7 1976 0040 FFF7FEFF bl f_close 1977 .LVL199: 628:Src/File_Handling.c **** if (fresult != FR_OK) 1978 .loc 1 628 14 discriminator 1 view .LVU523 1979 0044 2070 strb r0, [r4] 629:Src/File_Handling.c **** { 1980 .loc 1 629 6 is_stmt 1 view .LVU524 638:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 1981 .loc 1 638 7 view .LVU525 641:Src/File_Handling.c **** } 1982 .loc 1 641 7 view .LVU526 644:Src/File_Handling.c **** } 1983 .loc 1 644 5 view .LVU527 644:Src/File_Handling.c **** } 1984 .loc 1 644 12 is_stmt 0 view .LVU528 1985 0046 C0B2 uxtb r0, r0 1986 0048 E5E7 b .L107 1987 .L111: 1988 004a 00BF .align 2 1989 .L110: 1990 004c 00000000 .word fno 1991 0050 00000000 .word fresult 1992 0054 00000000 .word fil 1993 0058 00000000 .word bw 1994 .cfi_endproc 1995 .LFE1200: 1997 .section .text.Update_File_byte,"ax",%progbits 1998 .align 1 1999 .global Update_File_byte 2000 .syntax unified 2001 .thumb 2002 .thumb_func 2004 Update_File_byte: 2005 .LVL200: 2006 .LFB1201: 646:Src/File_Handling.c **** ARM GAS /tmp/cccCjqCZ.s page 53 647:Src/File_Handling.c **** FRESULT Update_File_byte (char *name, uint8_t *data, unsigned int bytesize) 648:Src/File_Handling.c **** { 2007 .loc 1 648 1 is_stmt 1 view -0 2008 .cfi_startproc 2009 @ args = 0, pretend = 0, frame = 0 2010 @ frame_needed = 0, uses_anonymous_args = 0 2011 .loc 1 648 1 is_stmt 0 view .LVU530 2012 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 2013 .LCFI20: 2014 .cfi_def_cfa_offset 24 2015 .cfi_offset 3, -24 2016 .cfi_offset 4, -20 2017 .cfi_offset 5, -16 2018 .cfi_offset 6, -12 2019 .cfi_offset 7, -8 2020 .cfi_offset 14, -4 2021 0002 0446 mov r4, r0 2022 0004 0D46 mov r5, r1 2023 0006 1646 mov r6, r2 649:Src/File_Handling.c **** /**** check whether the file exists or not ****/ 650:Src/File_Handling.c **** fresult = f_stat (name, &fno); 2024 .loc 1 650 2 is_stmt 1 view .LVU531 2025 .loc 1 650 12 is_stmt 0 view .LVU532 2026 0008 1049 ldr r1, .L117 2027 .LVL201: 2028 .loc 1 650 12 view .LVU533 2029 000a FFF7FEFF bl f_stat 2030 .LVL202: 2031 .loc 1 650 10 discriminator 1 view .LVU534 2032 000e 104B ldr r3, .L117+4 2033 0010 1870 strb r0, [r3] 651:Src/File_Handling.c **** if (fresult != FR_OK) 2034 .loc 1 651 2 is_stmt 1 view .LVU535 2035 .loc 1 651 5 is_stmt 0 view .LVU536 2036 0012 08B1 cbz r0, .L113 2037 .LBB32: 652:Src/File_Handling.c **** { 653:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 2038 .loc 1 653 3 is_stmt 1 view .LVU537 654:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! *%s* does not exists\n\n", name); 655:Src/File_Handling.c **** //Send_Uart (buf); 656:Src/File_Handling.c **** free(buf); 2039 .loc 1 656 3 view .LVU538 657:Src/File_Handling.c **** return fresult; 2040 .loc 1 657 6 view .LVU539 2041 .loc 1 657 13 is_stmt 0 view .LVU540 2042 0014 C0B2 uxtb r0, r0 2043 .LVL203: 2044 .L114: 2045 .loc 1 657 13 view .LVU541 2046 .LBE32: 658:Src/File_Handling.c **** } 659:Src/File_Handling.c **** 660:Src/File_Handling.c **** else 661:Src/File_Handling.c **** { 662:Src/File_Handling.c **** /* Create a file with read write access and open it */ 663:Src/File_Handling.c **** fresult = f_open(&fil, name, FA_OPEN_APPEND | FA_WRITE); ARM GAS /tmp/cccCjqCZ.s page 54 664:Src/File_Handling.c **** if (fresult != FR_OK) 665:Src/File_Handling.c **** { 666:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 667:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 668:Src/File_Handling.c **** //Send_Uart(buf); 669:Src/File_Handling.c **** free(buf); 670:Src/File_Handling.c **** return fresult; 671:Src/File_Handling.c **** } 672:Src/File_Handling.c **** 673:Src/File_Handling.c **** /* Writing text */ 674:Src/File_Handling.c **** fresult = f_write(&fil, data, bytesize, &bw); 675:Src/File_Handling.c **** if (fresult != FR_OK) 676:Src/File_Handling.c **** { 677:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 678:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in writing file *%s*\n\n", fresult, name); 679:Src/File_Handling.c **** //Send_Uart(buf); 680:Src/File_Handling.c **** free(buf); 681:Src/File_Handling.c **** } 682:Src/File_Handling.c **** 683:Src/File_Handling.c **** else 684:Src/File_Handling.c **** { 685:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 686:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 687:Src/File_Handling.c **** //Send_Uart(buf); 688:Src/File_Handling.c **** free(buf); 689:Src/File_Handling.c **** } 690:Src/File_Handling.c **** 691:Src/File_Handling.c **** /* Close file */ 692:Src/File_Handling.c **** fresult = f_close(&fil); 693:Src/File_Handling.c **** if (fresult != FR_OK) 694:Src/File_Handling.c **** { 695:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 696:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in closing file *%s*\n\n", fresult, name); 697:Src/File_Handling.c **** //Send_Uart(buf); 698:Src/File_Handling.c **** free(buf); 699:Src/File_Handling.c **** } 700:Src/File_Handling.c **** else 701:Src/File_Handling.c **** { 702:Src/File_Handling.c **** char *buf = malloc(100*sizeof(char)); 703:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 704:Src/File_Handling.c **** //Send_Uart(buf); 705:Src/File_Handling.c **** free(buf); 706:Src/File_Handling.c **** } 707:Src/File_Handling.c **** } 708:Src/File_Handling.c **** return fresult; 709:Src/File_Handling.c **** } 2047 .loc 1 709 1 view .LVU542 2048 0016 F8BD pop {r3, r4, r5, r6, r7, pc} 2049 .LVL204: 2050 .L113: 663:Src/File_Handling.c **** if (fresult != FR_OK) 2051 .loc 1 663 6 is_stmt 1 view .LVU543 663:Src/File_Handling.c **** if (fresult != FR_OK) 2052 .loc 1 663 16 is_stmt 0 view .LVU544 2053 0018 3222 movs r2, #50 2054 001a 2146 mov r1, r4 2055 001c 0D48 ldr r0, .L117+8 ARM GAS /tmp/cccCjqCZ.s page 55 2056 001e FFF7FEFF bl f_open 2057 .LVL205: 663:Src/File_Handling.c **** if (fresult != FR_OK) 2058 .loc 1 663 14 discriminator 1 view .LVU545 2059 0022 0B4B ldr r3, .L117+4 2060 0024 1870 strb r0, [r3] 664:Src/File_Handling.c **** { 2061 .loc 1 664 6 is_stmt 1 view .LVU546 664:Src/File_Handling.c **** { 2062 .loc 1 664 9 is_stmt 0 view .LVU547 2063 0026 08B1 cbz r0, .L115 2064 .LBB33: 666:Src/File_Handling.c **** //sprintf (buf, "ERROR!!! No. %d in opening file *%s*\n\n", fresult, name); 2065 .loc 1 666 7 is_stmt 1 view .LVU548 669:Src/File_Handling.c **** return fresult; 2066 .loc 1 669 10 view .LVU549 670:Src/File_Handling.c **** } 2067 .loc 1 670 10 view .LVU550 670:Src/File_Handling.c **** } 2068 .loc 1 670 17 is_stmt 0 view .LVU551 2069 0028 C0B2 uxtb r0, r0 2070 002a F4E7 b .L114 2071 .L115: 2072 .LBE33: 674:Src/File_Handling.c **** if (fresult != FR_OK) 2073 .loc 1 674 6 is_stmt 1 view .LVU552 674:Src/File_Handling.c **** if (fresult != FR_OK) 2074 .loc 1 674 16 is_stmt 0 view .LVU553 2075 002c 094F ldr r7, .L117+8 2076 002e 0A4B ldr r3, .L117+12 2077 0030 3246 mov r2, r6 2078 0032 2946 mov r1, r5 2079 0034 3846 mov r0, r7 2080 0036 FFF7FEFF bl f_write 2081 .LVL206: 674:Src/File_Handling.c **** if (fresult != FR_OK) 2082 .loc 1 674 14 discriminator 1 view .LVU554 2083 003a 054C ldr r4, .L117+4 2084 .LVL207: 674:Src/File_Handling.c **** if (fresult != FR_OK) 2085 .loc 1 674 14 discriminator 1 view .LVU555 2086 003c 2070 strb r0, [r4] 675:Src/File_Handling.c **** { 2087 .loc 1 675 6 is_stmt 1 view .LVU556 685:Src/File_Handling.c **** //sprintf (buf, "*%s* UPDATED successfully\n", name); 2088 .loc 1 685 7 view .LVU557 688:Src/File_Handling.c **** } 2089 .loc 1 688 7 view .LVU558 692:Src/File_Handling.c **** if (fresult != FR_OK) 2090 .loc 1 692 6 view .LVU559 692:Src/File_Handling.c **** if (fresult != FR_OK) 2091 .loc 1 692 16 is_stmt 0 view .LVU560 2092 003e 3846 mov r0, r7 2093 0040 FFF7FEFF bl f_close 2094 .LVL208: 692:Src/File_Handling.c **** if (fresult != FR_OK) 2095 .loc 1 692 14 discriminator 1 view .LVU561 ARM GAS /tmp/cccCjqCZ.s page 56 2096 0044 2070 strb r0, [r4] 693:Src/File_Handling.c **** { 2097 .loc 1 693 6 is_stmt 1 view .LVU562 702:Src/File_Handling.c **** //sprintf (buf, "File *%s* CLOSED successfully\n", name); 2098 .loc 1 702 7 view .LVU563 705:Src/File_Handling.c **** } 2099 .loc 1 705 7 view .LVU564 708:Src/File_Handling.c **** } 2100 .loc 1 708 5 view .LVU565 708:Src/File_Handling.c **** } 2101 .loc 1 708 12 is_stmt 0 view .LVU566 2102 0046 C0B2 uxtb r0, r0 2103 0048 E5E7 b .L114 2104 .L118: 2105 004a 00BF .align 2 2106 .L117: 2107 004c 00000000 .word fno 2108 0050 00000000 .word fresult 2109 0054 00000000 .word fil 2110 0058 00000000 .word bw 2111 .cfi_endproc 2112 .LFE1201: 2114 .global free_space 2115 .section .bss.free_space,"aw",%nobits 2116 .align 2 2119 free_space: 2120 0000 00000000 .space 4 2121 .global total 2122 .section .bss.total,"aw",%nobits 2123 .align 2 2126 total: 2127 0000 00000000 .space 4 2128 .global fre_clust 2129 .section .bss.fre_clust,"aw",%nobits 2130 .align 2 2133 fre_clust: 2134 0000 00000000 .space 4 2135 .global pfs 2136 .section .bss.pfs,"aw",%nobits 2137 .align 2 2140 pfs: 2141 0000 00000000 .space 4 2142 .global bw 2143 .section .bss.bw,"aw",%nobits 2144 .align 2 2147 bw: 2148 0000 00000000 .space 4 2149 .global br 2150 .section .bss.br,"aw",%nobits 2151 .align 2 2154 br: 2155 0000 00000000 .space 4 2156 .global fno 2157 .section .bss.fno,"aw",%nobits 2158 .align 2 2161 fno: 2162 0000 00000000 .space 24 ARM GAS /tmp/cccCjqCZ.s page 57 2162 00000000 2162 00000000 2162 00000000 2162 00000000 2163 .global fil 2164 .section .bss.fil,"aw",%nobits 2165 .align 2 2168 fil: 2169 0000 00000000 .space 4144 2169 00000000 2169 00000000 2169 00000000 2169 00000000 2170 .global fs 2171 .section .bss.fs,"aw",%nobits 2172 .align 2 2175 fs: 2176 0000 00000000 .space 4148 2176 00000000 2176 00000000 2176 00000000 2176 00000000 2177 .text 2178 .Letext0: 2179 .file 2 "Middlewares/Third_Party/FatFs/src/integer.h" 2180 .file 3 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h" 2181 .file 4 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stddef.h" 2182 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_dma.h" 2183 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_tim.h" 2184 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_rcc.h" 2185 .file 8 "Middlewares/Third_Party/FatFs/src/ff.h" 2186 .file 9 "/usr/include/newlib/string.h" 2187 .file 10 "/usr/include/newlib/stdio.h" 2188 .file 11 "/usr/include/newlib/stdlib.h" 2189 .file 12 "" ARM GAS /tmp/cccCjqCZ.s page 58 DEFINED SYMBOLS *ABS*:00000000 File_Handling.c /tmp/cccCjqCZ.s:20 .text.Send_Uart:00000000 $t /tmp/cccCjqCZ.s:26 .text.Send_Uart:00000000 Send_Uart /tmp/cccCjqCZ.s:40 .text.Mount_SD:00000000 $t /tmp/cccCjqCZ.s:46 .text.Mount_SD:00000000 Mount_SD /tmp/cccCjqCZ.s:86 .text.Mount_SD:0000001c $d /tmp/cccCjqCZ.s:2175 .bss.fs:00000000 fs /tmp/cccCjqCZ.s:92 .text.Unmount_SD:00000000 $t /tmp/cccCjqCZ.s:98 .text.Unmount_SD:00000000 Unmount_SD /tmp/cccCjqCZ.s:138 .text.Unmount_SD:0000001c $d /tmp/cccCjqCZ.s:143 .rodata.Scan_SD.str1.4:00000000 $d /tmp/cccCjqCZ.s:156 .text.Scan_SD:00000000 $t /tmp/cccCjqCZ.s:162 .text.Scan_SD:00000000 Scan_SD /tmp/cccCjqCZ.s:344 .text.Scan_SD:000000b8 $d /tmp/cccCjqCZ.s:2161 .bss.fno:00000000 fno /tmp/cccCjqCZ.s:355 .rodata.Format_SD.str1.4:00000000 $d /tmp/cccCjqCZ.s:359 .text.Format_SD:00000000 $t /tmp/cccCjqCZ.s:365 .text.Format_SD:00000000 Format_SD /tmp/cccCjqCZ.s:485 .text.Format_SD:00000078 $d /tmp/cccCjqCZ.s:494 .text.Write_File:00000000 $t /tmp/cccCjqCZ.s:500 .text.Write_File:00000000 Write_File /tmp/cccCjqCZ.s:604 .text.Write_File:00000050 $d /tmp/cccCjqCZ.s:2168 .bss.fil:00000000 fil /tmp/cccCjqCZ.s:2147 .bss.bw:00000000 bw /tmp/cccCjqCZ.s:612 .text.Write_File_byte:00000000 $t /tmp/cccCjqCZ.s:618 .text.Write_File_byte:00000000 Write_File_byte /tmp/cccCjqCZ.s:721 .text.Write_File_byte:0000004c $d /tmp/cccCjqCZ.s:729 .rodata.Read_File.str1.4:00000000 $d /tmp/cccCjqCZ.s:745 .text.Read_File:00000000 $t /tmp/cccCjqCZ.s:751 .text.Read_File:00000000 Read_File /tmp/cccCjqCZ.s:976 .text.Read_File:000000e4 $d /tmp/cccCjqCZ.s:2154 .bss.br:00000000 br /tmp/cccCjqCZ.s:991 .rodata.Seek_Read_File.str1.4:00000000 $d /tmp/cccCjqCZ.s:995 .text.Seek_Read_File:00000000 $t /tmp/cccCjqCZ.s:1001 .text.Seek_Read_File:00000000 Seek_Read_File /tmp/cccCjqCZ.s:1271 .text.Seek_Read_File:0000011c $d /tmp/cccCjqCZ.s:1287 .text.Create_File:00000000 $t /tmp/cccCjqCZ.s:1293 .text.Create_File:00000000 Create_File /tmp/cccCjqCZ.s:1372 .text.Create_File:00000038 $d /tmp/cccCjqCZ.s:1379 .text.Update_File:00000000 $t /tmp/cccCjqCZ.s:1385 .text.Update_File:00000000 Update_File /tmp/cccCjqCZ.s:1489 .text.Update_File:00000050 $d /tmp/cccCjqCZ.s:1497 .rodata.Remove_File.str1.4:00000000 $d /tmp/cccCjqCZ.s:1507 .text.Remove_File:00000000 $t /tmp/cccCjqCZ.s:1513 .text.Remove_File:00000000 Remove_File /tmp/cccCjqCZ.s:1632 .text.Remove_File:00000070 $d /tmp/cccCjqCZ.s:1642 .rodata.Create_Dir.str1.4:00000000 $d /tmp/cccCjqCZ.s:1649 .text.Create_Dir:00000000 $t /tmp/cccCjqCZ.s:1655 .text.Create_Dir:00000000 Create_Dir /tmp/cccCjqCZ.s:1734 .text.Create_Dir:00000048 $d /tmp/cccCjqCZ.s:1742 .rodata.Check_SD_Space.str1.4:00000000 $d /tmp/cccCjqCZ.s:1752 .text.Check_SD_Space:00000000 $t /tmp/cccCjqCZ.s:1758 .text.Check_SD_Space:00000000 Check_SD_Space /tmp/cccCjqCZ.s:1870 .text.Check_SD_Space:00000094 $d /tmp/cccCjqCZ.s:2140 .bss.pfs:00000000 pfs /tmp/cccCjqCZ.s:2133 .bss.fre_clust:00000000 fre_clust ARM GAS /tmp/cccCjqCZ.s page 59 /tmp/cccCjqCZ.s:2126 .bss.total:00000000 total /tmp/cccCjqCZ.s:2119 .bss.free_space:00000000 free_space /tmp/cccCjqCZ.s:1881 .text.Update_File_float:00000000 $t /tmp/cccCjqCZ.s:1887 .text.Update_File_float:00000000 Update_File_float /tmp/cccCjqCZ.s:1990 .text.Update_File_float:0000004c $d /tmp/cccCjqCZ.s:1998 .text.Update_File_byte:00000000 $t /tmp/cccCjqCZ.s:2004 .text.Update_File_byte:00000000 Update_File_byte /tmp/cccCjqCZ.s:2107 .text.Update_File_byte:0000004c $d /tmp/cccCjqCZ.s:2116 .bss.free_space:00000000 $d /tmp/cccCjqCZ.s:2123 .bss.total:00000000 $d /tmp/cccCjqCZ.s:2130 .bss.fre_clust:00000000 $d /tmp/cccCjqCZ.s:2137 .bss.pfs:00000000 $d /tmp/cccCjqCZ.s:2144 .bss.bw:00000000 $d /tmp/cccCjqCZ.s:2151 .bss.br:00000000 $d /tmp/cccCjqCZ.s:2158 .bss.fno:00000000 $d /tmp/cccCjqCZ.s:2165 .bss.fil:00000000 $d /tmp/cccCjqCZ.s:2172 .bss.fs:00000000 $d UNDEFINED SYMBOLS f_mount fresult malloc strcpy f_opendir sprintf free f_readdir strcmp strlen f_closedir f_unlink f_stat f_open f_write f_close f_read f_lseek sizeoffile f_mkdir f_getfree