Files
RadioPhotonic_PCB_software/build/ff.lst
2026-02-03 18:57:12 +03:00

22720 lines
1.3 MiB
Raw Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/ccH7dUYB.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 "ff.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .file 1 "Middlewares/Third_Party/FatFs/src/ff.c"
19 .section .text.ld_word,"ax",%progbits
20 .align 1
21 .syntax unified
22 .thumb
23 .thumb_func
25 ld_word:
26 .LVL0:
27 .LFB1183:
1:Middlewares/Third_Party/FatFs/src/ff.c **** /*----------------------------------------------------------------------------/
2:Middlewares/Third_Party/FatFs/src/ff.c **** / FatFs - Generic FAT file system module R0.12c /
3:Middlewares/Third_Party/FatFs/src/ff.c **** /-----------------------------------------------------------------------------/
4:Middlewares/Third_Party/FatFs/src/ff.c **** /
5:Middlewares/Third_Party/FatFs/src/ff.c **** / Copyright (C) 2017, ChaN, all right reserved.
6:Middlewares/Third_Party/FatFs/src/ff.c **** /
7:Middlewares/Third_Party/FatFs/src/ff.c **** / FatFs module is an open source software. Redistribution and use of FatFs in
8:Middlewares/Third_Party/FatFs/src/ff.c **** / source and binary forms, with or without modification, are permitted provided
9:Middlewares/Third_Party/FatFs/src/ff.c **** / that the following condition is met:
10:Middlewares/Third_Party/FatFs/src/ff.c **** /
11:Middlewares/Third_Party/FatFs/src/ff.c **** / 1. Redistributions of source code must retain the above copyright notice,
12:Middlewares/Third_Party/FatFs/src/ff.c **** / this condition and the following disclaimer.
13:Middlewares/Third_Party/FatFs/src/ff.c **** /
14:Middlewares/Third_Party/FatFs/src/ff.c **** / This software is provided by the copyright holder and contributors "AS IS"
15:Middlewares/Third_Party/FatFs/src/ff.c **** / and any warranties related to this software are DISCLAIMED.
16:Middlewares/Third_Party/FatFs/src/ff.c **** / The copyright owner or contributors be NOT LIABLE for any damages caused
17:Middlewares/Third_Party/FatFs/src/ff.c **** / by use of this software.
18:Middlewares/Third_Party/FatFs/src/ff.c **** /----------------------------------------------------------------------------*/
19:Middlewares/Third_Party/FatFs/src/ff.c ****
20:Middlewares/Third_Party/FatFs/src/ff.c ****
21:Middlewares/Third_Party/FatFs/src/ff.c **** #include "ff.h" /* Declarations of FatFs API */
22:Middlewares/Third_Party/FatFs/src/ff.c **** #include "diskio.h" /* Declarations of device I/O functions */
23:Middlewares/Third_Party/FatFs/src/ff.c ****
24:Middlewares/Third_Party/FatFs/src/ff.c ****
25:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------------------------------------------
26:Middlewares/Third_Party/FatFs/src/ff.c ****
27:Middlewares/Third_Party/FatFs/src/ff.c **** Module Private Definitions
28:Middlewares/Third_Party/FatFs/src/ff.c ****
29:Middlewares/Third_Party/FatFs/src/ff.c **** ---------------------------------------------------------------------------*/
30:Middlewares/Third_Party/FatFs/src/ff.c ****
31:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FATFS != 68300 /* Revision ID */
ARM GAS /tmp/ccH7dUYB.s page 2
32:Middlewares/Third_Party/FatFs/src/ff.c **** #error Wrong include file (ff.h).
33:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
34:Middlewares/Third_Party/FatFs/src/ff.c ****
35:Middlewares/Third_Party/FatFs/src/ff.c ****
36:Middlewares/Third_Party/FatFs/src/ff.c **** /* DBCS code ranges and SBCS upper conversion tables */
37:Middlewares/Third_Party/FatFs/src/ff.c ****
38:Middlewares/Third_Party/FatFs/src/ff.c **** #if _CODE_PAGE == 932 /* Japanese Shift-JIS */
39:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0x81 /* DBC 1st byte range 1 start */
40:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1E 0x9F /* DBC 1st byte range 1 end */
41:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF2S 0xE0 /* DBC 1st byte range 2 start */
42:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF2E 0xFC /* DBC 1st byte range 2 end */
43:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1S 0x40 /* DBC 2nd byte range 1 start */
44:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1E 0x7E /* DBC 2nd byte range 1 end */
45:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2S 0x80 /* DBC 2nd byte range 2 start */
46:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2E 0xFC /* DBC 2nd byte range 2 end */
47:Middlewares/Third_Party/FatFs/src/ff.c ****
48:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 936 /* Simplified Chinese GBK */
49:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0x81
50:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1E 0xFE
51:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1S 0x40
52:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1E 0x7E
53:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2S 0x80
54:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2E 0xFE
55:Middlewares/Third_Party/FatFs/src/ff.c ****
56:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 949 /* Korean */
57:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0x81
58:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1E 0xFE
59:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1S 0x41
60:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1E 0x5A
61:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2S 0x61
62:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2E 0x7A
63:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS3S 0x81
64:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS3E 0xFE
65:Middlewares/Third_Party/FatFs/src/ff.c ****
66:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */
67:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0x81
68:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1E 0xFE
69:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1S 0x40
70:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS1E 0x7E
71:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2S 0xA1
72:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DS2E 0xFE
73:Middlewares/Third_Party/FatFs/src/ff.c ****
74:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 437 /* U.S. */
75:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
76:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \
77:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
78:Middlewares/Third_Party/FatFs/src/ff.c **** 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
79:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
80:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
81:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
82:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
83:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
84:Middlewares/Third_Party/FatFs/src/ff.c ****
85:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 720 /* Arabic */
86:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
87:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
88:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
ARM GAS /tmp/ccH7dUYB.s page 3
89:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
90:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
91:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
92:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
93:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
94:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
95:Middlewares/Third_Party/FatFs/src/ff.c ****
96:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 737 /* Greek */
97:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
98:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
99:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \
100:Middlewares/Third_Party/FatFs/src/ff.c **** 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96, \
101:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
102:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
103:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
104:Middlewares/Third_Party/FatFs/src/ff.c **** 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xEF,0xF5,0xF0,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
105:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
106:Middlewares/Third_Party/FatFs/src/ff.c ****
107:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 771 /* KBL */
108:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
109:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
110:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
111:Middlewares/Third_Party/FatFs/src/ff.c **** 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
112:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
113:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
114:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDC,0xDE,0xDE, \
115:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
116:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF}
117:Middlewares/Third_Party/FatFs/src/ff.c ****
118:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 775 /* Baltic */
119:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
120:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F, \
121:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
122:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
123:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
124:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
125:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
126:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF, \
127:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
128:Middlewares/Third_Party/FatFs/src/ff.c ****
129:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 850 /* Latin 1 */
130:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
131:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x49,0x49,0x49,0x41,0x41, \
132:Middlewares/Third_Party/FatFs/src/ff.c **** 0x45,0x92,0x92,0x4F,0x4F,0x4F,0x55,0x55,0x59,0x4F,0x55,0x4F,0x9C,0x4F,0x9E,0x9F, \
133:Middlewares/Third_Party/FatFs/src/ff.c **** 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
134:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x41,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
135:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
136:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD1,0xD1,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0xD9,0xDA,0xDB,0xDC,0xDD,0x49,0xDF, \
137:Middlewares/Third_Party/FatFs/src/ff.c **** 0x4F,0xE1,0x4F,0x4F,0x4F,0x4F,0xE6,0xE8,0xE8,0x55,0x55,0x55,0x59,0x59,0xEE,0xEF, \
138:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
139:Middlewares/Third_Party/FatFs/src/ff.c ****
140:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 852 /* Latin 2 */
141:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
142:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, \
143:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, \
144:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF, \
145:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \
ARM GAS /tmp/ccH7dUYB.s page 4
146:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
147:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
148:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, \
149:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF}
150:Middlewares/Third_Party/FatFs/src/ff.c ****
151:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 855 /* Cyrillic */
152:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
153:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F, \
154:Middlewares/Third_Party/FatFs/src/ff.c **** 0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \
155:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF, \
156:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \
157:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
158:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \
159:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF, \
160:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF}
161:Middlewares/Third_Party/FatFs/src/ff.c ****
162:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 857 /* Turkish */
163:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
164:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x49,0x8E,0x8F, \
165:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \
166:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
167:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
168:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
169:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0x49,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
170:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0xED,0xEE,0xEF, \
171:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
172:Middlewares/Third_Party/FatFs/src/ff.c ****
173:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 860 /* Portuguese */
174:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
175:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x90,0x8F,0x8E,0x91,0x86,0x80,0x89,0x89,0x92,0x8B,0x8C,0x98,0x8E,0x8F, \
176:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x8C,0x99,0xA9,0x96,0x9D,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
177:Middlewares/Third_Party/FatFs/src/ff.c **** 0x86,0x8B,0x9F,0x96,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
178:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
179:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
180:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
181:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
182:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
183:Middlewares/Third_Party/FatFs/src/ff.c ****
184:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 861 /* Icelandic */
185:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
186:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x8B,0x8B,0x8D,0x8E,0x8F, \
187:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0x4F,0x99,0x8D,0x55,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
188:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA4,0xA5,0xA6,0xA7,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
189:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
190:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
191:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
192:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
193:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
194:Middlewares/Third_Party/FatFs/src/ff.c ****
195:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 862 /* Hebrew */
196:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
197:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
198:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
199:Middlewares/Third_Party/FatFs/src/ff.c **** 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
200:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
201:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
202:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
ARM GAS /tmp/ccH7dUYB.s page 5
203:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
204:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
205:Middlewares/Third_Party/FatFs/src/ff.c ****
206:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 863 /* Canadian-French */
207:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
208:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x41,0x8F, \
209:Middlewares/Third_Party/FatFs/src/ff.c **** 0x45,0x45,0x45,0x4F,0x45,0x49,0x55,0x55,0x98,0x4F,0x55,0x9B,0x9C,0x55,0x55,0x9F, \
210:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA0,0xA1,0x4F,0x55,0xA4,0xA5,0xA6,0xA7,0x49,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
211:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
212:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
213:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
214:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
215:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
216:Middlewares/Third_Party/FatFs/src/ff.c ****
217:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 864 /* Arabic */
218:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
219:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \
220:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
221:Middlewares/Third_Party/FatFs/src/ff.c **** 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
222:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
223:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
224:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
225:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
226:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
227:Middlewares/Third_Party/FatFs/src/ff.c ****
228:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 865 /* Nordic */
229:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
230:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \
231:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
232:Middlewares/Third_Party/FatFs/src/ff.c **** 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
233:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
234:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
235:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
236:Middlewares/Third_Party/FatFs/src/ff.c **** 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \
237:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
238:Middlewares/Third_Party/FatFs/src/ff.c ****
239:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 866 /* Russian */
240:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
241:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
242:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
243:Middlewares/Third_Party/FatFs/src/ff.c **** 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
244:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
245:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
246:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
247:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
248:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
249:Middlewares/Third_Party/FatFs/src/ff.c ****
250:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 869 /* Greek 2 */
251:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
252:Middlewares/Third_Party/FatFs/src/ff.c **** #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \
253:Middlewares/Third_Party/FatFs/src/ff.c **** 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x86,0x9C,0x8D,0x8F,0x90, \
254:Middlewares/Third_Party/FatFs/src/ff.c **** 0x91,0x90,0x92,0x95,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \
255:Middlewares/Third_Party/FatFs/src/ff.c **** 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
256:Middlewares/Third_Party/FatFs/src/ff.c **** 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \
257:Middlewares/Third_Party/FatFs/src/ff.c **** 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xA4,0xA5,0xA6,0xD9,0xDA,0xDB,0xDC,0xA7,0xA8,0xDF, \
258:Middlewares/Third_Party/FatFs/src/ff.c **** 0xA9,0xAA,0xAC,0xAD,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xCF,0xCF,0xD0,0xEF, \
259:Middlewares/Third_Party/FatFs/src/ff.c **** 0xF0,0xF1,0xD1,0xD2,0xD3,0xF5,0xD4,0xF7,0xF8,0xF9,0xD5,0x96,0x95,0x98,0xFE,0xFF}
ARM GAS /tmp/ccH7dUYB.s page 6
260:Middlewares/Third_Party/FatFs/src/ff.c ****
261:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _CODE_PAGE == 1 /* ASCII (for only non-LFN cfg) */
262:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
263:Middlewares/Third_Party/FatFs/src/ff.c **** #error Cannot enable LFN without valid code page.
264:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
265:Middlewares/Third_Party/FatFs/src/ff.c **** #define _DF1S 0
266:Middlewares/Third_Party/FatFs/src/ff.c ****
267:Middlewares/Third_Party/FatFs/src/ff.c **** #else
268:Middlewares/Third_Party/FatFs/src/ff.c **** #error Unknown code page
269:Middlewares/Third_Party/FatFs/src/ff.c ****
270:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
271:Middlewares/Third_Party/FatFs/src/ff.c ****
272:Middlewares/Third_Party/FatFs/src/ff.c ****
273:Middlewares/Third_Party/FatFs/src/ff.c **** /* Character code support macros */
274:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsUpper(c) (((c)>='A')&&((c)<='Z'))
275:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsLower(c) (((c)>='a')&&((c)<='z'))
276:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDigit(c) (((c)>='0')&&((c)<='9'))
277:Middlewares/Third_Party/FatFs/src/ff.c ****
278:Middlewares/Third_Party/FatFs/src/ff.c **** #if _DF1S != 0 /* Code page is DBCS */
279:Middlewares/Third_Party/FatFs/src/ff.c ****
280:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _DF2S /* Two 1st byte areas */
281:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS1(c) (((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) || ((BYTE)(c) >= _DF2S && (BYTE)(c)
282:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* One 1st byte area */
283:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS1(c) ((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E)
284:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
285:Middlewares/Third_Party/FatFs/src/ff.c ****
286:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _DS3S /* Three 2nd byte areas */
287:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c)
288:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Two 2nd byte areas */
289:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c)
290:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
291:Middlewares/Third_Party/FatFs/src/ff.c ****
292:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Code page is SBCS */
293:Middlewares/Third_Party/FatFs/src/ff.c ****
294:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS1(c) 0
295:Middlewares/Third_Party/FatFs/src/ff.c **** #define IsDBCS2(c) 0
296:Middlewares/Third_Party/FatFs/src/ff.c ****
297:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _DF1S */
298:Middlewares/Third_Party/FatFs/src/ff.c ****
299:Middlewares/Third_Party/FatFs/src/ff.c ****
300:Middlewares/Third_Party/FatFs/src/ff.c **** /* Additional file attribute bits for internal use */
301:Middlewares/Third_Party/FatFs/src/ff.c **** #define AM_VOL 0x08 /* Volume label */
302:Middlewares/Third_Party/FatFs/src/ff.c **** #define AM_LFN 0x0F /* LFN entry */
303:Middlewares/Third_Party/FatFs/src/ff.c **** #define AM_MASK 0x3F /* Mask of defined bits */
304:Middlewares/Third_Party/FatFs/src/ff.c ****
305:Middlewares/Third_Party/FatFs/src/ff.c ****
306:Middlewares/Third_Party/FatFs/src/ff.c **** /* Additional file access control and file status flags for internal use */
307:Middlewares/Third_Party/FatFs/src/ff.c **** #define FA_SEEKEND 0x20 /* Seek to end of the file on file open */
308:Middlewares/Third_Party/FatFs/src/ff.c **** #define FA_MODIFIED 0x40 /* File has been modified */
309:Middlewares/Third_Party/FatFs/src/ff.c **** #define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */
310:Middlewares/Third_Party/FatFs/src/ff.c ****
311:Middlewares/Third_Party/FatFs/src/ff.c ****
312:Middlewares/Third_Party/FatFs/src/ff.c **** /* Name status flags in fn[] */
313:Middlewares/Third_Party/FatFs/src/ff.c **** #define NSFLAG 11 /* Index of the name status byte */
314:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_LOSS 0x01 /* Out of 8.3 format */
315:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_LFN 0x02 /* Force to create LFN entry */
316:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_LAST 0x04 /* Last segment */
ARM GAS /tmp/ccH7dUYB.s page 7
317:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_BODY 0x08 /* Lower case flag (body) */
318:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_EXT 0x10 /* Lower case flag (ext) */
319:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_DOT 0x20 /* Dot entry */
320:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_NOLFN 0x40 /* Do not find LFN */
321:Middlewares/Third_Party/FatFs/src/ff.c **** #define NS_NONAME 0x80 /* Not followed */
322:Middlewares/Third_Party/FatFs/src/ff.c ****
323:Middlewares/Third_Party/FatFs/src/ff.c ****
324:Middlewares/Third_Party/FatFs/src/ff.c **** /* Limits and boundaries */
325:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_DIR 0x200000 /* Max size of FAT directory */
326:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_DIR_EX 0x10000000 /* Max size of exFAT directory */
327:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but correct for real DOS/Windo
328:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but correct for real DOS/Wind
329:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */
330:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */
331:Middlewares/Third_Party/FatFs/src/ff.c ****
332:Middlewares/Third_Party/FatFs/src/ff.c ****
333:Middlewares/Third_Party/FatFs/src/ff.c **** /* FatFs refers the FAT structure as simple byte array instead of structure member
334:Middlewares/Third_Party/FatFs/src/ff.c **** / because the C structure is not binary compatible between different platforms */
335:Middlewares/Third_Party/FatFs/src/ff.c ****
336:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_JmpBoot 0 /* x86 jump instruction (3-byte) */
337:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_OEMName 3 /* OEM name (8-byte) */
338:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_BytsPerSec 11 /* Sector size [byte] (WORD) */
339:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_SecPerClus 13 /* Cluster size [sector] (BYTE) */
340:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_RsvdSecCnt 14 /* Size of reserved area [sector] (WORD) */
341:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_NumFATs 16 /* Number of FATs (BYTE) */
342:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_RootEntCnt 17 /* Size of root directory area for FAT12/16 [entry] (WORD) */
343:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_TotSec16 19 /* Volume size (16-bit) [sector] (WORD) */
344:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_Media 21 /* Media descriptor byte (BYTE) */
345:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */
346:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_SecPerTrk 24 /* Track size for int13h [sector] (WORD) */
347:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_NumHeads 26 /* Number of heads for int13h (WORD) */
348:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_HiddSec 28 /* Volume offset from top of the drive (DWORD) */
349:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_TotSec32 32 /* Volume size (32-bit) [sector] (DWORD) */
350:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_DrvNum 36 /* Physical drive number for int13h (BYTE) */
351:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_NTres 37 /* Error flag (BYTE) */
352:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_BootSig 38 /* Extended boot signature (BYTE) */
353:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_VolID 39 /* Volume serial number (DWORD) */
354:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_VolLab 43 /* Volume label string (8-byte) */
355:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_FilSysType 54 /* File system type string (8-byte) */
356:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_BootCode 62 /* Boot code (448-byte) */
357:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_55AA 510 /* Signature word (WORD) */
358:Middlewares/Third_Party/FatFs/src/ff.c ****
359:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FATSz32 36 /* FAT32: FAT size [sector] (DWORD) */
360:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_ExtFlags32 40 /* FAT32: Extended flags (WORD) */
361:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FSVer32 42 /* FAT32: File system version (WORD) */
362:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_RootClus32 44 /* FAT32: Root directory cluster (DWORD) */
363:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FSInfo32 48 /* FAT32: Offset of FSINFO sector (WORD) */
364:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_BkBootSec32 50 /* FAT32: Offset of backup boot sector (WORD) */
365:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_DrvNum32 64 /* FAT32: Physical drive number for int13h (BYTE) */
366:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_NTres32 65 /* FAT32: Error flag (BYTE) */
367:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_BootSig32 66 /* FAT32: Extended boot signature (BYTE) */
368:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_VolID32 67 /* FAT32: Volume serial number (DWORD) */
369:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_VolLab32 71 /* FAT32: Volume label string (8-byte) */
370:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_FilSysType32 82 /* FAT32: File system type string (8-byte) */
371:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_BootCode32 90 /* FAT32: Boot code (420-byte) */
372:Middlewares/Third_Party/FatFs/src/ff.c ****
373:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_ZeroedEx 11 /* exFAT: MBZ field (53-byte) */
ARM GAS /tmp/ccH7dUYB.s page 8
374:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_VolOfsEx 64 /* exFAT: Volume offset from top of the drive [sector] (QWORD) */
375:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_TotSecEx 72 /* exFAT: Volume size [sector] (QWORD) */
376:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FatOfsEx 80 /* exFAT: FAT offset from top of the volume [sector] (DWORD) */
377:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FatSzEx 84 /* exFAT: FAT size [sector] (DWORD) */
378:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_DataOfsEx 88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */
379:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */
380:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_RootClusEx 96 /* exFAT: Root directory start cluster (DWORD) */
381:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */
382:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_FSVerEx 104 /* exFAT: File system version (WORD) */
383:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_VolFlagEx 106 /* exFAT: Volume flags (BYTE) */
384:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_ActFatEx 107 /* exFAT: Active FAT flags (BYTE) */
385:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */
386:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */
387:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */
388:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */
389:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */
390:Middlewares/Third_Party/FatFs/src/ff.c **** #define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */
391:Middlewares/Third_Party/FatFs/src/ff.c **** #define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */
392:Middlewares/Third_Party/FatFs/src/ff.c ****
393:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_Name 0 /* Short file name (11-byte) */
394:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_Attr 11 /* Attribute (BYTE) */
395:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_NTres 12 /* Lower case flag (BYTE) */
396:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */
397:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_CrtTime 14 /* Created time (DWORD) */
398:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_LstAccDate 18 /* Last accessed date (WORD) */
399:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */
400:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_ModTime 22 /* Modified time (DWORD) */
401:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */
402:Middlewares/Third_Party/FatFs/src/ff.c **** #define DIR_FileSize 28 /* File size (DWORD) */
403:Middlewares/Third_Party/FatFs/src/ff.c **** #define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */
404:Middlewares/Third_Party/FatFs/src/ff.c **** #define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */
405:Middlewares/Third_Party/FatFs/src/ff.c **** #define LDIR_Type 12 /* LFN: Entry type (BYTE) */
406:Middlewares/Third_Party/FatFs/src/ff.c **** #define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */
407:Middlewares/Third_Party/FatFs/src/ff.c **** #define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */
408:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */
409:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */
410:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */
411:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */
412:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */
413:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */
414:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_Attr 4 /* exFAT: File attribute (WORD) */
415:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */
416:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */
417:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */
418:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */
419:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */
420:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */
421:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */
422:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */
423:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_GenFlags 33 /* exFAT: General secondary flags (WORD) */
424:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */
425:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */
426:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_ValidFileSize 40 /* exFAT: Valid file size (QWORD) */
427:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */
428:Middlewares/Third_Party/FatFs/src/ff.c **** #define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */
429:Middlewares/Third_Party/FatFs/src/ff.c ****
430:Middlewares/Third_Party/FatFs/src/ff.c **** #define SZDIRE 32 /* Size of a directory entry */
ARM GAS /tmp/ccH7dUYB.s page 9
431:Middlewares/Third_Party/FatFs/src/ff.c **** #define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */
432:Middlewares/Third_Party/FatFs/src/ff.c **** #define RDDEM 0x05 /* Replacement of the character collides with DDEM */
433:Middlewares/Third_Party/FatFs/src/ff.c **** #define LLEF 0x40 /* Last long entry flag in LDIR_Ord */
434:Middlewares/Third_Party/FatFs/src/ff.c ****
435:Middlewares/Third_Party/FatFs/src/ff.c **** #define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */
436:Middlewares/Third_Party/FatFs/src/ff.c **** #define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */
437:Middlewares/Third_Party/FatFs/src/ff.c **** #define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */
438:Middlewares/Third_Party/FatFs/src/ff.c **** #define FSI_Nxt_Free 492 /* FAT32 FSI: Last allocated cluster (DWORD) */
439:Middlewares/Third_Party/FatFs/src/ff.c ****
440:Middlewares/Third_Party/FatFs/src/ff.c **** #define MBR_Table 446 /* MBR: Offset of partition table in the MBR */
441:Middlewares/Third_Party/FatFs/src/ff.c **** #define SZ_PTE 16 /* MBR: Size of a partition table entry */
442:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_Boot 0 /* MBR PTE: Boot indicator */
443:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_StHead 1 /* MBR PTE: Start head */
444:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_StSec 2 /* MBR PTE: Start sector */
445:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_StCyl 3 /* MBR PTE: Start cylinder */
446:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_System 4 /* MBR PTE: System ID */
447:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_EdHead 5 /* MBR PTE: End head */
448:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_EdSec 6 /* MBR PTE: End sector */
449:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_EdCyl 7 /* MBR PTE: End cylinder */
450:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_StLba 8 /* MBR PTE: Start in LBA */
451:Middlewares/Third_Party/FatFs/src/ff.c **** #define PTE_SizLba 12 /* MBR PTE: Size in LBA */
452:Middlewares/Third_Party/FatFs/src/ff.c ****
453:Middlewares/Third_Party/FatFs/src/ff.c ****
454:Middlewares/Third_Party/FatFs/src/ff.c **** /* Post process after fatal error on file operation */
455:Middlewares/Third_Party/FatFs/src/ff.c **** #define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); }
456:Middlewares/Third_Party/FatFs/src/ff.c ****
457:Middlewares/Third_Party/FatFs/src/ff.c ****
458:Middlewares/Third_Party/FatFs/src/ff.c **** /* Reentrancy related */
459:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
460:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1
461:Middlewares/Third_Party/FatFs/src/ff.c **** #error Static LFN work area cannot be used at thread-safe configuration
462:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
463:Middlewares/Third_Party/FatFs/src/ff.c **** #define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; }
464:Middlewares/Third_Party/FatFs/src/ff.c **** #define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; }
465:Middlewares/Third_Party/FatFs/src/ff.c **** #else
466:Middlewares/Third_Party/FatFs/src/ff.c **** #define ENTER_FF(fs)
467:Middlewares/Third_Party/FatFs/src/ff.c **** #define LEAVE_FF(fs, res) return res
468:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
469:Middlewares/Third_Party/FatFs/src/ff.c ****
470:Middlewares/Third_Party/FatFs/src/ff.c ****
471:Middlewares/Third_Party/FatFs/src/ff.c **** /* Definitions of volume - partition conversion */
472:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MULTI_PARTITION
473:Middlewares/Third_Party/FatFs/src/ff.c **** #define LD2PD(vol) VolToPart[vol].pd /* Get physical drive number */
474:Middlewares/Third_Party/FatFs/src/ff.c **** #define LD2PT(vol) VolToPart[vol].pt /* Get partition index */
475:Middlewares/Third_Party/FatFs/src/ff.c **** #else
476:Middlewares/Third_Party/FatFs/src/ff.c **** #define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */
477:Middlewares/Third_Party/FatFs/src/ff.c **** #define LD2PT(vol) 0 /* Find first valid partition or in SFD */
478:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
479:Middlewares/Third_Party/FatFs/src/ff.c ****
480:Middlewares/Third_Party/FatFs/src/ff.c ****
481:Middlewares/Third_Party/FatFs/src/ff.c **** /* Definitions of sector size */
482:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096
483:Middlewares/Third_Party/FatFs/src/ff.c **** #error Wrong sector size configuration
484:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
485:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS == _MIN_SS
486:Middlewares/Third_Party/FatFs/src/ff.c **** #define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */
487:Middlewares/Third_Party/FatFs/src/ff.c **** #else
ARM GAS /tmp/ccH7dUYB.s page 10
488:Middlewares/Third_Party/FatFs/src/ff.c **** #define SS(fs) ((fs)->ssize) /* Variable sector size */
489:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
490:Middlewares/Third_Party/FatFs/src/ff.c ****
491:Middlewares/Third_Party/FatFs/src/ff.c ****
492:Middlewares/Third_Party/FatFs/src/ff.c **** /* Timestamp */
493:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_NORTC == 1
494:Middlewares/Third_Party/FatFs/src/ff.c **** #if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY <
495:Middlewares/Third_Party/FatFs/src/ff.c **** #error Invalid _FS_NORTC settings
496:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
497:Middlewares/Third_Party/FatFs/src/ff.c **** #define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_
498:Middlewares/Third_Party/FatFs/src/ff.c **** #else
499:Middlewares/Third_Party/FatFs/src/ff.c **** #define GET_FATTIME() get_fattime()
500:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
501:Middlewares/Third_Party/FatFs/src/ff.c ****
502:Middlewares/Third_Party/FatFs/src/ff.c ****
503:Middlewares/Third_Party/FatFs/src/ff.c **** /* File lock controls */
504:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
505:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_READONLY
506:Middlewares/Third_Party/FatFs/src/ff.c **** #error _FS_LOCK must be 0 at read-only configuration
507:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
508:Middlewares/Third_Party/FatFs/src/ff.c **** typedef struct {
509:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */
510:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clu; /* Object ID 2, containing directory (0:root) */
511:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs; /* Object ID 3, offset in the directory */
512:Middlewares/Third_Party/FatFs/src/ff.c **** WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */
513:Middlewares/Third_Party/FatFs/src/ff.c **** } FILESEM;
514:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
515:Middlewares/Third_Party/FatFs/src/ff.c ****
516:Middlewares/Third_Party/FatFs/src/ff.c ****
517:Middlewares/Third_Party/FatFs/src/ff.c ****
518:Middlewares/Third_Party/FatFs/src/ff.c ****
519:Middlewares/Third_Party/FatFs/src/ff.c ****
520:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------------------------------------------
521:Middlewares/Third_Party/FatFs/src/ff.c ****
522:Middlewares/Third_Party/FatFs/src/ff.c **** Module Private Work Area
523:Middlewares/Third_Party/FatFs/src/ff.c ****
524:Middlewares/Third_Party/FatFs/src/ff.c **** ---------------------------------------------------------------------------*/
525:Middlewares/Third_Party/FatFs/src/ff.c ****
526:Middlewares/Third_Party/FatFs/src/ff.c **** /* Remark: Variables defined here without initial value shall be guaranteed
527:Middlewares/Third_Party/FatFs/src/ff.c **** / zero/null at start-up. If not, the linker option or start-up routine is
528:Middlewares/Third_Party/FatFs/src/ff.c **** / not compliance with C standard. */
529:Middlewares/Third_Party/FatFs/src/ff.c ****
530:Middlewares/Third_Party/FatFs/src/ff.c **** #if _VOLUMES < 1 || _VOLUMES > 10
531:Middlewares/Third_Party/FatFs/src/ff.c **** #error Wrong _VOLUMES setting
532:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
533:Middlewares/Third_Party/FatFs/src/ff.c **** static FATFS *FatFs[_VOLUMES]; /* Pointer to the file system objects (logical drives) */
534:Middlewares/Third_Party/FatFs/src/ff.c **** static WORD Fsid; /* File system mount ID */
535:Middlewares/Third_Party/FatFs/src/ff.c ****
536:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0 && _VOLUMES >= 2
537:Middlewares/Third_Party/FatFs/src/ff.c **** static BYTE CurrVol; /* Current drive */
538:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
539:Middlewares/Third_Party/FatFs/src/ff.c ****
540:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
541:Middlewares/Third_Party/FatFs/src/ff.c **** static FILESEM Files[_FS_LOCK]; /* Open object lock semaphores */
542:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
543:Middlewares/Third_Party/FatFs/src/ff.c ****
544:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 0 /* Non-LFN configuration */
ARM GAS /tmp/ccH7dUYB.s page 11
545:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF
546:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs)
547:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF()
548:Middlewares/Third_Party/FatFs/src/ff.c ****
549:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* LFN configuration */
550:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_LFN < 12 || _MAX_LFN > 255
551:Middlewares/Third_Party/FatFs/src/ff.c **** #error Wrong _MAX_LFN value
552:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
553:Middlewares/Third_Party/FatFs/src/ff.c **** #define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE)
554:Middlewares/Third_Party/FatFs/src/ff.c ****
555:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1 /* LFN enabled with static working buffer */
556:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
557:Middlewares/Third_Party/FatFs/src/ff.c **** static BYTE DirBuf[MAXDIRB(_MAX_LFN)]; /* Directory entry block scratchpad buffer */
558:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
559:Middlewares/Third_Party/FatFs/src/ff.c **** static WCHAR LfnBuf[_MAX_LFN + 1]; /* LFN enabled with static working buffer */
560:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF
561:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs)
562:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF()
563:Middlewares/Third_Party/FatFs/src/ff.c ****
564:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */
565:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
566:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[MAXDIRB(_MAX_LFN)];
567:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; }
568:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF()
569:Middlewares/Third_Party/FatFs/src/ff.c **** #else
570:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1];
571:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; }
572:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF()
573:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
574:Middlewares/Third_Party/FatFs/src/ff.c ****
575:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */
576:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
577:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF WCHAR *lfn;
578:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + MAXDIRB(_MAX_LFN)); if (!lfn) LEAVE_FF
579:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF() ff_memfree(lfn)
580:Middlewares/Third_Party/FatFs/src/ff.c **** #else
581:Middlewares/Third_Party/FatFs/src/ff.c **** #define DEF_NAMBUF WCHAR *lfn;
582:Middlewares/Third_Party/FatFs/src/ff.c **** #define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_C
583:Middlewares/Third_Party/FatFs/src/ff.c **** #define FREE_NAMBUF() ff_memfree(lfn)
584:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
585:Middlewares/Third_Party/FatFs/src/ff.c ****
586:Middlewares/Third_Party/FatFs/src/ff.c **** #else
587:Middlewares/Third_Party/FatFs/src/ff.c **** #error Wrong _USE_LFN setting
588:Middlewares/Third_Party/FatFs/src/ff.c ****
589:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
590:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* else _USE_LFN == 0 */
591:Middlewares/Third_Party/FatFs/src/ff.c ****
592:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
593:Middlewares/Third_Party/FatFs/src/ff.c **** static const BYTE ExCvt[] = _EXCVT; /* Upper conversion table for SBCS extended characters */
594:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
595:Middlewares/Third_Party/FatFs/src/ff.c ****
596:Middlewares/Third_Party/FatFs/src/ff.c ****
597:Middlewares/Third_Party/FatFs/src/ff.c ****
598:Middlewares/Third_Party/FatFs/src/ff.c ****
599:Middlewares/Third_Party/FatFs/src/ff.c ****
600:Middlewares/Third_Party/FatFs/src/ff.c ****
601:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------------------------------------------
ARM GAS /tmp/ccH7dUYB.s page 12
602:Middlewares/Third_Party/FatFs/src/ff.c ****
603:Middlewares/Third_Party/FatFs/src/ff.c **** Module Private Functions
604:Middlewares/Third_Party/FatFs/src/ff.c ****
605:Middlewares/Third_Party/FatFs/src/ff.c **** ---------------------------------------------------------------------------*/
606:Middlewares/Third_Party/FatFs/src/ff.c ****
607:Middlewares/Third_Party/FatFs/src/ff.c ****
608:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
609:Middlewares/Third_Party/FatFs/src/ff.c **** /* Load/Store multi-byte word in the FAT structure */
610:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
611:Middlewares/Third_Party/FatFs/src/ff.c ****
612:Middlewares/Third_Party/FatFs/src/ff.c **** static
613:Middlewares/Third_Party/FatFs/src/ff.c **** WORD ld_word (const BYTE* ptr) /* Load a 2-byte little-endian word */
614:Middlewares/Third_Party/FatFs/src/ff.c **** {
28 .loc 1 614 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
615:Middlewares/Third_Party/FatFs/src/ff.c **** WORD rv;
33 .loc 1 615 2 view .LVU1
616:Middlewares/Third_Party/FatFs/src/ff.c ****
617:Middlewares/Third_Party/FatFs/src/ff.c **** rv = ptr[1];
34 .loc 1 617 2 view .LVU2
35 .loc 1 617 10 is_stmt 0 view .LVU3
36 0000 4278 ldrb r2, [r0, #1] @ zero_extendqisi2
37 .LVL1:
618:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[0];
38 .loc 1 618 2 is_stmt 1 view .LVU4
39 .loc 1 618 20 is_stmt 0 view .LVU5
40 0002 0078 ldrb r0, [r0] @ zero_extendqisi2
41 .LVL2:
619:Middlewares/Third_Party/FatFs/src/ff.c **** return rv;
42 .loc 1 619 2 is_stmt 1 view .LVU6
620:Middlewares/Third_Party/FatFs/src/ff.c **** }
43 .loc 1 620 1 is_stmt 0 view .LVU7
44 0004 40EA0220 orr r0, r0, r2, lsl #8
45 .LVL3:
46 .loc 1 620 1 view .LVU8
47 0008 7047 bx lr
48 .cfi_endproc
49 .LFE1183:
51 .section .text.ld_dword,"ax",%progbits
52 .align 1
53 .syntax unified
54 .thumb
55 .thumb_func
57 ld_dword:
58 .LVL4:
59 .LFB1184:
621:Middlewares/Third_Party/FatFs/src/ff.c ****
622:Middlewares/Third_Party/FatFs/src/ff.c **** static
623:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ld_dword (const BYTE* ptr) /* Load a 4-byte little-endian word */
624:Middlewares/Third_Party/FatFs/src/ff.c **** {
60 .loc 1 624 1 is_stmt 1 view -0
61 .cfi_startproc
62 @ args = 0, pretend = 0, frame = 0
63 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccH7dUYB.s page 13
64 @ link register save eliminated.
625:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD rv;
65 .loc 1 625 2 view .LVU10
626:Middlewares/Third_Party/FatFs/src/ff.c ****
627:Middlewares/Third_Party/FatFs/src/ff.c **** rv = ptr[3];
66 .loc 1 627 2 view .LVU11
67 .loc 1 627 10 is_stmt 0 view .LVU12
68 0000 C378 ldrb r3, [r0, #3] @ zero_extendqisi2
69 .LVL5:
628:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[2];
70 .loc 1 628 2 is_stmt 1 view .LVU13
71 .loc 1 628 20 is_stmt 0 view .LVU14
72 0002 8278 ldrb r2, [r0, #2] @ zero_extendqisi2
73 .loc 1 628 5 view .LVU15
74 0004 42EA0322 orr r2, r2, r3, lsl #8
75 .LVL6:
629:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[1];
76 .loc 1 629 2 is_stmt 1 view .LVU16
77 .loc 1 629 20 is_stmt 0 view .LVU17
78 0008 4378 ldrb r3, [r0, #1] @ zero_extendqisi2
79 .loc 1 629 5 view .LVU18
80 000a 43EA0223 orr r3, r3, r2, lsl #8
81 .LVL7:
630:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[0];
82 .loc 1 630 2 is_stmt 1 view .LVU19
83 .loc 1 630 20 is_stmt 0 view .LVU20
84 000e 0078 ldrb r0, [r0] @ zero_extendqisi2
85 .LVL8:
631:Middlewares/Third_Party/FatFs/src/ff.c **** return rv;
86 .loc 1 631 2 is_stmt 1 view .LVU21
632:Middlewares/Third_Party/FatFs/src/ff.c **** }
87 .loc 1 632 1 is_stmt 0 view .LVU22
88 0010 40EA0320 orr r0, r0, r3, lsl #8
89 .LVL9:
90 .loc 1 632 1 view .LVU23
91 0014 7047 bx lr
92 .cfi_endproc
93 .LFE1184:
95 .section .text.st_word,"ax",%progbits
96 .align 1
97 .syntax unified
98 .thumb
99 .thumb_func
101 st_word:
102 .LVL10:
103 .LFB1185:
633:Middlewares/Third_Party/FatFs/src/ff.c ****
634:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
635:Middlewares/Third_Party/FatFs/src/ff.c **** static
636:Middlewares/Third_Party/FatFs/src/ff.c **** QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian word */
637:Middlewares/Third_Party/FatFs/src/ff.c **** {
638:Middlewares/Third_Party/FatFs/src/ff.c **** QWORD rv;
639:Middlewares/Third_Party/FatFs/src/ff.c ****
640:Middlewares/Third_Party/FatFs/src/ff.c **** rv = ptr[7];
641:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[6];
642:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[5];
643:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[4];
ARM GAS /tmp/ccH7dUYB.s page 14
644:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[3];
645:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[2];
646:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[1];
647:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[0];
648:Middlewares/Third_Party/FatFs/src/ff.c **** return rv;
649:Middlewares/Third_Party/FatFs/src/ff.c **** }
650:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
651:Middlewares/Third_Party/FatFs/src/ff.c ****
652:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
653:Middlewares/Third_Party/FatFs/src/ff.c **** static
654:Middlewares/Third_Party/FatFs/src/ff.c **** void st_word (BYTE* ptr, WORD val) /* Store a 2-byte word in little-endian */
655:Middlewares/Third_Party/FatFs/src/ff.c **** {
104 .loc 1 655 1 is_stmt 1 view -0
105 .cfi_startproc
106 @ args = 0, pretend = 0, frame = 0
107 @ frame_needed = 0, uses_anonymous_args = 0
108 @ link register save eliminated.
656:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
109 .loc 1 656 2 view .LVU25
110 .loc 1 656 9 is_stmt 0 view .LVU26
111 0000 0170 strb r1, [r0]
112 .loc 1 656 22 is_stmt 1 view .LVU27
113 .LVL11:
657:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val;
114 .loc 1 657 2 view .LVU28
115 .loc 1 657 11 is_stmt 0 view .LVU29
116 0002 090A lsrs r1, r1, #8
117 .loc 1 657 9 view .LVU30
118 0004 4170 strb r1, [r0, #1]
658:Middlewares/Third_Party/FatFs/src/ff.c **** }
119 .loc 1 658 1 view .LVU31
120 0006 7047 bx lr
121 .cfi_endproc
122 .LFE1185:
124 .section .text.st_dword,"ax",%progbits
125 .align 1
126 .syntax unified
127 .thumb
128 .thumb_func
130 st_dword:
131 .LVL12:
132 .LFB1186:
659:Middlewares/Third_Party/FatFs/src/ff.c ****
660:Middlewares/Third_Party/FatFs/src/ff.c **** static
661:Middlewares/Third_Party/FatFs/src/ff.c **** void st_dword (BYTE* ptr, DWORD val) /* Store a 4-byte word in little-endian */
662:Middlewares/Third_Party/FatFs/src/ff.c **** {
133 .loc 1 662 1 is_stmt 1 view -0
134 .cfi_startproc
135 @ args = 0, pretend = 0, frame = 0
136 @ frame_needed = 0, uses_anonymous_args = 0
137 @ link register save eliminated.
663:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
138 .loc 1 663 2 view .LVU33
139 .loc 1 663 9 is_stmt 0 view .LVU34
140 0000 0170 strb r1, [r0]
141 .loc 1 663 22 is_stmt 1 view .LVU35
142 .LVL13:
ARM GAS /tmp/ccH7dUYB.s page 15
664:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
143 .loc 1 664 2 view .LVU36
144 .loc 1 664 11 is_stmt 0 view .LVU37
145 0002 C1F30723 ubfx r3, r1, #8, #8
146 .loc 1 664 9 view .LVU38
147 0006 4370 strb r3, [r0, #1]
148 .loc 1 664 22 is_stmt 1 view .LVU39
149 .LVL14:
665:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
150 .loc 1 665 2 view .LVU40
151 .loc 1 665 11 is_stmt 0 view .LVU41
152 0008 C1F30743 ubfx r3, r1, #16, #8
153 .loc 1 665 9 view .LVU42
154 000c 8370 strb r3, [r0, #2]
155 .loc 1 665 22 is_stmt 1 view .LVU43
156 .LVL15:
666:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val;
157 .loc 1 666 2 view .LVU44
158 .loc 1 666 11 is_stmt 0 view .LVU45
159 000e 090E lsrs r1, r1, #24
160 .LVL16:
161 .loc 1 666 9 view .LVU46
162 0010 C170 strb r1, [r0, #3]
667:Middlewares/Third_Party/FatFs/src/ff.c **** }
163 .loc 1 667 1 view .LVU47
164 0012 7047 bx lr
165 .cfi_endproc
166 .LFE1186:
168 .section .text.mem_cpy,"ax",%progbits
169 .align 1
170 .syntax unified
171 .thumb
172 .thumb_func
174 mem_cpy:
175 .LVL17:
176 .LFB1187:
668:Middlewares/Third_Party/FatFs/src/ff.c ****
669:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
670:Middlewares/Third_Party/FatFs/src/ff.c **** static
671:Middlewares/Third_Party/FatFs/src/ff.c **** void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */
672:Middlewares/Third_Party/FatFs/src/ff.c **** {
673:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
674:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
675:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
676:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
677:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
678:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
679:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8;
680:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val;
681:Middlewares/Third_Party/FatFs/src/ff.c **** }
682:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
683:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
684:Middlewares/Third_Party/FatFs/src/ff.c ****
685:Middlewares/Third_Party/FatFs/src/ff.c ****
686:Middlewares/Third_Party/FatFs/src/ff.c ****
687:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
688:Middlewares/Third_Party/FatFs/src/ff.c **** /* String functions */
ARM GAS /tmp/ccH7dUYB.s page 16
689:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
690:Middlewares/Third_Party/FatFs/src/ff.c ****
691:Middlewares/Third_Party/FatFs/src/ff.c **** /* Copy memory to memory */
692:Middlewares/Third_Party/FatFs/src/ff.c **** static
693:Middlewares/Third_Party/FatFs/src/ff.c **** void mem_cpy (void* dst, const void* src, UINT cnt) {
177 .loc 1 693 53 is_stmt 1 view -0
178 .cfi_startproc
179 @ args = 0, pretend = 0, frame = 0
180 @ frame_needed = 0, uses_anonymous_args = 0
181 @ link register save eliminated.
694:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *d = (BYTE*)dst;
182 .loc 1 694 2 view .LVU49
695:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *s = (const BYTE*)src;
183 .loc 1 695 2 view .LVU50
696:Middlewares/Third_Party/FatFs/src/ff.c ****
697:Middlewares/Third_Party/FatFs/src/ff.c **** if (cnt) {
184 .loc 1 697 2 view .LVU51
185 .loc 1 697 5 is_stmt 0 view .LVU52
186 0000 9446 mov ip, r2
187 0002 32B1 cbz r2, .L5
188 .LVL18:
189 .L7:
698:Middlewares/Third_Party/FatFs/src/ff.c **** do {
190 .loc 1 698 3 is_stmt 1 view .LVU53
699:Middlewares/Third_Party/FatFs/src/ff.c **** *d++ = *s++;
191 .loc 1 699 4 view .LVU54
192 .loc 1 699 11 is_stmt 0 view .LVU55
193 0004 0A78 ldrb r2, [r1] @ zero_extendqisi2
194 0006 0131 adds r1, r1, #1
195 .LVL19:
196 .loc 1 699 9 view .LVU56
197 0008 0270 strb r2, [r0]
198 000a 0130 adds r0, r0, #1
199 .LVL20:
700:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt);
200 .loc 1 700 12 is_stmt 1 discriminator 1 view .LVU57
201 .loc 1 700 12 is_stmt 0 discriminator 1 view .LVU58
202 000c BCF1010C subs ip, ip, #1
203 .LVL21:
204 .loc 1 700 12 discriminator 1 view .LVU59
205 0010 F8D1 bne .L7
206 .LVL22:
207 .L5:
701:Middlewares/Third_Party/FatFs/src/ff.c **** }
702:Middlewares/Third_Party/FatFs/src/ff.c **** }
208 .loc 1 702 1 view .LVU60
209 0012 7047 bx lr
210 .cfi_endproc
211 .LFE1187:
213 .section .text.mem_set,"ax",%progbits
214 .align 1
215 .syntax unified
216 .thumb
217 .thumb_func
219 mem_set:
220 .LFB1188:
703:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 17
704:Middlewares/Third_Party/FatFs/src/ff.c **** /* Fill memory block */
705:Middlewares/Third_Party/FatFs/src/ff.c **** static
706:Middlewares/Third_Party/FatFs/src/ff.c **** void mem_set (void* dst, int val, UINT cnt) {
221 .loc 1 706 45 is_stmt 1 view -0
222 .cfi_startproc
223 @ args = 0, pretend = 0, frame = 0
224 @ frame_needed = 0, uses_anonymous_args = 0
225 @ link register save eliminated.
226 .LVL23:
227 .L9:
707:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *d = (BYTE*)dst;
708:Middlewares/Third_Party/FatFs/src/ff.c ****
709:Middlewares/Third_Party/FatFs/src/ff.c **** do {
228 .loc 1 709 2 view .LVU62
710:Middlewares/Third_Party/FatFs/src/ff.c **** *d++ = (BYTE)val;
229 .loc 1 710 3 view .LVU63
230 .loc 1 710 8 is_stmt 0 view .LVU64
231 0000 0170 strb r1, [r0]
232 0002 0130 adds r0, r0, #1
711:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt);
233 .loc 1 711 11 is_stmt 1 discriminator 1 view .LVU65
234 .LVL24:
235 .loc 1 711 11 is_stmt 0 discriminator 1 view .LVU66
236 0004 013A subs r2, r2, #1
237 .LVL25:
238 .loc 1 711 11 discriminator 1 view .LVU67
239 0006 FBD1 bne .L9
712:Middlewares/Third_Party/FatFs/src/ff.c **** }
240 .loc 1 712 1 view .LVU68
241 0008 7047 bx lr
242 .cfi_endproc
243 .LFE1188:
245 .section .text.mem_cmp,"ax",%progbits
246 .align 1
247 .syntax unified
248 .thumb
249 .thumb_func
251 mem_cmp:
252 .LVL26:
253 .LFB1189:
713:Middlewares/Third_Party/FatFs/src/ff.c ****
714:Middlewares/Third_Party/FatFs/src/ff.c **** /* Compare memory block */
715:Middlewares/Third_Party/FatFs/src/ff.c **** static
716:Middlewares/Third_Party/FatFs/src/ff.c **** int mem_cmp (const void* dst, const void* src, UINT cnt) { /* ZR:same, NZ:different */
254 .loc 1 716 58 is_stmt 1 view -0
255 .cfi_startproc
256 @ args = 0, pretend = 0, frame = 0
257 @ frame_needed = 0, uses_anonymous_args = 0
258 @ link register save eliminated.
259 .loc 1 716 58 is_stmt 0 view .LVU70
260 0000 8446 mov ip, r0
717:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *d = (const BYTE *)dst, *s = (const BYTE *)src;
261 .loc 1 717 2 is_stmt 1 view .LVU71
262 .LVL27:
718:Middlewares/Third_Party/FatFs/src/ff.c **** int r = 0;
263 .loc 1 718 2 view .LVU72
264 .L12:
ARM GAS /tmp/ccH7dUYB.s page 18
719:Middlewares/Third_Party/FatFs/src/ff.c ****
720:Middlewares/Third_Party/FatFs/src/ff.c **** do {
265 .loc 1 720 2 view .LVU73
721:Middlewares/Third_Party/FatFs/src/ff.c **** r = *d++ - *s++;
266 .loc 1 721 3 view .LVU74
267 .loc 1 721 7 is_stmt 0 view .LVU75
268 0002 9CF80000 ldrb r0, [ip] @ zero_extendqisi2
269 0006 0CF1010C add ip, ip, #1
270 .LVL28:
271 .loc 1 721 14 view .LVU76
272 000a 0B78 ldrb r3, [r1] @ zero_extendqisi2
273 000c 0131 adds r1, r1, #1
274 .LVL29:
275 .loc 1 721 5 view .LVU77
276 000e C01A subs r0, r0, r3
277 .LVL30:
722:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt && r == 0);
278 .loc 1 722 17 is_stmt 1 discriminator 2 view .LVU78
279 .loc 1 722 17 is_stmt 0 discriminator 2 view .LVU79
280 0010 013A subs r2, r2, #1
281 .LVL31:
282 .loc 1 722 17 discriminator 2 view .LVU80
283 0012 01D0 beq .L10
284 .loc 1 722 17 discriminator 1 view .LVU81
285 0014 0028 cmp r0, #0
286 0016 F4D0 beq .L12
287 .L10:
723:Middlewares/Third_Party/FatFs/src/ff.c ****
724:Middlewares/Third_Party/FatFs/src/ff.c **** return r;
725:Middlewares/Third_Party/FatFs/src/ff.c **** }
288 .loc 1 725 1 view .LVU82
289 0018 7047 bx lr
290 .cfi_endproc
291 .LFE1189:
293 .section .text.chk_chr,"ax",%progbits
294 .align 1
295 .syntax unified
296 .thumb
297 .thumb_func
299 chk_chr:
300 .LVL32:
301 .LFB1190:
726:Middlewares/Third_Party/FatFs/src/ff.c ****
727:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check if chr is contained in the string */
728:Middlewares/Third_Party/FatFs/src/ff.c **** static
729:Middlewares/Third_Party/FatFs/src/ff.c **** int chk_chr (const char* str, int chr) { /* NZ:contained, ZR:not contained */
302 .loc 1 729 40 is_stmt 1 view -0
303 .cfi_startproc
304 @ args = 0, pretend = 0, frame = 0
305 @ frame_needed = 0, uses_anonymous_args = 0
306 @ link register save eliminated.
307 .loc 1 729 40 is_stmt 0 view .LVU84
308 0000 0346 mov r3, r0
730:Middlewares/Third_Party/FatFs/src/ff.c **** while (*str && *str != chr) str++;
309 .loc 1 730 2 is_stmt 1 view .LVU85
310 .loc 1 730 8 is_stmt 0 view .LVU86
311 0002 00E0 b .L14
ARM GAS /tmp/ccH7dUYB.s page 19
312 .LVL33:
313 .L16:
314 .loc 1 730 30 is_stmt 1 discriminator 3 view .LVU87
315 .loc 1 730 33 is_stmt 0 discriminator 3 view .LVU88
316 0004 0133 adds r3, r3, #1
317 .LVL34:
318 .L14:
319 .loc 1 730 14 is_stmt 1 discriminator 1 view .LVU89
320 .loc 1 730 9 is_stmt 0 discriminator 1 view .LVU90
321 0006 1878 ldrb r0, [r3] @ zero_extendqisi2
322 .loc 1 730 14 discriminator 1 view .LVU91
323 0008 08B1 cbz r0, .L15
324 .loc 1 730 14 discriminator 2 view .LVU92
325 000a 8842 cmp r0, r1
326 000c FAD1 bne .L16
327 .L15:
731:Middlewares/Third_Party/FatFs/src/ff.c **** return *str;
328 .loc 1 731 2 is_stmt 1 view .LVU93
732:Middlewares/Third_Party/FatFs/src/ff.c **** }
329 .loc 1 732 1 is_stmt 0 view .LVU94
330 000e 7047 bx lr
331 .cfi_endproc
332 .LFE1190:
334 .section .text.chk_lock,"ax",%progbits
335 .align 1
336 .syntax unified
337 .thumb
338 .thumb_func
340 chk_lock:
341 .LVL35:
342 .LFB1191:
733:Middlewares/Third_Party/FatFs/src/ff.c ****
734:Middlewares/Third_Party/FatFs/src/ff.c ****
735:Middlewares/Third_Party/FatFs/src/ff.c ****
736:Middlewares/Third_Party/FatFs/src/ff.c ****
737:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
738:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
739:Middlewares/Third_Party/FatFs/src/ff.c **** /* Request/Release grant to access the volume */
740:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
741:Middlewares/Third_Party/FatFs/src/ff.c **** static
742:Middlewares/Third_Party/FatFs/src/ff.c **** int lock_fs (
743:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs /* File system object */
744:Middlewares/Third_Party/FatFs/src/ff.c **** )
745:Middlewares/Third_Party/FatFs/src/ff.c **** {
746:Middlewares/Third_Party/FatFs/src/ff.c **** return (fs && ff_req_grant(fs->sobj)) ? 1 : 0;
747:Middlewares/Third_Party/FatFs/src/ff.c **** }
748:Middlewares/Third_Party/FatFs/src/ff.c ****
749:Middlewares/Third_Party/FatFs/src/ff.c ****
750:Middlewares/Third_Party/FatFs/src/ff.c **** static
751:Middlewares/Third_Party/FatFs/src/ff.c **** void unlock_fs (
752:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
753:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res /* Result code to be returned */
754:Middlewares/Third_Party/FatFs/src/ff.c **** )
755:Middlewares/Third_Party/FatFs/src/ff.c **** {
756:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs && res != FR_NOT_ENABLED && res != FR_INVALID_DRIVE && res != FR_TIMEOUT) {
757:Middlewares/Third_Party/FatFs/src/ff.c **** ff_rel_grant(fs->sobj);
758:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 20
759:Middlewares/Third_Party/FatFs/src/ff.c **** }
760:Middlewares/Third_Party/FatFs/src/ff.c ****
761:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
762:Middlewares/Third_Party/FatFs/src/ff.c ****
763:Middlewares/Third_Party/FatFs/src/ff.c ****
764:Middlewares/Third_Party/FatFs/src/ff.c ****
765:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
766:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
767:Middlewares/Third_Party/FatFs/src/ff.c **** /* File lock control functions */
768:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
769:Middlewares/Third_Party/FatFs/src/ff.c ****
770:Middlewares/Third_Party/FatFs/src/ff.c **** static
771:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT chk_lock ( /* Check if the file can be accessed */
772:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Directory object pointing the file to be checked */
773:Middlewares/Third_Party/FatFs/src/ff.c **** int acc /* Desired access type (0:Read, 1:Write, 2:Delete/Rename) */
774:Middlewares/Third_Party/FatFs/src/ff.c **** )
775:Middlewares/Third_Party/FatFs/src/ff.c **** {
343 .loc 1 775 1 is_stmt 1 view -0
344 .cfi_startproc
345 @ args = 0, pretend = 0, frame = 0
346 @ frame_needed = 0, uses_anonymous_args = 0
347 @ link register save eliminated.
348 .loc 1 775 1 is_stmt 0 view .LVU96
349 0000 10B4 push {r4}
350 .LCFI0:
351 .cfi_def_cfa_offset 4
352 .cfi_offset 4, -4
776:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, be;
353 .loc 1 776 2 is_stmt 1 view .LVU97
777:Middlewares/Third_Party/FatFs/src/ff.c ****
778:Middlewares/Third_Party/FatFs/src/ff.c **** /* Search file semaphore table */
779:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = be = 0; i < _FS_LOCK; i++) {
354 .loc 1 779 2 view .LVU98
355 .LVL36:
356 .loc 1 779 14 is_stmt 0 view .LVU99
357 0002 4FF0000C mov ip, #0
358 .loc 1 779 9 view .LVU100
359 0006 6346 mov r3, ip
360 .loc 1 779 2 view .LVU101
361 0008 02E0 b .L18
362 .LVL37:
363 .L25:
780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
781:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == dp->obj.fs && /* Check if the object matched with an open object */
782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
783:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break;
784:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Blank entry */
785:Middlewares/Third_Party/FatFs/src/ff.c **** be = 1;
364 .loc 1 785 7 view .LVU102
365 000a 4FF0010C mov ip, #1
366 .LVL38:
367 .L19:
779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
368 .loc 1 779 34 is_stmt 1 discriminator 2 view .LVU103
369 000e 0133 adds r3, r3, #1
370 .LVL39:
371 .L18:
ARM GAS /tmp/ccH7dUYB.s page 21
779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
372 .loc 1 779 21 discriminator 1 view .LVU104
373 0010 012B cmp r3, #1
374 0012 15D8 bhi .L20
780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
375 .loc 1 780 3 view .LVU105
780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
376 .loc 1 780 15 is_stmt 0 view .LVU106
377 0014 1A01 lsls r2, r3, #4
378 0016 184C ldr r4, .L32
379 0018 A258 ldr r2, [r4, r2]
780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */
380 .loc 1 780 6 view .LVU107
381 001a 002A cmp r2, #0
382 001c F5D0 beq .L25
781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
383 .loc 1 781 4 is_stmt 1 view .LVU108
781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
384 .loc 1 781 30 is_stmt 0 view .LVU109
385 001e 0468 ldr r4, [r0]
781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
386 .loc 1 781 7 view .LVU110
387 0020 A242 cmp r2, r4
388 0022 F4D1 bne .L19
782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break;
389 .loc 1 782 13 view .LVU111
390 0024 144A ldr r2, .L32
391 0026 02EB0312 add r2, r2, r3, lsl #4
392 002a 5468 ldr r4, [r2, #4]
782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break;
393 .loc 1 782 28 view .LVU112
394 002c 8268 ldr r2, [r0, #8]
781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
395 .loc 1 781 34 discriminator 1 view .LVU113
396 002e 9442 cmp r4, r2
397 0030 EDD1 bne .L19
783:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Blank entry */
398 .loc 1 783 13 view .LVU114
399 0032 114A ldr r2, .L32
400 0034 02EB0312 add r2, r2, r3, lsl #4
401 0038 9468 ldr r4, [r2, #8]
783:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Blank entry */
402 .loc 1 783 23 view .LVU115
403 003a 4269 ldr r2, [r0, #20]
782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break;
404 .loc 1 782 36 view .LVU116
405 003c 9442 cmp r4, r2
406 003e E6D1 bne .L19
407 .L20:
786:Middlewares/Third_Party/FatFs/src/ff.c **** }
787:Middlewares/Third_Party/FatFs/src/ff.c **** }
788:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == _FS_LOCK) { /* The object is not opened */
408 .loc 1 788 2 is_stmt 1 view .LVU117
409 .loc 1 788 5 is_stmt 0 view .LVU118
410 0040 022B cmp r3, #2
411 0042 0BD0 beq .L30
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
ARM GAS /tmp/ccH7dUYB.s page 22
790:Middlewares/Third_Party/FatFs/src/ff.c **** }
791:Middlewares/Third_Party/FatFs/src/ff.c ****
792:Middlewares/Third_Party/FatFs/src/ff.c **** /* The object has been opened. Reject any open against writing file and all write mode open */
793:Middlewares/Third_Party/FatFs/src/ff.c **** return (acc || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK;
412 .loc 1 793 2 is_stmt 1 view .LVU119
413 .loc 1 793 52 is_stmt 0 view .LVU120
414 0044 B1B9 cbnz r1, .L27
415 .loc 1 793 25 discriminator 2 view .LVU121
416 0046 0C4A ldr r2, .L32
417 0048 02EB0313 add r3, r2, r3, lsl #4
418 .LVL40:
419 .loc 1 793 25 discriminator 2 view .LVU122
420 004c 9B89 ldrh r3, [r3, #12]
421 .loc 1 793 14 discriminator 2 view .LVU123
422 004e B3F5807F cmp r3, #256
423 0052 0DD0 beq .L31
424 .loc 1 793 52 discriminator 4 view .LVU124
425 0054 0020 movs r0, #0
426 .LVL41:
427 .L24:
794:Middlewares/Third_Party/FatFs/src/ff.c **** }
428 .loc 1 794 1 view .LVU125
429 0056 5DF8044B ldr r4, [sp], #4
430 .LCFI1:
431 .cfi_remember_state
432 .cfi_restore 4
433 .cfi_def_cfa_offset 0
434 005a 7047 bx lr
435 .LVL42:
436 .L30:
437 .LCFI2:
438 .cfi_restore_state
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
439 .loc 1 789 3 is_stmt 1 view .LVU126
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
440 .loc 1 789 14 is_stmt 0 view .LVU127
441 005c 0229 cmp r1, #2
442 005e 14BF ite ne
443 0060 6346 movne r3, ip
444 0062 4CF00103 orreq r3, ip, #1
445 .LVL43:
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
446 .loc 1 789 35 view .LVU128
447 0066 0BB1 cbz r3, .L26
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
448 .loc 1 789 35 discriminator 1 view .LVU129
449 0068 0020 movs r0, #0
450 .LVL44:
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
451 .loc 1 789 35 discriminator 1 view .LVU130
452 006a F4E7 b .L24
453 .LVL45:
454 .L26:
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
455 .loc 1 789 35 discriminator 2 view .LVU131
456 006c 1220 movs r0, #18
457 .LVL46:
ARM GAS /tmp/ccH7dUYB.s page 23
789:Middlewares/Third_Party/FatFs/src/ff.c **** return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new objec
458 .loc 1 789 35 view .LVU132
459 006e F2E7 b .L24
460 .LVL47:
461 .L31:
793:Middlewares/Third_Party/FatFs/src/ff.c **** }
462 .loc 1 793 52 discriminator 3 view .LVU133
463 0070 1020 movs r0, #16
464 .LVL48:
793:Middlewares/Third_Party/FatFs/src/ff.c **** }
465 .loc 1 793 52 discriminator 3 view .LVU134
466 0072 F0E7 b .L24
467 .LVL49:
468 .L27:
793:Middlewares/Third_Party/FatFs/src/ff.c **** }
469 .loc 1 793 52 discriminator 3 view .LVU135
470 0074 1020 movs r0, #16
471 .LVL50:
793:Middlewares/Third_Party/FatFs/src/ff.c **** }
472 .loc 1 793 52 discriminator 3 view .LVU136
473 0076 EEE7 b .L24
474 .L33:
475 .align 2
476 .L32:
477 0078 00000000 .word Files
478 .cfi_endproc
479 .LFE1191:
481 .section .text.enq_lock,"ax",%progbits
482 .align 1
483 .syntax unified
484 .thumb
485 .thumb_func
487 enq_lock:
488 .LFB1192:
795:Middlewares/Third_Party/FatFs/src/ff.c ****
796:Middlewares/Third_Party/FatFs/src/ff.c ****
797:Middlewares/Third_Party/FatFs/src/ff.c **** static
798:Middlewares/Third_Party/FatFs/src/ff.c **** int enq_lock (void) /* Check if an entry is available for a new object */
799:Middlewares/Third_Party/FatFs/src/ff.c **** {
489 .loc 1 799 1 is_stmt 1 view -0
490 .cfi_startproc
491 @ args = 0, pretend = 0, frame = 0
492 @ frame_needed = 0, uses_anonymous_args = 0
493 @ link register save eliminated.
800:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
494 .loc 1 800 2 view .LVU138
801:Middlewares/Third_Party/FatFs/src/ff.c ****
802:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
495 .loc 1 802 2 view .LVU139
496 .LVL51:
497 .loc 1 802 9 is_stmt 0 view .LVU140
498 0000 0020 movs r0, #0
499 .loc 1 802 2 view .LVU141
500 0002 00E0 b .L35
501 .LVL52:
502 .L37:
503 .loc 1 802 44 is_stmt 1 discriminator 4 view .LVU142
ARM GAS /tmp/ccH7dUYB.s page 24
504 0004 0130 adds r0, r0, #1
505 .LVL53:
506 .L35:
507 .loc 1 802 27 discriminator 1 view .LVU143
508 0006 0128 cmp r0, #1
509 0008 04D8 bhi .L36
510 .loc 1 802 38 is_stmt 0 discriminator 3 view .LVU144
511 000a 0301 lsls r3, r0, #4
512 000c 034A ldr r2, .L38
513 000e D358 ldr r3, [r2, r3]
514 .loc 1 802 27 discriminator 3 view .LVU145
515 0010 002B cmp r3, #0
516 0012 F7D1 bne .L37
517 .L36:
803:Middlewares/Third_Party/FatFs/src/ff.c **** return (i == _FS_LOCK) ? 0 : 1;
518 .loc 1 803 2 is_stmt 1 view .LVU146
804:Middlewares/Third_Party/FatFs/src/ff.c **** }
519 .loc 1 804 1 is_stmt 0 view .LVU147
520 0014 0238 subs r0, r0, #2
521 .LVL54:
522 .loc 1 804 1 view .LVU148
523 0016 18BF it ne
524 0018 0120 movne r0, #1
525 .LVL55:
526 .loc 1 804 1 view .LVU149
527 001a 7047 bx lr
528 .L39:
529 .align 2
530 .L38:
531 001c 00000000 .word Files
532 .cfi_endproc
533 .LFE1192:
535 .section .text.inc_lock,"ax",%progbits
536 .align 1
537 .syntax unified
538 .thumb
539 .thumb_func
541 inc_lock:
542 .LVL56:
543 .LFB1193:
805:Middlewares/Third_Party/FatFs/src/ff.c ****
806:Middlewares/Third_Party/FatFs/src/ff.c ****
807:Middlewares/Third_Party/FatFs/src/ff.c **** static
808:Middlewares/Third_Party/FatFs/src/ff.c **** UINT inc_lock ( /* Increment object open counter and returns its index (0:Internal error) */
809:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Directory object pointing the file to register or increment */
810:Middlewares/Third_Party/FatFs/src/ff.c **** int acc /* Desired access (0:Read, 1:Write, 2:Delete/Rename) */
811:Middlewares/Third_Party/FatFs/src/ff.c **** )
812:Middlewares/Third_Party/FatFs/src/ff.c **** {
544 .loc 1 812 1 is_stmt 1 view -0
545 .cfi_startproc
546 @ args = 0, pretend = 0, frame = 0
547 @ frame_needed = 0, uses_anonymous_args = 0
548 @ link register save eliminated.
549 .loc 1 812 1 is_stmt 0 view .LVU151
550 0000 70B4 push {r4, r5, r6}
551 .LCFI3:
552 .cfi_def_cfa_offset 12
ARM GAS /tmp/ccH7dUYB.s page 25
553 .cfi_offset 4, -12
554 .cfi_offset 5, -8
555 .cfi_offset 6, -4
813:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
556 .loc 1 813 2 is_stmt 1 view .LVU152
814:Middlewares/Third_Party/FatFs/src/ff.c ****
815:Middlewares/Third_Party/FatFs/src/ff.c ****
816:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK; i++) { /* Find the object */
557 .loc 1 816 2 view .LVU153
558 .LVL57:
559 .loc 1 816 9 is_stmt 0 view .LVU154
560 0002 0023 movs r3, #0
561 .loc 1 816 2 view .LVU155
562 0004 00E0 b .L41
563 .LVL58:
564 .L42:
565 .loc 1 816 29 is_stmt 1 discriminator 2 view .LVU156
566 0006 0133 adds r3, r3, #1
567 .LVL59:
568 .L41:
569 .loc 1 816 16 discriminator 1 view .LVU157
570 0008 012B cmp r3, #1
571 000a 13D8 bhi .L43
817:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == dp->obj.fs &&
572 .loc 1 817 3 view .LVU158
573 .loc 1 817 15 is_stmt 0 view .LVU159
574 000c 1A01 lsls r2, r3, #4
575 000e 234C ldr r4, .L57
576 0010 A458 ldr r4, [r4, r2]
577 .loc 1 817 29 view .LVU160
578 0012 0268 ldr r2, [r0]
579 .loc 1 817 6 view .LVU161
580 0014 9442 cmp r4, r2
581 0016 F6D1 bne .L42
818:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
582 .loc 1 818 12 view .LVU162
583 0018 204A ldr r2, .L57
584 001a 02EB0312 add r2, r2, r3, lsl #4
585 001e 5468 ldr r4, [r2, #4]
586 .loc 1 818 27 view .LVU163
587 0020 8268 ldr r2, [r0, #8]
817:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == dp->obj.fs &&
588 .loc 1 817 33 discriminator 1 view .LVU164
589 0022 9442 cmp r4, r2
590 0024 EFD1 bne .L42
819:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break;
591 .loc 1 819 12 view .LVU165
592 0026 1D4A ldr r2, .L57
593 0028 02EB0312 add r2, r2, r3, lsl #4
594 002c 9468 ldr r4, [r2, #8]
595 .loc 1 819 22 view .LVU166
596 002e 4269 ldr r2, [r0, #20]
818:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust &&
597 .loc 1 818 35 view .LVU167
598 0030 9442 cmp r4, r2
599 0032 E8D1 bne .L42
600 .L43:
ARM GAS /tmp/ccH7dUYB.s page 26
820:Middlewares/Third_Party/FatFs/src/ff.c **** }
821:Middlewares/Third_Party/FatFs/src/ff.c ****
822:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == _FS_LOCK) { /* Not opened. Register it as new. */
601 .loc 1 822 2 is_stmt 1 view .LVU168
602 .loc 1 822 5 is_stmt 0 view .LVU169
603 0034 022B cmp r3, #2
604 0036 08D0 beq .L56
605 .LVL60:
606 .L46:
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
824:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == _FS_LOCK) return 0; /* No free entry to register (int err) */
825:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs;
826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu = dp->obj.sclust;
827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr;
828:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0;
829:Middlewares/Third_Party/FatFs/src/ff.c **** }
830:Middlewares/Third_Party/FatFs/src/ff.c ****
831:Middlewares/Third_Party/FatFs/src/ff.c **** if (acc && Files[i].ctr) return 0; /* Access violation (int err) */
607 .loc 1 831 2 is_stmt 1 view .LVU170
608 .loc 1 831 5 is_stmt 0 view .LVU171
609 0038 F9B1 cbz r1, .L50
610 .loc 1 831 21 discriminator 1 view .LVU172
611 003a 184A ldr r2, .L57
612 003c 02EB0312 add r2, r2, r3, lsl #4
613 0040 9289 ldrh r2, [r2, #12]
614 .loc 1 831 10 discriminator 1 view .LVU173
615 0042 4ABB cbnz r2, .L54
832:Middlewares/Third_Party/FatFs/src/ff.c ****
833:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = acc ? 0x100 : Files[i].ctr + 1; /* Set semaphore value */
616 .loc 1 833 15 discriminator 2 view .LVU174
617 0044 4FF48072 mov r2, #256
618 0048 1DE0 b .L51
619 .LVL61:
620 .L56:
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
621 .loc 1 823 10 view .LVU175
622 004a 0023 movs r3, #0
623 .LVL62:
624 .L45:
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
625 .loc 1 823 28 is_stmt 1 discriminator 1 view .LVU176
626 004c 012B cmp r3, #1
627 004e 05D8 bhi .L47
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
628 .loc 1 823 39 is_stmt 0 discriminator 3 view .LVU177
629 0050 1A01 lsls r2, r3, #4
630 0052 124C ldr r4, .L57
631 0054 A258 ldr r2, [r4, r2]
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
632 .loc 1 823 28 discriminator 3 view .LVU178
633 0056 0AB1 cbz r2, .L47
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
634 .loc 1 823 45 is_stmt 1 discriminator 4 view .LVU179
635 0058 0133 adds r3, r3, #1
636 .LVL63:
823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ;
637 .loc 1 823 45 is_stmt 0 discriminator 4 view .LVU180
ARM GAS /tmp/ccH7dUYB.s page 27
638 005a F7E7 b .L45
639 .L47:
824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs;
640 .loc 1 824 3 is_stmt 1 view .LVU181
824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs;
641 .loc 1 824 6 is_stmt 0 view .LVU182
642 005c 022B cmp r3, #2
643 005e 19D0 beq .L53
825:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu = dp->obj.sclust;
644 .loc 1 825 3 is_stmt 1 view .LVU183
825:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu = dp->obj.sclust;
645 .loc 1 825 15 is_stmt 0 view .LVU184
646 0060 0E4D ldr r5, .L57
647 0062 1C01 lsls r4, r3, #4
648 0064 05EB0312 add r2, r5, r3, lsl #4
649 0068 0668 ldr r6, [r0]
650 006a 2E51 str r6, [r5, r4]
826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr;
651 .loc 1 826 3 is_stmt 1 view .LVU185
826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr;
652 .loc 1 826 25 is_stmt 0 view .LVU186
653 006c 8468 ldr r4, [r0, #8]
826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr;
654 .loc 1 826 16 view .LVU187
655 006e 5460 str r4, [r2, #4]
827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0;
656 .loc 1 827 3 is_stmt 1 view .LVU188
827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0;
657 .loc 1 827 20 is_stmt 0 view .LVU189
658 0070 4069 ldr r0, [r0, #20]
659 .LVL64:
827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0;
660 .loc 1 827 16 view .LVU190
661 0072 9060 str r0, [r2, #8]
828:Middlewares/Third_Party/FatFs/src/ff.c **** }
662 .loc 1 828 3 is_stmt 1 view .LVU191
828:Middlewares/Third_Party/FatFs/src/ff.c **** }
663 .loc 1 828 16 is_stmt 0 view .LVU192
664 0074 0020 movs r0, #0
665 0076 9081 strh r0, [r2, #12] @ movhi
666 0078 DEE7 b .L46
667 .L50:
668 .loc 1 833 39 discriminator 1 view .LVU193
669 007a 084A ldr r2, .L57
670 007c 02EB0312 add r2, r2, r3, lsl #4
671 0080 9289 ldrh r2, [r2, #12]
672 .loc 1 833 15 discriminator 1 view .LVU194
673 0082 0132 adds r2, r2, #1
674 0084 92B2 uxth r2, r2
675 .L51:
676 .loc 1 833 15 discriminator 4 view .LVU195
677 0086 0549 ldr r1, .L57
678 .LVL65:
679 .loc 1 833 15 discriminator 4 view .LVU196
680 0088 01EB0311 add r1, r1, r3, lsl #4
681 008c 8A81 strh r2, [r1, #12] @ movhi
834:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 28
835:Middlewares/Third_Party/FatFs/src/ff.c **** return i + 1;
682 .loc 1 835 2 is_stmt 1 view .LVU197
683 .loc 1 835 11 is_stmt 0 view .LVU198
684 008e 581C adds r0, r3, #1
685 .L40:
836:Middlewares/Third_Party/FatFs/src/ff.c **** }
686 .loc 1 836 1 view .LVU199
687 0090 70BC pop {r4, r5, r6}
688 .LCFI4:
689 .cfi_remember_state
690 .cfi_restore 6
691 .cfi_restore 5
692 .cfi_restore 4
693 .cfi_def_cfa_offset 0
694 0092 7047 bx lr
695 .LVL66:
696 .L53:
697 .LCFI5:
698 .cfi_restore_state
824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs;
699 .loc 1 824 29 discriminator 1 view .LVU200
700 0094 0020 movs r0, #0
701 .LVL67:
824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs;
702 .loc 1 824 29 discriminator 1 view .LVU201
703 0096 FBE7 b .L40
704 .L54:
831:Middlewares/Third_Party/FatFs/src/ff.c ****
705 .loc 1 831 34 discriminator 2 view .LVU202
706 0098 0020 movs r0, #0
707 009a F9E7 b .L40
708 .L58:
709 .align 2
710 .L57:
711 009c 00000000 .word Files
712 .cfi_endproc
713 .LFE1193:
715 .section .text.dec_lock,"ax",%progbits
716 .align 1
717 .syntax unified
718 .thumb
719 .thumb_func
721 dec_lock:
722 .LVL68:
723 .LFB1194:
837:Middlewares/Third_Party/FatFs/src/ff.c ****
838:Middlewares/Third_Party/FatFs/src/ff.c ****
839:Middlewares/Third_Party/FatFs/src/ff.c **** static
840:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dec_lock ( /* Decrement object open counter */
841:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i /* Semaphore index (1..) */
842:Middlewares/Third_Party/FatFs/src/ff.c **** )
843:Middlewares/Third_Party/FatFs/src/ff.c **** {
724 .loc 1 843 1 is_stmt 1 view -0
725 .cfi_startproc
726 @ args = 0, pretend = 0, frame = 0
727 @ frame_needed = 0, uses_anonymous_args = 0
728 @ link register save eliminated.
ARM GAS /tmp/ccH7dUYB.s page 29
844:Middlewares/Third_Party/FatFs/src/ff.c **** WORD n;
729 .loc 1 844 2 view .LVU204
845:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
730 .loc 1 845 2 view .LVU205
846:Middlewares/Third_Party/FatFs/src/ff.c ****
847:Middlewares/Third_Party/FatFs/src/ff.c ****
848:Middlewares/Third_Party/FatFs/src/ff.c **** if (--i < _FS_LOCK) { /* Shift index number origin from 0 */
731 .loc 1 848 2 view .LVU206
732 .loc 1 848 5 is_stmt 0 view .LVU207
733 0000 0138 subs r0, r0, #1
734 .LVL69:
735 .loc 1 848 5 view .LVU208
736 0002 0128 cmp r0, #1
737 0004 15D8 bhi .L63
849:Middlewares/Third_Party/FatFs/src/ff.c **** n = Files[i].ctr;
738 .loc 1 849 3 is_stmt 1 view .LVU209
739 .loc 1 849 5 is_stmt 0 view .LVU210
740 0006 0D4B ldr r3, .L66
741 0008 03EB0013 add r3, r3, r0, lsl #4
742 000c 9B89 ldrh r3, [r3, #12]
743 .LVL70:
850:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0x100) n = 0; /* If write mode open, delete the entry */
744 .loc 1 850 3 is_stmt 1 view .LVU211
745 .loc 1 850 6 is_stmt 0 view .LVU212
746 000e B3F5807F cmp r3, #256
747 0012 03D0 beq .L64
851:Middlewares/Third_Party/FatFs/src/ff.c **** if (n > 0) n--; /* Decrement read mode open count */
748 .loc 1 851 3 is_stmt 1 view .LVU213
749 .loc 1 851 6 is_stmt 0 view .LVU214
750 0014 43B1 cbz r3, .L62
751 .loc 1 851 14 is_stmt 1 discriminator 1 view .LVU215
752 .loc 1 851 15 is_stmt 0 discriminator 1 view .LVU216
753 0016 013B subs r3, r3, #1
754 .LVL71:
755 .loc 1 851 15 discriminator 1 view .LVU217
756 0018 9BB2 uxth r3, r3
757 .LVL72:
758 .loc 1 851 15 discriminator 1 view .LVU218
759 001a 00E0 b .L61
760 .L64:
850:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0x100) n = 0; /* If write mode open, delete the entry */
761 .loc 1 850 21 discriminator 1 view .LVU219
762 001c 0023 movs r3, #0
763 .LVL73:
764 .L61:
852:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = n;
765 .loc 1 852 3 is_stmt 1 view .LVU220
766 .loc 1 852 16 is_stmt 0 view .LVU221
767 001e 074A ldr r2, .L66
768 0020 02EB0012 add r2, r2, r0, lsl #4
769 0024 9381 strh r3, [r2, #12] @ movhi
853:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0) Files[i].fs = 0; /* Delete the entry if open count gets zero */
770 .loc 1 853 3 is_stmt 1 view .LVU222
771 .loc 1 853 6 is_stmt 0 view .LVU223
772 0026 33B9 cbnz r3, .L65
773 .L62:
774 .LVL74:
ARM GAS /tmp/ccH7dUYB.s page 30
775 .loc 1 853 15 is_stmt 1 discriminator 1 view .LVU224
776 .loc 1 853 27 is_stmt 0 discriminator 1 view .LVU225
777 0028 0301 lsls r3, r0, #4
778 002a 0020 movs r0, #0
779 .LVL75:
780 .loc 1 853 27 discriminator 1 view .LVU226
781 002c 034A ldr r2, .L66
782 002e D050 str r0, [r2, r3]
783 0030 7047 bx lr
784 .LVL76:
785 .L63:
854:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
855:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
856:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; /* Invalid index nunber */
786 .loc 1 856 7 view .LVU227
787 0032 0220 movs r0, #2
788 .LVL77:
789 .loc 1 856 7 view .LVU228
790 0034 7047 bx lr
791 .LVL78:
792 .L65:
854:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
793 .loc 1 854 7 view .LVU229
794 0036 0020 movs r0, #0
795 .LVL79:
857:Middlewares/Third_Party/FatFs/src/ff.c **** }
858:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
796 .loc 1 858 2 is_stmt 1 view .LVU230
859:Middlewares/Third_Party/FatFs/src/ff.c **** }
797 .loc 1 859 1 is_stmt 0 view .LVU231
798 0038 7047 bx lr
799 .L67:
800 003a 00BF .align 2
801 .L66:
802 003c 00000000 .word Files
803 .cfi_endproc
804 .LFE1194:
806 .section .text.clear_lock,"ax",%progbits
807 .align 1
808 .syntax unified
809 .thumb
810 .thumb_func
812 clear_lock:
813 .LVL80:
814 .LFB1195:
860:Middlewares/Third_Party/FatFs/src/ff.c ****
861:Middlewares/Third_Party/FatFs/src/ff.c ****
862:Middlewares/Third_Party/FatFs/src/ff.c **** static
863:Middlewares/Third_Party/FatFs/src/ff.c **** void clear_lock ( /* Clear lock entries of the volume */
864:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs
865:Middlewares/Third_Party/FatFs/src/ff.c **** )
866:Middlewares/Third_Party/FatFs/src/ff.c **** {
815 .loc 1 866 1 is_stmt 1 view -0
816 .cfi_startproc
817 @ args = 0, pretend = 0, frame = 0
818 @ frame_needed = 0, uses_anonymous_args = 0
819 @ link register save eliminated.
ARM GAS /tmp/ccH7dUYB.s page 31
867:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
820 .loc 1 867 2 view .LVU233
868:Middlewares/Third_Party/FatFs/src/ff.c ****
869:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK; i++) {
821 .loc 1 869 2 view .LVU234
822 .loc 1 869 9 is_stmt 0 view .LVU235
823 0000 0023 movs r3, #0
824 .loc 1 869 2 view .LVU236
825 0002 03E0 b .L73
826 .LVL81:
827 .L80:
828 .LCFI6:
829 .cfi_def_cfa_offset 4
830 .cfi_offset 4, -4
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
871:Middlewares/Third_Party/FatFs/src/ff.c **** }
872:Middlewares/Third_Party/FatFs/src/ff.c **** }
831 .loc 1 872 1 view .LVU237
832 0004 5DF8044B ldr r4, [sp], #4
833 .LCFI7:
834 .cfi_restore 4
835 .cfi_def_cfa_offset 0
836 0008 7047 bx lr
837 .L79:
869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
838 .loc 1 869 29 is_stmt 1 discriminator 2 view .LVU238
839 000a 0133 adds r3, r3, #1
840 .LVL82:
841 .L73:
869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
842 .loc 1 869 16 discriminator 1 view .LVU239
843 000c 012B cmp r3, #1
844 000e 11D8 bhi .L78
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
845 .loc 1 870 3 view .LVU240
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
846 .loc 1 870 15 is_stmt 0 view .LVU241
847 0010 1A01 lsls r2, r3, #4
848 0012 0949 ldr r1, .L81
849 0014 8A58 ldr r2, [r1, r2]
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
850 .loc 1 870 6 view .LVU242
851 0016 8242 cmp r2, r0
852 0018 F7D1 bne .L79
866:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
853 .loc 1 866 1 view .LVU243
854 001a 10B4 push {r4}
855 .LCFI8:
856 .cfi_def_cfa_offset 4
857 .cfi_offset 4, -4
858 .L74:
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
859 .loc 1 870 26 is_stmt 1 discriminator 1 view .LVU244
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
860 .loc 1 870 38 is_stmt 0 discriminator 1 view .LVU245
861 001c 1A01 lsls r2, r3, #4
862 001e 0024 movs r4, #0
ARM GAS /tmp/ccH7dUYB.s page 32
863 0020 8C50 str r4, [r1, r2]
864 .L70:
869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
865 .loc 1 869 29 is_stmt 1 discriminator 2 view .LVU246
866 0022 0133 adds r3, r3, #1
867 .LVL83:
869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
868 .loc 1 869 16 discriminator 1 view .LVU247
869 0024 012B cmp r3, #1
870 0026 EDD8 bhi .L80
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
871 .loc 1 870 3 view .LVU248
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
872 .loc 1 870 15 is_stmt 0 view .LVU249
873 0028 1A01 lsls r2, r3, #4
874 002a 0349 ldr r1, .L81
875 002c 8A58 ldr r2, [r1, r2]
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
876 .loc 1 870 6 view .LVU250
877 002e 8242 cmp r2, r0
878 0030 F7D1 bne .L70
879 0032 F3E7 b .L74
880 .L78:
881 .LCFI9:
882 .cfi_def_cfa_offset 0
883 .cfi_restore 4
870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0;
884 .loc 1 870 6 view .LVU251
885 0034 7047 bx lr
886 .L82:
887 0036 00BF .align 2
888 .L81:
889 0038 00000000 .word Files
890 .cfi_endproc
891 .LFE1195:
893 .section .text.clust2sect,"ax",%progbits
894 .align 1
895 .syntax unified
896 .thumb
897 .thumb_func
899 clust2sect:
900 .LVL84:
901 .LFB1199:
873:Middlewares/Third_Party/FatFs/src/ff.c ****
874:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_LOCK != 0 */
875:Middlewares/Third_Party/FatFs/src/ff.c ****
876:Middlewares/Third_Party/FatFs/src/ff.c ****
877:Middlewares/Third_Party/FatFs/src/ff.c ****
878:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
879:Middlewares/Third_Party/FatFs/src/ff.c **** /* Move/Flush disk access window in the file system object */
880:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
881:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
882:Middlewares/Third_Party/FatFs/src/ff.c **** static
883:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERROR */
884:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs /* File system object */
885:Middlewares/Third_Party/FatFs/src/ff.c **** )
886:Middlewares/Third_Party/FatFs/src/ff.c **** {
ARM GAS /tmp/ccH7dUYB.s page 33
887:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD wsect;
888:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nf;
889:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
890:Middlewares/Third_Party/FatFs/src/ff.c ****
891:Middlewares/Third_Party/FatFs/src/ff.c ****
892:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->wflag) { /* Write back the sector if it is dirty */
893:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */
894:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) {
895:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
896:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
897:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0;
898:Middlewares/Third_Party/FatFs/src/ff.c **** if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */
899:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
900:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
901:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1);
902:Middlewares/Third_Party/FatFs/src/ff.c **** }
903:Middlewares/Third_Party/FatFs/src/ff.c **** }
904:Middlewares/Third_Party/FatFs/src/ff.c **** }
905:Middlewares/Third_Party/FatFs/src/ff.c **** }
906:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
907:Middlewares/Third_Party/FatFs/src/ff.c **** }
908:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
909:Middlewares/Third_Party/FatFs/src/ff.c ****
910:Middlewares/Third_Party/FatFs/src/ff.c ****
911:Middlewares/Third_Party/FatFs/src/ff.c **** static
912:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERROR */
913:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
914:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sector /* Sector number to make appearance in the fs->win[] */
915:Middlewares/Third_Party/FatFs/src/ff.c **** )
916:Middlewares/Third_Party/FatFs/src/ff.c **** {
917:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
918:Middlewares/Third_Party/FatFs/src/ff.c ****
919:Middlewares/Third_Party/FatFs/src/ff.c ****
920:Middlewares/Third_Party/FatFs/src/ff.c **** if (sector != fs->winsect) { /* Window offset changed? */
921:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
922:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs); /* Write-back changes */
923:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
924:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Fill sector window with new data */
925:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) {
926:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */
927:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
928:Middlewares/Third_Party/FatFs/src/ff.c **** }
929:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = sector;
930:Middlewares/Third_Party/FatFs/src/ff.c **** }
931:Middlewares/Third_Party/FatFs/src/ff.c **** }
932:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
933:Middlewares/Third_Party/FatFs/src/ff.c **** }
934:Middlewares/Third_Party/FatFs/src/ff.c ****
935:Middlewares/Third_Party/FatFs/src/ff.c ****
936:Middlewares/Third_Party/FatFs/src/ff.c ****
937:Middlewares/Third_Party/FatFs/src/ff.c ****
938:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
939:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
940:Middlewares/Third_Party/FatFs/src/ff.c **** /* Synchronize file system and strage device */
941:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
942:Middlewares/Third_Party/FatFs/src/ff.c ****
943:Middlewares/Third_Party/FatFs/src/ff.c **** static
ARM GAS /tmp/ccH7dUYB.s page 34
944:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */
945:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs /* File system object */
946:Middlewares/Third_Party/FatFs/src/ff.c **** )
947:Middlewares/Third_Party/FatFs/src/ff.c **** {
948:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
949:Middlewares/Third_Party/FatFs/src/ff.c ****
950:Middlewares/Third_Party/FatFs/src/ff.c ****
951:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs);
952:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
953:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update FSInfo sector if needed */
954:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && fs->fsi_flag == 1) {
955:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
956:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs));
957:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55);
958:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_LeadSig, 0x41615252);
959:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_StrucSig, 0x61417272);
960:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Free_Count, fs->free_clst);
961:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Nxt_Free, fs->last_clst);
962:Middlewares/Third_Party/FatFs/src/ff.c **** /* Write it into the FSInfo sector */
963:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = fs->volbase + 1;
964:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1);
965:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0;
966:Middlewares/Third_Party/FatFs/src/ff.c **** }
967:Middlewares/Third_Party/FatFs/src/ff.c **** /* Make sure that no pending write process in the physical drive */
968:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(fs->drv, CTRL_SYNC, 0) != RES_OK) res = FR_DISK_ERR;
969:Middlewares/Third_Party/FatFs/src/ff.c **** }
970:Middlewares/Third_Party/FatFs/src/ff.c ****
971:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
972:Middlewares/Third_Party/FatFs/src/ff.c **** }
973:Middlewares/Third_Party/FatFs/src/ff.c ****
974:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
975:Middlewares/Third_Party/FatFs/src/ff.c ****
976:Middlewares/Third_Party/FatFs/src/ff.c ****
977:Middlewares/Third_Party/FatFs/src/ff.c ****
978:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
979:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get sector# from cluster# */
980:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
981:Middlewares/Third_Party/FatFs/src/ff.c ****
982:Middlewares/Third_Party/FatFs/src/ff.c **** static
983:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clust2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */
984:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
985:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst /* Cluster# to be converted */
986:Middlewares/Third_Party/FatFs/src/ff.c **** )
987:Middlewares/Third_Party/FatFs/src/ff.c **** {
902 .loc 1 987 1 is_stmt 1 view -0
903 .cfi_startproc
904 @ args = 0, pretend = 0, frame = 0
905 @ frame_needed = 0, uses_anonymous_args = 0
906 @ link register save eliminated.
988:Middlewares/Third_Party/FatFs/src/ff.c **** clst -= 2;
907 .loc 1 988 2 view .LVU253
908 .loc 1 988 7 is_stmt 0 view .LVU254
909 0000 0239 subs r1, r1, #2
910 .LVL85:
989:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */
911 .loc 1 989 2 is_stmt 1 view .LVU255
912 .loc 1 989 16 is_stmt 0 view .LVU256
ARM GAS /tmp/ccH7dUYB.s page 35
913 0002 8369 ldr r3, [r0, #24]
914 .loc 1 989 27 view .LVU257
915 0004 023B subs r3, r3, #2
916 .loc 1 989 5 view .LVU258
917 0006 8B42 cmp r3, r1
918 0008 04D9 bls .L85
990:Middlewares/Third_Party/FatFs/src/ff.c **** return clst * fs->csize + fs->database;
919 .loc 1 990 2 is_stmt 1 view .LVU259
920 .loc 1 990 18 is_stmt 0 view .LVU260
921 000a 4389 ldrh r3, [r0, #10]
922 .loc 1 990 30 view .LVU261
923 000c C06A ldr r0, [r0, #44]
924 .LVL86:
925 .loc 1 990 26 view .LVU262
926 000e 01FB0300 mla r0, r1, r3, r0
927 0012 7047 bx lr
928 .LVL87:
929 .L85:
989:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */
930 .loc 1 989 39 discriminator 1 view .LVU263
931 0014 0020 movs r0, #0
932 .LVL88:
991:Middlewares/Third_Party/FatFs/src/ff.c **** }
933 .loc 1 991 1 view .LVU264
934 0016 7047 bx lr
935 .cfi_endproc
936 .LFE1199:
938 .section .text.clmt_clust,"ax",%progbits
939 .align 1
940 .syntax unified
941 .thumb
942 .thumb_func
944 clmt_clust:
945 .LVL89:
946 .LFB1204:
992:Middlewares/Third_Party/FatFs/src/ff.c ****
993:Middlewares/Third_Party/FatFs/src/ff.c ****
994:Middlewares/Third_Party/FatFs/src/ff.c ****
995:Middlewares/Third_Party/FatFs/src/ff.c ****
996:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
997:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT access - Read value of a FAT entry */
998:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
999:Middlewares/Third_Party/FatFs/src/ff.c ****
1000:Middlewares/Third_Party/FatFs/src/ff.c **** static
1001:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluster status */
1002:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj, /* Corresponding object */
1003:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst /* Cluster number to get the value */
1004:Middlewares/Third_Party/FatFs/src/ff.c **** )
1005:Middlewares/Third_Party/FatFs/src/ff.c **** {
1006:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wc, bc;
1007:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD val;
1008:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
1009:Middlewares/Third_Party/FatFs/src/ff.c ****
1010:Middlewares/Third_Party/FatFs/src/ff.c ****
1011:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) { /* Check if in valid range */
1012:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
1013:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 36
1014:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1015:Middlewares/Third_Party/FatFs/src/ff.c **** val = 0xFFFFFFFF; /* Default value falls on disk error */
1016:Middlewares/Third_Party/FatFs/src/ff.c ****
1017:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
1018:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
1019:Middlewares/Third_Party/FatFs/src/ff.c **** bc = (UINT)clst; bc += bc / 2;
1020:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
1021:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
1022:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
1023:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
1024:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
1025:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1026:Middlewares/Third_Party/FatFs/src/ff.c ****
1027:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT16 :
1028:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))) != FR_OK) break;
1029:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
1030:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1031:Middlewares/Third_Party/FatFs/src/ff.c ****
1032:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT32 :
1033:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break;
1034:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
1035:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1036:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1037:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_EXFAT :
1038:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->objsize) {
1039:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cofs = clst - obj->sclust; /* Offset from start cluster */
1040:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clen = (DWORD)((obj->objsize - 1) / SS(fs)) / fs->csize; /* Number of clusters - 1 */
1041:Middlewares/Third_Party/FatFs/src/ff.c ****
1042:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat == 2) { /* Is there no valid chain on the FAT? */
1043:Middlewares/Third_Party/FatFs/src/ff.c **** if (cofs <= clen) {
1044:Middlewares/Third_Party/FatFs/src/ff.c **** val = (cofs == clen) ? 0x7FFFFFFF : clst + 1; /* Generate the value */
1045:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1046:Middlewares/Third_Party/FatFs/src/ff.c **** }
1047:Middlewares/Third_Party/FatFs/src/ff.c **** }
1048:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the 1st fragment? */
1049:Middlewares/Third_Party/FatFs/src/ff.c **** val = clst + 1; /* Generate the value */
1050:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1051:Middlewares/Third_Party/FatFs/src/ff.c **** }
1052:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat != 2) { /* Get value from FAT if FAT chain is valid */
1053:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->n_frag != 0) { /* Is it on the growing edge? */
1054:Middlewares/Third_Party/FatFs/src/ff.c **** val = 0x7FFFFFFF; /* Generate EOC */
1055:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1056:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break;
1057:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF;
1058:Middlewares/Third_Party/FatFs/src/ff.c **** }
1059:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1060:Middlewares/Third_Party/FatFs/src/ff.c **** }
1061:Middlewares/Third_Party/FatFs/src/ff.c **** }
1062:Middlewares/Third_Party/FatFs/src/ff.c **** /* go to default */
1063:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1064:Middlewares/Third_Party/FatFs/src/ff.c **** default:
1065:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
1066:Middlewares/Third_Party/FatFs/src/ff.c **** }
1067:Middlewares/Third_Party/FatFs/src/ff.c **** }
1068:Middlewares/Third_Party/FatFs/src/ff.c ****
1069:Middlewares/Third_Party/FatFs/src/ff.c **** return val;
1070:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 37
1071:Middlewares/Third_Party/FatFs/src/ff.c ****
1072:Middlewares/Third_Party/FatFs/src/ff.c ****
1073:Middlewares/Third_Party/FatFs/src/ff.c ****
1074:Middlewares/Third_Party/FatFs/src/ff.c ****
1075:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1076:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1077:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT access - Change value of a FAT entry */
1078:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1079:Middlewares/Third_Party/FatFs/src/ff.c ****
1080:Middlewares/Third_Party/FatFs/src/ff.c **** static
1081:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */
1082:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* Corresponding file system object */
1083:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, /* FAT index number (cluster number) to be changed */
1084:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD val /* New value to be set to the entry */
1085:Middlewares/Third_Party/FatFs/src/ff.c **** )
1086:Middlewares/Third_Party/FatFs/src/ff.c **** {
1087:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bc;
1088:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p;
1089:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INT_ERR;
1090:Middlewares/Third_Party/FatFs/src/ff.c ****
1091:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */
1092:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
1093:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */
1094:Middlewares/Third_Party/FatFs/src/ff.c **** bc = (UINT)clst; bc += bc / 2;
1095:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
1096:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
1097:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc++ % SS(fs);
1098:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
1099:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1100:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
1101:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
1102:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc % SS(fs);
1103:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
1104:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1105:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1106:Middlewares/Third_Party/FatFs/src/ff.c ****
1107:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT16 : /* WORD aligned items */
1108:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 2)));
1109:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
1110:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + clst * 2 % SS(fs), (WORD)val);
1111:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1112:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1113:Middlewares/Third_Party/FatFs/src/ff.c ****
1114:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT32 : /* DWORD aligned items */
1115:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1116:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_EXFAT :
1117:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1118:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 4)));
1119:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
1120:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
1121:Middlewares/Third_Party/FatFs/src/ff.c **** val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000);
1122:Middlewares/Third_Party/FatFs/src/ff.c **** }
1123:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + clst * 4 % SS(fs), val);
1124:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1125:Middlewares/Third_Party/FatFs/src/ff.c **** break;
1126:Middlewares/Third_Party/FatFs/src/ff.c **** }
1127:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 38
1128:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1129:Middlewares/Third_Party/FatFs/src/ff.c **** }
1130:Middlewares/Third_Party/FatFs/src/ff.c ****
1131:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
1132:Middlewares/Third_Party/FatFs/src/ff.c ****
1133:Middlewares/Third_Party/FatFs/src/ff.c ****
1134:Middlewares/Third_Party/FatFs/src/ff.c ****
1135:Middlewares/Third_Party/FatFs/src/ff.c ****
1136:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
1137:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1138:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Accessing FAT and Allocation Bitmap */
1139:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1140:Middlewares/Third_Party/FatFs/src/ff.c ****
1141:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------*/
1142:Middlewares/Third_Party/FatFs/src/ff.c **** /* Find a contiguous free cluster block */
1143:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------*/
1144:Middlewares/Third_Party/FatFs/src/ff.c ****
1145:Middlewares/Third_Party/FatFs/src/ff.c **** static
1146:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk error */
1147:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
1148:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, /* Cluster number to scan from */
1149:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ncl /* Number of contiguous clusters to find (1..) */
1150:Middlewares/Third_Party/FatFs/src/ff.c **** )
1151:Middlewares/Third_Party/FatFs/src/ff.c **** {
1152:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE bm, bv;
1153:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
1154:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD val, scl, ctr;
1155:Middlewares/Third_Party/FatFs/src/ff.c ****
1156:Middlewares/Third_Party/FatFs/src/ff.c ****
1157:Middlewares/Third_Party/FatFs/src/ff.c **** clst -= 2; /* The first bit in the bitmap corresponds to cluster #2 */
1158:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent - 2) clst = 0;
1159:Middlewares/Third_Party/FatFs/src/ff.c **** scl = val = clst; ctr = 0;
1160:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
1161:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->database + val / 8 / SS(fs)) != FR_OK) return 0xFFFFFFFF; /* (assuming bi
1162:Middlewares/Third_Party/FatFs/src/ff.c **** i = val / 8 % SS(fs); bm = 1 << (val % 8);
1163:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1164:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1165:Middlewares/Third_Party/FatFs/src/ff.c **** bv = fs->win[i] & bm; bm <<= 1; /* Get bit value */
1166:Middlewares/Third_Party/FatFs/src/ff.c **** if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */
1167:Middlewares/Third_Party/FatFs/src/ff.c **** val = 0; bm = 0; i = SS(fs);
1168:Middlewares/Third_Party/FatFs/src/ff.c **** }
1169:Middlewares/Third_Party/FatFs/src/ff.c **** if (!bv) { /* Is it a free cluster? */
1170:Middlewares/Third_Party/FatFs/src/ff.c **** if (++ctr == ncl) return scl + 2; /* Check if run length is sufficient for required */
1171:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1172:Middlewares/Third_Party/FatFs/src/ff.c **** scl = val; ctr = 0; /* Encountered a cluster in-use, restart to scan */
1173:Middlewares/Third_Party/FatFs/src/ff.c **** }
1174:Middlewares/Third_Party/FatFs/src/ff.c **** if (val == clst) return 0; /* All cluster scanned? */
1175:Middlewares/Third_Party/FatFs/src/ff.c **** } while (bm);
1176:Middlewares/Third_Party/FatFs/src/ff.c **** bm = 1;
1177:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++i < SS(fs));
1178:Middlewares/Third_Party/FatFs/src/ff.c **** }
1179:Middlewares/Third_Party/FatFs/src/ff.c **** }
1180:Middlewares/Third_Party/FatFs/src/ff.c ****
1181:Middlewares/Third_Party/FatFs/src/ff.c ****
1182:Middlewares/Third_Party/FatFs/src/ff.c **** /*----------------------------------------*/
1183:Middlewares/Third_Party/FatFs/src/ff.c **** /* Set/Clear a block of allocation bitmap */
1184:Middlewares/Third_Party/FatFs/src/ff.c **** /*----------------------------------------*/
ARM GAS /tmp/ccH7dUYB.s page 39
1185:Middlewares/Third_Party/FatFs/src/ff.c ****
1186:Middlewares/Third_Party/FatFs/src/ff.c **** static
1187:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT change_bitmap (
1188:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
1189:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, /* Cluster number to change from */
1190:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ncl, /* Number of clusters to be changed */
1191:Middlewares/Third_Party/FatFs/src/ff.c **** int bv /* bit value to be set (0 or 1) */
1192:Middlewares/Third_Party/FatFs/src/ff.c **** )
1193:Middlewares/Third_Party/FatFs/src/ff.c **** {
1194:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE bm;
1195:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
1196:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sect;
1197:Middlewares/Third_Party/FatFs/src/ff.c ****
1198:Middlewares/Third_Party/FatFs/src/ff.c **** clst -= 2; /* The first bit corresponds to cluster #2 */
1199:Middlewares/Third_Party/FatFs/src/ff.c **** sect = fs->database + clst / 8 / SS(fs); /* Sector address (assuming bitmap is located top of the
1200:Middlewares/Third_Party/FatFs/src/ff.c **** i = clst / 8 % SS(fs); /* Byte offset in the sector */
1201:Middlewares/Third_Party/FatFs/src/ff.c **** bm = 1 << (clst % 8); /* Bit mask in the byte */
1202:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
1203:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect++) != FR_OK) return FR_DISK_ERR;
1204:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1205:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1206:Middlewares/Third_Party/FatFs/src/ff.c **** if (bv == (int)((fs->win[i] & bm) != 0)) return FR_INT_ERR; /* Is the bit expected value? */
1207:Middlewares/Third_Party/FatFs/src/ff.c **** fs->win[i] ^= bm; /* Flip the bit */
1208:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1209:Middlewares/Third_Party/FatFs/src/ff.c **** if (--ncl == 0) return FR_OK; /* All bits processed? */
1210:Middlewares/Third_Party/FatFs/src/ff.c **** } while (bm <<= 1); /* Next bit */
1211:Middlewares/Third_Party/FatFs/src/ff.c **** bm = 1;
1212:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++i < SS(fs)); /* Next byte */
1213:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0;
1214:Middlewares/Third_Party/FatFs/src/ff.c **** }
1215:Middlewares/Third_Party/FatFs/src/ff.c **** }
1216:Middlewares/Third_Party/FatFs/src/ff.c ****
1217:Middlewares/Third_Party/FatFs/src/ff.c ****
1218:Middlewares/Third_Party/FatFs/src/ff.c **** /*---------------------------------------------*/
1219:Middlewares/Third_Party/FatFs/src/ff.c **** /* Fill the first fragment of the FAT chain */
1220:Middlewares/Third_Party/FatFs/src/ff.c **** /*---------------------------------------------*/
1221:Middlewares/Third_Party/FatFs/src/ff.c ****
1222:Middlewares/Third_Party/FatFs/src/ff.c **** static
1223:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT fill_first_frag (
1224:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj /* Pointer to the corresponding object */
1225:Middlewares/Third_Party/FatFs/src/ff.c **** )
1226:Middlewares/Third_Party/FatFs/src/ff.c **** {
1227:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
1228:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl, n;
1229:Middlewares/Third_Party/FatFs/src/ff.c ****
1230:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat == 3) { /* Has the object been changed 'fragmented'? */
1231:Middlewares/Third_Party/FatFs/src/ff.c **** for (cl = obj->sclust, n = obj->n_cont; n; cl++, n--) { /* Create cluster chain on the FAT */
1232:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(obj->fs, cl, cl + 1);
1233:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1234:Middlewares/Third_Party/FatFs/src/ff.c **** }
1235:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = 0; /* Change status 'FAT chain is valid' */
1236:Middlewares/Third_Party/FatFs/src/ff.c **** }
1237:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1238:Middlewares/Third_Party/FatFs/src/ff.c **** }
1239:Middlewares/Third_Party/FatFs/src/ff.c ****
1240:Middlewares/Third_Party/FatFs/src/ff.c ****
1241:Middlewares/Third_Party/FatFs/src/ff.c **** /*---------------------------------------------*/
ARM GAS /tmp/ccH7dUYB.s page 40
1242:Middlewares/Third_Party/FatFs/src/ff.c **** /* Fill the last fragment of the FAT chain */
1243:Middlewares/Third_Party/FatFs/src/ff.c **** /*---------------------------------------------*/
1244:Middlewares/Third_Party/FatFs/src/ff.c ****
1245:Middlewares/Third_Party/FatFs/src/ff.c **** static
1246:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT fill_last_frag (
1247:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj, /* Pointer to the corresponding object */
1248:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD lcl, /* Last cluster of the fragment */
1249:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD term /* Value to set the last FAT entry */
1250:Middlewares/Third_Party/FatFs/src/ff.c **** )
1251:Middlewares/Third_Party/FatFs/src/ff.c **** {
1252:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
1253:Middlewares/Third_Party/FatFs/src/ff.c ****
1254:Middlewares/Third_Party/FatFs/src/ff.c **** while (obj->n_frag > 0) { /* Create the last chain on the FAT */
1255:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(obj->fs, lcl - obj->n_frag + 1, (obj->n_frag > 1) ? lcl - obj->n_frag + 2 : term);
1256:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1257:Middlewares/Third_Party/FatFs/src/ff.c **** obj->n_frag--;
1258:Middlewares/Third_Party/FatFs/src/ff.c **** }
1259:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1260:Middlewares/Third_Party/FatFs/src/ff.c **** }
1261:Middlewares/Third_Party/FatFs/src/ff.c ****
1262:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_EXFAT && !_FS_READONLY */
1263:Middlewares/Third_Party/FatFs/src/ff.c ****
1264:Middlewares/Third_Party/FatFs/src/ff.c ****
1265:Middlewares/Third_Party/FatFs/src/ff.c ****
1266:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1267:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1268:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT handling - Remove a cluster chain */
1269:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1270:Middlewares/Third_Party/FatFs/src/ff.c **** static
1271:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */
1272:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj, /* Corresponding object */
1273:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, /* Cluster to remove a chain from */
1274:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD pclst /* Previous cluster of clst (0:an entire chain) */
1275:Middlewares/Third_Party/FatFs/src/ff.c **** )
1276:Middlewares/Third_Party/FatFs/src/ff.c **** {
1277:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
1278:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nxt;
1279:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
1280:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM
1281:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD scl = clst, ecl = clst;
1282:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1283:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM
1284:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD rt[2];
1285:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1286:Middlewares/Third_Party/FatFs/src/ff.c ****
1287:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Check if in valid range */
1288:Middlewares/Third_Party/FatFs/src/ff.c ****
1289:Middlewares/Third_Party/FatFs/src/ff.c **** /* Mark the previous cluster 'EOC' on the FAT if it exists */
1290:Middlewares/Third_Party/FatFs/src/ff.c **** if (pclst && (!_FS_EXFAT || fs->fs_type != FS_EXFAT || obj->stat != 2)) {
1291:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, pclst, 0xFFFFFFFF);
1292:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1293:Middlewares/Third_Party/FatFs/src/ff.c **** }
1294:Middlewares/Third_Party/FatFs/src/ff.c ****
1295:Middlewares/Third_Party/FatFs/src/ff.c **** /* Remove the chain */
1296:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1297:Middlewares/Third_Party/FatFs/src/ff.c **** nxt = get_fat(obj, clst); /* Get cluster status */
1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0) break; /* Empty cluster? */
ARM GAS /tmp/ccH7dUYB.s page 41
1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */
1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */
1301:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
1302:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */
1303:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1304:Middlewares/Third_Party/FatFs/src/ff.c **** }
1305:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */
1306:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
1307:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
1308:Middlewares/Third_Party/FatFs/src/ff.c **** }
1309:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM
1310:Middlewares/Third_Party/FatFs/src/ff.c **** if (ecl + 1 == nxt) { /* Is next cluster contiguous? */
1311:Middlewares/Third_Party/FatFs/src/ff.c **** ecl = nxt;
1312:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* End of contiguous cluster block */
1313:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1314:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
1315:Middlewares/Third_Party/FatFs/src/ff.c **** res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap
1316:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1317:Middlewares/Third_Party/FatFs/src/ff.c **** }
1318:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1319:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM
1320:Middlewares/Third_Party/FatFs/src/ff.c **** rt[0] = clust2sect(fs, scl); /* Start sector */
1321:Middlewares/Third_Party/FatFs/src/ff.c **** rt[1] = clust2sect(fs, ecl) + fs->csize - 1; /* End sector */
1322:Middlewares/Third_Party/FatFs/src/ff.c **** disk_ioctl(fs->drv, CTRL_TRIM, rt); /* Inform device the block can be erased */
1323:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1324:Middlewares/Third_Party/FatFs/src/ff.c **** scl = ecl = nxt;
1325:Middlewares/Third_Party/FatFs/src/ff.c **** }
1326:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1327:Middlewares/Third_Party/FatFs/src/ff.c **** clst = nxt; /* Next cluster */
1328:Middlewares/Third_Party/FatFs/src/ff.c **** } while (clst < fs->n_fatent); /* Repeat while not the last link */
1329:Middlewares/Third_Party/FatFs/src/ff.c ****
1330:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1331:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
1332:Middlewares/Third_Party/FatFs/src/ff.c **** if (pclst == 0) { /* Does the object have no chain? */
1333:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = 0; /* Change the object status 'initial' */
1334:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1335:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the c
1336:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = 2; /* Change the object status 'contiguous' */
1337:Middlewares/Third_Party/FatFs/src/ff.c **** }
1338:Middlewares/Third_Party/FatFs/src/ff.c **** }
1339:Middlewares/Third_Party/FatFs/src/ff.c **** }
1340:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1341:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1342:Middlewares/Third_Party/FatFs/src/ff.c **** }
1343:Middlewares/Third_Party/FatFs/src/ff.c ****
1344:Middlewares/Third_Party/FatFs/src/ff.c ****
1345:Middlewares/Third_Party/FatFs/src/ff.c ****
1346:Middlewares/Third_Party/FatFs/src/ff.c ****
1347:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1348:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT handling - Stretch a chain or Create a new chain */
1349:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1350:Middlewares/Third_Party/FatFs/src/ff.c **** static
1351:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk error, >=2:New cluster
1352:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj, /* Corresponding object */
1353:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst /* Cluster# to stretch, 0:Create a new chain */
1354:Middlewares/Third_Party/FatFs/src/ff.c **** )
1355:Middlewares/Third_Party/FatFs/src/ff.c **** {
ARM GAS /tmp/ccH7dUYB.s page 42
1356:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cs, ncl, scl;
1357:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
1358:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
1359:Middlewares/Third_Party/FatFs/src/ff.c ****
1360:Middlewares/Third_Party/FatFs/src/ff.c ****
1361:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Create a new chain */
1362:Middlewares/Third_Party/FatFs/src/ff.c **** scl = fs->last_clst; /* Get suggested cluster to start from */
1363:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0 || scl >= fs->n_fatent) scl = 1;
1364:Middlewares/Third_Party/FatFs/src/ff.c **** }
1365:Middlewares/Third_Party/FatFs/src/ff.c **** else { /* Stretch current chain */
1366:Middlewares/Third_Party/FatFs/src/ff.c **** cs = get_fat(obj, clst); /* Check the cluster status */
1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */
1368:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */
1369:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */
1370:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst;
1371:Middlewares/Third_Party/FatFs/src/ff.c **** }
1372:Middlewares/Third_Party/FatFs/src/ff.c ****
1373:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1374:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
1375:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = find_bitmap(fs, scl, 1); /* Find a free cluster */
1376:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0 || ncl == 0xFFFFFFFF) return ncl; /* No free cluster or hard error? */
1377:Middlewares/Third_Party/FatFs/src/ff.c **** res = change_bitmap(fs, ncl, 1, 1); /* Mark the cluster 'in use' */
1378:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_INT_ERR) return 1;
1379:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_DISK_ERR) return 0xFFFFFFFF;
1380:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Is it a new chain? */
1381:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = 2; /* Set status 'contiguous' */
1382:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* It is a stretched chain */
1383:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat == 2 && ncl != scl + 1) { /* Is the chain got fragmented? */
1384:Middlewares/Third_Party/FatFs/src/ff.c **** obj->n_cont = scl - obj->sclust; /* Set size of the contiguous part */
1385:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = 3; /* Change status 'just fragmented' */
1386:Middlewares/Third_Party/FatFs/src/ff.c **** }
1387:Middlewares/Third_Party/FatFs/src/ff.c **** }
1388:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->stat != 2) { /* Is the file non-contiguous? */
1389:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == clst + 1) { /* Is the cluster next to previous one? */
1390:Middlewares/Third_Party/FatFs/src/ff.c **** obj->n_frag = obj->n_frag ? obj->n_frag + 1 : 2; /* Increment size of last framgent */
1391:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* New fragment */
1392:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->n_frag == 0) obj->n_frag = 1;
1393:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_last_frag(obj, clst, ncl); /* Fill last fragment on the FAT and link it to new one *
1394:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) obj->n_frag = 1;
1395:Middlewares/Third_Party/FatFs/src/ff.c **** }
1396:Middlewares/Third_Party/FatFs/src/ff.c **** }
1397:Middlewares/Third_Party/FatFs/src/ff.c **** } else
1398:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1399:Middlewares/Third_Party/FatFs/src/ff.c **** { /* On the FAT12/16/32 volume */
1400:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = scl; /* Start cluster */
1401:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
1402:Middlewares/Third_Party/FatFs/src/ff.c **** ncl++; /* Next cluster */
1403:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl >= fs->n_fatent) { /* Check wrap-around */
1404:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2;
1405:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl > scl) return 0; /* No free cluster */
1406:Middlewares/Third_Party/FatFs/src/ff.c **** }
1407:Middlewares/Third_Party/FatFs/src/ff.c **** cs = get_fat(obj, ncl); /* Get the cluster status */
1408:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0) break; /* Found a free cluster */
1409:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */
1410:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == scl) return 0; /* No free cluster */
1411:Middlewares/Third_Party/FatFs/src/ff.c **** }
1412:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */
ARM GAS /tmp/ccH7dUYB.s page 43
1413:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) {
1414:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
1415:Middlewares/Third_Party/FatFs/src/ff.c **** }
1416:Middlewares/Third_Party/FatFs/src/ff.c **** }
1417:Middlewares/Third_Party/FatFs/src/ff.c ****
1418:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Update FSINFO if function succeeded. */
1419:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ncl;
1420:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--;
1421:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
1422:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1423:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Generate error status */
1424:Middlewares/Third_Party/FatFs/src/ff.c **** }
1425:Middlewares/Third_Party/FatFs/src/ff.c ****
1426:Middlewares/Third_Party/FatFs/src/ff.c **** return ncl; /* Return new cluster number or error status */
1427:Middlewares/Third_Party/FatFs/src/ff.c **** }
1428:Middlewares/Third_Party/FatFs/src/ff.c ****
1429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
1430:Middlewares/Third_Party/FatFs/src/ff.c ****
1431:Middlewares/Third_Party/FatFs/src/ff.c ****
1432:Middlewares/Third_Party/FatFs/src/ff.c ****
1433:Middlewares/Third_Party/FatFs/src/ff.c ****
1434:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
1435:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1436:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT handling - Convert offset into cluster with link map table */
1437:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1438:Middlewares/Third_Party/FatFs/src/ff.c ****
1439:Middlewares/Third_Party/FatFs/src/ff.c **** static
1440:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clmt_clust ( /* <2:Error, >=2:Cluster number */
1441:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
1442:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ofs /* File offset to be converted to cluster# */
1443:Middlewares/Third_Party/FatFs/src/ff.c **** )
1444:Middlewares/Third_Party/FatFs/src/ff.c **** {
947 .loc 1 1444 1 is_stmt 1 view -0
948 .cfi_startproc
949 @ args = 0, pretend = 0, frame = 0
950 @ frame_needed = 0, uses_anonymous_args = 0
951 @ link register save eliminated.
1445:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl, ncl, *tbl;
952 .loc 1 1445 2 view .LVU266
1446:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = fp->obj.fs;
953 .loc 1 1446 2 view .LVU267
954 .loc 1 1446 9 is_stmt 0 view .LVU268
955 0000 0268 ldr r2, [r0]
956 .LVL90:
1447:Middlewares/Third_Party/FatFs/src/ff.c ****
1448:Middlewares/Third_Party/FatFs/src/ff.c ****
1449:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl + 1; /* Top of CLMT */
957 .loc 1 1449 2 is_stmt 1 view .LVU269
958 .loc 1 1449 10 is_stmt 0 view .LVU270
959 0002 C36A ldr r3, [r0, #44]
960 .loc 1 1449 6 view .LVU271
961 0004 0433 adds r3, r3, #4
962 .LVL91:
1450:Middlewares/Third_Party/FatFs/src/ff.c **** cl = (DWORD)(ofs / SS(fs) / fs->csize); /* Cluster order from top of the file */
963 .loc 1 1450 2 is_stmt 1 view .LVU272
964 .loc 1 1450 21 is_stmt 0 view .LVU273
965 0006 9089 ldrh r0, [r2, #12]
ARM GAS /tmp/ccH7dUYB.s page 44
966 .LVL92:
967 .loc 1 1450 19 view .LVU274
968 0008 B1FBF0F1 udiv r1, r1, r0
969 .LVL93:
970 .loc 1 1450 32 view .LVU275
971 000c 5289 ldrh r2, [r2, #10]
972 .LVL94:
973 .loc 1 1450 5 view .LVU276
974 000e B1FBF2F1 udiv r1, r1, r2
975 .LVL95:
976 .loc 1 1450 5 view .LVU277
977 0012 01E0 b .L89
978 .LVL96:
979 .L90:
1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
1452:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = *tbl++; /* Number of cluters in the fragment */
1453:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0) return 0; /* End of table? (error) */
1454:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl < ncl) break; /* In this fragment? */
1455:Middlewares/Third_Party/FatFs/src/ff.c **** cl -= ncl; tbl++; /* Next fragment */
980 .loc 1 1455 3 is_stmt 1 view .LVU278
981 .loc 1 1455 6 is_stmt 0 view .LVU279
982 0014 091A subs r1, r1, r0
983 .LVL97:
984 .loc 1 1455 14 is_stmt 1 view .LVU280
985 .loc 1 1455 17 is_stmt 0 view .LVU281
986 0016 0833 adds r3, r3, #8
987 .LVL98:
1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
988 .loc 1 1451 2 is_stmt 1 view .LVU282
989 .L89:
1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
990 .loc 1 1451 2 view .LVU283
1452:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0) return 0; /* End of table? (error) */
991 .loc 1 1452 3 view .LVU284
1452:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0) return 0; /* End of table? (error) */
992 .loc 1 1452 7 is_stmt 0 view .LVU285
993 0018 1868 ldr r0, [r3]
994 .LVL99:
1453:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl < ncl) break; /* In this fragment? */
995 .loc 1 1453 3 is_stmt 1 view .LVU286
1453:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl < ncl) break; /* In this fragment? */
996 .loc 1 1453 6 is_stmt 0 view .LVU287
997 001a 18B1 cbz r0, .L86
1454:Middlewares/Third_Party/FatFs/src/ff.c **** cl -= ncl; tbl++; /* Next fragment */
998 .loc 1 1454 3 is_stmt 1 view .LVU288
1454:Middlewares/Third_Party/FatFs/src/ff.c **** cl -= ncl; tbl++; /* Next fragment */
999 .loc 1 1454 6 is_stmt 0 view .LVU289
1000 001c 8142 cmp r1, r0
1001 001e F9D2 bcs .L90
1456:Middlewares/Third_Party/FatFs/src/ff.c **** }
1457:Middlewares/Third_Party/FatFs/src/ff.c **** return cl + *tbl; /* Return the cluster number */
1002 .loc 1 1457 2 is_stmt 1 view .LVU290
1003 .loc 1 1457 14 is_stmt 0 view .LVU291
1004 0020 5868 ldr r0, [r3, #4]
1005 .LVL100:
1006 .loc 1 1457 12 view .LVU292
1007 0022 0844 add r0, r0, r1
ARM GAS /tmp/ccH7dUYB.s page 45
1008 .L86:
1458:Middlewares/Third_Party/FatFs/src/ff.c **** }
1009 .loc 1 1458 1 view .LVU293
1010 0024 7047 bx lr
1011 .cfi_endproc
1012 .LFE1204:
1014 .section .text.ld_clust,"ax",%progbits
1015 .align 1
1016 .syntax unified
1017 .thumb
1018 .thumb_func
1020 ld_clust:
1021 .LVL101:
1022 .LFB1208:
1459:Middlewares/Third_Party/FatFs/src/ff.c ****
1460:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_FASTSEEK */
1461:Middlewares/Third_Party/FatFs/src/ff.c ****
1462:Middlewares/Third_Party/FatFs/src/ff.c ****
1463:Middlewares/Third_Party/FatFs/src/ff.c ****
1464:Middlewares/Third_Party/FatFs/src/ff.c ****
1465:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1466:Middlewares/Third_Party/FatFs/src/ff.c **** /* Directory handling - Set directory index */
1467:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1468:Middlewares/Third_Party/FatFs/src/ff.c ****
1469:Middlewares/Third_Party/FatFs/src/ff.c **** static
1470:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */
1471:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to directory object */
1472:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs /* Offset of directory table */
1473:Middlewares/Third_Party/FatFs/src/ff.c **** )
1474:Middlewares/Third_Party/FatFs/src/ff.c **** {
1475:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD csz, clst;
1476:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
1477:Middlewares/Third_Party/FatFs/src/ff.c ****
1478:Middlewares/Third_Party/FatFs/src/ff.c ****
1479:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR) || ofs % SZDIRE)
1480:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR;
1481:Middlewares/Third_Party/FatFs/src/ff.c **** }
1482:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dptr = ofs; /* Set current offset */
1483:Middlewares/Third_Party/FatFs/src/ff.c **** clst = dp->obj.sclust; /* Table start cluster (0:root) */
1484:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */
1485:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase;
1486:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */
1487:Middlewares/Third_Party/FatFs/src/ff.c **** }
1488:Middlewares/Third_Party/FatFs/src/ff.c ****
1489:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Static table (root-directory in FAT12/16) */
1490:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */
1491:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
1492:Middlewares/Third_Party/FatFs/src/ff.c ****
1493:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Dynamic table (sub-directory or root-directory in FAT32+) */
1494:Middlewares/Third_Party/FatFs/src/ff.c **** csz = (DWORD)fs->csize * SS(fs); /* Bytes per cluster */
1495:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */
1496:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, clst); /* Get next cluster */
1497:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
1498:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal
1499:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
1500:Middlewares/Third_Party/FatFs/src/ff.c **** }
1501:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst);
ARM GAS /tmp/ccH7dUYB.s page 46
1502:Middlewares/Third_Party/FatFs/src/ff.c **** }
1503:Middlewares/Third_Party/FatFs/src/ff.c **** dp->clust = clst; /* Current cluster# */
1504:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return FR_INT_ERR;
1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */
1506:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */
1507:Middlewares/Third_Party/FatFs/src/ff.c ****
1508:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1509:Middlewares/Third_Party/FatFs/src/ff.c **** }
1510:Middlewares/Third_Party/FatFs/src/ff.c ****
1511:Middlewares/Third_Party/FatFs/src/ff.c ****
1512:Middlewares/Third_Party/FatFs/src/ff.c ****
1513:Middlewares/Third_Party/FatFs/src/ff.c ****
1514:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1515:Middlewares/Third_Party/FatFs/src/ff.c **** /* Directory handling - Move directory table index next */
1516:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1517:Middlewares/Third_Party/FatFs/src/ff.c ****
1518:Middlewares/Third_Party/FatFs/src/ff.c **** static
1519:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Could not stretch */
1520:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the directory object */
1521:Middlewares/Third_Party/FatFs/src/ff.c **** int stretch /* 0: Do not stretch table, 1: Stretch table if needed */
1522:Middlewares/Third_Party/FatFs/src/ff.c **** )
1523:Middlewares/Third_Party/FatFs/src/ff.c **** {
1524:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs, clst;
1525:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
1526:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1527:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n;
1528:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1529:Middlewares/Third_Party/FatFs/src/ff.c ****
1530:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = dp->dptr + SZDIRE; /* Next entry */
1531:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect || ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) re
1532:Middlewares/Third_Party/FatFs/src/ff.c ****
1533:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs) == 0) { /* Sector changed? */
1534:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */
1535:Middlewares/Third_Party/FatFs/src/ff.c ****
1536:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->clust) { /* Static table */
1537:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */
1538:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
1539:Middlewares/Third_Party/FatFs/src/ff.c **** }
1540:Middlewares/Third_Party/FatFs/src/ff.c **** }
1541:Middlewares/Third_Party/FatFs/src/ff.c **** else { /* Dynamic table */
1542:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ofs / SS(fs) & (fs->csize - 1)) == 0) { /* Cluster changed? */
1543:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */
1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
1546:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */
1547:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1548:Middlewares/Third_Party/FatFs/src/ff.c **** if (!stretch) { /* If no stretch, report EOT */
1549:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
1550:Middlewares/Third_Party/FatFs/src/ff.c **** }
1551:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&dp->obj, dp->clust); /* Allocate a cluster */
1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */
1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */
1554:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
1555:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */
1556:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) dp->obj.stat |= 4; /* The directory needs to be updated */
1557:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */
1558:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
ARM GAS /tmp/ccH7dUYB.s page 47
1559:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 0, fs->winsect = clust2sect(fs, clst); n < fs->csize; n++, fs->winsect++) { /* Fill t
1560:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
1561:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR;
1562:Middlewares/Third_Party/FatFs/src/ff.c **** }
1563:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect -= n; /* Restore window offset */
1564:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1565:Middlewares/Third_Party/FatFs/src/ff.c **** if (!stretch) dp->sect = 0; /* (this line is to suppress compiler warning) */
1566:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; /* Report EOT */
1567:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1568:Middlewares/Third_Party/FatFs/src/ff.c **** }
1569:Middlewares/Third_Party/FatFs/src/ff.c **** dp->clust = clst; /* Initialize data for new cluster */
1570:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst);
1571:Middlewares/Third_Party/FatFs/src/ff.c **** }
1572:Middlewares/Third_Party/FatFs/src/ff.c **** }
1573:Middlewares/Third_Party/FatFs/src/ff.c **** }
1574:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dptr = ofs; /* Current entry */
1575:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */
1576:Middlewares/Third_Party/FatFs/src/ff.c ****
1577:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1578:Middlewares/Third_Party/FatFs/src/ff.c **** }
1579:Middlewares/Third_Party/FatFs/src/ff.c ****
1580:Middlewares/Third_Party/FatFs/src/ff.c ****
1581:Middlewares/Third_Party/FatFs/src/ff.c ****
1582:Middlewares/Third_Party/FatFs/src/ff.c ****
1583:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1584:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1585:Middlewares/Third_Party/FatFs/src/ff.c **** /* Directory handling - Reserve a block of directory entries */
1586:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1587:Middlewares/Third_Party/FatFs/src/ff.c ****
1588:Middlewares/Third_Party/FatFs/src/ff.c **** static
1589:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_alloc ( /* FR_OK(0):succeeded, !=0:error */
1590:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the directory object */
1591:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nent /* Number of contiguous entries to allocate */
1592:Middlewares/Third_Party/FatFs/src/ff.c **** )
1593:Middlewares/Third_Party/FatFs/src/ff.c **** {
1594:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
1595:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n;
1596:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
1597:Middlewares/Third_Party/FatFs/src/ff.c ****
1598:Middlewares/Third_Party/FatFs/src/ff.c ****
1599:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0);
1600:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
1601:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0;
1602:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1603:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
1604:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
1605:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1606:Middlewares/Third_Party/FatFs/src/ff.c **** if ((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name
1607:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1608:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) {
1609:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1610:Middlewares/Third_Party/FatFs/src/ff.c **** if (++n == nent) break; /* A block of contiguous free entries is found */
1611:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1612:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0; /* Not a blank entry. Restart to search */
1613:Middlewares/Third_Party/FatFs/src/ff.c **** }
1614:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 1);
1615:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */
ARM GAS /tmp/ccH7dUYB.s page 48
1616:Middlewares/Third_Party/FatFs/src/ff.c **** }
1617:Middlewares/Third_Party/FatFs/src/ff.c ****
1618:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_DENIED; /* No directory entry to allocate */
1619:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1620:Middlewares/Third_Party/FatFs/src/ff.c **** }
1621:Middlewares/Third_Party/FatFs/src/ff.c ****
1622:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
1623:Middlewares/Third_Party/FatFs/src/ff.c ****
1624:Middlewares/Third_Party/FatFs/src/ff.c ****
1625:Middlewares/Third_Party/FatFs/src/ff.c ****
1626:Middlewares/Third_Party/FatFs/src/ff.c ****
1627:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1628:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT: Directory handling - Load/Store start cluster number */
1629:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1630:Middlewares/Third_Party/FatFs/src/ff.c ****
1631:Middlewares/Third_Party/FatFs/src/ff.c **** static
1632:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ld_clust ( /* Returns the top cluster value of the SFN entry */
1633:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* Pointer to the fs object */
1634:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE* dir /* Pointer to the key entry */
1635:Middlewares/Third_Party/FatFs/src/ff.c **** )
1636:Middlewares/Third_Party/FatFs/src/ff.c **** {
1023 .loc 1 1636 1 is_stmt 1 view -0
1024 .cfi_startproc
1025 @ args = 0, pretend = 0, frame = 0
1026 @ frame_needed = 0, uses_anonymous_args = 0
1027 .loc 1 1636 1 is_stmt 0 view .LVU295
1028 0000 70B5 push {r4, r5, r6, lr}
1029 .LCFI10:
1030 .cfi_def_cfa_offset 16
1031 .cfi_offset 4, -16
1032 .cfi_offset 5, -12
1033 .cfi_offset 6, -8
1034 .cfi_offset 14, -4
1035 0002 0646 mov r6, r0
1036 0004 0D46 mov r5, r1
1637:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl;
1037 .loc 1 1637 2 is_stmt 1 view .LVU296
1638:Middlewares/Third_Party/FatFs/src/ff.c ****
1639:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_word(dir + DIR_FstClusLO);
1038 .loc 1 1639 2 view .LVU297
1039 .loc 1 1639 7 is_stmt 0 view .LVU298
1040 0006 01F11A00 add r0, r1, #26
1041 .LVL102:
1042 .loc 1 1639 7 view .LVU299
1043 000a FFF7FEFF bl ld_word
1044 .LVL103:
1640:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32) {
1045 .loc 1 1640 2 is_stmt 1 view .LVU300
1046 .loc 1 1640 8 is_stmt 0 view .LVU301
1047 000e 3378 ldrb r3, [r6] @ zero_extendqisi2
1048 .loc 1 1640 5 view .LVU302
1049 0010 032B cmp r3, #3
1050 0012 00D0 beq .L94
1051 .LVL104:
1052 .L91:
1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1642:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 49
1643:Middlewares/Third_Party/FatFs/src/ff.c ****
1644:Middlewares/Third_Party/FatFs/src/ff.c **** return cl;
1645:Middlewares/Third_Party/FatFs/src/ff.c **** }
1053 .loc 1 1645 1 view .LVU303
1054 0014 70BD pop {r4, r5, r6, pc}
1055 .LVL105:
1056 .L94:
1057 .loc 1 1645 1 view .LVU304
1058 0016 0446 mov r4, r0
1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1059 .loc 1 1641 3 is_stmt 1 view .LVU305
1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1060 .loc 1 1641 16 is_stmt 0 view .LVU306
1061 0018 05F11400 add r0, r5, #20
1062 .LVL106:
1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1063 .loc 1 1641 16 view .LVU307
1064 001c FFF7FEFF bl ld_word
1065 .LVL107:
1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16;
1066 .loc 1 1641 6 discriminator 1 view .LVU308
1067 0020 44EA0040 orr r0, r4, r0, lsl #16
1068 .LVL108:
1644:Middlewares/Third_Party/FatFs/src/ff.c **** }
1069 .loc 1 1644 2 is_stmt 1 view .LVU309
1644:Middlewares/Third_Party/FatFs/src/ff.c **** }
1070 .loc 1 1644 9 is_stmt 0 view .LVU310
1071 0024 F6E7 b .L91
1072 .cfi_endproc
1073 .LFE1208:
1075 .section .text.st_clust,"ax",%progbits
1076 .align 1
1077 .syntax unified
1078 .thumb
1079 .thumb_func
1081 st_clust:
1082 .LVL109:
1083 .LFB1209:
1646:Middlewares/Third_Party/FatFs/src/ff.c ****
1647:Middlewares/Third_Party/FatFs/src/ff.c ****
1648:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1649:Middlewares/Third_Party/FatFs/src/ff.c **** static
1650:Middlewares/Third_Party/FatFs/src/ff.c **** void st_clust (
1651:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* Pointer to the fs object */
1652:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dir, /* Pointer to the key entry */
1653:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl /* Value to be set */
1654:Middlewares/Third_Party/FatFs/src/ff.c **** )
1655:Middlewares/Third_Party/FatFs/src/ff.c **** {
1084 .loc 1 1655 1 is_stmt 1 view -0
1085 .cfi_startproc
1086 @ args = 0, pretend = 0, frame = 0
1087 @ frame_needed = 0, uses_anonymous_args = 0
1088 .loc 1 1655 1 is_stmt 0 view .LVU312
1089 0000 70B5 push {r4, r5, r6, lr}
1090 .LCFI11:
1091 .cfi_def_cfa_offset 16
1092 .cfi_offset 4, -16
ARM GAS /tmp/ccH7dUYB.s page 50
1093 .cfi_offset 5, -12
1094 .cfi_offset 6, -8
1095 .cfi_offset 14, -4
1096 0002 0646 mov r6, r0
1097 0004 0C46 mov r4, r1
1098 0006 1546 mov r5, r2
1656:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_FstClusLO, (WORD)cl);
1099 .loc 1 1656 2 is_stmt 1 view .LVU313
1100 0008 91B2 uxth r1, r2
1101 .LVL110:
1102 .loc 1 1656 2 is_stmt 0 view .LVU314
1103 000a 04F11A00 add r0, r4, #26
1104 .LVL111:
1105 .loc 1 1656 2 view .LVU315
1106 000e FFF7FEFF bl st_word
1107 .LVL112:
1657:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32) {
1108 .loc 1 1657 2 is_stmt 1 view .LVU316
1109 .loc 1 1657 8 is_stmt 0 view .LVU317
1110 0012 3378 ldrb r3, [r6] @ zero_extendqisi2
1111 .loc 1 1657 5 view .LVU318
1112 0014 032B cmp r3, #3
1113 0016 00D0 beq .L98
1114 .L95:
1658:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16));
1659:Middlewares/Third_Party/FatFs/src/ff.c **** }
1660:Middlewares/Third_Party/FatFs/src/ff.c **** }
1115 .loc 1 1660 1 view .LVU319
1116 0018 70BD pop {r4, r5, r6, pc}
1117 .LVL113:
1118 .L98:
1658:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16));
1119 .loc 1 1658 3 is_stmt 1 view .LVU320
1120 001a 290C lsrs r1, r5, #16
1121 001c 04F11400 add r0, r4, #20
1122 0020 FFF7FEFF bl st_word
1123 .LVL114:
1124 .loc 1 1660 1 is_stmt 0 view .LVU321
1125 0024 F8E7 b .L95
1126 .cfi_endproc
1127 .LFE1209:
1129 .section .text.get_fileinfo,"ax",%progbits
1130 .align 1
1131 .syntax unified
1132 .thumb
1133 .thumb_func
1135 get_fileinfo:
1136 .LVL115:
1137 .LFB1214:
1661:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1662:Middlewares/Third_Party/FatFs/src/ff.c ****
1663:Middlewares/Third_Party/FatFs/src/ff.c ****
1664:Middlewares/Third_Party/FatFs/src/ff.c ****
1665:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
1666:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------------------------------*/
1667:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: LFN handling */
1668:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------------------------------*/
ARM GAS /tmp/ccH7dUYB.s page 51
1669:Middlewares/Third_Party/FatFs/src/ff.c **** static
1670:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30}; /* Offset of LFN characters in the direc
1671:Middlewares/Third_Party/FatFs/src/ff.c ****
1672:Middlewares/Third_Party/FatFs/src/ff.c ****
1673:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------------------------*/
1674:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: Compare a part of file name with an LFN entry */
1675:Middlewares/Third_Party/FatFs/src/ff.c **** /*--------------------------------------------------------*/
1676:Middlewares/Third_Party/FatFs/src/ff.c **** static
1677:Middlewares/Third_Party/FatFs/src/ff.c **** int cmp_lfn ( /* 1:matched, 0:not matched */
1678:Middlewares/Third_Party/FatFs/src/ff.c **** const WCHAR* lfnbuf, /* Pointer to the LFN working buffer to be compared */
1679:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dir /* Pointer to the directory entry containing the part of LFN */
1680:Middlewares/Third_Party/FatFs/src/ff.c **** )
1681:Middlewares/Third_Party/FatFs/src/ff.c **** {
1682:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, s;
1683:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR wc, uc;
1684:Middlewares/Third_Party/FatFs/src/ff.c ****
1685:Middlewares/Third_Party/FatFs/src/ff.c ****
1686:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */
1687:Middlewares/Third_Party/FatFs/src/ff.c ****
1688:Middlewares/Third_Party/FatFs/src/ff.c **** i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */
1689:Middlewares/Third_Party/FatFs/src/ff.c ****
1690:Middlewares/Third_Party/FatFs/src/ff.c **** for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */
1691:Middlewares/Third_Party/FatFs/src/ff.c **** uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */
1692:Middlewares/Third_Party/FatFs/src/ff.c **** if (wc) {
1693:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= _MAX_LFN || ff_wtoupper(uc) != ff_wtoupper(lfnbuf[i++])) { /* Compare it */
1694:Middlewares/Third_Party/FatFs/src/ff.c **** return 0; /* Not matched */
1695:Middlewares/Third_Party/FatFs/src/ff.c **** }
1696:Middlewares/Third_Party/FatFs/src/ff.c **** wc = uc;
1697:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1698:Middlewares/Third_Party/FatFs/src/ff.c **** if (uc != 0xFFFF) return 0; /* Check filler */
1699:Middlewares/Third_Party/FatFs/src/ff.c **** }
1700:Middlewares/Third_Party/FatFs/src/ff.c **** }
1701:Middlewares/Third_Party/FatFs/src/ff.c ****
1702:Middlewares/Third_Party/FatFs/src/ff.c **** if ((dir[LDIR_Ord] & LLEF) && wc && lfnbuf[i]) return 0; /* Last segment matched but different len
1703:Middlewares/Third_Party/FatFs/src/ff.c ****
1704:Middlewares/Third_Party/FatFs/src/ff.c **** return 1; /* The part of LFN matched */
1705:Middlewares/Third_Party/FatFs/src/ff.c **** }
1706:Middlewares/Third_Party/FatFs/src/ff.c ****
1707:Middlewares/Third_Party/FatFs/src/ff.c ****
1708:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT
1709:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------*/
1710:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: Pick a part of file name from an LFN entry */
1711:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------*/
1712:Middlewares/Third_Party/FatFs/src/ff.c **** static
1713:Middlewares/Third_Party/FatFs/src/ff.c **** int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */
1714:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR* lfnbuf, /* Pointer to the LFN working buffer */
1715:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dir /* Pointer to the LFN entry */
1716:Middlewares/Third_Party/FatFs/src/ff.c **** )
1717:Middlewares/Third_Party/FatFs/src/ff.c **** {
1718:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, s;
1719:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR wc, uc;
1720:Middlewares/Third_Party/FatFs/src/ff.c ****
1721:Middlewares/Third_Party/FatFs/src/ff.c ****
1722:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO is 0 */
1723:Middlewares/Third_Party/FatFs/src/ff.c ****
1724:Middlewares/Third_Party/FatFs/src/ff.c **** i = ((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the LFN buffer */
1725:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 52
1726:Middlewares/Third_Party/FatFs/src/ff.c **** for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */
1727:Middlewares/Third_Party/FatFs/src/ff.c **** uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */
1728:Middlewares/Third_Party/FatFs/src/ff.c **** if (wc) {
1729:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= _MAX_LFN) return 0; /* Buffer overflow? */
1730:Middlewares/Third_Party/FatFs/src/ff.c **** lfnbuf[i++] = wc = uc; /* Store it */
1731:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1732:Middlewares/Third_Party/FatFs/src/ff.c **** if (uc != 0xFFFF) return 0; /* Check filler */
1733:Middlewares/Third_Party/FatFs/src/ff.c **** }
1734:Middlewares/Third_Party/FatFs/src/ff.c **** }
1735:Middlewares/Third_Party/FatFs/src/ff.c ****
1736:Middlewares/Third_Party/FatFs/src/ff.c **** if (dir[LDIR_Ord] & LLEF) { /* Put terminator if it is the last LFN part */
1737:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= _MAX_LFN) return 0; /* Buffer overflow? */
1738:Middlewares/Third_Party/FatFs/src/ff.c **** lfnbuf[i] = 0;
1739:Middlewares/Third_Party/FatFs/src/ff.c **** }
1740:Middlewares/Third_Party/FatFs/src/ff.c ****
1741:Middlewares/Third_Party/FatFs/src/ff.c **** return 1; /* The part of LFN is valid */
1742:Middlewares/Third_Party/FatFs/src/ff.c **** }
1743:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1744:Middlewares/Third_Party/FatFs/src/ff.c ****
1745:Middlewares/Third_Party/FatFs/src/ff.c ****
1746:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1747:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------*/
1748:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: Create an entry of LFN entries */
1749:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------*/
1750:Middlewares/Third_Party/FatFs/src/ff.c **** static
1751:Middlewares/Third_Party/FatFs/src/ff.c **** void put_lfn (
1752:Middlewares/Third_Party/FatFs/src/ff.c **** const WCHAR* lfn, /* Pointer to the LFN */
1753:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dir, /* Pointer to the LFN entry to be created */
1754:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ord, /* LFN order (1-20) */
1755:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE sum /* Checksum of the corresponding SFN */
1756:Middlewares/Third_Party/FatFs/src/ff.c **** )
1757:Middlewares/Third_Party/FatFs/src/ff.c **** {
1758:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, s;
1759:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR wc;
1760:Middlewares/Third_Party/FatFs/src/ff.c ****
1761:Middlewares/Third_Party/FatFs/src/ff.c ****
1762:Middlewares/Third_Party/FatFs/src/ff.c **** dir[LDIR_Chksum] = sum; /* Set checksum */
1763:Middlewares/Third_Party/FatFs/src/ff.c **** dir[LDIR_Attr] = AM_LFN; /* Set attribute. LFN entry */
1764:Middlewares/Third_Party/FatFs/src/ff.c **** dir[LDIR_Type] = 0;
1765:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + LDIR_FstClusLO, 0);
1766:Middlewares/Third_Party/FatFs/src/ff.c ****
1767:Middlewares/Third_Party/FatFs/src/ff.c **** i = (ord - 1) * 13; /* Get offset in the LFN working buffer */
1768:Middlewares/Third_Party/FatFs/src/ff.c **** s = wc = 0;
1769:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1770:Middlewares/Third_Party/FatFs/src/ff.c **** if (wc != 0xFFFF) wc = lfn[i++]; /* Get an effective character */
1771:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + LfnOfs[s], wc); /* Put it */
1772:Middlewares/Third_Party/FatFs/src/ff.c **** if (wc == 0) wc = 0xFFFF; /* Padding characters for left locations */
1773:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++s < 13);
1774:Middlewares/Third_Party/FatFs/src/ff.c **** if (wc == 0xFFFF || !lfn[i]) ord |= LLEF; /* Last LFN part is the start of LFN sequence */
1775:Middlewares/Third_Party/FatFs/src/ff.c **** dir[LDIR_Ord] = ord; /* Set the LFN order */
1776:Middlewares/Third_Party/FatFs/src/ff.c **** }
1777:Middlewares/Third_Party/FatFs/src/ff.c ****
1778:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
1779:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LFN != 0 */
1780:Middlewares/Third_Party/FatFs/src/ff.c ****
1781:Middlewares/Third_Party/FatFs/src/ff.c ****
1782:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 53
1783:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 && !_FS_READONLY
1784:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1785:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: Create a Numbered SFN */
1786:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1787:Middlewares/Third_Party/FatFs/src/ff.c ****
1788:Middlewares/Third_Party/FatFs/src/ff.c **** static
1789:Middlewares/Third_Party/FatFs/src/ff.c **** void gen_numname (
1790:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dst, /* Pointer to the buffer to store numbered SFN */
1791:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE* src, /* Pointer to SFN */
1792:Middlewares/Third_Party/FatFs/src/ff.c **** const WCHAR* lfn, /* Pointer to LFN */
1793:Middlewares/Third_Party/FatFs/src/ff.c **** UINT seq /* Sequence number */
1794:Middlewares/Third_Party/FatFs/src/ff.c **** )
1795:Middlewares/Third_Party/FatFs/src/ff.c **** {
1796:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ns[8], c;
1797:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j;
1798:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR wc;
1799:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sr;
1800:Middlewares/Third_Party/FatFs/src/ff.c ****
1801:Middlewares/Third_Party/FatFs/src/ff.c ****
1802:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dst, src, 11);
1803:Middlewares/Third_Party/FatFs/src/ff.c ****
1804:Middlewares/Third_Party/FatFs/src/ff.c **** if (seq > 5) { /* In case of many collisions, generate a hash number instead of sequential number
1805:Middlewares/Third_Party/FatFs/src/ff.c **** sr = seq;
1806:Middlewares/Third_Party/FatFs/src/ff.c **** while (*lfn) { /* Create a CRC */
1807:Middlewares/Third_Party/FatFs/src/ff.c **** wc = *lfn++;
1808:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 16; i++) {
1809:Middlewares/Third_Party/FatFs/src/ff.c **** sr = (sr << 1) + (wc & 1);
1810:Middlewares/Third_Party/FatFs/src/ff.c **** wc >>= 1;
1811:Middlewares/Third_Party/FatFs/src/ff.c **** if (sr & 0x10000) sr ^= 0x11021;
1812:Middlewares/Third_Party/FatFs/src/ff.c **** }
1813:Middlewares/Third_Party/FatFs/src/ff.c **** }
1814:Middlewares/Third_Party/FatFs/src/ff.c **** seq = (UINT)sr;
1815:Middlewares/Third_Party/FatFs/src/ff.c **** }
1816:Middlewares/Third_Party/FatFs/src/ff.c ****
1817:Middlewares/Third_Party/FatFs/src/ff.c **** /* itoa (hexdecimal) */
1818:Middlewares/Third_Party/FatFs/src/ff.c **** i = 7;
1819:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1820:Middlewares/Third_Party/FatFs/src/ff.c **** c = (BYTE)((seq % 16) + '0');
1821:Middlewares/Third_Party/FatFs/src/ff.c **** if (c > '9') c += 7;
1822:Middlewares/Third_Party/FatFs/src/ff.c **** ns[i--] = c;
1823:Middlewares/Third_Party/FatFs/src/ff.c **** seq /= 16;
1824:Middlewares/Third_Party/FatFs/src/ff.c **** } while (seq);
1825:Middlewares/Third_Party/FatFs/src/ff.c **** ns[i] = '~';
1826:Middlewares/Third_Party/FatFs/src/ff.c ****
1827:Middlewares/Third_Party/FatFs/src/ff.c **** /* Append the number */
1828:Middlewares/Third_Party/FatFs/src/ff.c **** for (j = 0; j < i && dst[j] != ' '; j++) {
1829:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(dst[j])) {
1830:Middlewares/Third_Party/FatFs/src/ff.c **** if (j == i - 1) break;
1831:Middlewares/Third_Party/FatFs/src/ff.c **** j++;
1832:Middlewares/Third_Party/FatFs/src/ff.c **** }
1833:Middlewares/Third_Party/FatFs/src/ff.c **** }
1834:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1835:Middlewares/Third_Party/FatFs/src/ff.c **** dst[j++] = (i < 8) ? ns[i++] : ' ';
1836:Middlewares/Third_Party/FatFs/src/ff.c **** } while (j < 8);
1837:Middlewares/Third_Party/FatFs/src/ff.c **** }
1838:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LFN != 0 && !_FS_READONLY */
1839:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 54
1840:Middlewares/Third_Party/FatFs/src/ff.c ****
1841:Middlewares/Third_Party/FatFs/src/ff.c ****
1842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
1843:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1844:Middlewares/Third_Party/FatFs/src/ff.c **** /* FAT-LFN: Calculate checksum of an SFN entry */
1845:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1846:Middlewares/Third_Party/FatFs/src/ff.c ****
1847:Middlewares/Third_Party/FatFs/src/ff.c **** static
1848:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE sum_sfn (
1849:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE* dir /* Pointer to the SFN entry */
1850:Middlewares/Third_Party/FatFs/src/ff.c **** )
1851:Middlewares/Third_Party/FatFs/src/ff.c **** {
1852:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE sum = 0;
1853:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n = 11;
1854:Middlewares/Third_Party/FatFs/src/ff.c ****
1855:Middlewares/Third_Party/FatFs/src/ff.c **** do {
1856:Middlewares/Third_Party/FatFs/src/ff.c **** sum = (sum >> 1) + (sum << 7) + *dir++;
1857:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--n);
1858:Middlewares/Third_Party/FatFs/src/ff.c **** return sum;
1859:Middlewares/Third_Party/FatFs/src/ff.c **** }
1860:Middlewares/Third_Party/FatFs/src/ff.c ****
1861:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LFN != 0 */
1862:Middlewares/Third_Party/FatFs/src/ff.c ****
1863:Middlewares/Third_Party/FatFs/src/ff.c ****
1864:Middlewares/Third_Party/FatFs/src/ff.c ****
1865:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
1866:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1867:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Checksum */
1868:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
1869:Middlewares/Third_Party/FatFs/src/ff.c ****
1870:Middlewares/Third_Party/FatFs/src/ff.c **** static
1871:Middlewares/Third_Party/FatFs/src/ff.c **** WORD xdir_sum ( /* Get checksum of the directoly block */
1872:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE* dir /* Directory entry block to be calculated */
1873:Middlewares/Third_Party/FatFs/src/ff.c **** )
1874:Middlewares/Third_Party/FatFs/src/ff.c **** {
1875:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, szblk;
1876:Middlewares/Third_Party/FatFs/src/ff.c **** WORD sum;
1877:Middlewares/Third_Party/FatFs/src/ff.c ****
1878:Middlewares/Third_Party/FatFs/src/ff.c ****
1879:Middlewares/Third_Party/FatFs/src/ff.c **** szblk = (dir[XDIR_NumSec] + 1) * SZDIRE;
1880:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = sum = 0; i < szblk; i++) {
1881:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == XDIR_SetSum) { /* Skip sum field */
1882:Middlewares/Third_Party/FatFs/src/ff.c **** i++;
1883:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1884:Middlewares/Third_Party/FatFs/src/ff.c **** sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + dir[i];
1885:Middlewares/Third_Party/FatFs/src/ff.c **** }
1886:Middlewares/Third_Party/FatFs/src/ff.c **** }
1887:Middlewares/Third_Party/FatFs/src/ff.c **** return sum;
1888:Middlewares/Third_Party/FatFs/src/ff.c **** }
1889:Middlewares/Third_Party/FatFs/src/ff.c ****
1890:Middlewares/Third_Party/FatFs/src/ff.c ****
1891:Middlewares/Third_Party/FatFs/src/ff.c ****
1892:Middlewares/Third_Party/FatFs/src/ff.c **** static
1893:Middlewares/Third_Party/FatFs/src/ff.c **** WORD xname_sum ( /* Get check sum (to be used as hash) of the name */
1894:Middlewares/Third_Party/FatFs/src/ff.c **** const WCHAR* name /* File name to be calculated */
1895:Middlewares/Third_Party/FatFs/src/ff.c **** )
1896:Middlewares/Third_Party/FatFs/src/ff.c **** {
ARM GAS /tmp/ccH7dUYB.s page 55
1897:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR chr;
1898:Middlewares/Third_Party/FatFs/src/ff.c **** WORD sum = 0;
1899:Middlewares/Third_Party/FatFs/src/ff.c ****
1900:Middlewares/Third_Party/FatFs/src/ff.c ****
1901:Middlewares/Third_Party/FatFs/src/ff.c **** while ((chr = *name++) != 0) {
1902:Middlewares/Third_Party/FatFs/src/ff.c **** chr = ff_wtoupper(chr); /* File name needs to be ignored case */
1903:Middlewares/Third_Party/FatFs/src/ff.c **** sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr & 0xFF);
1904:Middlewares/Third_Party/FatFs/src/ff.c **** sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr >> 8);
1905:Middlewares/Third_Party/FatFs/src/ff.c **** }
1906:Middlewares/Third_Party/FatFs/src/ff.c **** return sum;
1907:Middlewares/Third_Party/FatFs/src/ff.c **** }
1908:Middlewares/Third_Party/FatFs/src/ff.c ****
1909:Middlewares/Third_Party/FatFs/src/ff.c ****
1910:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _USE_MKFS
1911:Middlewares/Third_Party/FatFs/src/ff.c **** static
1912:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD xsum32 (
1913:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE dat, /* Data to be sumed */
1914:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sum /* Previous value */
1915:Middlewares/Third_Party/FatFs/src/ff.c **** )
1916:Middlewares/Third_Party/FatFs/src/ff.c **** {
1917:Middlewares/Third_Party/FatFs/src/ff.c **** sum = ((sum & 1) ? 0x80000000 : 0) + (sum >> 1) + dat;
1918:Middlewares/Third_Party/FatFs/src/ff.c **** return sum;
1919:Middlewares/Third_Party/FatFs/src/ff.c **** }
1920:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1921:Middlewares/Third_Party/FatFs/src/ff.c ****
1922:Middlewares/Third_Party/FatFs/src/ff.c ****
1923:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2
1924:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------------*/
1925:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Get object information from a directory block */
1926:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------------*/
1927:Middlewares/Third_Party/FatFs/src/ff.c ****
1928:Middlewares/Third_Party/FatFs/src/ff.c **** static
1929:Middlewares/Third_Party/FatFs/src/ff.c **** void get_xdir_info (
1930:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dirb, /* Pointer to the direcotry entry block 85+C0+C1s */
1931:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno /* Buffer to store the extracted file information */
1932:Middlewares/Third_Party/FatFs/src/ff.c **** )
1933:Middlewares/Third_Party/FatFs/src/ff.c **** {
1934:Middlewares/Third_Party/FatFs/src/ff.c **** UINT di, si;
1935:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR w;
1936:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_LFN_UNICODE
1937:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nc;
1938:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1939:Middlewares/Third_Party/FatFs/src/ff.c ****
1940:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get file name */
1941:Middlewares/Third_Party/FatFs/src/ff.c **** di = 0;
1942:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
1943:Middlewares/Third_Party/FatFs/src/ff.c **** for (si = SZDIRE * 2; di < dirb[XDIR_NumName]; si += 2, di++) {
1944:Middlewares/Third_Party/FatFs/src/ff.c **** if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */
1945:Middlewares/Third_Party/FatFs/src/ff.c **** w = ld_word(dirb + si); /* Get a character */
1946:Middlewares/Third_Party/FatFs/src/ff.c **** if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow --> inaccessible object name */
1947:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[di] = w; /* Store it */
1948:Middlewares/Third_Party/FatFs/src/ff.c **** }
1949:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1950:Middlewares/Third_Party/FatFs/src/ff.c **** for (si = SZDIRE * 2, nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) {
1951:Middlewares/Third_Party/FatFs/src/ff.c **** if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */
1952:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(ld_word(dirb + si), 0); /* Get a character and Unicode -> OEM */
1953:Middlewares/Third_Party/FatFs/src/ff.c **** if (_DF1S && w >= 0x100) { /* Is it a double byte char? (always false at SBCS cfg) */
ARM GAS /tmp/ccH7dUYB.s page 56
1954:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[di++] = (char)(w >> 8); /* Put 1st byte of the DBC */
1955:Middlewares/Third_Party/FatFs/src/ff.c **** }
1956:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == 0 || di >= _MAX_LFN) { di = 0; break; } /* Invalid char or buffer overflow --> inaccessi
1957:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[di++] = (char)w;
1958:Middlewares/Third_Party/FatFs/src/ff.c **** }
1959:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1960:Middlewares/Third_Party/FatFs/src/ff.c **** if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object name? */
1961:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[di] = 0; /* Terminate file name */
1962:Middlewares/Third_Party/FatFs/src/ff.c ****
1963:Middlewares/Third_Party/FatFs/src/ff.c **** fno->altname[0] = 0; /* No SFN */
1964:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fattrib = dirb[XDIR_Attr]; /* Attribute */
1965:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fsize = (fno->fattrib & AM_DIR) ? 0 : ld_qword(dirb + XDIR_FileSize); /* Size */
1966:Middlewares/Third_Party/FatFs/src/ff.c **** fno->ftime = ld_word(dirb + XDIR_ModTime + 0); /* Time */
1967:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fdate = ld_word(dirb + XDIR_ModTime + 2); /* Date */
1968:Middlewares/Third_Party/FatFs/src/ff.c **** }
1969:Middlewares/Third_Party/FatFs/src/ff.c ****
1970:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */
1971:Middlewares/Third_Party/FatFs/src/ff.c ****
1972:Middlewares/Third_Party/FatFs/src/ff.c ****
1973:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------*/
1974:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Get a directry entry block */
1975:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------*/
1976:Middlewares/Third_Party/FatFs/src/ff.c ****
1977:Middlewares/Third_Party/FatFs/src/ff.c **** static
1978:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */
1979:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp /* Pointer to the reading direcotry object pointing the 85 entry */
1980:Middlewares/Third_Party/FatFs/src/ff.c **** )
1981:Middlewares/Third_Party/FatFs/src/ff.c **** {
1982:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
1983:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, sz_ent;
1984:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the on-memory direcotry entry block 85+C0+C1s */
1985:Middlewares/Third_Party/FatFs/src/ff.c ****
1986:Middlewares/Third_Party/FatFs/src/ff.c ****
1987:Middlewares/Third_Party/FatFs/src/ff.c **** /* Load 85 entry */
1988:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(dp->obj.fs, dp->sect);
1989:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1990:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR;
1991:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dirb + 0, dp->dir, SZDIRE);
1992:Middlewares/Third_Party/FatFs/src/ff.c **** sz_ent = (dirb[XDIR_NumSec] + 1) * SZDIRE;
1993:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_ent < 3 * SZDIRE || sz_ent > 19 * SZDIRE) return FR_INT_ERR;
1994:Middlewares/Third_Party/FatFs/src/ff.c ****
1995:Middlewares/Third_Party/FatFs/src/ff.c **** /* Load C0 entry */
1996:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0);
1997:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
1998:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(dp->obj.fs, dp->sect);
1999:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2000:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR;
2001:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dirb + SZDIRE, dp->dir, SZDIRE);
2002:Middlewares/Third_Party/FatFs/src/ff.c **** if (MAXDIRB(dirb[XDIR_NumName]) > sz_ent) return FR_INT_ERR;
2003:Middlewares/Third_Party/FatFs/src/ff.c ****
2004:Middlewares/Third_Party/FatFs/src/ff.c **** /* Load C1 entries */
2005:Middlewares/Third_Party/FatFs/src/ff.c **** i = SZDIRE * 2; /* C1 offset */
2006:Middlewares/Third_Party/FatFs/src/ff.c **** do {
2007:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0);
2008:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2009:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(dp->obj.fs, dp->sect);
2010:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
ARM GAS /tmp/ccH7dUYB.s page 57
2011:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR;
2012:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < MAXDIRB(_MAX_LFN)) mem_cpy(dirb + i, dp->dir, SZDIRE);
2013:Middlewares/Third_Party/FatFs/src/ff.c **** } while ((i += SZDIRE) < sz_ent);
2014:Middlewares/Third_Party/FatFs/src/ff.c ****
2015:Middlewares/Third_Party/FatFs/src/ff.c **** /* Sanity check (do it when accessible object name) */
2016:Middlewares/Third_Party/FatFs/src/ff.c **** if (i <= MAXDIRB(_MAX_LFN)) {
2017:Middlewares/Third_Party/FatFs/src/ff.c **** if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR;
2018:Middlewares/Third_Party/FatFs/src/ff.c **** }
2019:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
2020:Middlewares/Third_Party/FatFs/src/ff.c **** }
2021:Middlewares/Third_Party/FatFs/src/ff.c ****
2022:Middlewares/Third_Party/FatFs/src/ff.c ****
2023:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY || _FS_RPATH != 0
2024:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------*/
2025:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Load the object's directory entry block */
2026:Middlewares/Third_Party/FatFs/src/ff.c **** /*------------------------------------------------*/
2027:Middlewares/Third_Party/FatFs/src/ff.c **** static
2028:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT load_obj_dir (
2029:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Blank directory object to be used to access containing direcotry */
2030:Middlewares/Third_Party/FatFs/src/ff.c **** const _FDID* obj /* Object with its containing directory information */
2031:Middlewares/Third_Party/FatFs/src/ff.c **** )
2032:Middlewares/Third_Party/FatFs/src/ff.c **** {
2033:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2034:Middlewares/Third_Party/FatFs/src/ff.c ****
2035:Middlewares/Third_Party/FatFs/src/ff.c **** /* Open object containing directory */
2036:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.fs = obj->fs;
2037:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.sclust = obj->c_scl;
2038:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.stat = (BYTE)obj->c_size;
2039:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.objsize = obj->c_size & 0xFFFFFF00;
2040:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = obj->c_ofs;
2041:Middlewares/Third_Party/FatFs/src/ff.c ****
2042:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, dp->blk_ofs); /* Goto object's entry block */
2043:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2044:Middlewares/Third_Party/FatFs/src/ff.c **** res = load_xdir(dp); /* Load the object's entry block */
2045:Middlewares/Third_Party/FatFs/src/ff.c **** }
2046:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2047:Middlewares/Third_Party/FatFs/src/ff.c **** }
2048:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2049:Middlewares/Third_Party/FatFs/src/ff.c ****
2050:Middlewares/Third_Party/FatFs/src/ff.c ****
2051:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
2052:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------*/
2053:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Store the directory block to the media */
2054:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------*/
2055:Middlewares/Third_Party/FatFs/src/ff.c **** static
2056:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT store_xdir (
2057:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp /* Pointer to the direcotry object */
2058:Middlewares/Third_Party/FatFs/src/ff.c **** )
2059:Middlewares/Third_Party/FatFs/src/ff.c **** {
2060:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2061:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nent;
2062:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the direcotry entry block 85+C0+C1s */
2063:Middlewares/Third_Party/FatFs/src/ff.c ****
2064:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create set sum */
2065:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dirb + XDIR_SetSum, xdir_sum(dirb));
2066:Middlewares/Third_Party/FatFs/src/ff.c **** nent = dirb[XDIR_NumSec] + 1;
2067:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 58
2068:Middlewares/Third_Party/FatFs/src/ff.c **** /* Store the set of directory to the volume */
2069:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, dp->blk_ofs);
2070:Middlewares/Third_Party/FatFs/src/ff.c **** while (res == FR_OK) {
2071:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(dp->obj.fs, dp->sect);
2072:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2073:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir, dirb, SZDIRE);
2074:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.fs->wflag = 1;
2075:Middlewares/Third_Party/FatFs/src/ff.c **** if (--nent == 0) break;
2076:Middlewares/Third_Party/FatFs/src/ff.c **** dirb += SZDIRE;
2077:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0);
2078:Middlewares/Third_Party/FatFs/src/ff.c **** }
2079:Middlewares/Third_Party/FatFs/src/ff.c **** return (res == FR_OK || res == FR_DISK_ERR) ? res : FR_INT_ERR;
2080:Middlewares/Third_Party/FatFs/src/ff.c **** }
2081:Middlewares/Third_Party/FatFs/src/ff.c ****
2082:Middlewares/Third_Party/FatFs/src/ff.c ****
2083:Middlewares/Third_Party/FatFs/src/ff.c ****
2084:Middlewares/Third_Party/FatFs/src/ff.c **** /*-------------------------------------------*/
2085:Middlewares/Third_Party/FatFs/src/ff.c **** /* exFAT: Create a new directory enrty block */
2086:Middlewares/Third_Party/FatFs/src/ff.c **** /*-------------------------------------------*/
2087:Middlewares/Third_Party/FatFs/src/ff.c ****
2088:Middlewares/Third_Party/FatFs/src/ff.c **** static
2089:Middlewares/Third_Party/FatFs/src/ff.c **** void create_xdir (
2090:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE* dirb, /* Pointer to the direcotry entry block buffer */
2091:Middlewares/Third_Party/FatFs/src/ff.c **** const WCHAR* lfn /* Pointer to the nul terminated file name */
2092:Middlewares/Third_Party/FatFs/src/ff.c **** )
2093:Middlewares/Third_Party/FatFs/src/ff.c **** {
2094:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
2095:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE nb, nc;
2096:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR chr;
2097:Middlewares/Third_Party/FatFs/src/ff.c ****
2098:Middlewares/Third_Party/FatFs/src/ff.c ****
2099:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create 85+C0 entry */
2100:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dirb, 0, 2 * SZDIRE);
2101:Middlewares/Third_Party/FatFs/src/ff.c **** dirb[XDIR_Type] = 0x85;
2102:Middlewares/Third_Party/FatFs/src/ff.c **** dirb[XDIR_Type + SZDIRE] = 0xC0;
2103:Middlewares/Third_Party/FatFs/src/ff.c ****
2104:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create C1 entries */
2105:Middlewares/Third_Party/FatFs/src/ff.c **** nc = 0; nb = 1; chr = 1; i = SZDIRE * 2;
2106:Middlewares/Third_Party/FatFs/src/ff.c **** do {
2107:Middlewares/Third_Party/FatFs/src/ff.c **** dirb[i++] = 0xC1; dirb[i++] = 0; /* Entry type C1 */
2108:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Fill name field */
2109:Middlewares/Third_Party/FatFs/src/ff.c **** if (chr && (chr = lfn[nc]) != 0) nc++; /* Get a character if exist */
2110:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dirb + i, chr); /* Store it */
2111:Middlewares/Third_Party/FatFs/src/ff.c **** } while ((i += 2) % SZDIRE != 0);
2112:Middlewares/Third_Party/FatFs/src/ff.c **** nb++;
2113:Middlewares/Third_Party/FatFs/src/ff.c **** } while (lfn[nc]); /* Fill next entry if any char follows */
2114:Middlewares/Third_Party/FatFs/src/ff.c ****
2115:Middlewares/Third_Party/FatFs/src/ff.c **** dirb[XDIR_NumName] = nc; /* Set name length */
2116:Middlewares/Third_Party/FatFs/src/ff.c **** dirb[XDIR_NumSec] = nb; /* Set block length */
2117:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */
2118:Middlewares/Third_Party/FatFs/src/ff.c **** }
2119:Middlewares/Third_Party/FatFs/src/ff.c ****
2120:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
2121:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_EXFAT */
2122:Middlewares/Third_Party/FatFs/src/ff.c ****
2123:Middlewares/Third_Party/FatFs/src/ff.c ****
2124:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 59
2125:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT
2126:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2127:Middlewares/Third_Party/FatFs/src/ff.c **** /* Read an object from the directory */
2128:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2129:Middlewares/Third_Party/FatFs/src/ff.c ****
2130:Middlewares/Third_Party/FatFs/src/ff.c **** static
2131:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_read (
2132:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the directory object */
2133:Middlewares/Third_Party/FatFs/src/ff.c **** int vol /* Filtered by 0:file/directory or 1:volume label */
2134:Middlewares/Third_Party/FatFs/src/ff.c **** )
2135:Middlewares/Third_Party/FatFs/src/ff.c **** {
2136:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_NO_FILE;
2137:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
2138:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, c;
2139:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
2140:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ord = 0xFF, sum = 0xFF;
2141:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2142:Middlewares/Third_Party/FatFs/src/ff.c ****
2143:Middlewares/Third_Party/FatFs/src/ff.c **** while (dp->sect) {
2144:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2145:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2146:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; /* Test for the entry type */
2147:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) {
2148:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; break; /* Reached to end of the directory */
2149:Middlewares/Third_Party/FatFs/src/ff.c **** }
2150:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
2152:Middlewares/Third_Party/FatFs/src/ff.c **** if (_USE_LABEL && vol) {
2153:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0x83) break; /* Volume label entry? */
2154:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2155:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0x85) { /* Start of the file entry block? */
2156:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = dp->dptr; /* Get location of the block */
2157:Middlewares/Third_Party/FatFs/src/ff.c **** res = load_xdir(dp); /* Load the entry block */
2158:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2159:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.attr = fs->dirbuf[XDIR_Attr] & AM_MASK; /* Get attribute */
2160:Middlewares/Third_Party/FatFs/src/ff.c **** }
2161:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2162:Middlewares/Third_Party/FatFs/src/ff.c **** }
2163:Middlewares/Third_Party/FatFs/src/ff.c **** }
2164:Middlewares/Third_Party/FatFs/src/ff.c **** } else
2165:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2166:Middlewares/Third_Party/FatFs/src/ff.c **** { /* On the FAT12/16/32 volume */
2167:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */
2168:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2169:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == DDEM || c == '.' || (int)((a & ~AM_ARC) == AM_VOL) != vol) { /* An entry without valid
2170:Middlewares/Third_Party/FatFs/src/ff.c **** ord = 0xFF;
2171:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2172:Middlewares/Third_Party/FatFs/src/ff.c **** if (a == AM_LFN) { /* An LFN entry is found */
2173:Middlewares/Third_Party/FatFs/src/ff.c **** if (c & LLEF) { /* Is it start of an LFN sequence? */
2174:Middlewares/Third_Party/FatFs/src/ff.c **** sum = dp->dir[LDIR_Chksum];
2175:Middlewares/Third_Party/FatFs/src/ff.c **** c &= (BYTE)~LLEF; ord = c;
2176:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = dp->dptr;
2177:Middlewares/Third_Party/FatFs/src/ff.c **** }
2178:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check LFN validity and capture it */
2179:Middlewares/Third_Party/FatFs/src/ff.c **** ord = (c == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0
2180:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* An SFN entry is found */
2181:Middlewares/Third_Party/FatFs/src/ff.c **** if (ord || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */
ARM GAS /tmp/ccH7dUYB.s page 60
2182:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = 0xFFFFFFFF; /* It has no LFN. */
2183:Middlewares/Third_Party/FatFs/src/ff.c **** }
2184:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2185:Middlewares/Third_Party/FatFs/src/ff.c **** }
2186:Middlewares/Third_Party/FatFs/src/ff.c **** }
2187:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Non LFN configuration */
2188:Middlewares/Third_Party/FatFs/src/ff.c **** if (c != DDEM && c != '.' && a != AM_LFN && (int)((a & ~AM_ARC) == AM_VOL) == vol) { /* Is it a
2189:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2190:Middlewares/Third_Party/FatFs/src/ff.c **** }
2191:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2192:Middlewares/Third_Party/FatFs/src/ff.c **** }
2193:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Next entry */
2194:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2195:Middlewares/Third_Party/FatFs/src/ff.c **** }
2196:Middlewares/Third_Party/FatFs/src/ff.c ****
2197:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) dp->sect = 0; /* Terminate the read operation on error or EOT */
2198:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2199:Middlewares/Third_Party/FatFs/src/ff.c **** }
2200:Middlewares/Third_Party/FatFs/src/ff.c ****
2201:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE <= 1 || _USE_LABEL || _FS_RPATH >= 2 */
2202:Middlewares/Third_Party/FatFs/src/ff.c ****
2203:Middlewares/Third_Party/FatFs/src/ff.c ****
2204:Middlewares/Third_Party/FatFs/src/ff.c ****
2205:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2206:Middlewares/Third_Party/FatFs/src/ff.c **** /* Directory handling - Find an object in the directory */
2207:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2208:Middlewares/Third_Party/FatFs/src/ff.c ****
2209:Middlewares/Third_Party/FatFs/src/ff.c **** static
2210:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */
2211:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp /* Pointer to the directory object with the file name */
2212:Middlewares/Third_Party/FatFs/src/ff.c **** )
2213:Middlewares/Third_Party/FatFs/src/ff.c **** {
2214:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2215:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
2216:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c;
2217:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
2218:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, ord, sum;
2219:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2220:Middlewares/Third_Party/FatFs/src/ff.c ****
2221:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory object */
2222:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2223:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2224:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
2225:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE nc;
2226:Middlewares/Third_Party/FatFs/src/ff.c **** UINT di, ni;
2227:Middlewares/Third_Party/FatFs/src/ff.c **** WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */
2228:Middlewares/Third_Party/FatFs/src/ff.c ****
2229:Middlewares/Third_Party/FatFs/src/ff.c **** while ((res = dir_read(dp, 0)) == FR_OK) { /* Read an item */
2230:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_LFN < 255
2231:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->dirbuf[XDIR_NumName] > _MAX_LFN) continue; /* Skip comparison if inaccessible object n
2232:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2233:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip comparison if hash mismatched
2234:Middlewares/Third_Party/FatFs/src/ff.c **** for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compa
2235:Middlewares/Third_Party/FatFs/src/ff.c **** if ((di % SZDIRE) == 0) di += 2;
2236:Middlewares/Third_Party/FatFs/src/ff.c **** if (ff_wtoupper(ld_word(fs->dirbuf + di)) != ff_wtoupper(fs->lfnbuf[ni])) break;
2237:Middlewares/Third_Party/FatFs/src/ff.c **** }
2238:Middlewares/Third_Party/FatFs/src/ff.c **** if (nc == 0 && !fs->lfnbuf[ni]) break; /* Name matched? */
ARM GAS /tmp/ccH7dUYB.s page 61
2239:Middlewares/Third_Party/FatFs/src/ff.c **** }
2240:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2241:Middlewares/Third_Party/FatFs/src/ff.c **** }
2242:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2243:Middlewares/Third_Party/FatFs/src/ff.c **** /* On the FAT12/16/32 volume */
2244:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
2245:Middlewares/Third_Party/FatFs/src/ff.c **** ord = sum = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */
2246:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2247:Middlewares/Third_Party/FatFs/src/ff.c **** do {
2248:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2249:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2250:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name];
2251:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
2252:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2253:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK;
2254:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == DDEM || ((a & AM_VOL) && a != AM_LFN)) { /* An entry without valid data */
2255:Middlewares/Third_Party/FatFs/src/ff.c **** ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */
2256:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2257:Middlewares/Third_Party/FatFs/src/ff.c **** if (a == AM_LFN) { /* An LFN entry is found */
2258:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NOLFN)) {
2259:Middlewares/Third_Party/FatFs/src/ff.c **** if (c & LLEF) { /* Is it start of LFN sequence? */
2260:Middlewares/Third_Party/FatFs/src/ff.c **** sum = dp->dir[LDIR_Chksum];
2261:Middlewares/Third_Party/FatFs/src/ff.c **** c &= (BYTE)~LLEF; ord = c; /* LFN start order */
2262:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = dp->dptr; /* Start offset of LFN */
2263:Middlewares/Third_Party/FatFs/src/ff.c **** }
2264:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check validity of the LFN entry and compare it with given name */
2265:Middlewares/Third_Party/FatFs/src/ff.c **** ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0x
2266:Middlewares/Third_Party/FatFs/src/ff.c **** }
2267:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* An SFN entry is found */
2268:Middlewares/Third_Party/FatFs/src/ff.c **** if (!ord && sum == sum_sfn(dp->dir)) break; /* LFN matched? */
2269:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_LOSS) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */
2270:Middlewares/Third_Party/FatFs/src/ff.c **** ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */
2271:Middlewares/Third_Party/FatFs/src/ff.c **** }
2272:Middlewares/Third_Party/FatFs/src/ff.c **** }
2273:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Non LFN configuration */
2274:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.attr = dp->dir[DIR_Attr] & AM_MASK;
2275:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry
2276:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2277:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Next entry */
2278:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK);
2279:Middlewares/Third_Party/FatFs/src/ff.c ****
2280:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2281:Middlewares/Third_Party/FatFs/src/ff.c **** }
2282:Middlewares/Third_Party/FatFs/src/ff.c ****
2283:Middlewares/Third_Party/FatFs/src/ff.c ****
2284:Middlewares/Third_Party/FatFs/src/ff.c ****
2285:Middlewares/Third_Party/FatFs/src/ff.c ****
2286:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
2287:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2288:Middlewares/Third_Party/FatFs/src/ff.c **** /* Register an object to the directory */
2289:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2290:Middlewares/Third_Party/FatFs/src/ff.c ****
2291:Middlewares/Third_Party/FatFs/src/ff.c **** static
2292:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many SFN collision, FR_DI
2293:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp /* Target directory with object name to be created */
2294:Middlewares/Third_Party/FatFs/src/ff.c **** )
2295:Middlewares/Third_Party/FatFs/src/ff.c **** {
ARM GAS /tmp/ccH7dUYB.s page 62
2296:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2297:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
2298:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2299:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n, nlen, nent;
2300:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE sn[12], sum;
2301:Middlewares/Third_Party/FatFs/src/ff.c ****
2302:Middlewares/Third_Party/FatFs/src/ff.c ****
2303:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->fn[NSFLAG] & (NS_DOT | NS_NONAME)) return FR_INVALID_NAME; /* Check name validity */
2304:Middlewares/Third_Party/FatFs/src/ff.c **** for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */
2305:Middlewares/Third_Party/FatFs/src/ff.c ****
2306:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2307:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
2308:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
2309:Middlewares/Third_Party/FatFs/src/ff.c ****
2310:Middlewares/Third_Party/FatFs/src/ff.c **** nent = (nlen + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */
2311:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_alloc(dp, nent); /* Allocate entries */
2312:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2313:Middlewares/Third_Party/FatFs/src/ff.c **** dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set the allocated entry block offset */
2314:Middlewares/Third_Party/FatFs/src/ff.c ****
2315:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->obj.sclust != 0 && (dp->obj.stat & 4)) { /* Has the sub-directory been stretched? */
2316:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */
2317:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_first_frag(&dp->obj); /* Fill first fragment on the FAT if needed */
2318:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2319:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if neede
2320:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2321:Middlewares/Third_Party/FatFs/src/ff.c **** res = load_obj_dir(&dj, &dp->obj); /* Load the object status */
2322:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2323:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */
2324:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize);
2325:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1;
2326:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj); /* Store the object status */
2327:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2328:Middlewares/Third_Party/FatFs/src/ff.c **** }
2329:Middlewares/Third_Party/FatFs/src/ff.c ****
2330:Middlewares/Third_Party/FatFs/src/ff.c **** create_xdir(fs->dirbuf, fs->lfnbuf); /* Create on-memory directory block to be written later */
2331:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
2332:Middlewares/Third_Party/FatFs/src/ff.c **** }
2333:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2334:Middlewares/Third_Party/FatFs/src/ff.c **** /* On the FAT12/16/32 volume */
2335:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(sn, dp->fn, 12);
2336:Middlewares/Third_Party/FatFs/src/ff.c **** if (sn[NSFLAG] & NS_LOSS) { /* When LFN is out of 8.3 format, generate a numbered name */
2337:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NOLFN; /* Find only SFN */
2338:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 1; n < 100; n++) {
2339:Middlewares/Third_Party/FatFs/src/ff.c **** gen_numname(dp->fn, sn, fs->lfnbuf, n); /* Generate a numbered name */
2340:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Check if the name collides with existing SFN */
2341:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2342:Middlewares/Third_Party/FatFs/src/ff.c **** }
2343:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 100) return FR_DENIED; /* Abort if too many collisions */
2344:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_NO_FILE) return res; /* Abort if the result is other than 'not collided' */
2345:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = sn[NSFLAG];
2346:Middlewares/Third_Party/FatFs/src/ff.c **** }
2347:Middlewares/Third_Party/FatFs/src/ff.c ****
2348:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create an SFN with/without LFNs. */
2349:Middlewares/Third_Party/FatFs/src/ff.c **** nent = (sn[NSFLAG] & NS_LFN) ? (nlen + 12) / 13 + 1 : 1; /* Number of entries to allocate */
2350:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_alloc(dp, nent); /* Allocate entries */
2351:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && --nent) { /* Set LFN entry if needed */
2352:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, dp->dptr - nent * SZDIRE);
ARM GAS /tmp/ccH7dUYB.s page 63
2353:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2354:Middlewares/Third_Party/FatFs/src/ff.c **** sum = sum_sfn(dp->fn); /* Checksum value of the SFN tied to the LFN */
2355:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Store LFN entries in bottom first */
2356:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2357:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2358:Middlewares/Third_Party/FatFs/src/ff.c **** put_lfn(fs->lfnbuf, dp->dir, (BYTE)nent, sum);
2359:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2360:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Next entry */
2361:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK && --nent);
2362:Middlewares/Third_Party/FatFs/src/ff.c **** }
2363:Middlewares/Third_Party/FatFs/src/ff.c **** }
2364:Middlewares/Third_Party/FatFs/src/ff.c ****
2365:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Non LFN configuration */
2366:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_alloc(dp, 1); /* Allocate an entry for SFN */
2367:Middlewares/Third_Party/FatFs/src/ff.c ****
2368:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2369:Middlewares/Third_Party/FatFs/src/ff.c ****
2370:Middlewares/Third_Party/FatFs/src/ff.c **** /* Set SFN entry */
2371:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2372:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2373:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2374:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */
2375:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */
2376:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
2377:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */
2378:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2379:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2380:Middlewares/Third_Party/FatFs/src/ff.c **** }
2381:Middlewares/Third_Party/FatFs/src/ff.c **** }
2382:Middlewares/Third_Party/FatFs/src/ff.c ****
2383:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2384:Middlewares/Third_Party/FatFs/src/ff.c **** }
2385:Middlewares/Third_Party/FatFs/src/ff.c ****
2386:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
2387:Middlewares/Third_Party/FatFs/src/ff.c ****
2388:Middlewares/Third_Party/FatFs/src/ff.c ****
2389:Middlewares/Third_Party/FatFs/src/ff.c ****
2390:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE == 0
2391:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2392:Middlewares/Third_Party/FatFs/src/ff.c **** /* Remove an object from the directory */
2393:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2394:Middlewares/Third_Party/FatFs/src/ff.c ****
2395:Middlewares/Third_Party/FatFs/src/ff.c **** static
2396:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */
2397:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp /* Directory object pointing the entry to be removed */
2398:Middlewares/Third_Party/FatFs/src/ff.c **** )
2399:Middlewares/Third_Party/FatFs/src/ff.c **** {
2400:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2401:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
2402:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2403:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD last = dp->dptr;
2404:Middlewares/Third_Party/FatFs/src/ff.c ****
2405:Middlewares/Third_Party/FatFs/src/ff.c **** res = (dp->blk_ofs == 0xFFFFFFFF) ? FR_OK : dir_sdi(dp, dp->blk_ofs); /* Goto top of the entry blo
2406:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2407:Middlewares/Third_Party/FatFs/src/ff.c **** do {
2408:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2409:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
ARM GAS /tmp/ccH7dUYB.s page 64
2410:Middlewares/Third_Party/FatFs/src/ff.c **** /* Mark an entry 'deleted' */
2411:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
2412:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[XDIR_Type] &= 0x7F;
2413:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* On the FAT12/16/32 volume */
2414:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM;
2415:Middlewares/Third_Party/FatFs/src/ff.c **** }
2416:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2417:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->dptr >= last) break; /* If reached last entry then all entries of the object has been de
2418:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Next entry */
2419:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK);
2420:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_INT_ERR;
2421:Middlewares/Third_Party/FatFs/src/ff.c **** }
2422:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Non LFN configuration */
2423:Middlewares/Third_Party/FatFs/src/ff.c ****
2424:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
2425:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
2426:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM;
2427:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2428:Middlewares/Third_Party/FatFs/src/ff.c **** }
2429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2430:Middlewares/Third_Party/FatFs/src/ff.c ****
2431:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2432:Middlewares/Third_Party/FatFs/src/ff.c **** }
2433:Middlewares/Third_Party/FatFs/src/ff.c ****
2434:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY && _FS_MINIMIZE == 0 */
2435:Middlewares/Third_Party/FatFs/src/ff.c ****
2436:Middlewares/Third_Party/FatFs/src/ff.c ****
2437:Middlewares/Third_Party/FatFs/src/ff.c ****
2438:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2
2439:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2440:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get file information from directory entry */
2441:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2442:Middlewares/Third_Party/FatFs/src/ff.c ****
2443:Middlewares/Third_Party/FatFs/src/ff.c **** static
2444:Middlewares/Third_Party/FatFs/src/ff.c **** void get_fileinfo ( /* No return code */
2445:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the directory object */
2446:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno /* Pointer to the file information to be filled */
2447:Middlewares/Third_Party/FatFs/src/ff.c **** )
2448:Middlewares/Third_Party/FatFs/src/ff.c **** {
1138 .loc 1 2448 1 is_stmt 1 view -0
1139 .cfi_startproc
1140 @ args = 0, pretend = 0, frame = 0
1141 @ frame_needed = 0, uses_anonymous_args = 0
1142 .loc 1 2448 1 is_stmt 0 view .LVU323
1143 0000 38B5 push {r3, r4, r5, lr}
1144 .LCFI12:
1145 .cfi_def_cfa_offset 16
1146 .cfi_offset 3, -16
1147 .cfi_offset 4, -12
1148 .cfi_offset 5, -8
1149 .cfi_offset 14, -4
2449:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j;
1150 .loc 1 2449 2 is_stmt 1 view .LVU324
2450:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c;
1151 .loc 1 2450 2 view .LVU325
2451:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tm;
1152 .loc 1 2451 2 view .LVU326
ARM GAS /tmp/ccH7dUYB.s page 65
2452:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
2453:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR w, lfv;
2454:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
2455:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2456:Middlewares/Third_Party/FatFs/src/ff.c ****
2457:Middlewares/Third_Party/FatFs/src/ff.c ****
2458:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[0] = 0; /* Invaidate file info */
1153 .loc 1 2458 2 view .LVU327
1154 .loc 1 2458 16 is_stmt 0 view .LVU328
1155 0002 0023 movs r3, #0
1156 0004 4B72 strb r3, [r1, #9]
2459:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return; /* Exit if read pointer has reached end of directory */
1157 .loc 1 2459 2 is_stmt 1 view .LVU329
1158 .loc 1 2459 9 is_stmt 0 view .LVU330
1159 0006 C369 ldr r3, [r0, #28]
1160 .loc 1 2459 5 view .LVU331
1161 0008 73B3 cbz r3, .L99
1162 000a 0546 mov r5, r0
1163 000c 0C46 mov r4, r1
2460:Middlewares/Third_Party/FatFs/src/ff.c ****
2461:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2462:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2463:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
2464:Middlewares/Third_Party/FatFs/src/ff.c **** get_xdir_info(fs->dirbuf, fno);
2465:Middlewares/Third_Party/FatFs/src/ff.c **** return;
2466:Middlewares/Third_Party/FatFs/src/ff.c **** } else
2467:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2468:Middlewares/Third_Party/FatFs/src/ff.c **** { /* On the FAT12/16/32 volume */
2469:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->blk_ofs != 0xFFFFFFFF) { /* Get LFN if available */
2470:Middlewares/Third_Party/FatFs/src/ff.c **** i = j = 0;
2471:Middlewares/Third_Party/FatFs/src/ff.c **** while ((w = fs->lfnbuf[j++]) != 0) { /* Get an LFN character */
2472:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_LFN_UNICODE
2473:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(w, 0); /* Unicode -> OEM */
2474:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == 0) { i = 0; break; } /* No LFN if it could not be converted */
2475:Middlewares/Third_Party/FatFs/src/ff.c **** if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */
2476:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[i++] = (char)(w >> 8);
2477:Middlewares/Third_Party/FatFs/src/ff.c **** }
2478:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2479:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= _MAX_LFN) { i = 0; break; } /* No LFN if buffer overflow */
2480:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[i++] = (TCHAR)w;
2481:Middlewares/Third_Party/FatFs/src/ff.c **** }
2482:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[i] = 0; /* Terminate the LFN */
2483:Middlewares/Third_Party/FatFs/src/ff.c **** }
2484:Middlewares/Third_Party/FatFs/src/ff.c **** }
2485:Middlewares/Third_Party/FatFs/src/ff.c ****
2486:Middlewares/Third_Party/FatFs/src/ff.c **** i = j = 0;
2487:Middlewares/Third_Party/FatFs/src/ff.c **** lfv = fno->fname[i]; /* LFN is exist if non-zero */
2488:Middlewares/Third_Party/FatFs/src/ff.c **** while (i < 11) { /* Copy name body and extension */
2489:Middlewares/Third_Party/FatFs/src/ff.c **** c = (TCHAR)dp->dir[i++];
2490:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */
2491:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */
2492:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) { /* Insert a . if extension is exist */
2493:Middlewares/Third_Party/FatFs/src/ff.c **** if (!lfv) fno->fname[j] = '.';
2494:Middlewares/Third_Party/FatFs/src/ff.c **** fno->altname[j++] = '.';
2495:Middlewares/Third_Party/FatFs/src/ff.c **** }
2496:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
2497:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(c) && i != 8 && i != 11 && IsDBCS2(dp->dir[i])) {
ARM GAS /tmp/ccH7dUYB.s page 66
2498:Middlewares/Third_Party/FatFs/src/ff.c **** c = c << 8 | dp->dir[i++];
2499:Middlewares/Third_Party/FatFs/src/ff.c **** }
2500:Middlewares/Third_Party/FatFs/src/ff.c **** c = ff_convert(c, 1); /* OEM -> Unicode */
2501:Middlewares/Third_Party/FatFs/src/ff.c **** if (!c) c = '?';
2502:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2503:Middlewares/Third_Party/FatFs/src/ff.c **** fno->altname[j] = c;
2504:Middlewares/Third_Party/FatFs/src/ff.c **** if (!lfv) {
2505:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsUpper(c) && (dp->dir[DIR_NTres] & ((i >= 9) ? NS_EXT : NS_BODY))) {
2506:Middlewares/Third_Party/FatFs/src/ff.c **** c += 0x20; /* To lower */
2507:Middlewares/Third_Party/FatFs/src/ff.c **** }
2508:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j] = c;
2509:Middlewares/Third_Party/FatFs/src/ff.c **** }
2510:Middlewares/Third_Party/FatFs/src/ff.c **** j++;
2511:Middlewares/Third_Party/FatFs/src/ff.c **** }
2512:Middlewares/Third_Party/FatFs/src/ff.c **** if (!lfv) {
2513:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j] = 0;
2514:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->dir[DIR_NTres]) j = 0; /* Altname is no longer needed if neither LFN nor case info is ex
2515:Middlewares/Third_Party/FatFs/src/ff.c **** }
2516:Middlewares/Third_Party/FatFs/src/ff.c **** fno->altname[j] = 0; /* Terminate the SFN */
2517:Middlewares/Third_Party/FatFs/src/ff.c ****
2518:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Non-LFN configuration */
2519:Middlewares/Third_Party/FatFs/src/ff.c **** i = j = 0;
1164 .loc 1 2519 8 view .LVU332
1165 000e 0022 movs r2, #0
1166 .loc 1 2519 4 view .LVU333
1167 0010 1346 mov r3, r2
1168 0012 06E0 b .L101
1169 .LVL116:
1170 .L103:
2520:Middlewares/Third_Party/FatFs/src/ff.c **** while (i < 11) { /* Copy name body and extension */
2521:Middlewares/Third_Party/FatFs/src/ff.c **** c = (TCHAR)dp->dir[i++];
2522:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */
2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */
2524:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */
1171 .loc 1 2524 3 is_stmt 1 view .LVU334
1172 .loc 1 2524 6 is_stmt 0 view .LVU335
1173 0014 BCF1090F cmp ip, #9
1174 0018 0FD0 beq .L108
1175 .L104:
2525:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c;
1176 .loc 1 2525 3 is_stmt 1 view .LVU336
1177 .LVL117:
1178 .loc 1 2525 19 is_stmt 0 view .LVU337
1179 001a A118 adds r1, r4, r2
1180 001c 4B72 strb r3, [r1, #9]
1181 .loc 1 2525 15 view .LVU338
1182 001e 0132 adds r2, r2, #1
1183 .LVL118:
1184 .L102:
1185 .loc 1 2525 15 view .LVU339
1186 0020 6346 mov r3, ip
1187 .LVL119:
1188 .L101:
2520:Middlewares/Third_Party/FatFs/src/ff.c **** while (i < 11) { /* Copy name body and extension */
1189 .loc 1 2520 11 is_stmt 1 view .LVU340
1190 0022 0A2B cmp r3, #10
1191 0024 0ED8 bhi .L109
ARM GAS /tmp/ccH7dUYB.s page 67
2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */
1192 .loc 1 2521 3 view .LVU341
2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */
1193 .loc 1 2521 23 is_stmt 0 view .LVU342
1194 0026 03F1010C add ip, r3, #1
1195 .LVL120:
2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */
1196 .loc 1 2521 5 view .LVU343
1197 002a 296A ldr r1, [r5, #32]
1198 002c CB5C ldrb r3, [r1, r3] @ zero_extendqisi2
1199 .LVL121:
2522:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */
1200 .loc 1 2522 3 is_stmt 1 view .LVU344
2522:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */
1201 .loc 1 2522 6 is_stmt 0 view .LVU345
1202 002e 202B cmp r3, #32
1203 0030 F6D0 beq .L102
2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */
1204 .loc 1 2523 3 is_stmt 1 view .LVU346
2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */
1205 .loc 1 2523 6 is_stmt 0 view .LVU347
1206 0032 052B cmp r3, #5
1207 0034 EED1 bne .L103
2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */
1208 .loc 1 2523 21 discriminator 1 view .LVU348
1209 0036 E523 movs r3, #229
1210 .LVL122:
2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */
1211 .loc 1 2523 21 discriminator 1 view .LVU349
1212 0038 ECE7 b .L103
1213 .LVL123:
1214 .L108:
2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c;
1215 .loc 1 2524 15 is_stmt 1 discriminator 1 view .LVU350
2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c;
1216 .loc 1 2524 31 is_stmt 0 discriminator 1 view .LVU351
1217 003a A118 adds r1, r4, r2
1218 003c 2E20 movs r0, #46
1219 003e 4872 strb r0, [r1, #9]
2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c;
1220 .loc 1 2524 27 discriminator 1 view .LVU352
1221 0040 0132 adds r2, r2, #1
1222 .LVL124:
2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c;
1223 .loc 1 2524 27 discriminator 1 view .LVU353
1224 0042 EAE7 b .L104
1225 .LVL125:
1226 .L109:
2526:Middlewares/Third_Party/FatFs/src/ff.c **** }
2527:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j] = 0;
1227 .loc 1 2527 2 is_stmt 1 view .LVU354
1228 .loc 1 2527 16 is_stmt 0 view .LVU355
1229 0044 2244 add r2, r2, r4
1230 .LVL126:
1231 .loc 1 2527 16 view .LVU356
1232 0046 0023 movs r3, #0
1233 .LVL127:
ARM GAS /tmp/ccH7dUYB.s page 68
1234 .loc 1 2527 16 view .LVU357
1235 0048 5372 strb r3, [r2, #9]
2528:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2529:Middlewares/Third_Party/FatFs/src/ff.c ****
2530:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fattrib = dp->dir[DIR_Attr]; /* Attribute */
1236 .loc 1 2530 2 is_stmt 1 view .LVU358
1237 .loc 1 2530 19 is_stmt 0 view .LVU359
1238 004a 2B6A ldr r3, [r5, #32]
1239 .loc 1 2530 15 view .LVU360
1240 004c DB7A ldrb r3, [r3, #11] @ zero_extendqisi2
1241 004e 2372 strb r3, [r4, #8]
2531:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */
1242 .loc 1 2531 2 is_stmt 1 view .LVU361
1243 .loc 1 2531 26 is_stmt 0 view .LVU362
1244 0050 286A ldr r0, [r5, #32]
1245 .loc 1 2531 15 view .LVU363
1246 0052 1C30 adds r0, r0, #28
1247 0054 FFF7FEFF bl ld_dword
1248 .LVL128:
1249 .loc 1 2531 13 discriminator 1 view .LVU364
1250 0058 2060 str r0, [r4]
2532:Middlewares/Third_Party/FatFs/src/ff.c **** tm = ld_dword(dp->dir + DIR_ModTime); /* Timestamp */
1251 .loc 1 2532 2 is_stmt 1 view .LVU365
1252 .loc 1 2532 18 is_stmt 0 view .LVU366
1253 005a 286A ldr r0, [r5, #32]
1254 .loc 1 2532 7 view .LVU367
1255 005c 1630 adds r0, r0, #22
1256 005e FFF7FEFF bl ld_dword
1257 .LVL129:
2533:Middlewares/Third_Party/FatFs/src/ff.c **** fno->ftime = (WORD)tm; fno->fdate = (WORD)(tm >> 16);
1258 .loc 1 2533 2 is_stmt 1 view .LVU368
1259 .loc 1 2533 13 is_stmt 0 view .LVU369
1260 0062 E080 strh r0, [r4, #6] @ movhi
1261 .loc 1 2533 25 is_stmt 1 view .LVU370
1262 .loc 1 2533 38 is_stmt 0 view .LVU371
1263 0064 000C lsrs r0, r0, #16
1264 .LVL130:
1265 .loc 1 2533 36 view .LVU372
1266 0066 A080 strh r0, [r4, #4] @ movhi
1267 .LVL131:
1268 .L99:
2534:Middlewares/Third_Party/FatFs/src/ff.c **** }
1269 .loc 1 2534 1 view .LVU373
1270 0068 38BD pop {r3, r4, r5, pc}
1271 .cfi_endproc
1272 .LFE1214:
1274 .section .rodata.create_name.str1.4,"aMS",%progbits,1
1275 .align 2
1276 .LC0:
1277 0000 222A2B2C .ascii "\"*+,:;<=>?[]|\177\000"
1277 3A3B3C3D
1277 3E3F5B5D
1277 7C7F00
1278 .section .text.create_name,"ax",%progbits
1279 .align 1
1280 .syntax unified
1281 .thumb
ARM GAS /tmp/ccH7dUYB.s page 69
1282 .thumb_func
1284 create_name:
1285 .LVL132:
1286 .LFB1215:
2535:Middlewares/Third_Party/FatFs/src/ff.c ****
2536:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */
2537:Middlewares/Third_Party/FatFs/src/ff.c ****
2538:Middlewares/Third_Party/FatFs/src/ff.c ****
2539:Middlewares/Third_Party/FatFs/src/ff.c ****
2540:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FIND && _FS_MINIMIZE <= 1
2541:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2542:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pattern matching */
2543:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2544:Middlewares/Third_Party/FatFs/src/ff.c ****
2545:Middlewares/Third_Party/FatFs/src/ff.c **** static
2546:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR get_achar ( /* Get a character and advances ptr 1 or 2 */
2547:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR** ptr /* Pointer to pointer to the SBCS/DBCS/Unicode string */
2548:Middlewares/Third_Party/FatFs/src/ff.c **** )
2549:Middlewares/Third_Party/FatFs/src/ff.c **** {
2550:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_LFN_UNICODE
2551:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR chr;
2552:Middlewares/Third_Party/FatFs/src/ff.c ****
2553:Middlewares/Third_Party/FatFs/src/ff.c **** chr = (BYTE)*(*ptr)++; /* Get a byte */
2554:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(chr)) chr -= 0x20; /* To upper ASCII char */
2555:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
2556:Middlewares/Third_Party/FatFs/src/ff.c **** if (chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */
2557:Middlewares/Third_Party/FatFs/src/ff.c **** #else
2558:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(chr) && IsDBCS2(**ptr)) { /* Get DBC 2nd byte if needed */
2559:Middlewares/Third_Party/FatFs/src/ff.c **** chr = chr << 8 | (BYTE)*(*ptr)++;
2560:Middlewares/Third_Party/FatFs/src/ff.c **** }
2561:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2562:Middlewares/Third_Party/FatFs/src/ff.c **** return chr;
2563:Middlewares/Third_Party/FatFs/src/ff.c **** #else
2564:Middlewares/Third_Party/FatFs/src/ff.c **** return ff_wtoupper(*(*ptr)++); /* Get a word and to upper */
2565:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2566:Middlewares/Third_Party/FatFs/src/ff.c **** }
2567:Middlewares/Third_Party/FatFs/src/ff.c ****
2568:Middlewares/Third_Party/FatFs/src/ff.c ****
2569:Middlewares/Third_Party/FatFs/src/ff.c **** static
2570:Middlewares/Third_Party/FatFs/src/ff.c **** int pattern_matching ( /* 0:not matched, 1:matched */
2571:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* pat, /* Matching pattern */
2572:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* nam, /* String to be tested */
2573:Middlewares/Third_Party/FatFs/src/ff.c **** int skip, /* Number of pre-skip chars (number of ?s) */
2574:Middlewares/Third_Party/FatFs/src/ff.c **** int inf /* Infinite search (* specified) */
2575:Middlewares/Third_Party/FatFs/src/ff.c **** )
2576:Middlewares/Third_Party/FatFs/src/ff.c **** {
2577:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *pp, *np;
2578:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR pc, nc;
2579:Middlewares/Third_Party/FatFs/src/ff.c **** int nm, nx;
2580:Middlewares/Third_Party/FatFs/src/ff.c ****
2581:Middlewares/Third_Party/FatFs/src/ff.c ****
2582:Middlewares/Third_Party/FatFs/src/ff.c **** while (skip--) { /* Pre-skip name chars */
2583:Middlewares/Third_Party/FatFs/src/ff.c **** if (!get_achar(&nam)) return 0; /* Branch mismatched if less name chars */
2584:Middlewares/Third_Party/FatFs/src/ff.c **** }
2585:Middlewares/Third_Party/FatFs/src/ff.c **** if (!*pat && inf) return 1; /* (short circuit) */
2586:Middlewares/Third_Party/FatFs/src/ff.c ****
2587:Middlewares/Third_Party/FatFs/src/ff.c **** do {
ARM GAS /tmp/ccH7dUYB.s page 70
2588:Middlewares/Third_Party/FatFs/src/ff.c **** pp = pat; np = nam; /* Top of pattern and name to match */
2589:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
2590:Middlewares/Third_Party/FatFs/src/ff.c **** if (*pp == '?' || *pp == '*') { /* Wildcard? */
2591:Middlewares/Third_Party/FatFs/src/ff.c **** nm = nx = 0;
2592:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Analyze the wildcard chars */
2593:Middlewares/Third_Party/FatFs/src/ff.c **** if (*pp++ == '?') nm++; else nx = 1;
2594:Middlewares/Third_Party/FatFs/src/ff.c **** } while (*pp == '?' || *pp == '*');
2595:Middlewares/Third_Party/FatFs/src/ff.c **** if (pattern_matching(pp, np, nm, nx)) return 1; /* Test new branch (recurs upto number of wildc
2596:Middlewares/Third_Party/FatFs/src/ff.c **** nc = *np; break; /* Branch mismatched */
2597:Middlewares/Third_Party/FatFs/src/ff.c **** }
2598:Middlewares/Third_Party/FatFs/src/ff.c **** pc = get_achar(&pp); /* Get a pattern char */
2599:Middlewares/Third_Party/FatFs/src/ff.c **** nc = get_achar(&np); /* Get a name char */
2600:Middlewares/Third_Party/FatFs/src/ff.c **** if (pc != nc) break; /* Branch mismatched? */
2601:Middlewares/Third_Party/FatFs/src/ff.c **** if (pc == 0) return 1; /* Branch matched? (matched at end of both strings) */
2602:Middlewares/Third_Party/FatFs/src/ff.c **** }
2603:Middlewares/Third_Party/FatFs/src/ff.c **** get_achar(&nam); /* nam++ */
2604:Middlewares/Third_Party/FatFs/src/ff.c **** } while (inf && nc); /* Retry until end of name if infinite search is specified */
2605:Middlewares/Third_Party/FatFs/src/ff.c ****
2606:Middlewares/Third_Party/FatFs/src/ff.c **** return 0;
2607:Middlewares/Third_Party/FatFs/src/ff.c **** }
2608:Middlewares/Third_Party/FatFs/src/ff.c ****
2609:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_FIND && _FS_MINIMIZE <= 1 */
2610:Middlewares/Third_Party/FatFs/src/ff.c ****
2611:Middlewares/Third_Party/FatFs/src/ff.c ****
2612:Middlewares/Third_Party/FatFs/src/ff.c ****
2613:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2614:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pick a top segment and create the object name in directory form */
2615:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2616:Middlewares/Third_Party/FatFs/src/ff.c ****
2617:Middlewares/Third_Party/FatFs/src/ff.c **** static
2618:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */
2619:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the directory object */
2620:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR** path /* Pointer to pointer to the segment in the path string */
2621:Middlewares/Third_Party/FatFs/src/ff.c **** )
2622:Middlewares/Third_Party/FatFs/src/ff.c **** {
1287 .loc 1 2622 1 is_stmt 1 view -0
1288 .cfi_startproc
1289 @ args = 0, pretend = 0, frame = 0
1290 @ frame_needed = 0, uses_anonymous_args = 0
1291 .loc 1 2622 1 is_stmt 0 view .LVU375
1292 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1293 .LCFI13:
1294 .cfi_def_cfa_offset 40
1295 .cfi_offset 3, -40
1296 .cfi_offset 4, -36
1297 .cfi_offset 5, -32
1298 .cfi_offset 6, -28
1299 .cfi_offset 7, -24
1300 .cfi_offset 8, -20
1301 .cfi_offset 9, -16
1302 .cfi_offset 10, -12
1303 .cfi_offset 11, -8
1304 .cfi_offset 14, -4
1305 0004 8146 mov r9, r0
1306 0006 8A46 mov r10, r1
2623:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
2624:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE b, cf;
ARM GAS /tmp/ccH7dUYB.s page 71
2625:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR w, *lfn;
2626:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, ni, si, di;
2627:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *p;
2628:Middlewares/Third_Party/FatFs/src/ff.c ****
2629:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create LFN in Unicode */
2630:Middlewares/Third_Party/FatFs/src/ff.c **** p = *path; lfn = dp->obj.fs->lfnbuf; si = di = 0;
2631:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
2632:Middlewares/Third_Party/FatFs/src/ff.c **** w = p[si++]; /* Get a character */
2633:Middlewares/Third_Party/FatFs/src/ff.c **** if (w < ' ') break; /* Break if end of the path name */
2634:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == '/' || w == '\\') { /* Break if a separator is found */
2635:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */
2636:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2637:Middlewares/Third_Party/FatFs/src/ff.c **** }
2638:Middlewares/Third_Party/FatFs/src/ff.c **** if (di >= _MAX_LFN) return FR_INVALID_NAME; /* Reject too long name */
2639:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_LFN_UNICODE
2640:Middlewares/Third_Party/FatFs/src/ff.c **** w &= 0xFF;
2641:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(w)) { /* Check if it is a DBC 1st byte (always false on SBCS cfg) */
2642:Middlewares/Third_Party/FatFs/src/ff.c **** b = (BYTE)p[si++]; /* Get 2nd byte */
2643:Middlewares/Third_Party/FatFs/src/ff.c **** w = (w << 8) + b; /* Create a DBC */
2644:Middlewares/Third_Party/FatFs/src/ff.c **** if (!IsDBCS2(b)) return FR_INVALID_NAME; /* Reject invalid sequence */
2645:Middlewares/Third_Party/FatFs/src/ff.c **** }
2646:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(w, 1); /* Convert ANSI/OEM to Unicode */
2647:Middlewares/Third_Party/FatFs/src/ff.c **** if (!w) return FR_INVALID_NAME; /* Reject invalid code */
2648:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2649:Middlewares/Third_Party/FatFs/src/ff.c **** if (w < 0x80 && chk_chr("\"*:<>\?|\x7F", w)) return FR_INVALID_NAME; /* Reject illegal characters
2650:Middlewares/Third_Party/FatFs/src/ff.c **** lfn[di++] = w; /* Store the Unicode character */
2651:Middlewares/Third_Party/FatFs/src/ff.c **** }
2652:Middlewares/Third_Party/FatFs/src/ff.c **** *path = &p[si]; /* Return pointer to the next segment */
2653:Middlewares/Third_Party/FatFs/src/ff.c **** cf = (w < ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */
2654:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
2655:Middlewares/Third_Party/FatFs/src/ff.c **** if ((di == 1 && lfn[di - 1] == '.') ||
2656:Middlewares/Third_Party/FatFs/src/ff.c **** (di == 2 && lfn[di - 1] == '.' && lfn[di - 2] == '.')) { /* Is this segment a dot name? */
2657:Middlewares/Third_Party/FatFs/src/ff.c **** lfn[di] = 0;
2658:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 11; i++) /* Create dot name for SFN entry */
2659:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[i] = (i < di) ? '.' : ' ';
2660:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[i] = cf | NS_DOT; /* This is a dot entry */
2661:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
2662:Middlewares/Third_Party/FatFs/src/ff.c **** }
2663:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2664:Middlewares/Third_Party/FatFs/src/ff.c **** while (di) { /* Snip off trailing spaces and dots if exist */
2665:Middlewares/Third_Party/FatFs/src/ff.c **** w = lfn[di - 1];
2666:Middlewares/Third_Party/FatFs/src/ff.c **** if (w != ' ' && w != '.') break;
2667:Middlewares/Third_Party/FatFs/src/ff.c **** di--;
2668:Middlewares/Third_Party/FatFs/src/ff.c **** }
2669:Middlewares/Third_Party/FatFs/src/ff.c **** lfn[di] = 0; /* LFN is created */
2670:Middlewares/Third_Party/FatFs/src/ff.c **** if (di == 0) return FR_INVALID_NAME; /* Reject nul name */
2671:Middlewares/Third_Party/FatFs/src/ff.c ****
2672:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create SFN in directory form */
2673:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->fn, ' ', 11);
2674:Middlewares/Third_Party/FatFs/src/ff.c **** for (si = 0; lfn[si] == ' ' || lfn[si] == '.'; si++) ; /* Strip leading spaces and dots */
2675:Middlewares/Third_Party/FatFs/src/ff.c **** if (si) cf |= NS_LOSS | NS_LFN;
2676:Middlewares/Third_Party/FatFs/src/ff.c **** while (di && lfn[di - 1] != '.') di--; /* Find extension (di<=si: no extension) */
2677:Middlewares/Third_Party/FatFs/src/ff.c ****
2678:Middlewares/Third_Party/FatFs/src/ff.c **** i = b = 0; ni = 8;
2679:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
2680:Middlewares/Third_Party/FatFs/src/ff.c **** w = lfn[si++]; /* Get an LFN character */
2681:Middlewares/Third_Party/FatFs/src/ff.c **** if (!w) break; /* Break on end of the LFN */
ARM GAS /tmp/ccH7dUYB.s page 72
2682:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == ' ' || (w == '.' && si != di)) { /* Remove spaces and dots */
2683:Middlewares/Third_Party/FatFs/src/ff.c **** cf |= NS_LOSS | NS_LFN; continue;
2684:Middlewares/Third_Party/FatFs/src/ff.c **** }
2685:Middlewares/Third_Party/FatFs/src/ff.c ****
2686:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= ni || si == di) { /* Extension or end of SFN */
2687:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 11) { /* Long extension */
2688:Middlewares/Third_Party/FatFs/src/ff.c **** cf |= NS_LOSS | NS_LFN; break;
2689:Middlewares/Third_Party/FatFs/src/ff.c **** }
2690:Middlewares/Third_Party/FatFs/src/ff.c **** if (si != di) cf |= NS_LOSS | NS_LFN; /* Out of 8.3 format */
2691:Middlewares/Third_Party/FatFs/src/ff.c **** if (si > di) break; /* No extension */
2692:Middlewares/Third_Party/FatFs/src/ff.c **** si = di; i = 8; ni = 11; /* Enter extension section */
2693:Middlewares/Third_Party/FatFs/src/ff.c **** b <<= 2; continue;
2694:Middlewares/Third_Party/FatFs/src/ff.c **** }
2695:Middlewares/Third_Party/FatFs/src/ff.c ****
2696:Middlewares/Third_Party/FatFs/src/ff.c **** if (w >= 0x80) { /* Non ASCII character */
2697:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
2698:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(w, 0); /* Unicode -> OEM code */
2699:Middlewares/Third_Party/FatFs/src/ff.c **** if (w) w = ExCvt[w - 0x80]; /* Convert extended character to upper (SBCS) */
2700:Middlewares/Third_Party/FatFs/src/ff.c **** #else
2701:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(ff_wtoupper(w), 0); /* Upper converted Unicode -> OEM code */
2702:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2703:Middlewares/Third_Party/FatFs/src/ff.c **** cf |= NS_LFN; /* Force create LFN entry */
2704:Middlewares/Third_Party/FatFs/src/ff.c **** }
2705:Middlewares/Third_Party/FatFs/src/ff.c ****
2706:Middlewares/Third_Party/FatFs/src/ff.c **** if (_DF1S && w >= 0x100) { /* Is this DBC? (always false at SBCS cfg) */
2707:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= ni - 1) {
2708:Middlewares/Third_Party/FatFs/src/ff.c **** cf |= NS_LOSS | NS_LFN; i = ni; continue;
2709:Middlewares/Third_Party/FatFs/src/ff.c **** }
2710:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[i++] = (BYTE)(w >> 8);
2711:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* SBC */
2712:Middlewares/Third_Party/FatFs/src/ff.c **** if (!w || chk_chr("+,;=[]", w)) { /* Replace illegal characters for SFN */
2713:Middlewares/Third_Party/FatFs/src/ff.c **** w = '_'; cf |= NS_LOSS | NS_LFN;/* Lossy conversion */
2714:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2715:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsUpper(w)) { /* ASCII large capital */
2716:Middlewares/Third_Party/FatFs/src/ff.c **** b |= 2;
2717:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2718:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(w)) { /* ASCII small capital */
2719:Middlewares/Third_Party/FatFs/src/ff.c **** b |= 1; w -= 0x20;
2720:Middlewares/Third_Party/FatFs/src/ff.c **** }
2721:Middlewares/Third_Party/FatFs/src/ff.c **** }
2722:Middlewares/Third_Party/FatFs/src/ff.c **** }
2723:Middlewares/Third_Party/FatFs/src/ff.c **** }
2724:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[i++] = (BYTE)w;
2725:Middlewares/Third_Party/FatFs/src/ff.c **** }
2726:Middlewares/Third_Party/FatFs/src/ff.c ****
2727:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->fn[0] == DDEM) dp->fn[0] = RDDEM; /* If the first character collides with DDEM, replace it
2728:Middlewares/Third_Party/FatFs/src/ff.c ****
2729:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 8) b <<= 2;
2730:Middlewares/Third_Party/FatFs/src/ff.c **** if ((b & 0x0C) == 0x0C || (b & 0x03) == 0x03) cf |= NS_LFN; /* Create LFN entry when there are com
2731:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(cf & NS_LFN)) { /* When LFN is in 8.3 format without extended character, NT flags are c
2732:Middlewares/Third_Party/FatFs/src/ff.c **** if ((b & 0x03) == 0x01) cf |= NS_EXT; /* NT flag (Extension has only small capital) */
2733:Middlewares/Third_Party/FatFs/src/ff.c **** if ((b & 0x0C) == 0x04) cf |= NS_BODY; /* NT flag (Filename has only small capital) */
2734:Middlewares/Third_Party/FatFs/src/ff.c **** }
2735:Middlewares/Third_Party/FatFs/src/ff.c ****
2736:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = cf; /* SFN is created */
2737:Middlewares/Third_Party/FatFs/src/ff.c ****
2738:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
ARM GAS /tmp/ccH7dUYB.s page 73
2739:Middlewares/Third_Party/FatFs/src/ff.c ****
2740:Middlewares/Third_Party/FatFs/src/ff.c ****
2741:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* _USE_LFN != 0 : Non-LFN configuration */
2742:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c, d, *sfn;
1307 .loc 1 2742 2 is_stmt 1 view .LVU376
2743:Middlewares/Third_Party/FatFs/src/ff.c **** UINT ni, si, i;
1308 .loc 1 2743 2 view .LVU377
2744:Middlewares/Third_Party/FatFs/src/ff.c **** const char *p;
1309 .loc 1 2744 2 view .LVU378
2745:Middlewares/Third_Party/FatFs/src/ff.c ****
2746:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create file name in directory form */
2747:Middlewares/Third_Party/FatFs/src/ff.c **** p = *path; sfn = dp->fn;
1310 .loc 1 2747 2 view .LVU379
1311 .loc 1 2747 4 is_stmt 0 view .LVU380
1312 0008 D1F80080 ldr r8, [r1]
1313 .LVL133:
1314 .loc 1 2747 13 is_stmt 1 view .LVU381
1315 .loc 1 2747 17 is_stmt 0 view .LVU382
1316 000c 00F1240B add fp, r0, #36
1317 .LVL134:
2748:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(sfn, ' ', 11);
1318 .loc 1 2748 2 is_stmt 1 view .LVU383
1319 0010 0B22 movs r2, #11
1320 0012 2021 movs r1, #32
1321 .LVL135:
1322 .loc 1 2748 2 is_stmt 0 view .LVU384
1323 0014 5846 mov r0, fp
1324 .LVL136:
1325 .loc 1 2748 2 view .LVU385
1326 0016 FFF7FEFF bl mem_set
1327 .LVL137:
2749:Middlewares/Third_Party/FatFs/src/ff.c **** si = i = 0; ni = 8;
1328 .loc 1 2749 2 is_stmt 1 view .LVU386
1329 .loc 1 2749 14 view .LVU387
1330 .loc 1 2749 9 is_stmt 0 view .LVU388
1331 001a 0025 movs r5, #0
1332 .loc 1 2749 5 view .LVU389
1333 001c 2B46 mov r3, r5
1334 .loc 1 2749 17 view .LVU390
1335 001e 0827 movs r7, #8
1336 0020 29E0 b .L111
1337 .LVL138:
1338 .L115:
2750:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
2751:Middlewares/Third_Party/FatFs/src/ff.c **** if (p[si] == '.') { /* Is this a dot entry? */
2752:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
2753:Middlewares/Third_Party/FatFs/src/ff.c **** c = (BYTE)p[si++];
2754:Middlewares/Third_Party/FatFs/src/ff.c **** if (c != '.' || si >= 3) break;
2755:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
2756:Middlewares/Third_Party/FatFs/src/ff.c **** }
2757:Middlewares/Third_Party/FatFs/src/ff.c **** if (c != '/' && c != '\\' && c > ' ') return FR_INVALID_NAME;
2758:Middlewares/Third_Party/FatFs/src/ff.c **** *path = p + si; /* Return pointer to the next segment */
2759:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST | NS_DOT : NS_DOT; /* Set last segment flag if end of the path
2760:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
2761:Middlewares/Third_Party/FatFs/src/ff.c **** }
2762:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2763:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
ARM GAS /tmp/ccH7dUYB.s page 74
2764:Middlewares/Third_Party/FatFs/src/ff.c **** c = (BYTE)p[si++];
2765:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */
2766:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '/' || c == '\\') { /* Break if a separator is found */
2767:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */
1339 .loc 1 2767 42 is_stmt 1 discriminator 2 view .LVU391
1340 .loc 1 2767 44 is_stmt 0 discriminator 2 view .LVU392
1341 0022 0136 adds r6, r6, #1
1342 .LVL139:
1343 .L113:
1344 .loc 1 2767 24 is_stmt 1 discriminator 1 view .LVU393
1345 .loc 1 2767 12 is_stmt 0 discriminator 1 view .LVU394
1346 0024 18F80630 ldrb r3, [r8, r6] @ zero_extendqisi2
1347 .loc 1 2767 24 discriminator 1 view .LVU395
1348 0028 2F2B cmp r3, #47
1349 002a FAD0 beq .L115
1350 .loc 1 2767 24 discriminator 1 view .LVU396
1351 002c 5C2B cmp r3, #92
1352 002e F8D0 beq .L115
1353 .L112:
2768:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2769:Middlewares/Third_Party/FatFs/src/ff.c **** }
2770:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '.' || i >= ni) { /* End of body or over size? */
2771:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */
2772:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
2773:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
2774:Middlewares/Third_Party/FatFs/src/ff.c **** }
2775:Middlewares/Third_Party/FatFs/src/ff.c **** if (c >= 0x80) { /* Extended character? */
2776:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
2777:Middlewares/Third_Party/FatFs/src/ff.c **** c = ExCvt[c - 0x80]; /* To upper extended characters (SBCS cfg) */
2778:Middlewares/Third_Party/FatFs/src/ff.c **** #else
2779:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_DF1S
2780:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INVALID_NAME; /* Reject extended characters (ASCII only cfg) */
2781:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2782:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2783:Middlewares/Third_Party/FatFs/src/ff.c **** }
2784:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(c)) { /* Check if it is a DBC 1st byte (always false at SBCS cfg.) */
2785:Middlewares/Third_Party/FatFs/src/ff.c **** d = (BYTE)p[si++]; /* Get 2nd byte */
2786:Middlewares/Third_Party/FatFs/src/ff.c **** if (!IsDBCS2(d) || i >= ni - 1) return FR_INVALID_NAME; /* Reject invalid DBC */
2787:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
2788:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = d;
2789:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* SBC */
2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (chk_chr("\"*+,:;<=>\?[]|\x7F", c)) return FR_INVALID_NAME; /* Reject illegal chrs for SFN */
2791:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */
2792:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
2793:Middlewares/Third_Party/FatFs/src/ff.c **** }
2794:Middlewares/Third_Party/FatFs/src/ff.c **** }
2795:Middlewares/Third_Party/FatFs/src/ff.c **** *path = p + si; /* Return pointer to the next segment */
1354 .loc 1 2795 2 is_stmt 1 view .LVU397
1355 .loc 1 2795 12 is_stmt 0 view .LVU398
1356 0030 4644 add r6, r6, r8
1357 .LVL140:
1358 .loc 1 2795 8 view .LVU399
1359 0032 CAF80060 str r6, [r10]
2796:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) return FR_INVALID_NAME; /* Reject nul string */
1360 .loc 1 2796 2 is_stmt 1 view .LVU400
1361 .loc 1 2796 5 is_stmt 0 view .LVU401
1362 0036 002D cmp r5, #0
ARM GAS /tmp/ccH7dUYB.s page 75
1363 0038 44D0 beq .L125
2797:Middlewares/Third_Party/FatFs/src/ff.c ****
2798:Middlewares/Third_Party/FatFs/src/ff.c **** if (sfn[0] == DDEM) sfn[0] = RDDEM; /* If the first character collides with DDEM, replace it with
1364 .loc 1 2798 2 is_stmt 1 view .LVU402
1365 .loc 1 2798 9 is_stmt 0 view .LVU403
1366 003a 99F82430 ldrb r3, [r9, #36] @ zero_extendqisi2
1367 .loc 1 2798 5 view .LVU404
1368 003e E52B cmp r3, #229
1369 0040 35D0 beq .L129
1370 .L121:
2799:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */
1371 .loc 1 2799 2 is_stmt 1 view .LVU405
1372 .loc 1 2799 14 is_stmt 0 view .LVU406
1373 0042 202C cmp r4, #32
1374 0044 37D8 bhi .L126
1375 .loc 1 2799 14 discriminator 1 view .LVU407
1376 0046 0423 movs r3, #4
1377 .L122:
1378 .loc 1 2799 14 discriminator 4 view .LVU408
1379 0048 89F82F30 strb r3, [r9, #47]
2800:Middlewares/Third_Party/FatFs/src/ff.c ****
2801:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
1380 .loc 1 2801 2 is_stmt 1 view .LVU409
1381 .loc 1 2801 9 is_stmt 0 view .LVU410
1382 004c 0020 movs r0, #0
1383 004e 35E0 b .L117
1384 .LVL141:
1385 .L116:
2775:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
1386 .loc 1 2775 3 is_stmt 1 view .LVU411
2775:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
1387 .loc 1 2775 6 is_stmt 0 view .LVU412
1388 0050 14F0800F tst r4, #128
1389 0054 27D1 bne .L130
1390 .L119:
2784:Middlewares/Third_Party/FatFs/src/ff.c **** d = (BYTE)p[si++]; /* Get 2nd byte */
1391 .loc 1 2784 3 is_stmt 1 view .LVU413
2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */
1392 .loc 1 2790 4 view .LVU414
2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */
1393 .loc 1 2790 8 is_stmt 0 view .LVU415
1394 0056 2146 mov r1, r4
1395 0058 1B48 ldr r0, .L131
1396 005a FFF7FEFF bl chk_chr
1397 .LVL142:
2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */
1398 .loc 1 2790 7 discriminator 1 view .LVU416
1399 005e 78BB cbnz r0, .L124
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1400 .loc 1 2791 4 is_stmt 1 view .LVU417
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1401 .loc 1 2791 8 is_stmt 0 view .LVU418
1402 0060 A4F16103 sub r3, r4, #97
1403 0064 DBB2 uxtb r3, r3
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1404 .loc 1 2791 7 view .LVU419
1405 0066 192B cmp r3, #25
ARM GAS /tmp/ccH7dUYB.s page 76
1406 0068 01D8 bhi .L120
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1407 .loc 1 2791 20 is_stmt 1 discriminator 1 view .LVU420
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1408 .loc 1 2791 22 is_stmt 0 discriminator 1 view .LVU421
1409 006a 203C subs r4, r4, #32
1410 .LVL143:
2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c;
1411 .loc 1 2791 22 discriminator 1 view .LVU422
1412 006c E4B2 uxtb r4, r4
1413 .LVL144:
1414 .L120:
2792:Middlewares/Third_Party/FatFs/src/ff.c **** }
1415 .loc 1 2792 4 is_stmt 1 view .LVU423
2792:Middlewares/Third_Party/FatFs/src/ff.c **** }
1416 .loc 1 2792 13 is_stmt 0 view .LVU424
1417 006e 0BF80540 strb r4, [fp, r5]
2792:Middlewares/Third_Party/FatFs/src/ff.c **** }
1418 .loc 1 2792 9 view .LVU425
1419 0072 0135 adds r5, r5, #1
1420 .LVL145:
1421 .L118:
2792:Middlewares/Third_Party/FatFs/src/ff.c **** }
1422 .loc 1 2792 9 view .LVU426
1423 0074 3346 mov r3, r6
1424 .LVL146:
1425 .L111:
2763:Middlewares/Third_Party/FatFs/src/ff.c **** c = (BYTE)p[si++];
1426 .loc 1 2763 2 is_stmt 1 view .LVU427
2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */
1427 .loc 1 2764 3 view .LVU428
2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */
1428 .loc 1 2764 17 is_stmt 0 view .LVU429
1429 0076 5E1C adds r6, r3, #1
1430 .LVL147:
2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */
1431 .loc 1 2764 5 view .LVU430
1432 0078 18F80340 ldrb r4, [r8, r3] @ zero_extendqisi2
1433 .LVL148:
2765:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '/' || c == '\\') { /* Break if a separator is found */
1434 .loc 1 2765 3 is_stmt 1 view .LVU431
2765:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '/' || c == '\\') { /* Break if a separator is found */
1435 .loc 1 2765 6 is_stmt 0 view .LVU432
1436 007c 202C cmp r4, #32
1437 007e D7D9 bls .L112
2766:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */
1438 .loc 1 2766 3 is_stmt 1 view .LVU433
2766:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */
1439 .loc 1 2766 6 is_stmt 0 view .LVU434
1440 0080 5C2C cmp r4, #92
1441 0082 18BF it ne
1442 0084 2F2C cmpne r4, #47
1443 0086 CDD0 beq .L113
2770:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */
1444 .loc 1 2770 3 is_stmt 1 view .LVU435
2770:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */
1445 .loc 1 2770 6 is_stmt 0 view .LVU436
ARM GAS /tmp/ccH7dUYB.s page 77
1446 0088 2E2C cmp r4, #46
1447 008a 18BF it ne
1448 008c AF42 cmpne r7, r5
1449 008e DFD8 bhi .L116
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1450 .loc 1 2771 4 is_stmt 1 view .LVU437
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1451 .loc 1 2771 22 is_stmt 0 view .LVU438
1452 0090 2E3C subs r4, r4, #46
1453 .LVL149:
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1454 .loc 1 2771 22 view .LVU439
1455 0092 18BF it ne
1456 0094 0124 movne r4, #1
1457 .LVL150:
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1458 .loc 1 2771 17 view .LVU440
1459 0096 0B2F cmp r7, #11
1460 0098 08BF it eq
1461 009a 44F00104 orreq r4, r4, #1
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1462 .loc 1 2771 7 view .LVU441
1463 009e 64B9 cbnz r4, .L123
2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
1464 .loc 1 2772 6 view .LVU442
1465 00a0 0825 movs r5, #8
1466 .LVL151:
2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
1467 .loc 1 2772 14 view .LVU443
1468 00a2 0B27 movs r7, #11
1469 .LVL152:
2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
1470 .loc 1 2772 14 view .LVU444
1471 00a4 E6E7 b .L118
1472 .LVL153:
1473 .L130:
2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1474 .loc 1 2777 4 is_stmt 1 view .LVU445
2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1475 .loc 1 2777 16 is_stmt 0 view .LVU446
1476 00a6 803C subs r4, r4, #128
1477 .LVL154:
2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1478 .loc 1 2777 6 view .LVU447
1479 00a8 084B ldr r3, .L131+4
1480 00aa 1C5D ldrb r4, [r3, r4] @ zero_extendqisi2
1481 .LVL155:
2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else
1482 .loc 1 2777 6 view .LVU448
1483 00ac D3E7 b .L119
1484 .LVL156:
1485 .L129:
2798:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */
1486 .loc 1 2798 22 is_stmt 1 discriminator 1 view .LVU449
2798:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */
1487 .loc 1 2798 29 is_stmt 0 discriminator 1 view .LVU450
1488 00ae 0523 movs r3, #5
ARM GAS /tmp/ccH7dUYB.s page 78
1489 00b0 89F82430 strb r3, [r9, #36]
1490 00b4 C5E7 b .L121
1491 .L126:
2799:Middlewares/Third_Party/FatFs/src/ff.c ****
1492 .loc 1 2799 14 discriminator 2 view .LVU451
1493 00b6 0023 movs r3, #0
1494 00b8 C6E7 b .L122
1495 .LVL157:
1496 .L123:
2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */
1497 .loc 1 2771 37 discriminator 1 view .LVU452
1498 00ba 0620 movs r0, #6
1499 .LVL158:
1500 .L117:
2802:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LFN != 0 */
2803:Middlewares/Third_Party/FatFs/src/ff.c **** }
1501 .loc 1 2803 1 view .LVU453
1502 00bc BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
1503 .LVL159:
1504 .L124:
2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */
1505 .loc 1 2790 50 discriminator 1 view .LVU454
1506 00c0 0620 movs r0, #6
1507 00c2 FBE7 b .L117
1508 .LVL160:
1509 .L125:
2796:Middlewares/Third_Party/FatFs/src/ff.c ****
1510 .loc 1 2796 21 discriminator 1 view .LVU455
1511 00c4 0620 movs r0, #6
1512 00c6 F9E7 b .L117
1513 .L132:
1514 .align 2
1515 .L131:
1516 00c8 00000000 .word .LC0
1517 00cc 00000000 .word ExCvt
1518 .cfi_endproc
1519 .LFE1215:
1521 .section .text.get_ldnumber,"ax",%progbits
1522 .align 1
1523 .syntax unified
1524 .thumb
1525 .thumb_func
1527 get_ldnumber:
1528 .LVL161:
1529 .LFB1217:
2804:Middlewares/Third_Party/FatFs/src/ff.c ****
2805:Middlewares/Third_Party/FatFs/src/ff.c ****
2806:Middlewares/Third_Party/FatFs/src/ff.c ****
2807:Middlewares/Third_Party/FatFs/src/ff.c ****
2808:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2809:Middlewares/Third_Party/FatFs/src/ff.c **** /* Follow a file path */
2810:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2811:Middlewares/Third_Party/FatFs/src/ff.c ****
2812:Middlewares/Third_Party/FatFs/src/ff.c **** static
2813:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */
2814:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Directory object to return last directory and found object */
2815:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Full-path string to find a file or directory */
ARM GAS /tmp/ccH7dUYB.s page 79
2816:Middlewares/Third_Party/FatFs/src/ff.c **** )
2817:Middlewares/Third_Party/FatFs/src/ff.c **** {
2818:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
2819:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ns;
2820:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj = &dp->obj;
2821:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
2822:Middlewares/Third_Party/FatFs/src/ff.c ****
2823:Middlewares/Third_Party/FatFs/src/ff.c ****
2824:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
2825:Middlewares/Third_Party/FatFs/src/ff.c **** if (*path != '/' && *path != '\\') { /* Without heading separator */
2826:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = fs->cdir; /* Start from current directory */
2827:Middlewares/Third_Party/FatFs/src/ff.c **** } else
2828:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2829:Middlewares/Third_Party/FatFs/src/ff.c **** { /* With heading separator */
2830:Middlewares/Third_Party/FatFs/src/ff.c **** while (*path == '/' || *path == '\\') path++; /* Strip heading separator */
2831:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
2832:Middlewares/Third_Party/FatFs/src/ff.c **** }
2833:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2834:Middlewares/Third_Party/FatFs/src/ff.c **** obj->n_frag = 0; /* Invalidate last fragment counter of the object */
2835:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
2836:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT && obj->sclust) { /* Retrieve the sub-directory status if needed */
2837:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
2838:Middlewares/Third_Party/FatFs/src/ff.c ****
2839:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_scl = fs->cdc_scl;
2840:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_size = fs->cdc_size;
2841:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_ofs = fs->cdc_ofs;
2842:Middlewares/Third_Party/FatFs/src/ff.c **** res = load_obj_dir(&dj, obj);
2843:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
2844:Middlewares/Third_Party/FatFs/src/ff.c **** obj->objsize = ld_dword(fs->dirbuf + XDIR_FileSize);
2845:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = fs->dirbuf[XDIR_GenFlags] & 2;
2846:Middlewares/Third_Party/FatFs/src/ff.c **** }
2847:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2848:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2849:Middlewares/Third_Party/FatFs/src/ff.c ****
2850:Middlewares/Third_Party/FatFs/src/ff.c **** if ((UINT)*path < ' ') { /* Null path name is the origin directory itself */
2851:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME;
2852:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0);
2853:Middlewares/Third_Party/FatFs/src/ff.c ****
2854:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Follow path */
2855:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
2856:Middlewares/Third_Party/FatFs/src/ff.c **** res = create_name(dp, &path); /* Get a segment name of the path */
2857:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2858:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Find an object with the segment name */
2859:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG];
2860:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* Failed to find the object */
2861:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Object is not found */
2862:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */
2863:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */
2864:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME;
2865:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
2866:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Could not find the object */
2867:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(ns & NS_LAST)) res = FR_NO_PATH; /* Adjust error code if not last segment */
2868:Middlewares/Third_Party/FatFs/src/ff.c **** }
2869:Middlewares/Third_Party/FatFs/src/ff.c **** }
2870:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2871:Middlewares/Third_Party/FatFs/src/ff.c **** }
2872:Middlewares/Third_Party/FatFs/src/ff.c **** if (ns & NS_LAST) break; /* Last segment matched. Function completed. */
ARM GAS /tmp/ccH7dUYB.s page 80
2873:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get into the sub-directory */
2874:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(obj->attr & AM_DIR)) { /* It is not a sub-directory and cannot follow */
2875:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break;
2876:Middlewares/Third_Party/FatFs/src/ff.c **** }
2877:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2878:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* Save containing directory information for next dir */
2879:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_scl = obj->sclust;
2880:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat;
2881:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_ofs = dp->blk_ofs;
2882:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Open next directory */
2883:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = fs->dirbuf[XDIR_GenFlags] & 2;
2884:Middlewares/Third_Party/FatFs/src/ff.c **** obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize);
2885:Middlewares/Third_Party/FatFs/src/ff.c **** } else
2886:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2887:Middlewares/Third_Party/FatFs/src/ff.c **** {
2888:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = ld_clust(fs, fs->win + dp->dptr % SS(fs)); /* Open next directory */
2889:Middlewares/Third_Party/FatFs/src/ff.c **** }
2890:Middlewares/Third_Party/FatFs/src/ff.c **** }
2891:Middlewares/Third_Party/FatFs/src/ff.c **** }
2892:Middlewares/Third_Party/FatFs/src/ff.c ****
2893:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
2894:Middlewares/Third_Party/FatFs/src/ff.c **** }
2895:Middlewares/Third_Party/FatFs/src/ff.c ****
2896:Middlewares/Third_Party/FatFs/src/ff.c ****
2897:Middlewares/Third_Party/FatFs/src/ff.c ****
2898:Middlewares/Third_Party/FatFs/src/ff.c ****
2899:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2900:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive number from path name */
2901:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2902:Middlewares/Third_Party/FatFs/src/ff.c ****
2903:Middlewares/Third_Party/FatFs/src/ff.c **** static
2904:Middlewares/Third_Party/FatFs/src/ff.c **** int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */
2905:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR** path /* Pointer to pointer to the path name */
2906:Middlewares/Third_Party/FatFs/src/ff.c **** )
2907:Middlewares/Third_Party/FatFs/src/ff.c **** {
1530 .loc 1 2907 1 is_stmt 1 view -0
1531 .cfi_startproc
1532 @ args = 0, pretend = 0, frame = 0
1533 @ frame_needed = 0, uses_anonymous_args = 0
1534 @ link register save eliminated.
1535 .loc 1 2907 1 is_stmt 0 view .LVU457
1536 0000 0146 mov r1, r0
2908:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *tp, *tt;
1537 .loc 1 2908 2 is_stmt 1 view .LVU458
2909:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
1538 .loc 1 2909 2 view .LVU459
2910:Middlewares/Third_Party/FatFs/src/ff.c **** int vol = -1;
1539 .loc 1 2910 2 view .LVU460
1540 .LVL162:
2911:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */
2912:Middlewares/Third_Party/FatFs/src/ff.c **** static const char* const volid[] = {_VOLUME_STRS};
2913:Middlewares/Third_Party/FatFs/src/ff.c **** const char *sp;
2914:Middlewares/Third_Party/FatFs/src/ff.c **** char c;
2915:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR tc;
2916:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2917:Middlewares/Third_Party/FatFs/src/ff.c ****
2918:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 81
2919:Middlewares/Third_Party/FatFs/src/ff.c **** if (*path) { /* If the pointer is not a null */
1541 .loc 1 2919 2 view .LVU461
1542 .loc 1 2919 6 is_stmt 0 view .LVU462
1543 0002 0068 ldr r0, [r0]
1544 .LVL163:
1545 .loc 1 2919 5 view .LVU463
1546 0004 08B1 cbz r0, .L144
2920:Middlewares/Third_Party/FatFs/src/ff.c **** for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the pa
1547 .loc 1 2920 11 view .LVU464
1548 0006 0246 mov r2, r0
1549 0008 03E0 b .L134
1550 .L144:
2910:Middlewares/Third_Party/FatFs/src/ff.c **** int vol = -1;
1551 .loc 1 2910 6 view .LVU465
1552 000a 4FF0FF30 mov r0, #-1
1553 000e 7047 bx lr
1554 .LVL164:
1555 .L136:
1556 .loc 1 2920 73 is_stmt 1 discriminator 3 view .LVU466
1557 0010 0132 adds r2, r2, #1
1558 .LVL165:
1559 .L134:
1560 .loc 1 2920 56 discriminator 1 view .LVU467
1561 .loc 1 2920 26 is_stmt 0 discriminator 1 view .LVU468
1562 0012 1378 ldrb r3, [r2] @ zero_extendqisi2
1563 .loc 1 2920 56 discriminator 1 view .LVU469
1564 0014 202B cmp r3, #32
1565 0016 01D9 bls .L143
1566 0018 3A2B cmp r3, #58
1567 001a F9D1 bne .L136
1568 .L143:
2921:Middlewares/Third_Party/FatFs/src/ff.c **** if (*tt == ':') { /* If a ':' is exist in the path name */
1569 .loc 1 2921 3 is_stmt 1 view .LVU470
1570 .loc 1 2921 6 is_stmt 0 view .LVU471
1571 001c 3A2B cmp r3, #58
1572 001e 01D0 beq .L145
2922:Middlewares/Third_Party/FatFs/src/ff.c **** tp = *path;
2923:Middlewares/Third_Party/FatFs/src/ff.c **** i = *tp++ - '0';
2924:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */
2925:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */
2926:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i;
2927:Middlewares/Third_Party/FatFs/src/ff.c **** *path = ++tt;
2928:Middlewares/Third_Party/FatFs/src/ff.c **** }
2929:Middlewares/Third_Party/FatFs/src/ff.c **** }
2930:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID
2931:Middlewares/Third_Party/FatFs/src/ff.c **** else { /* No numeric drive number, find string drive id */
2932:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; tt++;
2933:Middlewares/Third_Party/FatFs/src/ff.c **** do {
2934:Middlewares/Third_Party/FatFs/src/ff.c **** sp = volid[i]; tp = *path;
2935:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Compare a string drive id with path name */
2936:Middlewares/Third_Party/FatFs/src/ff.c **** c = *sp++; tc = *tp++;
2937:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(tc)) tc -= 0x20;
2938:Middlewares/Third_Party/FatFs/src/ff.c **** } while (c && (TCHAR)c == tc);
2939:Middlewares/Third_Party/FatFs/src/ff.c **** } while ((c || tp != tt) && ++i < _VOLUMES); /* Repeat for each id until pattern match */
2940:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */
2941:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i;
2942:Middlewares/Third_Party/FatFs/src/ff.c **** *path = tt;
ARM GAS /tmp/ccH7dUYB.s page 82
2943:Middlewares/Third_Party/FatFs/src/ff.c **** }
2944:Middlewares/Third_Party/FatFs/src/ff.c **** }
2945:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2946:Middlewares/Third_Party/FatFs/src/ff.c **** return vol;
2947:Middlewares/Third_Party/FatFs/src/ff.c **** }
2948:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0 && _VOLUMES >= 2
2949:Middlewares/Third_Party/FatFs/src/ff.c **** vol = CurrVol; /* Current drive */
2950:Middlewares/Third_Party/FatFs/src/ff.c **** #else
2951:Middlewares/Third_Party/FatFs/src/ff.c **** vol = 0; /* Drive 0 */
1573 .loc 1 2951 7 view .LVU472
1574 0020 0020 movs r0, #0
1575 .LVL166:
2952:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2953:Middlewares/Third_Party/FatFs/src/ff.c **** }
2954:Middlewares/Third_Party/FatFs/src/ff.c **** return vol;
2955:Middlewares/Third_Party/FatFs/src/ff.c **** }
1576 .loc 1 2955 1 view .LVU473
1577 0022 7047 bx lr
1578 .LVL167:
1579 .L145:
2922:Middlewares/Third_Party/FatFs/src/ff.c **** tp = *path;
1580 .loc 1 2922 4 is_stmt 1 view .LVU474
2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */
1581 .loc 1 2923 4 view .LVU475
2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */
1582 .loc 1 2923 11 is_stmt 0 view .LVU476
1583 0024 0346 mov r3, r0
1584 .LVL168:
2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */
1585 .loc 1 2923 8 view .LVU477
1586 0026 13F8010B ldrb r0, [r3], #1 @ zero_extendqisi2
1587 .LVL169:
2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */
1588 .loc 1 2923 14 view .LVU478
1589 002a 3038 subs r0, r0, #48
1590 .LVL170:
2924:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */
1591 .loc 1 2924 4 is_stmt 1 view .LVU479
2924:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */
1592 .loc 1 2924 7 is_stmt 0 view .LVU480
1593 002c 0928 cmp r0, #9
1594 002e 98BF it ls
1595 0030 9A42 cmpls r2, r3
1596 0032 03D1 bne .L141
2925:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i;
1597 .loc 1 2925 5 is_stmt 1 view .LVU481
2925:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i;
1598 .loc 1 2925 8 is_stmt 0 view .LVU482
1599 0034 28B9 cbnz r0, .L142
2926:Middlewares/Third_Party/FatFs/src/ff.c **** *path = ++tt;
1600 .loc 1 2926 6 is_stmt 1 view .LVU483
1601 .LVL171:
2927:Middlewares/Third_Party/FatFs/src/ff.c **** }
1602 .loc 1 2927 6 view .LVU484
2927:Middlewares/Third_Party/FatFs/src/ff.c **** }
1603 .loc 1 2927 12 is_stmt 0 view .LVU485
1604 0036 0132 adds r2, r2, #1
ARM GAS /tmp/ccH7dUYB.s page 83
1605 .LVL172:
2927:Middlewares/Third_Party/FatFs/src/ff.c **** }
1606 .loc 1 2927 12 view .LVU486
1607 0038 0A60 str r2, [r1]
1608 003a 7047 bx lr
1609 .LVL173:
1610 .L141:
2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */
1611 .loc 1 2910 6 view .LVU487
1612 003c 4FF0FF30 mov r0, #-1
1613 .LVL174:
2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */
1614 .loc 1 2910 6 view .LVU488
1615 0040 7047 bx lr
1616 .LVL175:
1617 .L142:
2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */
1618 .loc 1 2910 6 view .LVU489
1619 0042 4FF0FF30 mov r0, #-1
1620 .LVL176:
2946:Middlewares/Third_Party/FatFs/src/ff.c **** }
1621 .loc 1 2946 4 is_stmt 1 view .LVU490
2946:Middlewares/Third_Party/FatFs/src/ff.c **** }
1622 .loc 1 2946 11 is_stmt 0 view .LVU491
1623 0046 7047 bx lr
1624 .cfi_endproc
1625 .LFE1217:
1627 .section .text.putc_init,"ax",%progbits
1628 .align 1
1629 .syntax unified
1630 .thumb
1631 .thumb_func
1633 putc_init:
1634 .LVL177:
1635 .LFB1241:
2956:Middlewares/Third_Party/FatFs/src/ff.c ****
2957:Middlewares/Third_Party/FatFs/src/ff.c ****
2958:Middlewares/Third_Party/FatFs/src/ff.c ****
2959:Middlewares/Third_Party/FatFs/src/ff.c ****
2960:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2961:Middlewares/Third_Party/FatFs/src/ff.c **** /* Load a sector and check if it is an FAT boot sector */
2962:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2963:Middlewares/Third_Party/FatFs/src/ff.c ****
2964:Middlewares/Third_Party/FatFs/src/ff.c **** static
2965:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk error */
2966:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* File system object */
2967:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sect /* Sector# (lba) to load and check if it is an FAT-VBR or not */
2968:Middlewares/Third_Party/FatFs/src/ff.c **** )
2969:Middlewares/Third_Party/FatFs/src/ff.c **** {
2970:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */
2971:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */
2972:Middlewares/Third_Party/FatFs/src/ff.c ****
2973:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed
2974:Middlewares/Third_Party/FatFs/src/ff.c ****
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90
2976:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2977:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
ARM GAS /tmp/ccH7dUYB.s page 84
2978:Middlewares/Third_Party/FatFs/src/ff.c **** }
2979:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
2980:Middlewares/Third_Party/FatFs/src/ff.c **** if (!mem_cmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) return 1;
2981:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2982:Middlewares/Third_Party/FatFs/src/ff.c **** return 2;
2983:Middlewares/Third_Party/FatFs/src/ff.c **** }
2984:Middlewares/Third_Party/FatFs/src/ff.c ****
2985:Middlewares/Third_Party/FatFs/src/ff.c ****
2986:Middlewares/Third_Party/FatFs/src/ff.c ****
2987:Middlewares/Third_Party/FatFs/src/ff.c ****
2988:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2989:Middlewares/Third_Party/FatFs/src/ff.c **** /* Find logical drive and check if the volume is mounted */
2990:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
2991:Middlewares/Third_Party/FatFs/src/ff.c ****
2992:Middlewares/Third_Party/FatFs/src/ff.c **** static
2993:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */
2994:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR** path, /* Pointer to pointer to the path name (drive number) */
2995:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS** rfs, /* Pointer to pointer to the found file system object */
2996:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE mode /* !=0: Check write protection for write access */
2997:Middlewares/Third_Party/FatFs/src/ff.c **** )
2998:Middlewares/Third_Party/FatFs/src/ff.c **** {
2999:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, *pt;
3000:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
3001:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat;
3002:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD bsect, fasize, tsect, sysect, nclst, szbfat, br[4];
3003:Middlewares/Third_Party/FatFs/src/ff.c **** WORD nrsv;
3004:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3005:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
3006:Middlewares/Third_Party/FatFs/src/ff.c ****
3007:Middlewares/Third_Party/FatFs/src/ff.c ****
3008:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive number */
3009:Middlewares/Third_Party/FatFs/src/ff.c **** *rfs = 0;
3010:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(path);
3011:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
3012:Middlewares/Third_Party/FatFs/src/ff.c ****
3013:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check if the file system object is valid or not */
3014:Middlewares/Third_Party/FatFs/src/ff.c **** fs = FatFs[vol]; /* Get pointer to the file system object */
3015:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */
3016:Middlewares/Third_Party/FatFs/src/ff.c ****
3017:Middlewares/Third_Party/FatFs/src/ff.c **** ENTER_FF(fs); /* Lock the volume */
3018:Middlewares/Third_Party/FatFs/src/ff.c **** *rfs = fs; /* Return pointer to the file system object */
3019:Middlewares/Third_Party/FatFs/src/ff.c ****
3020:Middlewares/Third_Party/FatFs/src/ff.c **** mode &= (BYTE)~FA_READ; /* Desired access mode, write access or not */
3021:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type) { /* If the volume has been mounted */
3022:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv);
3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */
3024:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */
3025:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
3026:Middlewares/Third_Party/FatFs/src/ff.c **** }
3027:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK; /* The file system object is valid */
3028:Middlewares/Third_Party/FatFs/src/ff.c **** }
3029:Middlewares/Third_Party/FatFs/src/ff.c **** }
3030:Middlewares/Third_Party/FatFs/src/ff.c ****
3031:Middlewares/Third_Party/FatFs/src/ff.c **** /* The file system object is not valid. */
3032:Middlewares/Third_Party/FatFs/src/ff.c **** /* Following code attempts to mount the volume. (analyze BPB and initialize the fs object) */
3033:Middlewares/Third_Party/FatFs/src/ff.c ****
3034:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear the file system object */
ARM GAS /tmp/ccH7dUYB.s page 85
3035:Middlewares/Third_Party/FatFs/src/ff.c **** fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */
3036:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */
3037:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) { /* Check if the initialization succeeded */
3038:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
3039:Middlewares/Third_Party/FatFs/src/ff.c **** }
3040:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */
3041:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
3042:Middlewares/Third_Party/FatFs/src/ff.c **** }
3043:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR;
3045:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
3046:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3047:Middlewares/Third_Party/FatFs/src/ff.c ****
3048:Middlewares/Third_Party/FatFs/src/ff.c **** /* Find an FAT partition on the drive. Supports only generic partitioning rules, FDISK and SFD. */
3049:Middlewares/Third_Party/FatFs/src/ff.c **** bsect = 0;
3050:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */
3051:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */
3052:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++) { /* Get partition offset */
3053:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
3054:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
3055:Middlewares/Third_Party/FatFs/src/ff.c **** }
3056:Middlewares/Third_Party/FatFs/src/ff.c **** i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */
3057:Middlewares/Third_Party/FatFs/src/ff.c **** if (i) i--;
3058:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Find an FAT volume */
3059:Middlewares/Third_Party/FatFs/src/ff.c **** bsect = br[i];
3060:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */
3061:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
3062:Middlewares/Third_Party/FatFs/src/ff.c **** }
3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */
3064:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */
3065:Middlewares/Third_Party/FatFs/src/ff.c ****
3066:Middlewares/Third_Party/FatFs/src/ff.c **** /* An FAT volume is found (bsect). Following code initializes the file system object */
3067:Middlewares/Third_Party/FatFs/src/ff.c ****
3068:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3069:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 1) {
3070:Middlewares/Third_Party/FatFs/src/ff.c **** QWORD maxlba;
3071:Middlewares/Third_Party/FatFs/src/ff.c ****
3072:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = BPB_ZeroedEx; i < BPB_ZeroedEx + 53 && fs->win[i] == 0; i++) ; /* Check zero filler */
3073:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < BPB_ZeroedEx + 53) return FR_NO_FILESYSTEM;
3074:Middlewares/Third_Party/FatFs/src/ff.c ****
3075:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT revision (Mu
3076:Middlewares/Third_Party/FatFs/src/ff.c ****
3077:Middlewares/Third_Party/FatFs/src/ff.c **** if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) { /* (BPB_BytsPerSecEx must be equal to the physica
3078:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NO_FILESYSTEM;
3079:Middlewares/Third_Party/FatFs/src/ff.c **** }
3080:Middlewares/Third_Party/FatFs/src/ff.c ****
3081:Middlewares/Third_Party/FatFs/src/ff.c **** maxlba = ld_qword(fs->win + BPB_TotSecEx) + bsect; /* Last LBA + 1 of the volume */
3082:Middlewares/Third_Party/FatFs/src/ff.c **** if (maxlba >= 0x100000000) return FR_NO_FILESYSTEM; /* (It cannot be handled in 32-bit LBA) */
3083:Middlewares/Third_Party/FatFs/src/ff.c ****
3084:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = ld_dword(fs->win + BPB_FatSzEx); /* Number of sectors per FAT */
3085:Middlewares/Third_Party/FatFs/src/ff.c ****
3086:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fats = fs->win[BPB_NumFATsEx]; /* Number of FATs */
3087:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_fats != 1) return FR_NO_FILESYSTEM; /* (Supports only 1 FAT) */
3088:Middlewares/Third_Party/FatFs/src/ff.c ****
3089:Middlewares/Third_Party/FatFs/src/ff.c **** fs->csize = 1 << fs->win[BPB_SecPerClusEx]; /* Cluster size */
3090:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->csize == 0) return FR_NO_FILESYSTEM; /* (Must be 1..32768) */
3091:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 86
3092:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = ld_dword(fs->win + BPB_NumClusEx); /* Number of clusters */
3093:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst > MAX_EXFAT) return FR_NO_FILESYSTEM; /* (Too many clusters) */
3094:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fatent = nclst + 2;
3095:Middlewares/Third_Party/FatFs/src/ff.c ****
3096:Middlewares/Third_Party/FatFs/src/ff.c **** /* Boundaries and Limits */
3097:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect;
3098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + ld_dword(fs->win + BPB_DataOfsEx);
3099:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + ld_dword(fs->win + BPB_FatOfsEx);
3100:Middlewares/Third_Party/FatFs/src/ff.c **** if (maxlba < (QWORD)fs->database + nclst * fs->csize) return FR_NO_FILESYSTEM; /* (Volume size mu
3101:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClusEx);
3102:Middlewares/Third_Party/FatFs/src/ff.c ****
3103:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check if bitmap location is in assumption (at the first cluster) */
3104:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, clust2sect(fs, fs->dirbase)) != FR_OK) return FR_DISK_ERR;
3105:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < SS(fs); i += SZDIRE) {
3106:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->win[i] == 0x81 && ld_dword(fs->win + i + 20) == 2) break; /* 81 entry with cluster #2? *
3107:Middlewares/Third_Party/FatFs/src/ff.c **** }
3108:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == SS(fs)) return FR_NO_FILESYSTEM;
3109:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */
3111:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3112:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_EXFAT; /* FAT sub-type */
3113:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3114:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_EXFAT */
3115:Middlewares/Third_Party/FatFs/src/ff.c **** {
3116:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must
3117:Middlewares/Third_Party/FatFs/src/ff.c ****
3118:Middlewares/Third_Party/FatFs/src/ff.c **** fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */
3119:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32);
3120:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
3121:Middlewares/Third_Party/FatFs/src/ff.c ****
3122:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */
3123:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */
3124:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */
3125:Middlewares/Third_Party/FatFs/src/ff.c ****
3126:Middlewares/Third_Party/FatFs/src/ff.c **** fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */
3127:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power o
3128:Middlewares/Third_Party/FatFs/src/ff.c ****
3129:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_rootdir = ld_word(fs->win + BPB_RootEntCnt); /* Number of root directory entries */
3130:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */
3131:Middlewares/Third_Party/FatFs/src/ff.c ****
3132:Middlewares/Third_Party/FatFs/src/ff.c **** tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */
3133:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32);
3134:Middlewares/Third_Party/FatFs/src/ff.c ****
3135:Middlewares/Third_Party/FatFs/src/ff.c **** nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */
3136:Middlewares/Third_Party/FatFs/src/ff.c **** if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */
3137:Middlewares/Third_Party/FatFs/src/ff.c ****
3138:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine the FAT sub type */
3139:Middlewares/Third_Party/FatFs/src/ff.c **** sysect = nrsv + fasize + fs->n_rootdir / (SS(fs) / SZDIRE); /* RSV + FAT + DIR */
3140:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
3141:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */
3142:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
3143:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32;
3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT16) fmt = FS_FAT16;
3145:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12;
3146:Middlewares/Third_Party/FatFs/src/ff.c ****
3147:Middlewares/Third_Party/FatFs/src/ff.c **** /* Boundaries and Limits */
3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fatent = nclst + 2; /* Number of FAT entries */
ARM GAS /tmp/ccH7dUYB.s page 87
3149:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */
3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + nrsv; /* FAT start sector */
3151:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */
3152:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0
3154:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
3155:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */
3156:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */
3157:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3158:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM;/* (BPB_RootEntCnt must not be 0) */
3159:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */
3160:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */
3161:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1);
3162:Middlewares/Third_Party/FatFs/src/ff.c **** }
3163:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not
3164:Middlewares/Third_Party/FatFs/src/ff.c ****
3165:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3166:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get FSINFO if available */
3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */
3168:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80;
3169:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 3) != 3
3170:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32 /* Enable FSINFO only if FAT32 and BPB_FSInfo32 == 1 */
3171:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_word(fs->win + BPB_FSInfo32) == 1
3172:Middlewares/Third_Party/FatFs/src/ff.c **** && move_window(fs, bsect + 1) == FR_OK)
3173:Middlewares/Third_Party/FatFs/src/ff.c **** {
3174:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0;
3175:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */
3176:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252
3177:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_StrucSig) == 0x61417272)
3178:Middlewares/Third_Party/FatFs/src/ff.c **** {
3179:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 1) == 0
3180:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = ld_dword(fs->win + FSI_Free_Count);
3181:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3182:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 2) == 0
3183:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ld_dword(fs->win + FSI_Nxt_Free);
3184:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3185:Middlewares/Third_Party/FatFs/src/ff.c **** }
3186:Middlewares/Third_Party/FatFs/src/ff.c **** }
3187:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* (_FS_NOFSINFO & 3) != 3 */
3188:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
3189:Middlewares/Third_Party/FatFs/src/ff.c **** }
3190:Middlewares/Third_Party/FatFs/src/ff.c ****
3191:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = fmt; /* FAT sub-type */
3192:Middlewares/Third_Party/FatFs/src/ff.c **** fs->id = ++Fsid; /* File system mount ID */
3193:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1
3194:Middlewares/Third_Party/FatFs/src/ff.c **** fs->lfnbuf = LfnBuf; /* Static LFN working buffer */
3195:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3196:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf = DirBuf; /* Static directory block scratchpad buuffer */
3197:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3198:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3199:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
3200:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdir = 0; /* Initialize current directory */
3201:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3202:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 /* Clear file lock semaphores */
3203:Middlewares/Third_Party/FatFs/src/ff.c **** clear_lock(fs);
3204:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3205:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
ARM GAS /tmp/ccH7dUYB.s page 88
3206:Middlewares/Third_Party/FatFs/src/ff.c **** }
3207:Middlewares/Third_Party/FatFs/src/ff.c ****
3208:Middlewares/Third_Party/FatFs/src/ff.c ****
3209:Middlewares/Third_Party/FatFs/src/ff.c ****
3210:Middlewares/Third_Party/FatFs/src/ff.c ****
3211:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3212:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check if the file/directory object is valid or not */
3213:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3214:Middlewares/Third_Party/FatFs/src/ff.c ****
3215:Middlewares/Third_Party/FatFs/src/ff.c **** static
3216:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */
3217:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID* obj, /* Pointer to the _OBJ, the 1st member in the FIL/DIR object, to check validity */
3218:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS** fs /* Pointer to pointer to the owner file system object to return */
3219:Middlewares/Third_Party/FatFs/src/ff.c **** )
3220:Middlewares/Third_Party/FatFs/src/ff.c **** {
3221:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INVALID_OBJECT;
3222:Middlewares/Third_Party/FatFs/src/ff.c ****
3223:Middlewares/Third_Party/FatFs/src/ff.c ****
3224:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj && obj->fs && obj->fs->fs_type && obj->id == obj->fs->id) { /* Test if the object is valid
3225:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
3226:Middlewares/Third_Party/FatFs/src/ff.c **** if (lock_fs(obj->fs)) { /* Obtain the filesystem object */
3227:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(disk_status(obj->fs->drv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialize
3228:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
3229:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3230:Middlewares/Third_Party/FatFs/src/ff.c **** unlock_fs(obj->fs, FR_OK);
3231:Middlewares/Third_Party/FatFs/src/ff.c **** }
3232:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3233:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_TIMEOUT;
3234:Middlewares/Third_Party/FatFs/src/ff.c **** }
3235:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3236:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(disk_status(obj->fs->drv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialized
3237:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
3238:Middlewares/Third_Party/FatFs/src/ff.c **** }
3239:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3240:Middlewares/Third_Party/FatFs/src/ff.c **** }
3241:Middlewares/Third_Party/FatFs/src/ff.c **** *fs = (res == FR_OK) ? obj->fs : 0; /* Corresponding filesystem object */
3242:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
3243:Middlewares/Third_Party/FatFs/src/ff.c **** }
3244:Middlewares/Third_Party/FatFs/src/ff.c ****
3245:Middlewares/Third_Party/FatFs/src/ff.c ****
3246:Middlewares/Third_Party/FatFs/src/ff.c ****
3247:Middlewares/Third_Party/FatFs/src/ff.c ****
3248:Middlewares/Third_Party/FatFs/src/ff.c **** /*---------------------------------------------------------------------------
3249:Middlewares/Third_Party/FatFs/src/ff.c ****
3250:Middlewares/Third_Party/FatFs/src/ff.c **** Public Functions (FatFs API)
3251:Middlewares/Third_Party/FatFs/src/ff.c ****
3252:Middlewares/Third_Party/FatFs/src/ff.c **** ----------------------------------------------------------------------------*/
3253:Middlewares/Third_Party/FatFs/src/ff.c ****
3254:Middlewares/Third_Party/FatFs/src/ff.c ****
3255:Middlewares/Third_Party/FatFs/src/ff.c ****
3256:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3257:Middlewares/Third_Party/FatFs/src/ff.c **** /* Mount/Unmount a Logical Drive */
3258:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3259:Middlewares/Third_Party/FatFs/src/ff.c ****
3260:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_mount (
3261:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS* fs, /* Pointer to the file system object (NULL:unmount)*/
3262:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Logical drive number to be mounted/unmounted */
ARM GAS /tmp/ccH7dUYB.s page 89
3263:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE opt /* Mode option 0:Do not mount (delayed mount), 1:Mount immediately */
3264:Middlewares/Third_Party/FatFs/src/ff.c **** )
3265:Middlewares/Third_Party/FatFs/src/ff.c **** {
3266:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *cfs;
3267:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
3268:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3269:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *rp = path;
3270:Middlewares/Third_Party/FatFs/src/ff.c ****
3271:Middlewares/Third_Party/FatFs/src/ff.c ****
3272:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive number */
3273:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(&rp);
3274:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
3275:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */
3276:Middlewares/Third_Party/FatFs/src/ff.c ****
3277:Middlewares/Third_Party/FatFs/src/ff.c **** if (cfs) {
3278:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
3279:Middlewares/Third_Party/FatFs/src/ff.c **** clear_lock(cfs);
3280:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3281:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Discard sync object of the current volume */
3282:Middlewares/Third_Party/FatFs/src/ff.c **** if (!ff_del_syncobj(cfs->sobj)) return FR_INT_ERR;
3283:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3284:Middlewares/Third_Party/FatFs/src/ff.c **** cfs->fs_type = 0; /* Clear old fs object */
3285:Middlewares/Third_Party/FatFs/src/ff.c **** }
3286:Middlewares/Third_Party/FatFs/src/ff.c ****
3287:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs) {
3288:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */
3289:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Create sync object for the new volume */
3290:Middlewares/Third_Party/FatFs/src/ff.c **** if (!ff_cre_syncobj((BYTE)vol, &fs->sobj)) return FR_INT_ERR;
3291:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3292:Middlewares/Third_Party/FatFs/src/ff.c **** }
3293:Middlewares/Third_Party/FatFs/src/ff.c **** FatFs[vol] = fs; /* Register new fs object */
3294:Middlewares/Third_Party/FatFs/src/ff.c ****
3295:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs || opt != 1) return FR_OK; /* Do not mount now, it will be mounted later */
3296:Middlewares/Third_Party/FatFs/src/ff.c ****
3297:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0); /* Force mounted the volume */
3298:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
3299:Middlewares/Third_Party/FatFs/src/ff.c **** }
3300:Middlewares/Third_Party/FatFs/src/ff.c ****
3301:Middlewares/Third_Party/FatFs/src/ff.c ****
3302:Middlewares/Third_Party/FatFs/src/ff.c ****
3303:Middlewares/Third_Party/FatFs/src/ff.c ****
3304:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3305:Middlewares/Third_Party/FatFs/src/ff.c **** /* Open or Create a File */
3306:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3307:Middlewares/Third_Party/FatFs/src/ff.c ****
3308:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_open (
3309:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the blank file object */
3310:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Pointer to the file name */
3311:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE mode /* Access mode and file open mode flags */
3312:Middlewares/Third_Party/FatFs/src/ff.c **** )
3313:Middlewares/Third_Party/FatFs/src/ff.c **** {
3314:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3315:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
3316:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3317:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3318:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dw, cl, bcs, clst, sc;
3319:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ofs;
ARM GAS /tmp/ccH7dUYB.s page 90
3320:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3321:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
3322:Middlewares/Third_Party/FatFs/src/ff.c ****
3323:Middlewares/Third_Party/FatFs/src/ff.c ****
3324:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp) return FR_INVALID_OBJECT;
3325:Middlewares/Third_Party/FatFs/src/ff.c ****
3326:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
3327:Middlewares/Third_Party/FatFs/src/ff.c **** mode &= _FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_A
3328:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, mode);
3329:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3330:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
3331:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
3332:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
3333:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */
3334:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3335:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */
3336:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
3337:Middlewares/Third_Party/FatFs/src/ff.c **** }
3338:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
3339:Middlewares/Third_Party/FatFs/src/ff.c **** else {
3340:Middlewares/Third_Party/FatFs/src/ff.c **** res = chk_lock(&dj, (mode & ~FA_READ) ? 1 : 0);
3341:Middlewares/Third_Party/FatFs/src/ff.c **** }
3342:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3343:Middlewares/Third_Party/FatFs/src/ff.c **** }
3344:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create or Open a file */
3345:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) {
3346:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* No file, create new */
3347:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */
3348:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
3349:Middlewares/Third_Party/FatFs/src/ff.c **** res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES;
3350:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3351:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj);
3352:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3353:Middlewares/Third_Party/FatFs/src/ff.c **** }
3354:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_CREATE_ALWAYS; /* File is created */
3355:Middlewares/Third_Party/FatFs/src/ff.c **** }
3356:Middlewares/Third_Party/FatFs/src/ff.c **** else { /* Any object is already existing */
3357:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & (AM_RDO | AM_DIR)) { /* Cannot overwrite it (R/O or DIR) */
3358:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
3359:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3360:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_NEW) res = FR_EXIST; /* Cannot create as new file */
3361:Middlewares/Third_Party/FatFs/src/ff.c **** }
3362:Middlewares/Third_Party/FatFs/src/ff.c **** }
3363:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (mode & FA_CREATE_ALWAYS)) { /* Truncate it if overwrite mode */
3364:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME();
3365:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3366:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
3367:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get current allocation info */
3368:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.fs = fs;
3369:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus);
3370:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize);
3371:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2;
3372:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.n_frag = 0;
3373:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize directory entry block */
3374:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_CrtTime, dw); /* Set created time */
3375:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_CrtTime10] = 0;
3376:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_ModTime, dw); /* Set modified time */
ARM GAS /tmp/ccH7dUYB.s page 91
3377:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_ModTime10] = 0;
3378:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_Attr] = AM_ARC; /* Reset attribute */
3379:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_FstClus, 0); /* Reset file allocation info */
3380:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_FileSize, 0);
3381:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_ValidFileSize, 0);
3382:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_GenFlags] = 1;
3383:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj);
3384:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && fp->obj.sclust) { /* Remove the cluster chain if exist */
3385:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0);
3386:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = fp->obj.sclust - 1; /* Reuse the cluster hole */
3387:Middlewares/Third_Party/FatFs/src/ff.c **** }
3388:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3389:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3390:Middlewares/Third_Party/FatFs/src/ff.c **** {
3391:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean directory info */
3392:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_CrtTime, dw); /* Set created time */
3393:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */
3394:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */
3395:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_clust(fs, dj.dir); /* Get cluster chain */
3396:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */
3397:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_FileSize, 0);
3398:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3399:Middlewares/Third_Party/FatFs/src/ff.c ****
3400:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) { /* Remove the cluster chain if exist */
3401:Middlewares/Third_Party/FatFs/src/ff.c **** dw = fs->winsect;
3402:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0);
3403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3404:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw);
3405:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */
3406:Middlewares/Third_Party/FatFs/src/ff.c **** }
3407:Middlewares/Third_Party/FatFs/src/ff.c **** }
3408:Middlewares/Third_Party/FatFs/src/ff.c **** }
3409:Middlewares/Third_Party/FatFs/src/ff.c **** }
3410:Middlewares/Third_Party/FatFs/src/ff.c **** }
3411:Middlewares/Third_Party/FatFs/src/ff.c **** else { /* Open an existing file */
3412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Following succeeded */
3413:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */
3414:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE;
3415:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3416:Middlewares/Third_Party/FatFs/src/ff.c **** if ((mode & FA_WRITE) && (dj.obj.attr & AM_RDO)) { /* R/O violation */
3417:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
3418:Middlewares/Third_Party/FatFs/src/ff.c **** }
3419:Middlewares/Third_Party/FatFs/src/ff.c **** }
3420:Middlewares/Third_Party/FatFs/src/ff.c **** }
3421:Middlewares/Third_Party/FatFs/src/ff.c **** }
3422:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3423:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */
3424:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_MODIFIED;
3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
3426:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir;
3427:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
3428:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.lockid = inc_lock(&dj, (mode & ~FA_READ) ? 1 : 0);
3429:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR;
3430:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3431:Middlewares/Third_Party/FatFs/src/ff.c **** }
3432:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* R/O configuration */
3433:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
ARM GAS /tmp/ccH7dUYB.s page 92
3434:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */
3435:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
3436:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3437:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */
3438:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE;
3439:Middlewares/Third_Party/FatFs/src/ff.c **** }
3440:Middlewares/Third_Party/FatFs/src/ff.c **** }
3441:Middlewares/Third_Party/FatFs/src/ff.c **** }
3442:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3443:Middlewares/Third_Party/FatFs/src/ff.c ****
3444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3445:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3446:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
3447:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.c_scl = dj.obj.sclust; /* Get containing directory info */
3448:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat;
3449:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.c_ofs = dj.blk_ofs;
3450:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */
3451:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize);
3452:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2;
3453:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3454:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3455:Middlewares/Third_Party/FatFs/src/ff.c **** {
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */
3457:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
3458:Middlewares/Third_Party/FatFs/src/ff.c **** }
3459:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
3460:Middlewares/Third_Party/FatFs/src/ff.c **** fp->cltbl = 0; /* Disable fast seek mode */
3461:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3462:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.fs = fs; /* Validate the file object */
3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.id = fs->id;
3464:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */
3465:Middlewares/Third_Party/FatFs/src/ff.c **** fp->err = 0; /* Clear error flag */
3466:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = 0; /* Invalidate current data sector */
3467:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = 0; /* Set file pointer top of the file */
3468:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3469:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
3470:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fp->buf, 0, _MAX_SS); /* Clear sector buffer */
3471:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3472:Middlewares/Third_Party/FatFs/src/ff.c **** if ((mode & FA_SEEKEND) && fp->obj.objsize > 0) { /* Seek to end of file if FA_OPEN_APPEND is sp
3473:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */
3474:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */
3475:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */
3476:Middlewares/Third_Party/FatFs/src/ff.c **** for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) {
3477:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR;
3479:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR;
3480:Middlewares/Third_Party/FatFs/src/ff.c **** }
3481:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */
3483:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
3484:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
3485:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3486:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = sc + (DWORD)(ofs / SS(fs));
3487:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
3488:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fp->buf, fp->sect, 1) != RES_OK) res = FR_DISK_ERR;
3489:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3490:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 93
3491:Middlewares/Third_Party/FatFs/src/ff.c **** }
3492:Middlewares/Third_Party/FatFs/src/ff.c **** }
3493:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3494:Middlewares/Third_Party/FatFs/src/ff.c **** }
3495:Middlewares/Third_Party/FatFs/src/ff.c ****
3496:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
3497:Middlewares/Third_Party/FatFs/src/ff.c **** }
3498:Middlewares/Third_Party/FatFs/src/ff.c ****
3499:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) fp->obj.fs = 0; /* Invalidate file object on error */
3500:Middlewares/Third_Party/FatFs/src/ff.c ****
3501:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
3502:Middlewares/Third_Party/FatFs/src/ff.c **** }
3503:Middlewares/Third_Party/FatFs/src/ff.c ****
3504:Middlewares/Third_Party/FatFs/src/ff.c ****
3505:Middlewares/Third_Party/FatFs/src/ff.c ****
3506:Middlewares/Third_Party/FatFs/src/ff.c ****
3507:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3508:Middlewares/Third_Party/FatFs/src/ff.c **** /* Read File */
3509:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3510:Middlewares/Third_Party/FatFs/src/ff.c ****
3511:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_read (
3512:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
3513:Middlewares/Third_Party/FatFs/src/ff.c **** void* buff, /* Pointer to data buffer */
3514:Middlewares/Third_Party/FatFs/src/ff.c **** UINT btr, /* Number of bytes to read */
3515:Middlewares/Third_Party/FatFs/src/ff.c **** UINT* br /* Pointer to number of bytes read */
3516:Middlewares/Third_Party/FatFs/src/ff.c **** )
3517:Middlewares/Third_Party/FatFs/src/ff.c **** {
3518:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3519:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3520:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect;
3521:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t remain;
3522:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rcnt, cc, csect;
3523:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *rbuff = (BYTE*)buff;
3524:Middlewares/Third_Party/FatFs/src/ff.c ****
3525:Middlewares/Third_Party/FatFs/src/ff.c ****
3526:Middlewares/Third_Party/FatFs/src/ff.c **** *br = 0; /* Clear read byte counter */
3527:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
3529:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
3530:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
3531:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
3532:Middlewares/Third_Party/FatFs/src/ff.c ****
3533:Middlewares/Third_Party/FatFs/src/ff.c **** for ( ; btr; /* Repeat until all data read */
3534:Middlewares/Third_Party/FatFs/src/ff.c **** rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
3535:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
3536:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
3538:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
3539:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow cluster chain from the origin */
3540:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Middle or end of the file */
3541:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
3542:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->cltbl) {
3543:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
3544:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3545:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3546:Middlewares/Third_Party/FatFs/src/ff.c **** {
3547:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, fp->clust); /* Follow cluster chain on the FAT */
ARM GAS /tmp/ccH7dUYB.s page 94
3548:Middlewares/Third_Party/FatFs/src/ff.c **** }
3549:Middlewares/Third_Party/FatFs/src/ff.c **** }
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2) ABORT(fs, FR_INT_ERR);
3551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
3552:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
3553:Middlewares/Third_Party/FatFs/src/ff.c **** }
3554:Middlewares/Third_Party/FatFs/src/ff.c **** sect = clust2sect(fs, fp->clust); /* Get current sector */
3555:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
3556:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
3557:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btr / SS(fs); /* When remaining bytes >= sector size, */
3558:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */
3559:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
3560:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
3561:Middlewares/Third_Party/FatFs/src/ff.c **** }
3562:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR);
3563:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
3564:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
3565:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->wflag && fs->winsect - sect < cc) {
3566:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fs->winsect - sect) * SS(fs)), fs->win, SS(fs));
3567:Middlewares/Third_Party/FatFs/src/ff.c **** }
3568:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3569:Middlewares/Third_Party/FatFs/src/ff.c **** if ((fp->flag & FA_DIRTY) && fp->sect - sect < cc) {
3570:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
3571:Middlewares/Third_Party/FatFs/src/ff.c **** }
3572:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3573:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3574:Middlewares/Third_Party/FatFs/src/ff.c **** rcnt = SS(fs) * cc; /* Number of bytes transferred */
3575:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
3576:Middlewares/Third_Party/FatFs/src/ff.c **** }
3577:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
3578:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->sect != sect) { /* Load data sector if not in cache */
3579:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3580:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */
3581:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
3582:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
3583:Middlewares/Third_Party/FatFs/src/ff.c **** }
3584:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3585:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cach
3586:Middlewares/Third_Party/FatFs/src/ff.c **** }
3587:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3588:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = sect;
3589:Middlewares/Third_Party/FatFs/src/ff.c **** }
3590:Middlewares/Third_Party/FatFs/src/ff.c **** rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */
3591:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
3592:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
3593:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */
3594:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff, fs->win + fp->fptr % SS(fs), rcnt); /* Extract partial sector */
3595:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3596:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff, fp->buf + fp->fptr % SS(fs), rcnt); /* Extract partial sector */
3597:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3598:Middlewares/Third_Party/FatFs/src/ff.c **** }
3599:Middlewares/Third_Party/FatFs/src/ff.c ****
3600:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, FR_OK);
3601:Middlewares/Third_Party/FatFs/src/ff.c **** }
3602:Middlewares/Third_Party/FatFs/src/ff.c ****
3603:Middlewares/Third_Party/FatFs/src/ff.c ****
3604:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 95
3605:Middlewares/Third_Party/FatFs/src/ff.c ****
3606:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3607:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3608:Middlewares/Third_Party/FatFs/src/ff.c **** /* Write File */
3609:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3610:Middlewares/Third_Party/FatFs/src/ff.c ****
3611:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_write (
3612:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
3613:Middlewares/Third_Party/FatFs/src/ff.c **** const void* buff, /* Pointer to the data to be written */
3614:Middlewares/Third_Party/FatFs/src/ff.c **** UINT btw, /* Number of bytes to write */
3615:Middlewares/Third_Party/FatFs/src/ff.c **** UINT* bw /* Pointer to number of bytes written */
3616:Middlewares/Third_Party/FatFs/src/ff.c **** )
3617:Middlewares/Third_Party/FatFs/src/ff.c **** {
3618:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3619:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3620:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect;
3621:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wcnt, cc, csect;
3622:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *wbuff = (const BYTE*)buff;
3623:Middlewares/Third_Party/FatFs/src/ff.c ****
3624:Middlewares/Third_Party/FatFs/src/ff.c ****
3625:Middlewares/Third_Party/FatFs/src/ff.c **** *bw = 0; /* Clear write byte counter */
3626:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
3628:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
3629:Middlewares/Third_Party/FatFs/src/ff.c ****
3630:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check fptr wrap-around (file size cannot reach 4GiB on FATxx) */
3631:Middlewares/Third_Party/FatFs/src/ff.c **** if ((!_FS_EXFAT || fs->fs_type != FS_EXFAT) && (DWORD)(fp->fptr + btw) < (DWORD)fp->fptr) {
3632:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr);
3633:Middlewares/Third_Party/FatFs/src/ff.c **** }
3634:Middlewares/Third_Party/FatFs/src/ff.c ****
3635:Middlewares/Third_Party/FatFs/src/ff.c **** for ( ; btw; /* Repeat until all data written */
3636:Middlewares/Third_Party/FatFs/src/ff.c **** wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->
3637:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
3638:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
3640:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
3641:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow from the origin */
3642:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster is allocated, */
3643:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); /* create a new cluster chain */
3644:Middlewares/Third_Party/FatFs/src/ff.c **** }
3645:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* On the middle or end of the file */
3646:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
3647:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->cltbl) {
3648:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
3649:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3650:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3651:Middlewares/Third_Party/FatFs/src/ff.c **** {
3652:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, fp->clust); /* Follow or stretch cluster chain on the FAT */
3653:Middlewares/Third_Party/FatFs/src/ff.c **** }
3654:Middlewares/Third_Party/FatFs/src/ff.c **** }
3655:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) break; /* Could not allocate a new cluster (disk full) */
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
3657:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
3658:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
3659:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */
3660:Middlewares/Third_Party/FatFs/src/ff.c **** }
3661:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
ARM GAS /tmp/ccH7dUYB.s page 96
3662:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->winsect == fp->sect && sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Write-back s
3663:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3664:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back sector cache */
3665:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
3666:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
3667:Middlewares/Third_Party/FatFs/src/ff.c **** }
3668:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3669:Middlewares/Third_Party/FatFs/src/ff.c **** sect = clust2sect(fs, fp->clust); /* Get current sector */
3670:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
3671:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
3672:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btw / SS(fs); /* When remaining bytes >= sector size, */
3673:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */
3674:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
3675:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
3676:Middlewares/Third_Party/FatFs/src/ff.c **** }
3677:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR);
3678:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
3679:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
3680:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->winsect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct writ
3681:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fs->win, wbuff + ((fs->winsect - sect) * SS(fs)), SS(fs));
3682:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0;
3683:Middlewares/Third_Party/FatFs/src/ff.c **** }
3684:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3685:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->sect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write *
3686:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs));
3687:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
3688:Middlewares/Third_Party/FatFs/src/ff.c **** }
3689:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3690:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3691:Middlewares/Third_Party/FatFs/src/ff.c **** wcnt = SS(fs) * cc; /* Number of bytes transferred */
3692:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
3693:Middlewares/Third_Party/FatFs/src/ff.c **** }
3694:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
3695:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling on the growing edge */
3696:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR);
3697:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = sect;
3698:Middlewares/Third_Party/FatFs/src/ff.c **** }
3699:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3700:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->sect != sect && /* Fill sector cache with file data */
3701:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize &&
3702:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) {
3703:Middlewares/Third_Party/FatFs/src/ff.c **** ABORT(fs, FR_DISK_ERR);
3704:Middlewares/Third_Party/FatFs/src/ff.c **** }
3705:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3706:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = sect;
3707:Middlewares/Third_Party/FatFs/src/ff.c **** }
3708:Middlewares/Third_Party/FatFs/src/ff.c **** wcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */
3709:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
3710:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
3711:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */
3712:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fs->win + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */
3713:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3714:Middlewares/Third_Party/FatFs/src/ff.c **** #else
3715:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */
3716:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY;
3717:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3718:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 97
3719:Middlewares/Third_Party/FatFs/src/ff.c ****
3720:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; /* Set file change flag */
3721:Middlewares/Third_Party/FatFs/src/ff.c ****
3722:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, FR_OK);
3723:Middlewares/Third_Party/FatFs/src/ff.c **** }
3724:Middlewares/Third_Party/FatFs/src/ff.c ****
3725:Middlewares/Third_Party/FatFs/src/ff.c ****
3726:Middlewares/Third_Party/FatFs/src/ff.c ****
3727:Middlewares/Third_Party/FatFs/src/ff.c ****
3728:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3729:Middlewares/Third_Party/FatFs/src/ff.c **** /* Synchronize the File */
3730:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3731:Middlewares/Third_Party/FatFs/src/ff.c ****
3732:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_sync (
3733:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object */
3734:Middlewares/Third_Party/FatFs/src/ff.c **** )
3735:Middlewares/Third_Party/FatFs/src/ff.c **** {
3736:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3737:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3738:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tm;
3739:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir;
3740:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3741:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
3742:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
3743:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3744:Middlewares/Third_Party/FatFs/src/ff.c ****
3745:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
3746:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3747:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */
3748:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
3749:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back cached data if needed */
3750:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR);
3751:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
3752:Middlewares/Third_Party/FatFs/src/ff.c **** }
3753:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3754:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update the directory entry */
3755:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); /* Modified time */
3756:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3757:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
3758:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_first_frag(&fp->obj); /* Fill first fragment on the FAT if needed */
3759:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3760:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if nee
3761:Middlewares/Third_Party/FatFs/src/ff.c **** }
3762:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3763:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
3764:Middlewares/Third_Party/FatFs/src/ff.c **** res = load_obj_dir(&dj, &fp->obj); /* Load directory entry block */
3765:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3766:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive bit */
3767:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_GenFlags] = fp->obj.stat | 1; /* Update file allocation info */
3768:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_FstClus, fp->obj.sclust);
3769:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_FileSize, fp->obj.objsize);
3770:Middlewares/Third_Party/FatFs/src/ff.c **** st_qword(fs->dirbuf + XDIR_ValidFileSize, fp->obj.objsize);
3771:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Update modified time */
3772:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_ModTime10] = 0;
3773:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_AccTime, 0);
3774:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj); /* Restore it to the directory */
3775:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
ARM GAS /tmp/ccH7dUYB.s page 98
3776:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
3777:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED;
3778:Middlewares/Third_Party/FatFs/src/ff.c **** }
3779:Middlewares/Third_Party/FatFs/src/ff.c **** }
3780:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
3781:Middlewares/Third_Party/FatFs/src/ff.c **** }
3782:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3783:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3784:Middlewares/Third_Party/FatFs/src/ff.c **** {
3785:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fp->dir_sect);
3786:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3787:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fp->dir_ptr;
3788:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
3789:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */
3790:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */
3791:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Update modified time */
3792:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_LstAccDate, 0);
3793:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3794:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); /* Restore it to the directory */
3795:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED;
3796:Middlewares/Third_Party/FatFs/src/ff.c **** }
3797:Middlewares/Third_Party/FatFs/src/ff.c **** }
3798:Middlewares/Third_Party/FatFs/src/ff.c **** }
3799:Middlewares/Third_Party/FatFs/src/ff.c **** }
3800:Middlewares/Third_Party/FatFs/src/ff.c ****
3801:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
3802:Middlewares/Third_Party/FatFs/src/ff.c **** }
3803:Middlewares/Third_Party/FatFs/src/ff.c ****
3804:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
3805:Middlewares/Third_Party/FatFs/src/ff.c ****
3806:Middlewares/Third_Party/FatFs/src/ff.c ****
3807:Middlewares/Third_Party/FatFs/src/ff.c ****
3808:Middlewares/Third_Party/FatFs/src/ff.c ****
3809:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3810:Middlewares/Third_Party/FatFs/src/ff.c **** /* Close File */
3811:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3812:Middlewares/Third_Party/FatFs/src/ff.c ****
3813:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_close (
3814:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object to be closed */
3815:Middlewares/Third_Party/FatFs/src/ff.c **** )
3816:Middlewares/Third_Party/FatFs/src/ff.c **** {
3817:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3818:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3819:Middlewares/Third_Party/FatFs/src/ff.c ****
3820:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
3821:Middlewares/Third_Party/FatFs/src/ff.c **** res = f_sync(fp); /* Flush cached data */
3822:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
3823:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3824:Middlewares/Third_Party/FatFs/src/ff.c **** {
3825:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Lock volume */
3826:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3827:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
3828:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(fp->obj.lockid); /* Decrement file open counter */
3829:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
3830:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3831:Middlewares/Third_Party/FatFs/src/ff.c **** {
3832:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.fs = 0; /* Invalidate file object */
ARM GAS /tmp/ccH7dUYB.s page 99
3833:Middlewares/Third_Party/FatFs/src/ff.c **** }
3834:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
3835:Middlewares/Third_Party/FatFs/src/ff.c **** unlock_fs(fs, FR_OK); /* Unlock volume */
3836:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3837:Middlewares/Third_Party/FatFs/src/ff.c **** }
3838:Middlewares/Third_Party/FatFs/src/ff.c **** }
3839:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
3840:Middlewares/Third_Party/FatFs/src/ff.c **** }
3841:Middlewares/Third_Party/FatFs/src/ff.c ****
3842:Middlewares/Third_Party/FatFs/src/ff.c ****
3843:Middlewares/Third_Party/FatFs/src/ff.c ****
3844:Middlewares/Third_Party/FatFs/src/ff.c ****
3845:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH >= 1
3846:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3847:Middlewares/Third_Party/FatFs/src/ff.c **** /* Change Current Directory or Current Drive, Get Current Directory */
3848:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3849:Middlewares/Third_Party/FatFs/src/ff.c ****
3850:Middlewares/Third_Party/FatFs/src/ff.c **** #if _VOLUMES >= 2
3851:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_chdrive (
3852:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Drive number */
3853:Middlewares/Third_Party/FatFs/src/ff.c **** )
3854:Middlewares/Third_Party/FatFs/src/ff.c **** {
3855:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
3856:Middlewares/Third_Party/FatFs/src/ff.c ****
3857:Middlewares/Third_Party/FatFs/src/ff.c ****
3858:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive number */
3859:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(&path);
3860:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
3861:Middlewares/Third_Party/FatFs/src/ff.c ****
3862:Middlewares/Third_Party/FatFs/src/ff.c **** CurrVol = (BYTE)vol; /* Set it as current volume */
3863:Middlewares/Third_Party/FatFs/src/ff.c ****
3864:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
3865:Middlewares/Third_Party/FatFs/src/ff.c **** }
3866:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3867:Middlewares/Third_Party/FatFs/src/ff.c ****
3868:Middlewares/Third_Party/FatFs/src/ff.c ****
3869:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_chdir (
3870:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Pointer to the directory path */
3871:Middlewares/Third_Party/FatFs/src/ff.c **** )
3872:Middlewares/Third_Party/FatFs/src/ff.c **** {
3873:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3874:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
3875:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3876:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
3877:Middlewares/Third_Party/FatFs/src/ff.c ****
3878:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
3879:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0);
3880:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3881:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
3882:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
3883:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the path */
3884:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
3885:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) {
3886:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdir = dj.obj.sclust; /* It is the start directory itself */
3887:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3888:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
3889:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_scl = dj.obj.c_scl;
ARM GAS /tmp/ccH7dUYB.s page 100
3890:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_size = dj.obj.c_size;
3891:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_ofs = dj.obj.c_ofs;
3892:Middlewares/Third_Party/FatFs/src/ff.c **** }
3893:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3894:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3895:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a sub-directory */
3896:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3897:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
3898:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdir = ld_dword(fs->dirbuf + XDIR_FstClus); /* Sub-directory cluster */
3899:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_scl = dj.obj.sclust; /* Save containing directory information */
3900:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat;
3901:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdc_ofs = dj.blk_ofs;
3902:Middlewares/Third_Party/FatFs/src/ff.c **** } else
3903:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3904:Middlewares/Third_Party/FatFs/src/ff.c **** {
3905:Middlewares/Third_Party/FatFs/src/ff.c **** fs->cdir = ld_clust(fs, dj.dir); /* Sub-directory cluster */
3906:Middlewares/Third_Party/FatFs/src/ff.c **** }
3907:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3908:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; /* Reached but a file */
3909:Middlewares/Third_Party/FatFs/src/ff.c **** }
3910:Middlewares/Third_Party/FatFs/src/ff.c **** }
3911:Middlewares/Third_Party/FatFs/src/ff.c **** }
3912:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
3913:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_NO_PATH;
3914:Middlewares/Third_Party/FatFs/src/ff.c **** }
3915:Middlewares/Third_Party/FatFs/src/ff.c ****
3916:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
3917:Middlewares/Third_Party/FatFs/src/ff.c **** }
3918:Middlewares/Third_Party/FatFs/src/ff.c ****
3919:Middlewares/Third_Party/FatFs/src/ff.c ****
3920:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH >= 2
3921:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_getcwd (
3922:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR* buff, /* Pointer to the directory path */
3923:Middlewares/Third_Party/FatFs/src/ff.c **** UINT len /* Size of path */
3924:Middlewares/Third_Party/FatFs/src/ff.c **** )
3925:Middlewares/Third_Party/FatFs/src/ff.c **** {
3926:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3927:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
3928:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
3929:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, n;
3930:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ccl;
3931:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR *tp;
3932:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO fno;
3933:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
3934:Middlewares/Third_Party/FatFs/src/ff.c ****
3935:Middlewares/Third_Party/FatFs/src/ff.c ****
3936:Middlewares/Third_Party/FatFs/src/ff.c **** *buff = 0;
3937:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
3938:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume((const TCHAR**)&buff, &fs, 0); /* Get current volume */
3939:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3940:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
3941:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
3942:Middlewares/Third_Party/FatFs/src/ff.c **** i = len; /* Bottom of buffer (directory stack base) */
3943:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* (Cannot do getcwd on exFAT and returns root path)
3944:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.sclust = fs->cdir; /* Start to follow upper directory from current directory */
3945:Middlewares/Third_Party/FatFs/src/ff.c **** while ((ccl = dj.obj.sclust) != 0) { /* Repeat while current directory is a sub-directory */
3946:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(&dj, 1 * SZDIRE); /* Get parent directory */
ARM GAS /tmp/ccH7dUYB.s page 101
3947:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3948:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dj.sect);
3949:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3950:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.sclust = ld_clust(fs, dj.dir); /* Goto parent directory */
3951:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(&dj, 0);
3952:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3953:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Find the entry links to the child directory */
3954:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&dj, 0);
3955:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3956:Middlewares/Third_Party/FatFs/src/ff.c **** if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */
3957:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(&dj, 0);
3958:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK);
3959:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_INT_ERR;/* It cannot be 'not found'. */
3960:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3961:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(&dj, &fno); /* Get the directory name and push it to the buffer */
3962:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 0; fno.fname[n]; n++) ;
3963:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < n + 3) {
3964:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NOT_ENOUGH_CORE; break;
3965:Middlewares/Third_Party/FatFs/src/ff.c **** }
3966:Middlewares/Third_Party/FatFs/src/ff.c **** while (n) buff[--i] = fno.fname[--n];
3967:Middlewares/Third_Party/FatFs/src/ff.c **** buff[--i] = '/';
3968:Middlewares/Third_Party/FatFs/src/ff.c **** }
3969:Middlewares/Third_Party/FatFs/src/ff.c **** }
3970:Middlewares/Third_Party/FatFs/src/ff.c **** tp = buff;
3971:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3972:Middlewares/Third_Party/FatFs/src/ff.c **** #if _VOLUMES >= 2
3973:Middlewares/Third_Party/FatFs/src/ff.c **** *tp++ = '0' + CurrVol; /* Put drive number */
3974:Middlewares/Third_Party/FatFs/src/ff.c **** *tp++ = ':';
3975:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
3976:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == len) { /* Root-directory */
3977:Middlewares/Third_Party/FatFs/src/ff.c **** *tp++ = '/';
3978:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Sub-directroy */
3979:Middlewares/Third_Party/FatFs/src/ff.c **** do /* Add stacked path str */
3980:Middlewares/Third_Party/FatFs/src/ff.c **** *tp++ = buff[i++];
3981:Middlewares/Third_Party/FatFs/src/ff.c **** while (i < len);
3982:Middlewares/Third_Party/FatFs/src/ff.c **** }
3983:Middlewares/Third_Party/FatFs/src/ff.c **** }
3984:Middlewares/Third_Party/FatFs/src/ff.c **** *tp = 0;
3985:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
3986:Middlewares/Third_Party/FatFs/src/ff.c **** }
3987:Middlewares/Third_Party/FatFs/src/ff.c ****
3988:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
3989:Middlewares/Third_Party/FatFs/src/ff.c **** }
3990:Middlewares/Third_Party/FatFs/src/ff.c ****
3991:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_RPATH >= 2 */
3992:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_RPATH >= 1 */
3993:Middlewares/Third_Party/FatFs/src/ff.c ****
3994:Middlewares/Third_Party/FatFs/src/ff.c ****
3995:Middlewares/Third_Party/FatFs/src/ff.c ****
3996:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
3997:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
3998:Middlewares/Third_Party/FatFs/src/ff.c **** /* Seek File R/W Pointer */
3999:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4000:Middlewares/Third_Party/FatFs/src/ff.c ****
4001:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_lseek (
4002:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
4003:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ofs /* File pointer from top of file */
ARM GAS /tmp/ccH7dUYB.s page 102
4004:Middlewares/Third_Party/FatFs/src/ff.c **** )
4005:Middlewares/Third_Party/FatFs/src/ff.c **** {
4006:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4007:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4008:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, bcs, nsect;
4009:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ifptr;
4010:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
4011:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl, pcl, ncl, tcl, dsc, tlen, ulen, *tbl;
4012:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4013:Middlewares/Third_Party/FatFs/src/ff.c ****
4014:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
4015:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err;
4016:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
4017:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && fs->fs_type == FS_EXFAT) {
4018:Middlewares/Third_Party/FatFs/src/ff.c **** res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed
4019:Middlewares/Third_Party/FatFs/src/ff.c **** }
4020:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4021:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) LEAVE_FF(fs, res);
4022:Middlewares/Third_Party/FatFs/src/ff.c ****
4023:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->cltbl) { /* Fast seek */
4025:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */
4026:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl;
4027:Middlewares/Third_Party/FatFs/src/ff.c **** tlen = *tbl++; ulen = 2; /* Given table size and required table size */
4028:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
4029:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) {
4030:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4031:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get a fragment */
4032:Middlewares/Third_Party/FatFs/src/ff.c **** tcl = cl; ncl = 0; ulen += 2; /* Top, length and used items */
4033:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4034:Middlewares/Third_Party/FatFs/src/ff.c **** pcl = cl; ncl++;
4035:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl);
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
4037:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
4038:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
4039:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */
4040:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl++ = ncl; *tbl++ = tcl;
4041:Middlewares/Third_Party/FatFs/src/ff.c **** }
4042:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl < fs->n_fatent); /* Repeat until end of chain */
4043:Middlewares/Third_Party/FatFs/src/ff.c **** }
4044:Middlewares/Third_Party/FatFs/src/ff.c **** *fp->cltbl = ulen; /* Number of items used */
4045:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) {
4046:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl = 0; /* Terminate table */
4047:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4048:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NOT_ENOUGH_CORE; /* Given table size is smaller than required */
4049:Middlewares/Third_Party/FatFs/src/ff.c **** }
4050:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Fast seek */
4051:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs > fp->obj.objsize) ofs = fp->obj.objsize; /* Clip offset at the file size */
4052:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */
4053:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
4054:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clmt_clust(fp, ofs - 1);
4055:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust);
4056:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dsc) ABORT(fs, FR_INT_ERR);
4057:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
4058:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
4059:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
4060:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
ARM GAS /tmp/ccH7dUYB.s page 103
4061:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */
4062:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
4063:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
4064:Middlewares/Third_Party/FatFs/src/ff.c **** }
4065:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4066:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sec
4067:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4068:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = dsc;
4069:Middlewares/Third_Party/FatFs/src/ff.c **** }
4070:Middlewares/Third_Party/FatFs/src/ff.c **** }
4071:Middlewares/Third_Party/FatFs/src/ff.c **** }
4072:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4073:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4074:Middlewares/Third_Party/FatFs/src/ff.c ****
4075:Middlewares/Third_Party/FatFs/src/ff.c **** /* Normal Seek */
4076:Middlewares/Third_Party/FatFs/src/ff.c **** {
4077:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4078:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type != FS_EXFAT && ofs >= 0x100000000) ofs = 0xFFFFFFFF; /* Clip at 4GiB-1 if at FATx
4079:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4080:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs > fp->obj.objsize && (_FS_READONLY || !(fp->flag & FA_WRITE))) { /* In read-only mode, cl
4081:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
4082:Middlewares/Third_Party/FatFs/src/ff.c **** }
4083:Middlewares/Third_Party/FatFs/src/ff.c **** ifptr = fp->fptr;
4084:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = nsect = 0;
4085:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
4086:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */
4087:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 &&
4088:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
4089:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */
4090:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr;
4091:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->clust;
4092:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */
4093:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* start from the first cluster */
4094:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4095:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster chain, create a new chain */
4096:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0);
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
4098:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
4099:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
4100:Middlewares/Third_Party/FatFs/src/ff.c **** }
4101:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4102:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
4103:Middlewares/Third_Party/FatFs/src/ff.c **** }
4104:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst != 0) {
4105:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs > bcs) { /* Cluster following loop */
4106:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= bcs; fp->fptr += bcs;
4107:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4108:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_WRITE) { /* Check if in write mode or not */
4109:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize t
4110:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
4111:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
4112:Middlewares/Third_Party/FatFs/src/ff.c **** }
4113:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, clst); /* Follow chain with forceed stretch */
4114:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Clip file size in case of disk full */
4115:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = 0; break;
4116:Middlewares/Third_Party/FatFs/src/ff.c **** }
4117:Middlewares/Third_Party/FatFs/src/ff.c **** } else
ARM GAS /tmp/ccH7dUYB.s page 104
4118:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4119:Middlewares/Third_Party/FatFs/src/ff.c **** {
4120:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); /* Follow cluster chain if not in write mode */
4121:Middlewares/Third_Party/FatFs/src/ff.c **** }
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
4123:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
4124:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
4125:Middlewares/Third_Party/FatFs/src/ff.c **** }
4126:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr += ofs;
4127:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) {
4128:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */
4129:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nsect) ABORT(fs, FR_INT_ERR);
4130:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
4131:Middlewares/Third_Party/FatFs/src/ff.c **** }
4132:Middlewares/Third_Party/FatFs/src/ff.c **** }
4133:Middlewares/Third_Party/FatFs/src/ff.c **** }
4134:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is e
4135:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
4136:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
4137:Middlewares/Third_Party/FatFs/src/ff.c **** }
4138:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && nsect != fp->sect) { /* Fill sector cache if needed */
4139:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
4140:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4141:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */
4142:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
4143:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
4144:Middlewares/Third_Party/FatFs/src/ff.c **** }
4145:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4146:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cach
4147:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4148:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = nsect;
4149:Middlewares/Third_Party/FatFs/src/ff.c **** }
4150:Middlewares/Third_Party/FatFs/src/ff.c **** }
4151:Middlewares/Third_Party/FatFs/src/ff.c ****
4152:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4153:Middlewares/Third_Party/FatFs/src/ff.c **** }
4154:Middlewares/Third_Party/FatFs/src/ff.c ****
4155:Middlewares/Third_Party/FatFs/src/ff.c ****
4156:Middlewares/Third_Party/FatFs/src/ff.c ****
4157:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 1
4158:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4159:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create a Directory Object */
4160:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4161:Middlewares/Third_Party/FatFs/src/ff.c ****
4162:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_opendir (
4163:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to directory object to create */
4164:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Pointer to the directory path */
4165:Middlewares/Third_Party/FatFs/src/ff.c **** )
4166:Middlewares/Third_Party/FatFs/src/ff.c **** {
4167:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4168:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4169:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj;
4170:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4171:Middlewares/Third_Party/FatFs/src/ff.c ****
4172:Middlewares/Third_Party/FatFs/src/ff.c ****
4173:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp) return FR_INVALID_OBJECT;
4174:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 105
4175:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
4176:Middlewares/Third_Party/FatFs/src/ff.c **** obj = &dp->obj;
4177:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0);
4178:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4179:Middlewares/Third_Party/FatFs/src/ff.c **** obj->fs = fs;
4180:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4181:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(dp, path); /* Follow the path to the directory */
4182:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */
4184:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */
4185:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4186:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4187:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_scl = obj->sclust; /* Get containing directory inforamation */
4188:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat;
4189:Middlewares/Third_Party/FatFs/src/ff.c **** obj->c_ofs = dp->blk_ofs;
4190:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */
4191:Middlewares/Third_Party/FatFs/src/ff.c **** obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize);
4192:Middlewares/Third_Party/FatFs/src/ff.c **** obj->stat = fs->dirbuf[XDIR_GenFlags] & 2;
4193:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4194:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4195:Middlewares/Third_Party/FatFs/src/ff.c **** {
4196:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = ld_clust(fs, dp->dir); /* Get object allocation info */
4197:Middlewares/Third_Party/FatFs/src/ff.c **** }
4198:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* This object is a file */
4199:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH;
4200:Middlewares/Third_Party/FatFs/src/ff.c **** }
4201:Middlewares/Third_Party/FatFs/src/ff.c **** }
4202:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4203:Middlewares/Third_Party/FatFs/src/ff.c **** obj->id = fs->id;
4204:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */
4205:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
4206:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4207:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->sclust) {
4208:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */
4209:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES;
4210:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4211:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = 0; /* Root directory need not to be locked */
4212:Middlewares/Third_Party/FatFs/src/ff.c **** }
4213:Middlewares/Third_Party/FatFs/src/ff.c **** }
4214:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4215:Middlewares/Third_Party/FatFs/src/ff.c **** }
4216:Middlewares/Third_Party/FatFs/src/ff.c **** }
4217:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4218:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_NO_PATH;
4219:Middlewares/Third_Party/FatFs/src/ff.c **** }
4220:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) obj->fs = 0; /* Invalidate the directory object if function faild */
4221:Middlewares/Third_Party/FatFs/src/ff.c ****
4222:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4223:Middlewares/Third_Party/FatFs/src/ff.c **** }
4224:Middlewares/Third_Party/FatFs/src/ff.c ****
4225:Middlewares/Third_Party/FatFs/src/ff.c ****
4226:Middlewares/Third_Party/FatFs/src/ff.c ****
4227:Middlewares/Third_Party/FatFs/src/ff.c ****
4228:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4229:Middlewares/Third_Party/FatFs/src/ff.c **** /* Close Directory */
4230:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4231:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 106
4232:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_closedir (
4233:Middlewares/Third_Party/FatFs/src/ff.c **** DIR *dp /* Pointer to the directory object to be closed */
4234:Middlewares/Third_Party/FatFs/src/ff.c **** )
4235:Middlewares/Third_Party/FatFs/src/ff.c **** {
4236:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4237:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4238:Middlewares/Third_Party/FatFs/src/ff.c ****
4239:Middlewares/Third_Party/FatFs/src/ff.c ****
4240:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&dp->obj, &fs); /* Check validity of the file object */
4241:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4242:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
4243:Middlewares/Third_Party/FatFs/src/ff.c **** if (dp->obj.lockid) { /* Decrement sub-directory open counter */
4244:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid);
4245:Middlewares/Third_Party/FatFs/src/ff.c **** }
4246:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
4247:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4248:Middlewares/Third_Party/FatFs/src/ff.c **** {
4249:Middlewares/Third_Party/FatFs/src/ff.c **** dp->obj.fs = 0; /* Invalidate directory object */
4250:Middlewares/Third_Party/FatFs/src/ff.c **** }
4251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
4252:Middlewares/Third_Party/FatFs/src/ff.c **** unlock_fs(fs, FR_OK); /* Unlock volume */
4253:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4254:Middlewares/Third_Party/FatFs/src/ff.c **** }
4255:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4256:Middlewares/Third_Party/FatFs/src/ff.c **** }
4257:Middlewares/Third_Party/FatFs/src/ff.c ****
4258:Middlewares/Third_Party/FatFs/src/ff.c ****
4259:Middlewares/Third_Party/FatFs/src/ff.c ****
4260:Middlewares/Third_Party/FatFs/src/ff.c ****
4261:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4262:Middlewares/Third_Party/FatFs/src/ff.c **** /* Read Directory Entries in Sequence */
4263:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4264:Middlewares/Third_Party/FatFs/src/ff.c ****
4265:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_readdir (
4266:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the open directory object */
4267:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno /* Pointer to file information to return */
4268:Middlewares/Third_Party/FatFs/src/ff.c **** )
4269:Middlewares/Third_Party/FatFs/src/ff.c **** {
4270:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4271:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4272:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4273:Middlewares/Third_Party/FatFs/src/ff.c ****
4274:Middlewares/Third_Party/FatFs/src/ff.c ****
4275:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&dp->obj, &fs); /* Check validity of the directory object */
4276:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4277:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fno) {
4278:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind the directory object */
4279:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4280:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4281:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(dp, 0); /* Read an item */
4282:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */
4283:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A valid entry is found */
4284:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(dp, fno); /* Get the object information */
4285:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Increment index for next */
4286:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */
4287:Middlewares/Third_Party/FatFs/src/ff.c **** }
4288:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
ARM GAS /tmp/ccH7dUYB.s page 107
4289:Middlewares/Third_Party/FatFs/src/ff.c **** }
4290:Middlewares/Third_Party/FatFs/src/ff.c **** }
4291:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4292:Middlewares/Third_Party/FatFs/src/ff.c **** }
4293:Middlewares/Third_Party/FatFs/src/ff.c ****
4294:Middlewares/Third_Party/FatFs/src/ff.c ****
4295:Middlewares/Third_Party/FatFs/src/ff.c ****
4296:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FIND
4297:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4298:Middlewares/Third_Party/FatFs/src/ff.c **** /* Find Next File */
4299:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4300:Middlewares/Third_Party/FatFs/src/ff.c ****
4301:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_findnext (
4302:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the open directory object */
4303:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno /* Pointer to the file information structure */
4304:Middlewares/Third_Party/FatFs/src/ff.c **** )
4305:Middlewares/Third_Party/FatFs/src/ff.c **** {
4306:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4307:Middlewares/Third_Party/FatFs/src/ff.c ****
4308:Middlewares/Third_Party/FatFs/src/ff.c ****
4309:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
4310:Middlewares/Third_Party/FatFs/src/ff.c **** res = f_readdir(dp, fno); /* Get a directory item */
4311:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || !fno || !fno->fname[0]) break; /* Terminate if any error or end of directory
4312:Middlewares/Third_Party/FatFs/src/ff.c **** if (pattern_matching(dp->pat, fno->fname, 0, 0)) break; /* Test for the file name */
4313:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 && _USE_FIND == 2
4314:Middlewares/Third_Party/FatFs/src/ff.c **** if (pattern_matching(dp->pat, fno->altname, 0, 0)) break; /* Test for alternative name if exist *
4315:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4316:Middlewares/Third_Party/FatFs/src/ff.c **** }
4317:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4318:Middlewares/Third_Party/FatFs/src/ff.c **** }
4319:Middlewares/Third_Party/FatFs/src/ff.c ****
4320:Middlewares/Third_Party/FatFs/src/ff.c ****
4321:Middlewares/Third_Party/FatFs/src/ff.c ****
4322:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4323:Middlewares/Third_Party/FatFs/src/ff.c **** /* Find First File */
4324:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4325:Middlewares/Third_Party/FatFs/src/ff.c ****
4326:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_findfirst (
4327:Middlewares/Third_Party/FatFs/src/ff.c **** DIR* dp, /* Pointer to the blank directory object */
4328:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno, /* Pointer to the file information structure */
4329:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Pointer to the directory to open */
4330:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* pattern /* Pointer to the matching pattern */
4331:Middlewares/Third_Party/FatFs/src/ff.c **** )
4332:Middlewares/Third_Party/FatFs/src/ff.c **** {
4333:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4334:Middlewares/Third_Party/FatFs/src/ff.c ****
4335:Middlewares/Third_Party/FatFs/src/ff.c ****
4336:Middlewares/Third_Party/FatFs/src/ff.c **** dp->pat = pattern; /* Save pointer to pattern string */
4337:Middlewares/Third_Party/FatFs/src/ff.c **** res = f_opendir(dp, path); /* Open the target directory */
4338:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4339:Middlewares/Third_Party/FatFs/src/ff.c **** res = f_findnext(dp, fno); /* Find the first item */
4340:Middlewares/Third_Party/FatFs/src/ff.c **** }
4341:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4342:Middlewares/Third_Party/FatFs/src/ff.c **** }
4343:Middlewares/Third_Party/FatFs/src/ff.c ****
4344:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_FIND */
4345:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 108
4346:Middlewares/Third_Party/FatFs/src/ff.c ****
4347:Middlewares/Third_Party/FatFs/src/ff.c ****
4348:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE == 0
4349:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4350:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get File Status */
4351:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4352:Middlewares/Third_Party/FatFs/src/ff.c ****
4353:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_stat (
4354:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Pointer to the file path */
4355:Middlewares/Third_Party/FatFs/src/ff.c **** FILINFO* fno /* Pointer to file information to return */
4356:Middlewares/Third_Party/FatFs/src/ff.c **** )
4357:Middlewares/Third_Party/FatFs/src/ff.c **** {
4358:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4359:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
4360:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4361:Middlewares/Third_Party/FatFs/src/ff.c ****
4362:Middlewares/Third_Party/FatFs/src/ff.c ****
4363:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
4364:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &dj.obj.fs, 0);
4365:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4366:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(dj.obj.fs);
4367:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
4368:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
4369:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */
4370:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
4371:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Found an object */
4372:Middlewares/Third_Party/FatFs/src/ff.c **** if (fno) get_fileinfo(&dj, fno);
4373:Middlewares/Third_Party/FatFs/src/ff.c **** }
4374:Middlewares/Third_Party/FatFs/src/ff.c **** }
4375:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4376:Middlewares/Third_Party/FatFs/src/ff.c **** }
4377:Middlewares/Third_Party/FatFs/src/ff.c ****
4378:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(dj.obj.fs, res);
4379:Middlewares/Third_Party/FatFs/src/ff.c **** }
4380:Middlewares/Third_Party/FatFs/src/ff.c ****
4381:Middlewares/Third_Party/FatFs/src/ff.c ****
4382:Middlewares/Third_Party/FatFs/src/ff.c ****
4383:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4384:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4385:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get Number of Free Clusters */
4386:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4387:Middlewares/Third_Party/FatFs/src/ff.c ****
4388:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_getfree (
4389:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Path name of the logical drive number */
4390:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD* nclst, /* Pointer to a variable to return number of free clusters */
4391:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS** fatfs /* Pointer to return pointer to corresponding file system object */
4392:Middlewares/Third_Party/FatFs/src/ff.c **** )
4393:Middlewares/Third_Party/FatFs/src/ff.c **** {
4394:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4395:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4396:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nfree, clst, sect, stat;
4397:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
4398:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p;
4399:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID obj;
4400:Middlewares/Third_Party/FatFs/src/ff.c ****
4401:Middlewares/Third_Party/FatFs/src/ff.c ****
4402:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
ARM GAS /tmp/ccH7dUYB.s page 109
4403:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0);
4404:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4405:Middlewares/Third_Party/FatFs/src/ff.c **** *fatfs = fs; /* Return ptr to the fs object */
4406:Middlewares/Third_Party/FatFs/src/ff.c **** /* If free_clst is valid, return it without full cluster scan */
4407:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) {
4408:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
4409:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4410:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get number of free clusters */
4411:Middlewares/Third_Party/FatFs/src/ff.c **** nfree = 0;
4412:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */
4413:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs;
4414:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4415:Middlewares/Third_Party/FatFs/src/ff.c **** stat = get_fat(&obj, clst);
4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; }
4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; }
4418:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++;
4419:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
4420:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4421:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4422:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* exFAT: Scan bitmap table */
4423:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE bm;
4424:Middlewares/Third_Party/FatFs/src/ff.c **** UINT b;
4425:Middlewares/Third_Party/FatFs/src/ff.c ****
4426:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->n_fatent - 2;
4427:Middlewares/Third_Party/FatFs/src/ff.c **** sect = fs->database;
4428:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0;
4429:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4430:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0 && (res = move_window(fs, sect++)) != FR_OK) break;
4431:Middlewares/Third_Party/FatFs/src/ff.c **** for (b = 8, bm = fs->win[i]; b && clst; b--, clst--) {
4432:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(bm & 1)) nfree++;
4433:Middlewares/Third_Party/FatFs/src/ff.c **** bm >>= 1;
4434:Middlewares/Third_Party/FatFs/src/ff.c **** }
4435:Middlewares/Third_Party/FatFs/src/ff.c **** i = (i + 1) % SS(fs);
4436:Middlewares/Third_Party/FatFs/src/ff.c **** } while (clst);
4437:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4438:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4439:Middlewares/Third_Party/FatFs/src/ff.c **** { /* FAT16/32: Sector alighed FAT entries */
4440:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->n_fatent; sect = fs->fatbase;
4441:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0;
4442:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4443:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) {
4444:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, sect++);
4445:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4446:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win;
4447:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs);
4448:Middlewares/Third_Party/FatFs/src/ff.c **** }
4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT16) {
4450:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++;
4451:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
4452:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4453:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(p) & 0x0FFFFFFF) == 0) nfree++;
4454:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
4455:Middlewares/Third_Party/FatFs/src/ff.c **** }
4456:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--clst);
4457:Middlewares/Third_Party/FatFs/src/ff.c **** }
4458:Middlewares/Third_Party/FatFs/src/ff.c **** }
4459:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = nfree; /* Return the free clusters */
ARM GAS /tmp/ccH7dUYB.s page 110
4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = nfree; /* Now free_clst is valid */
4461:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */
4462:Middlewares/Third_Party/FatFs/src/ff.c **** }
4463:Middlewares/Third_Party/FatFs/src/ff.c **** }
4464:Middlewares/Third_Party/FatFs/src/ff.c ****
4465:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4466:Middlewares/Third_Party/FatFs/src/ff.c **** }
4467:Middlewares/Third_Party/FatFs/src/ff.c ****
4468:Middlewares/Third_Party/FatFs/src/ff.c ****
4469:Middlewares/Third_Party/FatFs/src/ff.c ****
4470:Middlewares/Third_Party/FatFs/src/ff.c ****
4471:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4472:Middlewares/Third_Party/FatFs/src/ff.c **** /* Truncate File */
4473:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4474:Middlewares/Third_Party/FatFs/src/ff.c ****
4475:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_truncate (
4476:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object */
4477:Middlewares/Third_Party/FatFs/src/ff.c **** )
4478:Middlewares/Third_Party/FatFs/src/ff.c **** {
4479:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4480:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4481:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ncl;
4482:Middlewares/Third_Party/FatFs/src/ff.c ****
4483:Middlewares/Third_Party/FatFs/src/ff.c ****
4484:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res);
4486:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
4487:Middlewares/Third_Party/FatFs/src/ff.c ****
4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr < fp->obj.objsize) { /* Process when fptr is not on the eof */
4489:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
4490:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0);
4491:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = 0;
4492:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When truncate a part of the file, remove remaining clusters */
4493:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = get_fat(&fp->obj, fp->clust);
4494:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR;
4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR;
4497:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) {
4498:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust);
4499:Middlewares/Third_Party/FatFs/src/ff.c **** }
4500:Middlewares/Third_Party/FatFs/src/ff.c **** }
4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; /* Set file size to current R/W point */
4502:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
4503:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (fp->flag & FA_DIRTY)) {
4505:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) {
4506:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
4507:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4508:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
4509:Middlewares/Third_Party/FatFs/src/ff.c **** }
4510:Middlewares/Third_Party/FatFs/src/ff.c **** }
4511:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4512:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) ABORT(fs, res);
4513:Middlewares/Third_Party/FatFs/src/ff.c **** }
4514:Middlewares/Third_Party/FatFs/src/ff.c ****
4515:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4516:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 111
4517:Middlewares/Third_Party/FatFs/src/ff.c ****
4518:Middlewares/Third_Party/FatFs/src/ff.c ****
4519:Middlewares/Third_Party/FatFs/src/ff.c ****
4520:Middlewares/Third_Party/FatFs/src/ff.c ****
4521:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4522:Middlewares/Third_Party/FatFs/src/ff.c **** /* Delete a File/Directory */
4523:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4524:Middlewares/Third_Party/FatFs/src/ff.c ****
4525:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_unlink (
4526:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Pointer to the file or directory path */
4527:Middlewares/Third_Party/FatFs/src/ff.c **** )
4528:Middlewares/Third_Party/FatFs/src/ff.c **** {
4529:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4530:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj, sdj;
4531:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dclst = 0;
4532:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4533:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4534:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID obj;
4535:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4536:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4537:Middlewares/Third_Party/FatFs/src/ff.c ****
4538:Middlewares/Third_Party/FatFs/src/ff.c ****
4539:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
4540:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, FA_WRITE);
4541:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
4542:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4543:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4544:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
4545:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) {
4546:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove dot entry */
4547:Middlewares/Third_Party/FatFs/src/ff.c **** }
4548:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
4549:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = chk_lock(&dj, 2); /* Check if it is an open object */
4550:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4551:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* The object is accessible */
4552:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) {
4553:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */
4554:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4555:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_RDO) {
4556:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */
4557:Middlewares/Third_Party/FatFs/src/ff.c **** }
4558:Middlewares/Third_Party/FatFs/src/ff.c **** }
4559:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4560:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4561:Middlewares/Third_Party/FatFs/src/ff.c **** obj.fs = fs;
4562:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4563:Middlewares/Third_Party/FatFs/src/ff.c **** obj.sclust = dclst = ld_dword(fs->dirbuf + XDIR_FstClus);
4564:Middlewares/Third_Party/FatFs/src/ff.c **** obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize);
4565:Middlewares/Third_Party/FatFs/src/ff.c **** obj.stat = fs->dirbuf[XDIR_GenFlags] & 2;
4566:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4567:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4568:Middlewares/Third_Party/FatFs/src/ff.c **** {
4569:Middlewares/Third_Party/FatFs/src/ff.c **** dclst = ld_clust(fs, dj.dir);
4570:Middlewares/Third_Party/FatFs/src/ff.c **** }
4571:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory? */
4572:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
4573:Middlewares/Third_Party/FatFs/src/ff.c **** if (dclst == fs->cdir) { /* Is it the current directory? */
ARM GAS /tmp/ccH7dUYB.s page 112
4574:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
4575:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4576:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4577:Middlewares/Third_Party/FatFs/src/ff.c **** {
4578:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.fs = fs; /* Open the sub-directory */
4579:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.sclust = dclst;
4580:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4581:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4582:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.objsize = obj.objsize;
4583:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.stat = obj.stat;
4584:Middlewares/Third_Party/FatFs/src/ff.c **** }
4585:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4586:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(&sdj, 0);
4587:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4588:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&sdj, 0); /* Read an item */
4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */
4590:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */
4591:Middlewares/Third_Party/FatFs/src/ff.c **** }
4592:Middlewares/Third_Party/FatFs/src/ff.c **** }
4593:Middlewares/Third_Party/FatFs/src/ff.c **** }
4594:Middlewares/Third_Party/FatFs/src/ff.c **** }
4595:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4596:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&dj); /* Remove the directory entry */
4597:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */
4598:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4599:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&obj, dclst, 0);
4600:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4601:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, dclst, 0);
4602:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4603:Middlewares/Third_Party/FatFs/src/ff.c **** }
4604:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_fs(fs);
4605:Middlewares/Third_Party/FatFs/src/ff.c **** }
4606:Middlewares/Third_Party/FatFs/src/ff.c **** }
4607:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4608:Middlewares/Third_Party/FatFs/src/ff.c **** }
4609:Middlewares/Third_Party/FatFs/src/ff.c ****
4610:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4611:Middlewares/Third_Party/FatFs/src/ff.c **** }
4612:Middlewares/Third_Party/FatFs/src/ff.c ****
4613:Middlewares/Third_Party/FatFs/src/ff.c ****
4614:Middlewares/Third_Party/FatFs/src/ff.c ****
4615:Middlewares/Third_Party/FatFs/src/ff.c ****
4616:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4617:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create a Directory */
4618:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4619:Middlewares/Third_Party/FatFs/src/ff.c ****
4620:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_mkdir (
4621:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path /* Pointer to the directory path */
4622:Middlewares/Third_Party/FatFs/src/ff.c **** )
4623:Middlewares/Third_Party/FatFs/src/ff.c **** {
4624:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4625:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
4626:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4627:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir;
4628:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n;
4629:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dsc, dcl, pcl, tm;
4630:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
ARM GAS /tmp/ccH7dUYB.s page 113
4631:Middlewares/Third_Party/FatFs/src/ff.c ****
4632:Middlewares/Third_Party/FatFs/src/ff.c ****
4633:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
4634:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, FA_WRITE);
4635:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
4636:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4637:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4638:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */
4640:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) {
4641:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
4642:Middlewares/Third_Party/FatFs/src/ff.c **** }
4643:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Can create a new directory */
4644:Middlewares/Third_Party/FatFs/src/ff.c **** dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */
4645:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs);
4646:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0) res = FR_DENIED; /* No space to allocate a new cluster */
4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR;
4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR;
4650:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */
4651:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
4652:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Initialize the new directory table */
4653:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, dcl);
4654:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win;
4655:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
4656:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
4657:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir + DIR_Name, ' ', 11); /* Create "." entry */
4658:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Name] = '.';
4659:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR;
4660:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm);
4661:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl);
4662:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */
4663:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust;
4664:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0;
4665:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
4666:Middlewares/Third_Party/FatFs/src/ff.c **** }
4667:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = fs->csize; n; n--) { /* Write dot entries and clear following sectors */
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++;
4669:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4670:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs);
4671:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4672:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
4673:Middlewares/Third_Party/FatFs/src/ff.c **** }
4674:Middlewares/Third_Party/FatFs/src/ff.c **** }
4675:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4676:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj); /* Register the object to the directoy */
4677:Middlewares/Third_Party/FatFs/src/ff.c **** }
4678:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4679:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4680:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */
4681:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Created time */
4682:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_FstClus, dcl); /* Table start cluster */
4683:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)dj.obj.objsize); /* File size needs to be valid */
4684:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)dj.obj.objsize);
4685:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag (contiguous) */
4686:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_Attr] = AM_DIR; /* Attribute */
4687:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj);
ARM GAS /tmp/ccH7dUYB.s page 114
4688:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4689:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4690:Middlewares/Third_Party/FatFs/src/ff.c **** {
4691:Middlewares/Third_Party/FatFs/src/ff.c **** dir = dj.dir;
4692:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Created time */
4693:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl); /* Table start cluster */
4694:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR; /* Attribute */
4695:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4696:Middlewares/Third_Party/FatFs/src/ff.c **** }
4697:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4698:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
4699:Middlewares/Third_Party/FatFs/src/ff.c **** }
4700:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4701:Middlewares/Third_Party/FatFs/src/ff.c **** remove_chain(&dj.obj, dcl, 0); /* Could not register, remove cluster chain */
4702:Middlewares/Third_Party/FatFs/src/ff.c **** }
4703:Middlewares/Third_Party/FatFs/src/ff.c **** }
4704:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4705:Middlewares/Third_Party/FatFs/src/ff.c **** }
4706:Middlewares/Third_Party/FatFs/src/ff.c ****
4707:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4708:Middlewares/Third_Party/FatFs/src/ff.c **** }
4709:Middlewares/Third_Party/FatFs/src/ff.c ****
4710:Middlewares/Third_Party/FatFs/src/ff.c ****
4711:Middlewares/Third_Party/FatFs/src/ff.c ****
4712:Middlewares/Third_Party/FatFs/src/ff.c ****
4713:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4714:Middlewares/Third_Party/FatFs/src/ff.c **** /* Rename a File/Directory */
4715:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4716:Middlewares/Third_Party/FatFs/src/ff.c ****
4717:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_rename (
4718:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path_old, /* Pointer to the object name to be renamed */
4719:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path_new /* Pointer to the new name */
4720:Middlewares/Third_Party/FatFs/src/ff.c **** )
4721:Middlewares/Third_Party/FatFs/src/ff.c **** {
4722:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4723:Middlewares/Third_Party/FatFs/src/ff.c **** DIR djo, djn;
4724:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4725:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE buf[_FS_EXFAT ? SZDIRE * 2 : 24], *dir;
4726:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dw;
4727:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4728:Middlewares/Third_Party/FatFs/src/ff.c ****
4729:Middlewares/Third_Party/FatFs/src/ff.c ****
4730:Middlewares/Third_Party/FatFs/src/ff.c **** get_ldnumber(&path_new); /* Snip drive number of new name off */
4731:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */
4732:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4733:Middlewares/Third_Party/FatFs/src/ff.c **** djo.obj.fs = fs;
4734:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4735:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djo, path_old); /* Check old object */
4736:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check vali
4737:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
4738:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4739:Middlewares/Third_Party/FatFs/src/ff.c **** res = chk_lock(&djo, 2);
4740:Middlewares/Third_Party/FatFs/src/ff.c **** }
4741:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4742:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Object to be renamed is found */
4743:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4744:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* At exFAT */
ARM GAS /tmp/ccH7dUYB.s page 115
4745:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE nf, nn;
4746:Middlewares/Third_Party/FatFs/src/ff.c **** WORD nh;
4747:Middlewares/Third_Party/FatFs/src/ff.c ****
4748:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf, fs->dirbuf, SZDIRE * 2); /* Save 85+C0 entry of old object */
4749:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(&djn, &djo, sizeof djo);
4750:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */
4751:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */
4752:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST;
4753:Middlewares/Third_Party/FatFs/src/ff.c **** }
4754:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* It is a valid path and no name collision */
4755:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */
4756:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4757:Middlewares/Third_Party/FatFs/src/ff.c **** nf = fs->dirbuf[XDIR_NumSec]; nn = fs->dirbuf[XDIR_NumName];
4758:Middlewares/Third_Party/FatFs/src/ff.c **** nh = ld_word(fs->dirbuf + XDIR_NameHash);
4759:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fs->dirbuf, buf, SZDIRE * 2);
4760:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn;
4761:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->dirbuf + XDIR_NameHash, nh);
4762:Middlewares/Third_Party/FatFs/src/ff.c **** /* Start of critical section where an interruption can cause a cross-link */
4763:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&djn);
4764:Middlewares/Third_Party/FatFs/src/ff.c **** }
4765:Middlewares/Third_Party/FatFs/src/ff.c **** }
4766:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4767:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4768:Middlewares/Third_Party/FatFs/src/ff.c **** { /* At FAT12/FAT16/FAT32 */
4769:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf, djo.dir + DIR_Attr, 21); /* Save information about the object except name */
4770:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */
4771:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */
4772:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */
4773:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST;
4774:Middlewares/Third_Party/FatFs/src/ff.c **** }
4775:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* It is a valid path and no name collision */
4776:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */
4777:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4778:Middlewares/Third_Party/FatFs/src/ff.c **** dir = djn.dir; /* Copy information about object except name */
4779:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + 13, buf + 2, 19);
4780:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = buf[0] | AM_ARC;
4781:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4782:Middlewares/Third_Party/FatFs/src/ff.c **** if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the
4783:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir));
4784:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) {
4785:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
4786:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4787:Middlewares/Third_Party/FatFs/src/ff.c **** /* Start of critical section where an interruption can cause a cross-link */
4788:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw);
4789:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */
4790:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') {
4791:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust);
4792:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4793:Middlewares/Third_Party/FatFs/src/ff.c **** }
4794:Middlewares/Third_Party/FatFs/src/ff.c **** }
4795:Middlewares/Third_Party/FatFs/src/ff.c **** }
4796:Middlewares/Third_Party/FatFs/src/ff.c **** }
4797:Middlewares/Third_Party/FatFs/src/ff.c **** }
4798:Middlewares/Third_Party/FatFs/src/ff.c **** }
4799:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4800:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&djo); /* Remove old entry */
4801:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
ARM GAS /tmp/ccH7dUYB.s page 116
4802:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
4803:Middlewares/Third_Party/FatFs/src/ff.c **** }
4804:Middlewares/Third_Party/FatFs/src/ff.c **** }
4805:Middlewares/Third_Party/FatFs/src/ff.c **** /* End of the critical section */
4806:Middlewares/Third_Party/FatFs/src/ff.c **** }
4807:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4808:Middlewares/Third_Party/FatFs/src/ff.c **** }
4809:Middlewares/Third_Party/FatFs/src/ff.c ****
4810:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4811:Middlewares/Third_Party/FatFs/src/ff.c **** }
4812:Middlewares/Third_Party/FatFs/src/ff.c ****
4813:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
4814:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE == 0 */
4815:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE <= 1 */
4816:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_MINIMIZE <= 2 */
4817:Middlewares/Third_Party/FatFs/src/ff.c ****
4818:Middlewares/Third_Party/FatFs/src/ff.c ****
4819:Middlewares/Third_Party/FatFs/src/ff.c ****
4820:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_CHMOD && !_FS_READONLY
4821:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4822:Middlewares/Third_Party/FatFs/src/ff.c **** /* Change Attribute */
4823:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4824:Middlewares/Third_Party/FatFs/src/ff.c ****
4825:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_chmod (
4826:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Pointer to the file path */
4827:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE attr, /* Attribute bits */
4828:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE mask /* Attribute mask to change */
4829:Middlewares/Third_Party/FatFs/src/ff.c **** )
4830:Middlewares/Third_Party/FatFs/src/ff.c **** {
4831:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4832:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
4833:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4834:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4835:Middlewares/Third_Party/FatFs/src/ff.c ****
4836:Middlewares/Third_Party/FatFs/src/ff.c ****
4837:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */
4838:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
4839:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4840:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4841:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
4842:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check objec
4843:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4844:Middlewares/Third_Party/FatFs/src/ff.c **** mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */
4845:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4846:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4847:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbuf[XDIR_Attr] = (attr & mask) | (fs->dirbuf[XDIR_Attr] & (BYTE)~mask); /* Apply attribu
4848:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj);
4849:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4850:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4851:Middlewares/Third_Party/FatFs/src/ff.c **** {
4852:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change
4853:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4854:Middlewares/Third_Party/FatFs/src/ff.c **** }
4855:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4856:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
4857:Middlewares/Third_Party/FatFs/src/ff.c **** }
4858:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 117
4859:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4860:Middlewares/Third_Party/FatFs/src/ff.c **** }
4861:Middlewares/Third_Party/FatFs/src/ff.c ****
4862:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4863:Middlewares/Third_Party/FatFs/src/ff.c **** }
4864:Middlewares/Third_Party/FatFs/src/ff.c ****
4865:Middlewares/Third_Party/FatFs/src/ff.c ****
4866:Middlewares/Third_Party/FatFs/src/ff.c ****
4867:Middlewares/Third_Party/FatFs/src/ff.c ****
4868:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4869:Middlewares/Third_Party/FatFs/src/ff.c **** /* Change Timestamp */
4870:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4871:Middlewares/Third_Party/FatFs/src/ff.c ****
4872:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_utime (
4873:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Pointer to the file/directory name */
4874:Middlewares/Third_Party/FatFs/src/ff.c **** const FILINFO* fno /* Pointer to the time stamp to be set */
4875:Middlewares/Third_Party/FatFs/src/ff.c **** )
4876:Middlewares/Third_Party/FatFs/src/ff.c **** {
4877:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4878:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
4879:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4880:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
4881:Middlewares/Third_Party/FatFs/src/ff.c ****
4882:Middlewares/Third_Party/FatFs/src/ff.c ****
4883:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */
4884:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
4885:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4886:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
4887:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
4888:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check objec
4889:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4890:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4891:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4892:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->dirbuf + XDIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime);
4893:Middlewares/Third_Party/FatFs/src/ff.c **** res = store_xdir(&dj);
4894:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4895:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4896:Middlewares/Third_Party/FatFs/src/ff.c **** {
4897:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime);
4898:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4899:Middlewares/Third_Party/FatFs/src/ff.c **** }
4900:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4901:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
4902:Middlewares/Third_Party/FatFs/src/ff.c **** }
4903:Middlewares/Third_Party/FatFs/src/ff.c **** }
4904:Middlewares/Third_Party/FatFs/src/ff.c **** FREE_NAMBUF();
4905:Middlewares/Third_Party/FatFs/src/ff.c **** }
4906:Middlewares/Third_Party/FatFs/src/ff.c ****
4907:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
4908:Middlewares/Third_Party/FatFs/src/ff.c **** }
4909:Middlewares/Third_Party/FatFs/src/ff.c ****
4910:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_CHMOD && !_FS_READONLY */
4911:Middlewares/Third_Party/FatFs/src/ff.c ****
4912:Middlewares/Third_Party/FatFs/src/ff.c ****
4913:Middlewares/Third_Party/FatFs/src/ff.c ****
4914:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LABEL
4915:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
ARM GAS /tmp/ccH7dUYB.s page 118
4916:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get Volume Label */
4917:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
4918:Middlewares/Third_Party/FatFs/src/ff.c ****
4919:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_getlabel (
4920:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Path name of the logical drive number */
4921:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR* label, /* Pointer to a buffer to return the volume label */
4922:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD* vsn /* Pointer to a variable to return the volume serial number */
4923:Middlewares/Third_Party/FatFs/src/ff.c **** )
4924:Middlewares/Third_Party/FatFs/src/ff.c **** {
4925:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4926:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
4927:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
4928:Middlewares/Third_Party/FatFs/src/ff.c **** UINT si, di;
4929:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE || _FS_EXFAT
4930:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR w;
4931:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4932:Middlewares/Third_Party/FatFs/src/ff.c ****
4933:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
4934:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0);
4935:Middlewares/Third_Party/FatFs/src/ff.c ****
4936:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get volume label */
4937:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && label) {
4938:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */
4939:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(&dj, 0);
4940:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4941:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&dj, 1); /* Find a volume label entry */
4942:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4943:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4944:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
4945:Middlewares/Third_Party/FatFs/src/ff.c **** for (si = di = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */
4946:Middlewares/Third_Party/FatFs/src/ff.c **** w = ld_word(dj.dir + XDIR_Label + si * 2);
4947:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
4948:Middlewares/Third_Party/FatFs/src/ff.c **** label[di++] = w;
4949:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4950:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(w, 0); /* Unicode -> OEM */
4951:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == 0) w = '?'; /* Replace wrong character */
4952:Middlewares/Third_Party/FatFs/src/ff.c **** if (_DF1S && w >= 0x100) label[di++] = (char)(w >> 8);
4953:Middlewares/Third_Party/FatFs/src/ff.c **** label[di++] = (char)w;
4954:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4955:Middlewares/Third_Party/FatFs/src/ff.c **** }
4956:Middlewares/Third_Party/FatFs/src/ff.c **** label[di] = 0;
4957:Middlewares/Third_Party/FatFs/src/ff.c **** } else
4958:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4959:Middlewares/Third_Party/FatFs/src/ff.c **** {
4960:Middlewares/Third_Party/FatFs/src/ff.c **** si = di = 0; /* Extract volume label from AM_VOL entry with code comversion */
4961:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4962:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
4963:Middlewares/Third_Party/FatFs/src/ff.c **** w = (si < 11) ? dj.dir[si++] : ' ';
4964:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(w) && si < 11 && IsDBCS2(dj.dir[si])) {
4965:Middlewares/Third_Party/FatFs/src/ff.c **** w = w << 8 | dj.dir[si++];
4966:Middlewares/Third_Party/FatFs/src/ff.c **** }
4967:Middlewares/Third_Party/FatFs/src/ff.c **** label[di++] = ff_convert(w, 1); /* OEM -> Unicode */
4968:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4969:Middlewares/Third_Party/FatFs/src/ff.c **** label[di++] = dj.dir[si++];
4970:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4971:Middlewares/Third_Party/FatFs/src/ff.c **** } while (di < 11);
4972:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Truncate trailing spaces */
ARM GAS /tmp/ccH7dUYB.s page 119
4973:Middlewares/Third_Party/FatFs/src/ff.c **** label[di] = 0;
4974:Middlewares/Third_Party/FatFs/src/ff.c **** if (di == 0) break;
4975:Middlewares/Third_Party/FatFs/src/ff.c **** } while (label[--di] == ' ');
4976:Middlewares/Third_Party/FatFs/src/ff.c **** }
4977:Middlewares/Third_Party/FatFs/src/ff.c **** }
4978:Middlewares/Third_Party/FatFs/src/ff.c **** }
4979:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* No label entry and return nul string */
4980:Middlewares/Third_Party/FatFs/src/ff.c **** label[0] = 0;
4981:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
4982:Middlewares/Third_Party/FatFs/src/ff.c **** }
4983:Middlewares/Third_Party/FatFs/src/ff.c **** }
4984:Middlewares/Third_Party/FatFs/src/ff.c ****
4985:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get volume serial number */
4986:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && vsn) {
4987:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->volbase);
4988:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4989:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
4990:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_EXFAT:
4991:Middlewares/Third_Party/FatFs/src/ff.c **** di = BPB_VolIDEx; break;
4992:Middlewares/Third_Party/FatFs/src/ff.c ****
4993:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT32:
4994:Middlewares/Third_Party/FatFs/src/ff.c **** di = BS_VolID32; break;
4995:Middlewares/Third_Party/FatFs/src/ff.c ****
4996:Middlewares/Third_Party/FatFs/src/ff.c **** default:
4997:Middlewares/Third_Party/FatFs/src/ff.c **** di = BS_VolID;
4998:Middlewares/Third_Party/FatFs/src/ff.c **** }
4999:Middlewares/Third_Party/FatFs/src/ff.c **** *vsn = ld_dword(fs->win + di);
5000:Middlewares/Third_Party/FatFs/src/ff.c **** }
5001:Middlewares/Third_Party/FatFs/src/ff.c **** }
5002:Middlewares/Third_Party/FatFs/src/ff.c ****
5003:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
5004:Middlewares/Third_Party/FatFs/src/ff.c **** }
5005:Middlewares/Third_Party/FatFs/src/ff.c ****
5006:Middlewares/Third_Party/FatFs/src/ff.c ****
5007:Middlewares/Third_Party/FatFs/src/ff.c ****
5008:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5009:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5010:Middlewares/Third_Party/FatFs/src/ff.c **** /* Set Volume Label */
5011:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5012:Middlewares/Third_Party/FatFs/src/ff.c ****
5013:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_setlabel (
5014:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* label /* Pointer to the volume label to set */
5015:Middlewares/Third_Party/FatFs/src/ff.c **** )
5016:Middlewares/Third_Party/FatFs/src/ff.c **** {
5017:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5018:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
5019:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
5020:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE dirvn[22];
5021:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j, slen;
5022:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR w;
5023:Middlewares/Third_Party/FatFs/src/ff.c **** static const char badchr[] = "\"*+,.:;<=>\?[]|\x7F";
5024:Middlewares/Third_Party/FatFs/src/ff.c ****
5025:Middlewares/Third_Party/FatFs/src/ff.c ****
5026:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get logical drive */
5027:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&label, &fs, FA_WRITE);
5028:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) LEAVE_FF(fs, res);
5029:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
ARM GAS /tmp/ccH7dUYB.s page 120
5030:Middlewares/Third_Party/FatFs/src/ff.c ****
5031:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get length of given volume label */
5032:Middlewares/Third_Party/FatFs/src/ff.c **** for (slen = 0; (UINT)label[slen] >= ' '; slen++) ; /* Get name length */
5033:Middlewares/Third_Party/FatFs/src/ff.c ****
5034:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5035:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */
5036:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = j = 0; i < slen; ) { /* Create volume label in directory form */
5037:Middlewares/Third_Party/FatFs/src/ff.c **** w = label[i++];
5038:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_LFN_UNICODE
5039:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(w)) {
5040:Middlewares/Third_Party/FatFs/src/ff.c **** w = (i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0;
5041:Middlewares/Third_Party/FatFs/src/ff.c **** }
5042:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(w, 1);
5043:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5044:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == 0 || chk_chr(badchr, w) || j == 22) { /* Check validity check validity of the volume la
5045:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, FR_INVALID_NAME);
5046:Middlewares/Third_Party/FatFs/src/ff.c **** }
5047:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dirvn + j, w); j += 2;
5048:Middlewares/Third_Party/FatFs/src/ff.c **** }
5049:Middlewares/Third_Party/FatFs/src/ff.c **** slen = j;
5050:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5051:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5052:Middlewares/Third_Party/FatFs/src/ff.c **** { /* On the FAT12/16/32 volume */
5053:Middlewares/Third_Party/FatFs/src/ff.c **** for ( ; slen && label[slen - 1] == ' '; slen--) ; /* Remove trailing spaces */
5054:Middlewares/Third_Party/FatFs/src/ff.c **** if (slen) { /* Is there a volume label to be set? */
5055:Middlewares/Third_Party/FatFs/src/ff.c **** dirvn[0] = 0; i = j = 0; /* Create volume label in directory form */
5056:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5057:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
5058:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(ff_wtoupper(label[i++]), 0);
5059:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5060:Middlewares/Third_Party/FatFs/src/ff.c **** w = (BYTE)label[i++];
5061:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(w)) {
5062:Middlewares/Third_Party/FatFs/src/ff.c **** w = (j < 10 && i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0;
5063:Middlewares/Third_Party/FatFs/src/ff.c **** }
5064:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
5065:Middlewares/Third_Party/FatFs/src/ff.c **** w = ff_convert(ff_wtoupper(ff_convert(w, 1)), 0);
5066:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5067:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(w)) w -= 0x20; /* To upper ASCII characters */
5068:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT
5069:Middlewares/Third_Party/FatFs/src/ff.c **** if (w >= 0x80) w = ExCvt[w - 0x80]; /* To upper extended characters (SBCS cfg) */
5070:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5071:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_DF1S && w >= 0x80) w = 0; /* Reject extended characters (ASCII cfg) */
5072:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5073:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5074:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5075:Middlewares/Third_Party/FatFs/src/ff.c **** if (w == 0 || chk_chr(badchr, w) || j >= (UINT)((w >= 0x100) ? 10 : 11)) { /* Reject invalid ch
5076:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, FR_INVALID_NAME);
5077:Middlewares/Third_Party/FatFs/src/ff.c **** }
5078:Middlewares/Third_Party/FatFs/src/ff.c **** if (w >= 0x100) dirvn[j++] = (BYTE)(w >> 8);
5079:Middlewares/Third_Party/FatFs/src/ff.c **** dirvn[j++] = (BYTE)w;
5080:Middlewares/Third_Party/FatFs/src/ff.c **** } while (i < slen);
5081:Middlewares/Third_Party/FatFs/src/ff.c **** while (j < 11) dirvn[j++] = ' '; /* Fill remaining name field */
5082:Middlewares/Third_Party/FatFs/src/ff.c **** if (dirvn[0] == DDEM) LEAVE_FF(fs, FR_INVALID_NAME); /* Reject illegal name (heading DDEM) */
5083:Middlewares/Third_Party/FatFs/src/ff.c **** }
5084:Middlewares/Third_Party/FatFs/src/ff.c **** }
5085:Middlewares/Third_Party/FatFs/src/ff.c ****
5086:Middlewares/Third_Party/FatFs/src/ff.c **** /* Set volume label */
ARM GAS /tmp/ccH7dUYB.s page 121
5087:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.sclust = 0; /* Open root directory */
5088:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(&dj, 0);
5089:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5090:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&dj, 1); /* Get volume label entry */
5091:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5092:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fs->fs_type == FS_EXFAT) {
5093:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); /* Change the volume label */
5094:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dj.dir + XDIR_Label, dirvn, slen);
5095:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5096:Middlewares/Third_Party/FatFs/src/ff.c **** if (slen) {
5097:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dj.dir, dirvn, 11); /* Change the volume label */
5098:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5099:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Name] = DDEM; /* Remove the volume label */
5100:Middlewares/Third_Party/FatFs/src/ff.c **** }
5101:Middlewares/Third_Party/FatFs/src/ff.c **** }
5102:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
5103:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
5104:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* No volume label entry is found or error */
5105:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) {
5106:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
5107:Middlewares/Third_Party/FatFs/src/ff.c **** if (slen) { /* Create a volume label entry */
5108:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_alloc(&dj, 1); /* Allocate an entry */
5109:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5110:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dj.dir, 0, SZDIRE); /* Clear the entry */
5111:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fs->fs_type == FS_EXFAT) {
5112:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[XDIR_Type] = 0x83; /* Create 83 entry */
5113:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2);
5114:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dj.dir + XDIR_Label, dirvn, slen);
5115:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5116:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */
5117:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dj.dir, dirvn, 11);
5118:Middlewares/Third_Party/FatFs/src/ff.c **** }
5119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
5120:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
5121:Middlewares/Third_Party/FatFs/src/ff.c **** }
5122:Middlewares/Third_Party/FatFs/src/ff.c **** }
5123:Middlewares/Third_Party/FatFs/src/ff.c **** }
5124:Middlewares/Third_Party/FatFs/src/ff.c **** }
5125:Middlewares/Third_Party/FatFs/src/ff.c **** }
5126:Middlewares/Third_Party/FatFs/src/ff.c ****
5127:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
5128:Middlewares/Third_Party/FatFs/src/ff.c **** }
5129:Middlewares/Third_Party/FatFs/src/ff.c ****
5130:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* !_FS_READONLY */
5131:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LABEL */
5132:Middlewares/Third_Party/FatFs/src/ff.c ****
5133:Middlewares/Third_Party/FatFs/src/ff.c ****
5134:Middlewares/Third_Party/FatFs/src/ff.c ****
5135:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_EXPAND && !_FS_READONLY
5136:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5137:Middlewares/Third_Party/FatFs/src/ff.c **** /* Allocate a Contiguous Blocks to the File */
5138:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5139:Middlewares/Third_Party/FatFs/src/ff.c ****
5140:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_expand (
5141:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
5142:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t fsz, /* File size to be expanded to */
5143:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE opt /* Operation mode 0:Find and prepare or 1:Find and allocate */
ARM GAS /tmp/ccH7dUYB.s page 122
5144:Middlewares/Third_Party/FatFs/src/ff.c **** )
5145:Middlewares/Third_Party/FatFs/src/ff.c **** {
5146:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5147:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
5148:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD n, clst, stcl, scl, ncl, tcl, lclst;
5149:Middlewares/Third_Party/FatFs/src/ff.c ****
5150:Middlewares/Third_Party/FatFs/src/ff.c ****
5151:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
5152:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res);
5153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fsz == 0 || fp->obj.objsize != 0 || !(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED);
5154:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5155:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type != FS_EXFAT && fsz >= 0x100000000) LEAVE_FF(fs, FR_DENIED); /* Check if in size li
5156:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5157:Middlewares/Third_Party/FatFs/src/ff.c **** n = (DWORD)fs->csize * SS(fs); /* Cluster size */
5158:Middlewares/Third_Party/FatFs/src/ff.c **** tcl = (DWORD)(fsz / n) + ((fsz & (n - 1)) ? 1 : 0); /* Number of clusters required */
5159:Middlewares/Third_Party/FatFs/src/ff.c **** stcl = fs->last_clst; lclst = 0;
5160:Middlewares/Third_Party/FatFs/src/ff.c **** if (stcl < 2 || stcl >= fs->n_fatent) stcl = 2;
5161:Middlewares/Third_Party/FatFs/src/ff.c ****
5162:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5163:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_EXFAT) {
5164:Middlewares/Third_Party/FatFs/src/ff.c **** scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */
5165:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */
5166:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0xFFFFFFFF) res = FR_DISK_ERR;
5167:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A contiguous free area is found */
5168:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt) { /* Allocate it now */
5169:Middlewares/Third_Party/FatFs/src/ff.c **** res = change_bitmap(fs, scl, tcl, 1); /* Mark the cluster block 'in use' */
5170:Middlewares/Third_Party/FatFs/src/ff.c **** lclst = scl + tcl - 1;
5171:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Set it as suggested point for next allocation */
5172:Middlewares/Third_Party/FatFs/src/ff.c **** lclst = scl - 1;
5173:Middlewares/Third_Party/FatFs/src/ff.c **** }
5174:Middlewares/Third_Party/FatFs/src/ff.c **** }
5175:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5176:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5177:Middlewares/Third_Party/FatFs/src/ff.c **** {
5178:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst = stcl; ncl = 0;
5179:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { /* Find a contiguous cluster block */
5180:Middlewares/Third_Party/FatFs/src/ff.c **** n = get_fat(&fp->obj, clst);
5181:Middlewares/Third_Party/FatFs/src/ff.c **** if (++clst >= fs->n_fatent) clst = 2;
5182:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 1) { res = FR_INT_ERR; break; }
5183:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0xFFFFFFFF) { res = FR_DISK_ERR; break; }
5184:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0) { /* Is it a free cluster? */
5185:Middlewares/Third_Party/FatFs/src/ff.c **** if (++ncl == tcl) break; /* Break if a contiguous cluster block is found */
5186:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5187:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst; ncl = 0; /* Not a free cluster */
5188:Middlewares/Third_Party/FatFs/src/ff.c **** }
5189:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == stcl) { res = FR_DENIED; break; } /* No contiguous cluster? */
5190:Middlewares/Third_Party/FatFs/src/ff.c **** }
5191:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A contiguous free area is found */
5192:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt) { /* Allocate it now */
5193:Middlewares/Third_Party/FatFs/src/ff.c **** for (clst = scl, n = tcl; n; clst++, n--) { /* Create a cluster chain on the FAT */
5194:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, (n == 1) ? 0xFFFFFFFF : clst + 1);
5195:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
5196:Middlewares/Third_Party/FatFs/src/ff.c **** lclst = clst;
5197:Middlewares/Third_Party/FatFs/src/ff.c **** }
5198:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Set it as suggested point for next allocation */
5199:Middlewares/Third_Party/FatFs/src/ff.c **** lclst = scl - 1;
5200:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 123
5201:Middlewares/Third_Party/FatFs/src/ff.c **** }
5202:Middlewares/Third_Party/FatFs/src/ff.c **** }
5203:Middlewares/Third_Party/FatFs/src/ff.c ****
5204:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5205:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = lclst; /* Set suggested start cluster to start next */
5206:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt) { /* Is it allocated now? */
5207:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = scl; /* Update object allocation information */
5208:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fsz;
5209:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */
5210:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
5211:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) { /* Update FSINFO */
5212:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst -= tcl;
5213:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
5214:Middlewares/Third_Party/FatFs/src/ff.c **** }
5215:Middlewares/Third_Party/FatFs/src/ff.c **** }
5216:Middlewares/Third_Party/FatFs/src/ff.c **** }
5217:Middlewares/Third_Party/FatFs/src/ff.c ****
5218:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
5219:Middlewares/Third_Party/FatFs/src/ff.c **** }
5220:Middlewares/Third_Party/FatFs/src/ff.c ****
5221:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_EXPAND && !_FS_READONLY */
5222:Middlewares/Third_Party/FatFs/src/ff.c ****
5223:Middlewares/Third_Party/FatFs/src/ff.c ****
5224:Middlewares/Third_Party/FatFs/src/ff.c ****
5225:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FORWARD
5226:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5227:Middlewares/Third_Party/FatFs/src/ff.c **** /* Forward data to the stream directly */
5228:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5229:Middlewares/Third_Party/FatFs/src/ff.c ****
5230:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_forward (
5231:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
5232:Middlewares/Third_Party/FatFs/src/ff.c **** UINT (*func)(const BYTE*,UINT), /* Pointer to the streaming function */
5233:Middlewares/Third_Party/FatFs/src/ff.c **** UINT btf, /* Number of bytes to forward */
5234:Middlewares/Third_Party/FatFs/src/ff.c **** UINT* bf /* Pointer to number of bytes forwarded */
5235:Middlewares/Third_Party/FatFs/src/ff.c **** )
5236:Middlewares/Third_Party/FatFs/src/ff.c **** {
5237:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5238:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
5239:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect;
5240:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t remain;
5241:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rcnt, csect;
5242:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dbuf;
5243:Middlewares/Third_Party/FatFs/src/ff.c ****
5244:Middlewares/Third_Party/FatFs/src/ff.c ****
5245:Middlewares/Third_Party/FatFs/src/ff.c **** *bf = 0; /* Clear transfer byte counter */
5246:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
5247:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res);
5248:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
5249:Middlewares/Third_Party/FatFs/src/ff.c ****
5250:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
5251:Middlewares/Third_Party/FatFs/src/ff.c **** if (btf > remain) btf = (UINT)remain; /* Truncate btf by remaining bytes */
5252:Middlewares/Third_Party/FatFs/src/ff.c ****
5253:Middlewares/Third_Party/FatFs/src/ff.c **** for ( ; btf && (*func)(0, 0); /* Repeat until all data transferred or stream goes busy */
5254:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr += rcnt, *bf += rcnt, btf -= rcnt) {
5255:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
5256:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
5257:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
ARM GAS /tmp/ccH7dUYB.s page 124
5258:Middlewares/Third_Party/FatFs/src/ff.c **** clst = (fp->fptr == 0) ? /* On the top of the file? */
5259:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust : get_fat(&fp->obj, fp->clust);
5260:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) ABORT(fs, FR_INT_ERR);
5261:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
5262:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
5263:Middlewares/Third_Party/FatFs/src/ff.c **** }
5264:Middlewares/Third_Party/FatFs/src/ff.c **** }
5265:Middlewares/Third_Party/FatFs/src/ff.c **** sect = clust2sect(fs, fp->clust); /* Get current data sector */
5266:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
5267:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
5268:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
5269:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window to the file dat
5270:Middlewares/Third_Party/FatFs/src/ff.c **** dbuf = fs->win;
5271:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5272:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->sect != sect) { /* Fill sector cache with file data */
5273:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5274:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */
5275:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
5276:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
5277:Middlewares/Third_Party/FatFs/src/ff.c **** }
5278:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5279:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
5280:Middlewares/Third_Party/FatFs/src/ff.c **** }
5281:Middlewares/Third_Party/FatFs/src/ff.c **** dbuf = fp->buf;
5282:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5283:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = sect;
5284:Middlewares/Third_Party/FatFs/src/ff.c **** rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */
5285:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btf) rcnt = btf; /* Clip it by btr if needed */
5286:Middlewares/Third_Party/FatFs/src/ff.c **** rcnt = (*func)(dbuf + ((UINT)fp->fptr % SS(fs)), rcnt); /* Forward the file data */
5287:Middlewares/Third_Party/FatFs/src/ff.c **** if (!rcnt) ABORT(fs, FR_INT_ERR);
5288:Middlewares/Third_Party/FatFs/src/ff.c **** }
5289:Middlewares/Third_Party/FatFs/src/ff.c ****
5290:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, FR_OK);
5291:Middlewares/Third_Party/FatFs/src/ff.c **** }
5292:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_FORWARD */
5293:Middlewares/Third_Party/FatFs/src/ff.c ****
5294:Middlewares/Third_Party/FatFs/src/ff.c ****
5295:Middlewares/Third_Party/FatFs/src/ff.c ****
5296:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_MKFS && !_FS_READONLY
5297:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5298:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create an FAT/exFAT volume */
5299:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5300:Middlewares/Third_Party/FatFs/src/ff.c ****
5301:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_mkfs (
5302:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* path, /* Logical drive number */
5303:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE opt, /* Format option */
5304:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD au, /* Size of allocation unit (cluster) [byte] */
5305:Middlewares/Third_Party/FatFs/src/ff.c **** void* work, /* Pointer to working buffer */
5306:Middlewares/Third_Party/FatFs/src/ff.c **** UINT len /* Size of working buffer */
5307:Middlewares/Third_Party/FatFs/src/ff.c **** )
5308:Middlewares/Third_Party/FatFs/src/ff.c **** {
5309:Middlewares/Third_Party/FatFs/src/ff.c **** const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */
5310:Middlewares/Third_Party/FatFs/src/ff.c **** const UINT n_rootdir = 512; /* Number of root directory entries for FAT12/16 volume */
5311:Middlewares/Third_Party/FatFs/src/ff.c **** static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volum
5312:Middlewares/Third_Party/FatFs/src/ff.c **** static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (12
5313:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, sys, *buf, *pte, pdrv, part;
5314:Middlewares/Third_Party/FatFs/src/ff.c **** WORD ss;
ARM GAS /tmp/ccH7dUYB.s page 125
5315:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n;
5316:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */
5317:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */
5318:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
5319:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
5320:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat;
5321:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM || _FS_EXFAT
5322:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tbl[3];
5323:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5324:Middlewares/Third_Party/FatFs/src/ff.c ****
5325:Middlewares/Third_Party/FatFs/src/ff.c ****
5326:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check mounted drive and clear work area */
5327:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(&path); /* Get target logical drive */
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
5329:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
5330:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
5331:Middlewares/Third_Party/FatFs/src/ff.c **** part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */
5332:Middlewares/Third_Party/FatFs/src/ff.c ****
5333:Middlewares/Third_Party/FatFs/src/ff.c **** /* Check physical drive status */
5334:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(pdrv);
5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY;
5336:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
5337:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk &
5338:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR;
5340:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR;
5341:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5342:Middlewares/Third_Party/FatFs/src/ff.c **** ss = _MAX_SS;
5343:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5344:Middlewares/Third_Party/FatFs/src/ff.c **** if ((au != 0 && au < ss) || au > 0x1000000 || (au & (au - 1))) return FR_INVALID_PARAMETER; /* Che
5345:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
5346:Middlewares/Third_Party/FatFs/src/ff.c ****
5347:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get working buffer */
5348:Middlewares/Third_Party/FatFs/src/ff.c **** buf = (BYTE*)work; /* Working buffer */
5349:Middlewares/Third_Party/FatFs/src/ff.c **** sz_buf = len / ss; /* Size of working buffer (sector) */
5350:Middlewares/Third_Party/FatFs/src/ff.c **** szb_buf = sz_buf * ss; /* Size of working buffer (byte) */
5351:Middlewares/Third_Party/FatFs/src/ff.c **** if (!szb_buf) return FR_MKFS_ABORTED;
5352:Middlewares/Third_Party/FatFs/src/ff.c ****
5353:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine where the volume to be located (b_vol, sz_vol) */
5354:Middlewares/Third_Party/FatFs/src/ff.c **** if (_MULTI_PARTITION && part != 0) {
5355:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get partition information from partition table in the MBR */
5356:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Load MBR */
5357:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check if MBR is valid */
5358:Middlewares/Third_Party/FatFs/src/ff.c **** pte = buf + (MBR_Table + (part - 1) * SZ_PTE);
5359:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pte[PTE_System]) return FR_MKFS_ABORTED; /* No partition? */
5360:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = ld_dword(pte + PTE_StLba); /* Get volume start sector */
5361:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol = ld_dword(pte + PTE_SizLba); /* Get volume size */
5362:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5363:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create a single-partition in this function */
5364:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_vol) != RES_OK) return FR_DISK_ERR;
5365:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */
5366:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED;
5367:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */
5368:Middlewares/Third_Party/FatFs/src/ff.c **** }
5369:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 128) return FR_MKFS_ABORTED; /* Check if volume size is >=128s */
5370:Middlewares/Third_Party/FatFs/src/ff.c ****
5371:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine the FAT type */
ARM GAS /tmp/ccH7dUYB.s page 126
5372:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5373:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */
5374:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms
5375:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_EXFAT; break;
5376:Middlewares/Third_Party/FatFs/src/ff.c **** }
5377:Middlewares/Third_Party/FatFs/src/ff.c **** }
5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (au > 128) return FR_INVALID_PARAMETER; /* Too large au for FAT/FAT32 */
5379:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */
5380:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */
5381:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break;
5382:Middlewares/Third_Party/FatFs/src/ff.c **** }
5383:Middlewares/Third_Party/FatFs/src/ff.c **** }
5384:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(opt & FM_FAT)) return FR_INVALID_PARAMETER; /* no-FAT? */
5385:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16;
5386:Middlewares/Third_Party/FatFs/src/ff.c **** } while (0);
5387:Middlewares/Third_Party/FatFs/src/ff.c ****
5388:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5389:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_EXFAT) { /* Create an exFAT volume */
5390:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD szb_bit, szb_case, sum, nb, cl;
5391:Middlewares/Third_Party/FatFs/src/ff.c **** WCHAR ch, si;
5392:Middlewares/Third_Party/FatFs/src/ff.c **** UINT j, st;
5393:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE b;
5394:Middlewares/Third_Party/FatFs/src/ff.c ****
5395:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x1000) return FR_MKFS_ABORTED; /* Too small volume? */
5396:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM
5397:Middlewares/Third_Party/FatFs/src/ff.c **** tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area may be erased *
5398:Middlewares/Third_Party/FatFs/src/ff.c **** disk_ioctl(pdrv, CTRL_TRIM, tbl);
5399:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5400:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine FAT location, data location and number of clusters */
5401:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au) { /* au auto-selection */
5402:Middlewares/Third_Party/FatFs/src/ff.c **** au = 8;
5403:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol >= 0x80000) au = 64; /* >= 512Ks */
5404:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol >= 0x4000000) au = 256; /* >= 64Ms */
5405:Middlewares/Third_Party/FatFs/src/ff.c **** }
5406:Middlewares/Third_Party/FatFs/src/ff.c **** b_fat = b_vol + 32; /* FAT start at offset 32 */
5407:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = ((sz_vol / au + 2) * 4 + ss - 1) / ss; /* Number of FAT sectors */
5408:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = (b_fat + sz_fat + sz_blk - 1) & ~(sz_blk - 1); /* Align data area to the erase block bou
5409:Middlewares/Third_Party/FatFs/src/ff.c **** if (b_data >= sz_vol / 2) return FR_MKFS_ABORTED; /* Too small volume? */
5410:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - (b_data - b_vol)) / au; /* Number of clusters */
5411:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <16) return FR_MKFS_ABORTED; /* Too few clusters? */
5412:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_EXFAT) return FR_MKFS_ABORTED; /* Too many clusters? */
5413:Middlewares/Third_Party/FatFs/src/ff.c ****
5414:Middlewares/Third_Party/FatFs/src/ff.c **** szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */
5415:Middlewares/Third_Party/FatFs/src/ff.c **** tbl[0] = (szb_bit + au * ss - 1) / (au * ss); /* Number of allocation bitmap clusters */
5416:Middlewares/Third_Party/FatFs/src/ff.c ****
5417:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create a compressed up-case table */
5418:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_data + au * tbl[0]; /* Table start sector */
5419:Middlewares/Third_Party/FatFs/src/ff.c **** sum = 0; /* Table checksum to be stored in the 82 entry */
5420:Middlewares/Third_Party/FatFs/src/ff.c **** st = si = i = j = szb_case = 0;
5421:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5422:Middlewares/Third_Party/FatFs/src/ff.c **** switch (st) {
5423:Middlewares/Third_Party/FatFs/src/ff.c **** case 0:
5424:Middlewares/Third_Party/FatFs/src/ff.c **** ch = ff_wtoupper(si); /* Get an up-case char */
5425:Middlewares/Third_Party/FatFs/src/ff.c **** if (ch != si) {
5426:Middlewares/Third_Party/FatFs/src/ff.c **** si++; break; /* Store the up-case char if exist */
5427:Middlewares/Third_Party/FatFs/src/ff.c **** }
5428:Middlewares/Third_Party/FatFs/src/ff.c **** for (j = 1; (WCHAR)(si + j) && (WCHAR)(si + j) == ff_wtoupper((WCHAR)(si + j)); j++) ; /* Get r
ARM GAS /tmp/ccH7dUYB.s page 127
5429:Middlewares/Third_Party/FatFs/src/ff.c **** if (j >= 128) {
5430:Middlewares/Third_Party/FatFs/src/ff.c **** ch = 0xFFFF; st = 2; break; /* Compress the no-case block if run is >= 128 */
5431:Middlewares/Third_Party/FatFs/src/ff.c **** }
5432:Middlewares/Third_Party/FatFs/src/ff.c **** st = 1; /* Do not compress short run */
5433:Middlewares/Third_Party/FatFs/src/ff.c **** /* go to next case */
5434:Middlewares/Third_Party/FatFs/src/ff.c **** case 1:
5435:Middlewares/Third_Party/FatFs/src/ff.c **** ch = si++; /* Fill the short run */
5436:Middlewares/Third_Party/FatFs/src/ff.c **** if (--j == 0) st = 0;
5437:Middlewares/Third_Party/FatFs/src/ff.c **** break;
5438:Middlewares/Third_Party/FatFs/src/ff.c ****
5439:Middlewares/Third_Party/FatFs/src/ff.c **** default:
5440:Middlewares/Third_Party/FatFs/src/ff.c **** ch = (WCHAR)j; si += j; /* Number of chars to skip */
5441:Middlewares/Third_Party/FatFs/src/ff.c **** st = 0;
5442:Middlewares/Third_Party/FatFs/src/ff.c **** }
5443:Middlewares/Third_Party/FatFs/src/ff.c **** sum = xsum32(buf[i + 0] = (BYTE)ch, sum); /* Put it into the write buffer */
5444:Middlewares/Third_Party/FatFs/src/ff.c **** sum = xsum32(buf[i + 1] = (BYTE)(ch >> 8), sum);
5445:Middlewares/Third_Party/FatFs/src/ff.c **** i += 2; szb_case += 2;
5446:Middlewares/Third_Party/FatFs/src/ff.c **** if (!si || i == szb_buf) { /* Write buffered data when buffer full or end of process */
5447:Middlewares/Third_Party/FatFs/src/ff.c **** n = (i + ss - 1) / ss;
5448:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR;
5449:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; i = 0;
5450:Middlewares/Third_Party/FatFs/src/ff.c **** }
5451:Middlewares/Third_Party/FatFs/src/ff.c **** } while (si);
5452:Middlewares/Third_Party/FatFs/src/ff.c **** tbl[1] = (szb_case + au * ss - 1) / (au * ss); /* Number of up-case table clusters */
5453:Middlewares/Third_Party/FatFs/src/ff.c **** tbl[2] = 1; /* Number of root dir clusters */
5454:Middlewares/Third_Party/FatFs/src/ff.c ****
5455:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize the allocation bitmap */
5456:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_data; nsect = (szb_bit + ss - 1) / ss; /* Start of bitmap and number of sectors */
5457:Middlewares/Third_Party/FatFs/src/ff.c **** nb = tbl[0] + tbl[1] + tbl[2]; /* Number of clusters in-use by system */
5458:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5459:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, szb_buf);
5460:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; nb >= 8 && i < szb_buf; buf[i++] = 0xFF, nb -= 8) ;
5461:Middlewares/Third_Party/FatFs/src/ff.c **** for (b = 1; nb && i < szb_buf; buf[i] |= b, b <<= 1, nb--) ;
5462:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */
5463:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR;
5464:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
5465:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
5466:Middlewares/Third_Party/FatFs/src/ff.c ****
5467:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize the FAT */
5468:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_fat; nsect = sz_fat; /* Start of FAT and number of FAT sectors */
5469:Middlewares/Third_Party/FatFs/src/ff.c **** j = nb = cl = 0;
5470:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5471:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, szb_buf); i = 0; /* Clear work area and reset write index */
5472:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0) { /* Set entry 0 and 1 */
5473:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + i, 0xFFFFFFF8); i += 4; cl++;
5474:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + i, 0xFFFFFFFF); i += 4; cl++;
5475:Middlewares/Third_Party/FatFs/src/ff.c **** }
5476:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Create chains of bitmap, up-case and root dir */
5477:Middlewares/Third_Party/FatFs/src/ff.c **** while (nb && i < szb_buf) { /* Create a chain */
5478:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + i, (nb > 1) ? cl + 1 : 0xFFFFFFFF);
5479:Middlewares/Third_Party/FatFs/src/ff.c **** i += 4; cl++; nb--;
5480:Middlewares/Third_Party/FatFs/src/ff.c **** }
5481:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nb && j < 3) nb = tbl[j++]; /* Next chain */
5482:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nb && i < szb_buf);
5483:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */
5484:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR;
5485:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
ARM GAS /tmp/ccH7dUYB.s page 128
5486:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
5487:Middlewares/Third_Party/FatFs/src/ff.c ****
5488:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize the root directory */
5489:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, szb_buf);
5490:Middlewares/Third_Party/FatFs/src/ff.c **** buf[SZDIRE * 0 + 0] = 0x83; /* 83 entry (volume label) */
5491:Middlewares/Third_Party/FatFs/src/ff.c **** buf[SZDIRE * 1 + 0] = 0x81; /* 81 entry (allocation bitmap) */
5492:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + SZDIRE * 1 + 20, 2);
5493:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + SZDIRE * 1 + 24, szb_bit);
5494:Middlewares/Third_Party/FatFs/src/ff.c **** buf[SZDIRE * 2 + 0] = 0x82; /* 82 entry (up-case table) */
5495:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + SZDIRE * 2 + 4, sum);
5496:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + SZDIRE * 2 + 20, 2 + tbl[0]);
5497:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + SZDIRE * 2 + 24, szb_case);
5498:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_data + au * (tbl[0] + tbl[1]); nsect = au; /* Start of the root directory and number of
5499:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Fill root directory sectors */
5500:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect;
5501:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR;
5502:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5503:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
5504:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
5505:Middlewares/Third_Party/FatFs/src/ff.c ****
5506:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create two set of the exFAT VBR blocks */
5507:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_vol;
5508:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 0; n < 2; n++) {
5509:Middlewares/Third_Party/FatFs/src/ff.c **** /* Main record (+0) */
5510:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5511:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11); /* Boot jump code (x86), OEM name */
5512:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_VolOfsEx, b_vol); /* Volume offset in the physical drive [sector] */
5513:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_TotSecEx, sz_vol); /* Volume size [sector] */
5514:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FatOfsEx, b_fat - b_vol); /* FAT offset [sector] */
5515:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FatSzEx, sz_fat); /* FAT size [sector] */
5516:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_DataOfsEx, b_data - b_vol); /* Data offset [sector] */
5517:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_NumClusEx, n_clst); /* Number of clusters */
5518:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_RootClusEx, 2 + tbl[0] + tbl[1]); /* Root dir cluster # */
5519:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_VolIDEx, GET_FATTIME()); /* VSN */
5520:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FSVerEx, 0x100); /* File system version (1.00) */
5521:Middlewares/Third_Party/FatFs/src/ff.c **** for (buf[BPB_BytsPerSecEx] = 0, i = ss; i >>= 1; buf[BPB_BytsPerSecEx]++) ; /* Log2 of sector si
5522:Middlewares/Third_Party/FatFs/src/ff.c **** for (buf[BPB_SecPerClusEx] = 0, i = au; i >>= 1; buf[BPB_SecPerClusEx]++) ; /* Log2 of cluster s
5523:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_NumFATsEx] = 1; /* Number of FATs */
5524:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_DrvNumEx] = 0x80; /* Drive number (for int13) */
5525:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_BootCodeEx, 0xFEEB); /* Boot code (x86) */
5526:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); /* Signature (placed here regardless of sector size) */
5527:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = sum = 0; i < ss; i++) { /* VBR checksum */
5528:Middlewares/Third_Party/FatFs/src/ff.c **** if (i != BPB_VolFlagEx && i != BPB_VolFlagEx + 1 && i != BPB_PercInUseEx) sum = xsum32(buf[i],
5529:Middlewares/Third_Party/FatFs/src/ff.c **** }
5530:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR;
5531:Middlewares/Third_Party/FatFs/src/ff.c **** /* Extended bootstrap record (+1..+8) */
5532:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5533:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + ss - 2, 0xAA55); /* Signature (placed at end of sector) */
5534:Middlewares/Third_Party/FatFs/src/ff.c **** for (j = 1; j < 9; j++) {
5535:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */
5536:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR;
5537:Middlewares/Third_Party/FatFs/src/ff.c **** }
5538:Middlewares/Third_Party/FatFs/src/ff.c **** /* OEM/Reserved record (+9..+10) */
5539:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5540:Middlewares/Third_Party/FatFs/src/ff.c **** for ( ; j < 11; j++) {
5541:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */
5542:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR;
ARM GAS /tmp/ccH7dUYB.s page 129
5543:Middlewares/Third_Party/FatFs/src/ff.c **** }
5544:Middlewares/Third_Party/FatFs/src/ff.c **** /* Sum record (+11) */
5545:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < ss; i += 4) st_dword(buf + i, sum); /* Fill with checksum value */
5546:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR;
5547:Middlewares/Third_Party/FatFs/src/ff.c **** }
5548:Middlewares/Third_Party/FatFs/src/ff.c ****
5549:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5550:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _FS_EXFAT */
5551:Middlewares/Third_Party/FatFs/src/ff.c **** { /* Create an FAT12/16/32 volume */
5552:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5553:Middlewares/Third_Party/FatFs/src/ff.c **** pau = au;
5554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine number of clusters and FAT sub-type */
5555:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32 volume */
5556:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */
5557:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x20000; /* Volume size in unit of 128KS */
5558:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */
5559:Middlewares/Third_Party/FatFs/src/ff.c **** }
5560:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = sz_vol / pau; /* Number of clusters */
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */
5562:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
5563:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = 0; /* No static directory */
5564:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED;
5565:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
5566:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */
5567:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x1000; /* Volume size in unit of 4KS */
5568:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */
5569:Middlewares/Third_Party/FatFs/src/ff.c **** }
5570:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = sz_vol / pau;
5571:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT12) {
5572:Middlewares/Third_Party/FatFs/src/ff.c **** n = n_clst * 2 + 4; /* FAT size [byte] */
5573:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5574:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT12;
5575:Middlewares/Third_Party/FatFs/src/ff.c **** n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */
5576:Middlewares/Third_Party/FatFs/src/ff.c **** }
5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n + ss - 1) / ss; /* FAT size [sector] */
5578:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */
5579:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */
5580:Middlewares/Third_Party/FatFs/src/ff.c **** }
5581:Middlewares/Third_Party/FatFs/src/ff.c **** b_fat = b_vol + sz_rsv; /* FAT base */
5582:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */
5583:Middlewares/Third_Party/FatFs/src/ff.c ****
5584:Middlewares/Third_Party/FatFs/src/ff.c **** /* Align data base to erase block boundary (for flash memory media) */
5585:Middlewares/Third_Party/FatFs/src/ff.c **** n = ((b_data + sz_blk - 1) & ~(sz_blk - 1)) - b_data; /* Next nearest erase block from current d
5586:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
5587:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv += n; b_fat += n;
5588:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
5589:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat += n / n_fats;
5590:Middlewares/Third_Party/FatFs/src/ff.c **** }
5591:Middlewares/Third_Party/FatFs/src/ff.c ****
5592:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine number of clusters and final check of validity of the FAT sub-type */
5593:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_data + pau * 16 - b_vol) return FR_MKFS_ABORTED; /* Too small volume */
5594:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
5595:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */
5597:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */
5598:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
5599:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 130
5600:Middlewares/Third_Party/FatFs/src/ff.c **** }
5601:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT16) {
5602:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */
5603:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (pau * 2) <= 64) {
5604:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */
5605:Middlewares/Third_Party/FatFs/src/ff.c **** }
5606:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_FAT32)) {
5607:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */
5608:Middlewares/Third_Party/FatFs/src/ff.c **** }
5609:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */
5610:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
5611:Middlewares/Third_Party/FatFs/src/ff.c **** }
5612:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT12) { /* Too few clusters for FAT16 */
5613:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */
5614:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
5615:Middlewares/Third_Party/FatFs/src/ff.c **** }
5616:Middlewares/Third_Party/FatFs/src/ff.c **** }
5617:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT12 && n_clst > MAX_FAT12) return FR_MKFS_ABORTED; /* Too many clusters for FAT1
5618:Middlewares/Third_Party/FatFs/src/ff.c ****
5619:Middlewares/Third_Party/FatFs/src/ff.c **** /* Ok, it is the valid cluster configuration */
5620:Middlewares/Third_Party/FatFs/src/ff.c **** break;
5621:Middlewares/Third_Party/FatFs/src/ff.c **** } while (1);
5622:Middlewares/Third_Party/FatFs/src/ff.c ****
5623:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM
5624:Middlewares/Third_Party/FatFs/src/ff.c **** tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased *
5625:Middlewares/Third_Party/FatFs/src/ff.c **** disk_ioctl(pdrv, CTRL_TRIM, tbl);
5626:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5627:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FAT VBR */
5628:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5629:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_JmpBoot, "\xEB\xFE\x90" "MSDOS5.0", 11);/* Boot jump code (x86), OEM name */
5630:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */
5631:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */
5632:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */
5633:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_NumFATs] = (BYTE)n_fats; /* Number of FATs */
5634:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root direc
5635:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) {
5636:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */
5637:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5638:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_TotSec32, sz_vol); /* Volume size in 32-bit LBA */
5639:Middlewares/Third_Party/FatFs/src/ff.c **** }
5640:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_Media] = 0xF8; /* Media descriptor byte */
5641:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */
5642:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */
5643:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_HiddSec, b_vol); /* Volume offset in the physical drive [sector] */
5644:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
5645:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */
5646:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */
5647:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_RootClus32, 2); /* Root directory cluster # (2) */
5648:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FSInfo32, 1); /* Offset of FSINFO sector (VBR + 1) */
5649:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BkBootSec32, 6); /* Offset of backup VBR (VBR + 6) */
5650:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum32] = 0x80; /* Drive number (for int13) */
5651:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig32] = 0x29; /* Extended boot signature */
5652:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */
5653:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5654:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID, GET_FATTIME()); /* VSN */
5655:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */
5656:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum] = 0x80; /* Drive number (for int13) */
ARM GAS /tmp/ccH7dUYB.s page 131
5657:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig] = 0x29; /* Extended boot signature */
5658:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */
5659:Middlewares/Third_Party/FatFs/src/ff.c **** }
5660:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); /* Signature (offset is fixed here regardless of sector size)
5661:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the VBR sector
5662:Middlewares/Third_Party/FatFs/src/ff.c ****
5663:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSINFO record if needed */
5664:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
5665:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */
5666:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5667:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_LeadSig, 0x41615252);
5668:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_StrucSig, 0x61417272);
5669:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Free_Count, n_clst - 1); /* Number of free clusters */
5670:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Nxt_Free, 2); /* Last allocated cluster# */
5671:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55);
5672:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 7, 1); /* Write backup FSINFO (VBR + 7) */
5673:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 1, 1); /* Write original FSINFO (VBR + 1) */
5674:Middlewares/Third_Party/FatFs/src/ff.c **** }
5675:Middlewares/Third_Party/FatFs/src/ff.c ****
5676:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize FAT area */
5677:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, (UINT)szb_buf);
5678:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_fat; /* FAT start sector */
5679:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < n_fats; i++) { /* Initialize FATs each */
5680:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
5681:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */
5682:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 4, 0xFFFFFFFF); /* Entry 1 */
5683:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 8, 0x0FFFFFFF); /* Entry 2 (root directory) */
5684:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5685:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, (fmt == FS_FAT12) ? 0xFFFFF8 : 0xFFFFFFF8); /* Entry 0 and 1 */
5686:Middlewares/Third_Party/FatFs/src/ff.c **** }
5687:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = sz_fat; /* Number of FAT sectors */
5688:Middlewares/Third_Party/FatFs/src/ff.c **** do { /* Fill FAT sectors */
5689:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect;
5690:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
5691:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5692:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
5693:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
5694:Middlewares/Third_Party/FatFs/src/ff.c **** }
5695:Middlewares/Third_Party/FatFs/src/ff.c ****
5696:Middlewares/Third_Party/FatFs/src/ff.c **** /* Initialize root directory (fill with zero) */
5697:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = (fmt == FS_FAT32) ? pau : sz_dir; /* Number of root directory sectors */
5698:Middlewares/Third_Party/FatFs/src/ff.c **** do {
5699:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect;
5700:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
5701:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
5702:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
5703:Middlewares/Third_Party/FatFs/src/ff.c **** }
5704:Middlewares/Third_Party/FatFs/src/ff.c ****
5705:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine system ID in the partition table */
5706:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fmt == FS_EXFAT) {
5707:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x07; /* HPFS/NTFS/exFAT */
5708:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5709:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
5710:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */
5711:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5712:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol >= 0x10000) {
5713:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */
ARM GAS /tmp/ccH7dUYB.s page 132
5714:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5715:Middlewares/Third_Party/FatFs/src/ff.c **** sys = (fmt == FS_FAT16) ? 0x04 : 0x01; /* FAT16 (<64KS) : FAT12 (<64KS) */
5716:Middlewares/Third_Party/FatFs/src/ff.c **** }
5717:Middlewares/Third_Party/FatFs/src/ff.c **** }
5718:Middlewares/Third_Party/FatFs/src/ff.c **** }
5719:Middlewares/Third_Party/FatFs/src/ff.c ****
5720:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update partition information */
5721:Middlewares/Third_Party/FatFs/src/ff.c **** if (_MULTI_PARTITION && part != 0) { /* Created in the existing partition */
5722:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update system ID in the partition table */
5723:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Read the MBR */
5724:Middlewares/Third_Party/FatFs/src/ff.c **** buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system ID */
5725:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it back to the MBR */
5726:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Created as a new single partition */
5727:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(opt & FM_SFD)) { /* Create partition table if in FDISK format */
5728:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
5729:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); /* MBR signature */
5730:Middlewares/Third_Party/FatFs/src/ff.c **** pte = buf + MBR_Table; /* Create partition table for single partition in the drive */
5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_Boot] = 0; /* Boot indicator */
5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */
5733:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */
5734:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StCyl] = 0; /* Start cylinder */
5735:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_System] = sys; /* System type */
5736:Middlewares/Third_Party/FatFs/src/ff.c **** n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */
5737:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */
5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */
5739:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */
5740:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */
5741:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_SizLba, sz_vol); /* Size in sectors */
5742:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the MBR */
5743:Middlewares/Third_Party/FatFs/src/ff.c **** }
5744:Middlewares/Third_Party/FatFs/src/ff.c **** }
5745:Middlewares/Third_Party/FatFs/src/ff.c ****
5746:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) return FR_DISK_ERR;
5747:Middlewares/Third_Party/FatFs/src/ff.c ****
5748:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_OK;
5749:Middlewares/Third_Party/FatFs/src/ff.c **** }
5750:Middlewares/Third_Party/FatFs/src/ff.c ****
5751:Middlewares/Third_Party/FatFs/src/ff.c ****
5752:Middlewares/Third_Party/FatFs/src/ff.c ****
5753:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MULTI_PARTITION
5754:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5755:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create partition table on the physical drive */
5756:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5757:Middlewares/Third_Party/FatFs/src/ff.c ****
5758:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT f_fdisk (
5759:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE pdrv, /* Physical drive number */
5760:Middlewares/Third_Party/FatFs/src/ff.c **** const DWORD* szt, /* Pointer to the size table for each partitions */
5761:Middlewares/Third_Party/FatFs/src/ff.c **** void* work /* Pointer to the working buffer */
5762:Middlewares/Third_Party/FatFs/src/ff.c **** )
5763:Middlewares/Third_Party/FatFs/src/ff.c **** {
5764:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, n, sz_cyl, tot_cyl, b_cyl, e_cyl, p_cyl;
5765:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s_hd, e_hd, *p, *buf = (BYTE*)work;
5766:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat;
5767:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sz_disk, sz_part, s_part;
5768:Middlewares/Third_Party/FatFs/src/ff.c ****
5769:Middlewares/Third_Party/FatFs/src/ff.c ****
5770:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(pdrv);
ARM GAS /tmp/ccH7dUYB.s page 133
5771:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY;
5772:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
5773:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_disk)) return FR_DISK_ERR;
5774:Middlewares/Third_Party/FatFs/src/ff.c ****
5775:Middlewares/Third_Party/FatFs/src/ff.c **** /* Determine the CHS without any consideration of the drive geometry */
5776:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 16; n < 256 && sz_disk / n / 63 > 1024; n *= 2) ;
5777:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 256) n--;
5778:Middlewares/Third_Party/FatFs/src/ff.c **** e_hd = n - 1;
5779:Middlewares/Third_Party/FatFs/src/ff.c **** sz_cyl = 63 * n;
5780:Middlewares/Third_Party/FatFs/src/ff.c **** tot_cyl = sz_disk / sz_cyl;
5781:Middlewares/Third_Party/FatFs/src/ff.c ****
5782:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create partition table */
5783:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, _MAX_SS);
5784:Middlewares/Third_Party/FatFs/src/ff.c **** p = buf + MBR_Table; b_cyl = 0;
5785:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++, p += SZ_PTE) {
5786:Middlewares/Third_Party/FatFs/src/ff.c **** p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; /* Number of cylinder
5787:Middlewares/Third_Party/FatFs/src/ff.c **** if (!p_cyl) continue;
5788:Middlewares/Third_Party/FatFs/src/ff.c **** s_part = (DWORD)sz_cyl * b_cyl;
5789:Middlewares/Third_Party/FatFs/src/ff.c **** sz_part = (DWORD)sz_cyl * p_cyl;
5790:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) { /* Exclude first track of cylinder 0 */
5791:Middlewares/Third_Party/FatFs/src/ff.c **** s_hd = 1;
5792:Middlewares/Third_Party/FatFs/src/ff.c **** s_part += 63; sz_part -= 63;
5793:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5794:Middlewares/Third_Party/FatFs/src/ff.c **** s_hd = 0;
5795:Middlewares/Third_Party/FatFs/src/ff.c **** }
5796:Middlewares/Third_Party/FatFs/src/ff.c **** e_cyl = b_cyl + p_cyl - 1; /* End cylinder */
5797:Middlewares/Third_Party/FatFs/src/ff.c **** if (e_cyl >= tot_cyl) return FR_INVALID_PARAMETER;
5798:Middlewares/Third_Party/FatFs/src/ff.c ****
5799:Middlewares/Third_Party/FatFs/src/ff.c **** /* Set partition table */
5800:Middlewares/Third_Party/FatFs/src/ff.c **** p[1] = s_hd; /* Start head */
5801:Middlewares/Third_Party/FatFs/src/ff.c **** p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */
5802:Middlewares/Third_Party/FatFs/src/ff.c **** p[3] = (BYTE)b_cyl; /* Start cylinder */
5803:Middlewares/Third_Party/FatFs/src/ff.c **** p[4] = 0x07; /* System type (temporary setting) */
5804:Middlewares/Third_Party/FatFs/src/ff.c **** p[5] = e_hd; /* End head */
5805:Middlewares/Third_Party/FatFs/src/ff.c **** p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */
5806:Middlewares/Third_Party/FatFs/src/ff.c **** p[7] = (BYTE)e_cyl; /* End cylinder */
5807:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(p + 8, s_part); /* Start sector in LBA */
5808:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(p + 12, sz_part); /* Number of sectors */
5809:Middlewares/Third_Party/FatFs/src/ff.c ****
5810:Middlewares/Third_Party/FatFs/src/ff.c **** /* Next partition */
5811:Middlewares/Third_Party/FatFs/src/ff.c **** b_cyl += p_cyl;
5812:Middlewares/Third_Party/FatFs/src/ff.c **** }
5813:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(p, 0xAA55);
5814:Middlewares/Third_Party/FatFs/src/ff.c ****
5815:Middlewares/Third_Party/FatFs/src/ff.c **** /* Write it to the MBR */
5816:Middlewares/Third_Party/FatFs/src/ff.c **** return (disk_write(pdrv, buf, 0, 1) != RES_OK || disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) ? FR_DI
5817:Middlewares/Third_Party/FatFs/src/ff.c **** }
5818:Middlewares/Third_Party/FatFs/src/ff.c ****
5819:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _MULTI_PARTITION */
5820:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_MKFS && !_FS_READONLY */
5821:Middlewares/Third_Party/FatFs/src/ff.c ****
5822:Middlewares/Third_Party/FatFs/src/ff.c ****
5823:Middlewares/Third_Party/FatFs/src/ff.c ****
5824:Middlewares/Third_Party/FatFs/src/ff.c ****
5825:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_STRFUNC
5826:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5827:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get a string from the file */
ARM GAS /tmp/ccH7dUYB.s page 134
5828:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5829:Middlewares/Third_Party/FatFs/src/ff.c ****
5830:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR* f_gets (
5831:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR* buff, /* Pointer to the string buffer to read */
5832:Middlewares/Third_Party/FatFs/src/ff.c **** int len, /* Size of string buffer (characters) */
5833:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object */
5834:Middlewares/Third_Party/FatFs/src/ff.c **** )
5835:Middlewares/Third_Party/FatFs/src/ff.c **** {
5836:Middlewares/Third_Party/FatFs/src/ff.c **** int n = 0;
5837:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, *p = buff;
5838:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s[2];
5839:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rc;
5840:Middlewares/Third_Party/FatFs/src/ff.c ****
5841:Middlewares/Third_Party/FatFs/src/ff.c ****
5842:Middlewares/Third_Party/FatFs/src/ff.c **** while (n < len - 1) { /* Read characters until buffer gets filled */
5843:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
5844:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STRF_ENCODE == 3 /* Read a character in UTF-8 */
5845:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 1, &rc);
5846:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
5847:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
5848:Middlewares/Third_Party/FatFs/src/ff.c **** if (c >= 0x80) {
5849:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0xC0) continue; /* Skip stray trailer */
5850:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0xE0) { /* Two-byte sequence (0x80-0x7FF) */
5851:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 1, &rc);
5852:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
5853:Middlewares/Third_Party/FatFs/src/ff.c **** c = (c & 0x1F) << 6 | (s[0] & 0x3F);
5854:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0x80) c = '?'; /* Reject invalid code range */
5855:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5856:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0xF0) { /* Three-byte sequence (0x800-0xFFFF) */
5857:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 2, &rc);
5858:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 2) break;
5859:Middlewares/Third_Party/FatFs/src/ff.c **** c = c << 12 | (s[0] & 0x3F) << 6 | (s[1] & 0x3F);
5860:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0x800) c = '?'; /* Reject invalid code range */
5861:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Reject four-byte sequence */
5862:Middlewares/Third_Party/FatFs/src/ff.c **** c = '?';
5863:Middlewares/Third_Party/FatFs/src/ff.c **** }
5864:Middlewares/Third_Party/FatFs/src/ff.c **** }
5865:Middlewares/Third_Party/FatFs/src/ff.c **** }
5866:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _STRF_ENCODE == 2 /* Read a character in UTF-16BE */
5867:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 2, &rc);
5868:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 2) break;
5869:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[1] + (s[0] << 8);
5870:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _STRF_ENCODE == 1 /* Read a character in UTF-16LE */
5871:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 2, &rc);
5872:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 2) break;
5873:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0] + (s[1] << 8);
5874:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Read a character in ANSI/OEM */
5875:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 1, &rc);
5876:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
5877:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
5878:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsDBCS1(c)) {
5879:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 1, &rc);
5880:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
5881:Middlewares/Third_Party/FatFs/src/ff.c **** c = (c << 8) + s[0];
5882:Middlewares/Third_Party/FatFs/src/ff.c **** }
5883:Middlewares/Third_Party/FatFs/src/ff.c **** c = ff_convert(c, 1); /* OEM -> Unicode */
5884:Middlewares/Third_Party/FatFs/src/ff.c **** if (!c) c = '?';
ARM GAS /tmp/ccH7dUYB.s page 135
5885:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5886:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Read a character without conversion */
5887:Middlewares/Third_Party/FatFs/src/ff.c **** f_read(fp, s, 1, &rc);
5888:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
5889:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
5890:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5891:Middlewares/Third_Party/FatFs/src/ff.c **** if (_USE_STRFUNC == 2 && c == '\r') continue; /* Strip '\r' */
5892:Middlewares/Third_Party/FatFs/src/ff.c **** *p++ = c;
5893:Middlewares/Third_Party/FatFs/src/ff.c **** n++;
5894:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '\n') break; /* Break on EOL */
5895:Middlewares/Third_Party/FatFs/src/ff.c **** }
5896:Middlewares/Third_Party/FatFs/src/ff.c **** *p = 0;
5897:Middlewares/Third_Party/FatFs/src/ff.c **** return n ? buff : 0; /* When no data read (eof or error), return with error. */
5898:Middlewares/Third_Party/FatFs/src/ff.c **** }
5899:Middlewares/Third_Party/FatFs/src/ff.c ****
5900:Middlewares/Third_Party/FatFs/src/ff.c ****
5901:Middlewares/Third_Party/FatFs/src/ff.c ****
5902:Middlewares/Third_Party/FatFs/src/ff.c ****
5903:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5904:Middlewares/Third_Party/FatFs/src/ff.c **** #include <stdarg.h>
5905:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5906:Middlewares/Third_Party/FatFs/src/ff.c **** /* Put a character to the file */
5907:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
5908:Middlewares/Third_Party/FatFs/src/ff.c ****
5909:Middlewares/Third_Party/FatFs/src/ff.c **** typedef struct {
5910:Middlewares/Third_Party/FatFs/src/ff.c **** FIL *fp; /* Ptr to the writing file */
5911:Middlewares/Third_Party/FatFs/src/ff.c **** int idx, nchr; /* Write index of buf[] (-1:error), number of chars written */
5912:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE buf[64]; /* Write buffer */
5913:Middlewares/Third_Party/FatFs/src/ff.c **** } putbuff;
5914:Middlewares/Third_Party/FatFs/src/ff.c ****
5915:Middlewares/Third_Party/FatFs/src/ff.c ****
5916:Middlewares/Third_Party/FatFs/src/ff.c **** static
5917:Middlewares/Third_Party/FatFs/src/ff.c **** void putc_bfd ( /* Buffered write with code conversion */
5918:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff* pb,
5919:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c
5920:Middlewares/Third_Party/FatFs/src/ff.c **** )
5921:Middlewares/Third_Party/FatFs/src/ff.c **** {
5922:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bw;
5923:Middlewares/Third_Party/FatFs/src/ff.c **** int i;
5924:Middlewares/Third_Party/FatFs/src/ff.c ****
5925:Middlewares/Third_Party/FatFs/src/ff.c ****
5926:Middlewares/Third_Party/FatFs/src/ff.c **** if (_USE_STRFUNC == 2 && c == '\n') { /* LF -> CRLF conversion */
5927:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(pb, '\r');
5928:Middlewares/Third_Party/FatFs/src/ff.c **** }
5929:Middlewares/Third_Party/FatFs/src/ff.c ****
5930:Middlewares/Third_Party/FatFs/src/ff.c **** i = pb->idx; /* Write index of pb->buf[] */
5931:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 0) return;
5932:Middlewares/Third_Party/FatFs/src/ff.c ****
5933:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
5934:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STRF_ENCODE == 3 /* Write a character in UTF-8 */
5935:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0x80) { /* 7-bit */
5936:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)c;
5937:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5938:Middlewares/Third_Party/FatFs/src/ff.c **** if (c < 0x800) { /* 11-bit */
5939:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(0xC0 | c >> 6);
5940:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* 16-bit */
5941:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(0xE0 | c >> 12);
ARM GAS /tmp/ccH7dUYB.s page 136
5942:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(0x80 | (c >> 6 & 0x3F));
5943:Middlewares/Third_Party/FatFs/src/ff.c **** }
5944:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(0x80 | (c & 0x3F));
5945:Middlewares/Third_Party/FatFs/src/ff.c **** }
5946:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _STRF_ENCODE == 2 /* Write a character in UTF-16BE */
5947:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(c >> 8);
5948:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)c;
5949:Middlewares/Third_Party/FatFs/src/ff.c **** #elif _STRF_ENCODE == 1 /* Write a character in UTF-16LE */
5950:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)c;
5951:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(c >> 8);
5952:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Write a character in ANSI/OEM */
5953:Middlewares/Third_Party/FatFs/src/ff.c **** c = ff_convert(c, 0); /* Unicode -> OEM */
5954:Middlewares/Third_Party/FatFs/src/ff.c **** if (!c) c = '?';
5955:Middlewares/Third_Party/FatFs/src/ff.c **** if (c >= 0x100)
5956:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)(c >> 8);
5957:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)c;
5958:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5959:Middlewares/Third_Party/FatFs/src/ff.c **** #else /* Write a character without conversion */
5960:Middlewares/Third_Party/FatFs/src/ff.c **** pb->buf[i++] = (BYTE)c;
5961:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5962:Middlewares/Third_Party/FatFs/src/ff.c ****
5963:Middlewares/Third_Party/FatFs/src/ff.c **** if (i >= (int)(sizeof pb->buf) - 3) { /* Write buffered characters to the file */
5964:Middlewares/Third_Party/FatFs/src/ff.c **** f_write(pb->fp, pb->buf, (UINT)i, &bw);
5965:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1;
5966:Middlewares/Third_Party/FatFs/src/ff.c **** }
5967:Middlewares/Third_Party/FatFs/src/ff.c **** pb->idx = i;
5968:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr++;
5969:Middlewares/Third_Party/FatFs/src/ff.c **** }
5970:Middlewares/Third_Party/FatFs/src/ff.c ****
5971:Middlewares/Third_Party/FatFs/src/ff.c ****
5972:Middlewares/Third_Party/FatFs/src/ff.c **** static
5973:Middlewares/Third_Party/FatFs/src/ff.c **** int putc_flush ( /* Flush left characters in the buffer */
5974:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff* pb
5975:Middlewares/Third_Party/FatFs/src/ff.c **** )
5976:Middlewares/Third_Party/FatFs/src/ff.c **** {
5977:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nw;
5978:Middlewares/Third_Party/FatFs/src/ff.c ****
5979:Middlewares/Third_Party/FatFs/src/ff.c **** if ( pb->idx >= 0 /* Flush buffered characters to the file */
5980:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK
5981:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr;
5982:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
5983:Middlewares/Third_Party/FatFs/src/ff.c **** }
5984:Middlewares/Third_Party/FatFs/src/ff.c ****
5985:Middlewares/Third_Party/FatFs/src/ff.c ****
5986:Middlewares/Third_Party/FatFs/src/ff.c **** static
5987:Middlewares/Third_Party/FatFs/src/ff.c **** void putc_init ( /* Initialize write buffer */
5988:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff* pb,
5989:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp
5990:Middlewares/Third_Party/FatFs/src/ff.c **** )
5991:Middlewares/Third_Party/FatFs/src/ff.c **** {
1636 .loc 1 5991 1 is_stmt 1 view -0
1637 .cfi_startproc
1638 @ args = 0, pretend = 0, frame = 0
1639 @ frame_needed = 0, uses_anonymous_args = 0
1640 @ link register save eliminated.
5992:Middlewares/Third_Party/FatFs/src/ff.c **** pb->fp = fp;
1641 .loc 1 5992 2 view .LVU493
ARM GAS /tmp/ccH7dUYB.s page 137
1642 .loc 1 5992 9 is_stmt 0 view .LVU494
1643 0000 0160 str r1, [r0]
5993:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr = pb->idx = 0;
1644 .loc 1 5993 2 is_stmt 1 view .LVU495
1645 .loc 1 5993 21 is_stmt 0 view .LVU496
1646 0002 0023 movs r3, #0
1647 0004 4360 str r3, [r0, #4]
1648 .loc 1 5993 11 view .LVU497
1649 0006 8360 str r3, [r0, #8]
5994:Middlewares/Third_Party/FatFs/src/ff.c **** }
1650 .loc 1 5994 1 view .LVU498
1651 0008 7047 bx lr
1652 .cfi_endproc
1653 .LFE1241:
1655 .section .text.validate,"ax",%progbits
1656 .align 1
1657 .syntax unified
1658 .thumb
1659 .thumb_func
1661 validate:
1662 .LVL178:
1663 .LFB1220:
3220:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INVALID_OBJECT;
1664 .loc 1 3220 1 is_stmt 1 view -0
1665 .cfi_startproc
1666 @ args = 0, pretend = 0, frame = 0
1667 @ frame_needed = 0, uses_anonymous_args = 0
3220:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INVALID_OBJECT;
1668 .loc 1 3220 1 is_stmt 0 view .LVU500
1669 0000 38B5 push {r3, r4, r5, lr}
1670 .LCFI14:
1671 .cfi_def_cfa_offset 16
1672 .cfi_offset 3, -16
1673 .cfi_offset 4, -12
1674 .cfi_offset 5, -8
1675 .cfi_offset 14, -4
1676 0002 0D46 mov r5, r1
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1677 .loc 1 3221 2 is_stmt 1 view .LVU501
1678 .LVL179:
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1679 .loc 1 3224 2 view .LVU502
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1680 .loc 1 3224 5 is_stmt 0 view .LVU503
1681 0004 0446 mov r4, r0
1682 0006 98B1 cbz r0, .L149
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1683 .loc 1 3224 16 discriminator 1 view .LVU504
1684 0008 0368 ldr r3, [r0]
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1685 .loc 1 3224 10 discriminator 1 view .LVU505
1686 000a 9BB1 cbz r3, .L150
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1687 .loc 1 3224 31 discriminator 2 view .LVU506
1688 000c 1A78 ldrb r2, [r3] @ zero_extendqisi2
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1689 .loc 1 3224 21 discriminator 2 view .LVU507
ARM GAS /tmp/ccH7dUYB.s page 138
1690 000e A2B1 cbz r2, .L151
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1691 .loc 1 3224 47 discriminator 3 view .LVU508
1692 0010 8188 ldrh r1, [r0, #4]
1693 .LVL180:
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1694 .loc 1 3224 62 discriminator 3 view .LVU509
1695 0012 DA88 ldrh r2, [r3, #6]
3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT
1696 .loc 1 3224 41 discriminator 3 view .LVU510
1697 0014 9142 cmp r1, r2
1698 0016 03D0 beq .L155
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1699 .loc 1 3221 10 view .LVU511
1700 0018 0920 movs r0, #9
1701 .LVL181:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1702 .loc 1 3241 33 discriminator 2 view .LVU512
1703 001a 0024 movs r4, #0
1704 .LVL182:
1705 .L148:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1706 .loc 1 3241 6 discriminator 4 view .LVU513
1707 001c 2C60 str r4, [r5]
3242:Middlewares/Third_Party/FatFs/src/ff.c **** }
1708 .loc 1 3242 2 is_stmt 1 view .LVU514
3243:Middlewares/Third_Party/FatFs/src/ff.c ****
1709 .loc 1 3243 1 is_stmt 0 view .LVU515
1710 001e 38BD pop {r3, r4, r5, pc}
1711 .LVL183:
1712 .L155:
3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
1713 .loc 1 3236 3 is_stmt 1 view .LVU516
3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
1714 .loc 1 3236 9 is_stmt 0 view .LVU517
1715 0020 5878 ldrb r0, [r3, #1] @ zero_extendqisi2
1716 .LVL184:
3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
1717 .loc 1 3236 9 view .LVU518
1718 0022 FFF7FEFF bl disk_status
1719 .LVL185:
3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
1720 .loc 1 3236 6 discriminator 1 view .LVU519
1721 0026 10F00100 ands r0, r0, #1
1722 002a 09D1 bne .L153
3237:Middlewares/Third_Party/FatFs/src/ff.c **** }
1723 .loc 1 3237 4 is_stmt 1 view .LVU520
1724 .LVL186:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1725 .loc 1 3241 2 view .LVU521
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1726 .loc 1 3241 33 is_stmt 0 discriminator 1 view .LVU522
1727 002c 2468 ldr r4, [r4]
1728 .LVL187:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1729 .loc 1 3241 33 discriminator 1 view .LVU523
1730 002e F5E7 b .L148
ARM GAS /tmp/ccH7dUYB.s page 139
1731 .LVL188:
1732 .L149:
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1733 .loc 1 3221 10 view .LVU524
1734 0030 0920 movs r0, #9
1735 .LVL189:
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1736 .loc 1 3221 10 view .LVU525
1737 0032 F3E7 b .L148
1738 .LVL190:
1739 .L150:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1740 .loc 1 3241 33 discriminator 2 view .LVU526
1741 0034 1C46 mov r4, r3
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1742 .loc 1 3221 10 view .LVU527
1743 0036 0920 movs r0, #9
1744 .LVL191:
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1745 .loc 1 3221 10 view .LVU528
1746 0038 F0E7 b .L148
1747 .LVL192:
1748 .L151:
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1749 .loc 1 3221 10 view .LVU529
1750 003a 0920 movs r0, #9
1751 .LVL193:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1752 .loc 1 3241 33 discriminator 2 view .LVU530
1753 003c 0024 movs r4, #0
1754 .LVL194:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1755 .loc 1 3241 33 discriminator 2 view .LVU531
1756 003e EDE7 b .L148
1757 .LVL195:
1758 .L153:
3221:Middlewares/Third_Party/FatFs/src/ff.c ****
1759 .loc 1 3221 10 view .LVU532
1760 0040 0920 movs r0, #9
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1761 .loc 1 3241 33 discriminator 2 view .LVU533
1762 0042 0024 movs r4, #0
1763 .LVL196:
3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
1764 .loc 1 3241 33 discriminator 2 view .LVU534
1765 0044 EAE7 b .L148
1766 .cfi_endproc
1767 .LFE1220:
1769 .section .text.sync_window,"ax",%progbits
1770 .align 1
1771 .syntax unified
1772 .thumb
1773 .thumb_func
1775 sync_window:
1776 .LVL197:
1777 .LFB1196:
886:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD wsect;
ARM GAS /tmp/ccH7dUYB.s page 140
1778 .loc 1 886 1 is_stmt 1 view -0
1779 .cfi_startproc
1780 @ args = 0, pretend = 0, frame = 0
1781 @ frame_needed = 0, uses_anonymous_args = 0
886:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD wsect;
1782 .loc 1 886 1 is_stmt 0 view .LVU536
1783 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
1784 .LCFI15:
1785 .cfi_def_cfa_offset 24
1786 .cfi_offset 4, -24
1787 .cfi_offset 5, -20
1788 .cfi_offset 6, -16
1789 .cfi_offset 7, -12
1790 .cfi_offset 8, -8
1791 .cfi_offset 14, -4
887:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nf;
1792 .loc 1 887 2 is_stmt 1 view .LVU537
888:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
1793 .loc 1 888 2 view .LVU538
889:Middlewares/Third_Party/FatFs/src/ff.c ****
1794 .loc 1 889 2 view .LVU539
1795 .LVL198:
892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */
1796 .loc 1 892 2 view .LVU540
892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */
1797 .loc 1 892 8 is_stmt 0 view .LVU541
1798 0004 C578 ldrb r5, [r0, #3] @ zero_extendqisi2
892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */
1799 .loc 1 892 5 view .LVU542
1800 0006 15B9 cbnz r5, .L162
1801 .LVL199:
1802 .L157:
906:Middlewares/Third_Party/FatFs/src/ff.c **** }
1803 .loc 1 906 2 is_stmt 1 view .LVU543
907:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1804 .loc 1 907 1 is_stmt 0 view .LVU544
1805 0008 2846 mov r0, r5
1806 000a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1807 .LVL200:
1808 .L162:
907:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1809 .loc 1 907 1 view .LVU545
1810 000e 0446 mov r4, r0
893:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) {
1811 .loc 1 893 3 is_stmt 1 view .LVU546
893:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) {
1812 .loc 1 893 9 is_stmt 0 view .LVU547
1813 0010 076B ldr r7, [r0, #48]
1814 .LVL201:
894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1815 .loc 1 894 3 is_stmt 1 view .LVU548
894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1816 .loc 1 894 29 is_stmt 0 view .LVU549
1817 0012 00F13408 add r8, r0, #52
894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1818 .loc 1 894 7 view .LVU550
1819 0016 0123 movs r3, #1
ARM GAS /tmp/ccH7dUYB.s page 141
1820 0018 3A46 mov r2, r7
1821 001a 4146 mov r1, r8
1822 001c 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
1823 .LVL202:
894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1824 .loc 1 894 7 view .LVU551
1825 001e FFF7FEFF bl disk_write
1826 .LVL203:
894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1827 .loc 1 894 6 discriminator 1 view .LVU552
1828 0022 0546 mov r5, r0
1829 0024 A0B9 cbnz r0, .L160
897:Middlewares/Third_Party/FatFs/src/ff.c **** if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */
1830 .loc 1 897 4 is_stmt 1 view .LVU553
897:Middlewares/Third_Party/FatFs/src/ff.c **** if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */
1831 .loc 1 897 14 is_stmt 0 view .LVU554
1832 0026 0023 movs r3, #0
1833 0028 E370 strb r3, [r4, #3]
898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
1834 .loc 1 898 4 is_stmt 1 view .LVU555
898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
1835 .loc 1 898 18 is_stmt 0 view .LVU556
1836 002a 636A ldr r3, [r4, #36]
898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
1837 .loc 1 898 14 view .LVU557
1838 002c FB1A subs r3, r7, r3
898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
1839 .loc 1 898 32 view .LVU558
1840 002e E269 ldr r2, [r4, #28]
898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */
1841 .loc 1 898 7 view .LVU559
1842 0030 9342 cmp r3, r2
1843 0032 E9D2 bcs .L157
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1844 .loc 1 899 5 is_stmt 1 view .LVU560
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1845 .loc 1 899 17 is_stmt 0 view .LVU561
1846 0034 A678 ldrb r6, [r4, #2] @ zero_extendqisi2
1847 .LVL204:
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1848 .loc 1 899 5 view .LVU562
1849 0036 08E0 b .L158
1850 .L159:
900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1);
1851 .loc 1 900 6 is_stmt 1 view .LVU563
900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1);
1852 .loc 1 900 17 is_stmt 0 view .LVU564
1853 0038 E369 ldr r3, [r4, #28]
900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1);
1854 .loc 1 900 12 view .LVU565
1855 003a 1F44 add r7, r7, r3
1856 .LVL205:
901:Middlewares/Third_Party/FatFs/src/ff.c **** }
1857 .loc 1 901 6 is_stmt 1 view .LVU566
1858 003c 0123 movs r3, #1
1859 003e 3A46 mov r2, r7
1860 0040 4146 mov r1, r8
ARM GAS /tmp/ccH7dUYB.s page 142
1861 0042 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
1862 0044 FFF7FEFF bl disk_write
1863 .LVL206:
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1864 .loc 1 899 38 discriminator 3 view .LVU567
1865 0048 013E subs r6, r6, #1
1866 .LVL207:
1867 .L158:
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1868 .loc 1 899 30 discriminator 1 view .LVU568
1869 004a 012E cmp r6, #1
1870 004c F4D8 bhi .L159
899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize;
1871 .loc 1 899 30 is_stmt 0 discriminator 1 view .LVU569
1872 004e DBE7 b .L157
1873 .LVL208:
1874 .L160:
895:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
1875 .loc 1 895 8 view .LVU570
1876 0050 0125 movs r5, #1
1877 0052 D9E7 b .L157
1878 .cfi_endproc
1879 .LFE1196:
1881 .section .text.move_window,"ax",%progbits
1882 .align 1
1883 .syntax unified
1884 .thumb
1885 .thumb_func
1887 move_window:
1888 .LVL209:
1889 .LFB1197:
916:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
1890 .loc 1 916 1 is_stmt 1 view -0
1891 .cfi_startproc
1892 @ args = 0, pretend = 0, frame = 0
1893 @ frame_needed = 0, uses_anonymous_args = 0
916:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
1894 .loc 1 916 1 is_stmt 0 view .LVU572
1895 0000 70B5 push {r4, r5, r6, lr}
1896 .LCFI16:
1897 .cfi_def_cfa_offset 16
1898 .cfi_offset 4, -16
1899 .cfi_offset 5, -12
1900 .cfi_offset 6, -8
1901 .cfi_offset 14, -4
917:Middlewares/Third_Party/FatFs/src/ff.c ****
1902 .loc 1 917 2 is_stmt 1 view .LVU573
1903 .LVL210:
920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1904 .loc 1 920 2 view .LVU574
920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1905 .loc 1 920 18 is_stmt 0 view .LVU575
1906 0002 036B ldr r3, [r0, #48]
920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
1907 .loc 1 920 5 view .LVU576
1908 0004 8B42 cmp r3, r1
1909 0006 02D1 bne .L169
ARM GAS /tmp/ccH7dUYB.s page 143
917:Middlewares/Third_Party/FatFs/src/ff.c ****
1910 .loc 1 917 10 view .LVU577
1911 0008 0026 movs r6, #0
1912 .LVL211:
1913 .L164:
932:Middlewares/Third_Party/FatFs/src/ff.c **** }
1914 .loc 1 932 2 is_stmt 1 view .LVU578
933:Middlewares/Third_Party/FatFs/src/ff.c ****
1915 .loc 1 933 1 is_stmt 0 view .LVU579
1916 000a 3046 mov r0, r6
1917 000c 70BD pop {r4, r5, r6, pc}
1918 .LVL212:
1919 .L169:
933:Middlewares/Third_Party/FatFs/src/ff.c ****
1920 .loc 1 933 1 view .LVU580
1921 000e 0446 mov r4, r0
1922 0010 0D46 mov r5, r1
922:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1923 .loc 1 922 3 is_stmt 1 view .LVU581
922:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
1924 .loc 1 922 9 is_stmt 0 view .LVU582
1925 0012 FFF7FEFF bl sync_window
1926 .LVL213:
924:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) {
1927 .loc 1 924 3 is_stmt 1 view .LVU583
924:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) {
1928 .loc 1 924 6 is_stmt 0 view .LVU584
1929 0016 0646 mov r6, r0
1930 0018 0028 cmp r0, #0
1931 001a F6D1 bne .L164
925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */
1932 .loc 1 925 4 is_stmt 1 view .LVU585
925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */
1933 .loc 1 925 8 is_stmt 0 view .LVU586
1934 001c 0123 movs r3, #1
1935 001e 2A46 mov r2, r5
1936 0020 04F13401 add r1, r4, #52
1937 0024 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
1938 .LVL214:
925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */
1939 .loc 1 925 8 view .LVU587
1940 0026 FFF7FEFF bl disk_read
1941 .LVL215:
925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */
1942 .loc 1 925 7 discriminator 1 view .LVU588
1943 002a 10B1 cbz r0, .L165
927:Middlewares/Third_Party/FatFs/src/ff.c **** }
1944 .loc 1 927 9 view .LVU589
1945 002c 0126 movs r6, #1
1946 .LVL216:
926:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
1947 .loc 1 926 12 view .LVU590
1948 002e 4FF0FF35 mov r5, #-1
1949 .LVL217:
1950 .L165:
929:Middlewares/Third_Party/FatFs/src/ff.c **** }
1951 .loc 1 929 4 is_stmt 1 view .LVU591
ARM GAS /tmp/ccH7dUYB.s page 144
929:Middlewares/Third_Party/FatFs/src/ff.c **** }
1952 .loc 1 929 16 is_stmt 0 view .LVU592
1953 0032 2563 str r5, [r4, #48]
1954 0034 E9E7 b .L164
1955 .cfi_endproc
1956 .LFE1197:
1958 .section .text.check_fs,"ax",%progbits
1959 .align 1
1960 .syntax unified
1961 .thumb
1962 .thumb_func
1964 check_fs:
1965 .LVL218:
1966 .LFB1218:
2969:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */
1967 .loc 1 2969 1 is_stmt 1 view -0
1968 .cfi_startproc
1969 @ args = 0, pretend = 0, frame = 0
1970 @ frame_needed = 0, uses_anonymous_args = 0
2969:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */
1971 .loc 1 2969 1 is_stmt 0 view .LVU594
1972 0000 38B5 push {r3, r4, r5, lr}
1973 .LCFI17:
1974 .cfi_def_cfa_offset 16
1975 .cfi_offset 3, -16
1976 .cfi_offset 4, -12
1977 .cfi_offset 5, -8
1978 .cfi_offset 14, -4
1979 0002 0446 mov r4, r0
2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */
1980 .loc 1 2970 2 is_stmt 1 view .LVU595
2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */
1981 .loc 1 2970 12 is_stmt 0 view .LVU596
1982 0004 0023 movs r3, #0
1983 0006 C370 strb r3, [r0, #3]
2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */
1984 .loc 1 2970 17 is_stmt 1 view .LVU597
2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */
1985 .loc 1 2970 29 is_stmt 0 view .LVU598
1986 0008 4FF0FF33 mov r3, #-1
1987 000c 0363 str r3, [r0, #48]
2971:Middlewares/Third_Party/FatFs/src/ff.c ****
1988 .loc 1 2971 2 is_stmt 1 view .LVU599
2971:Middlewares/Third_Party/FatFs/src/ff.c ****
1989 .loc 1 2971 6 is_stmt 0 view .LVU600
1990 000e FFF7FEFF bl move_window
1991 .LVL219:
2971:Middlewares/Third_Party/FatFs/src/ff.c ****
1992 .loc 1 2971 5 discriminator 1 view .LVU601
1993 0012 30BB cbnz r0, .L173
1994 0014 0546 mov r5, r0
2973:Middlewares/Third_Party/FatFs/src/ff.c ****
1995 .loc 1 2973 2 is_stmt 1 view .LVU602
2973:Middlewares/Third_Party/FatFs/src/ff.c ****
1996 .loc 1 2973 6 is_stmt 0 view .LVU603
1997 0016 04F23220 addw r0, r4, #562
1998 001a FFF7FEFF bl ld_word
ARM GAS /tmp/ccH7dUYB.s page 145
1999 .LVL220:
2973:Middlewares/Third_Party/FatFs/src/ff.c ****
2000 .loc 1 2973 5 discriminator 1 view .LVU604
2001 001e 4AF65523 movw r3, #43605
2002 0022 9842 cmp r0, r3
2003 0024 1FD1 bne .L174
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2004 .loc 1 2975 2 is_stmt 1 view .LVU605
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2005 .loc 1 2975 13 is_stmt 0 view .LVU606
2006 0026 94F83430 ldrb r3, [r4, #52] @ zero_extendqisi2
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2007 .loc 1 2975 5 view .LVU607
2008 002a E92B cmp r3, #233
2009 002c 07D0 beq .L172
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2010 .loc 1 2975 66 discriminator 1 view .LVU608
2011 002e 636B ldr r3, [r4, #52]
2012 0030 03F0FF13 and r3, r3, #16711935
2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string *
2013 .loc 1 2975 34 discriminator 1 view .LVU609
2014 0034 0D4A ldr r2, .L177
2015 0036 9342 cmp r3, r2
2016 0038 01D0 beq .L172
2982:Middlewares/Third_Party/FatFs/src/ff.c **** }
2017 .loc 1 2982 9 view .LVU610
2018 003a 0225 movs r5, #2
2019 003c 14E0 b .L171
2020 .L172:
2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
2021 .loc 1 2976 3 is_stmt 1 view .LVU611
2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
2022 .loc 1 2976 8 is_stmt 0 view .LVU612
2023 003e 04F16A00 add r0, r4, #106
2024 0042 FFF7FEFF bl ld_dword
2025 .LVL221:
2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
2026 .loc 1 2976 42 discriminator 1 view .LVU613
2027 0046 20F07F40 bic r0, r0, #-16777216
2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
2028 .loc 1 2976 6 discriminator 1 view .LVU614
2029 004a 094B ldr r3, .L177+4
2030 004c 9842 cmp r0, r3
2031 004e 0BD0 beq .L171
2977:Middlewares/Third_Party/FatFs/src/ff.c **** }
2032 .loc 1 2977 3 is_stmt 1 view .LVU615
2977:Middlewares/Third_Party/FatFs/src/ff.c **** }
2033 .loc 1 2977 7 is_stmt 0 view .LVU616
2034 0050 04F18600 add r0, r4, #134
2035 0054 FFF7FEFF bl ld_dword
2036 .LVL222:
2977:Middlewares/Third_Party/FatFs/src/ff.c **** }
2037 .loc 1 2977 6 discriminator 1 view .LVU617
2038 0058 064B ldr r3, .L177+8
2039 005a 9842 cmp r0, r3
2040 005c 04D0 beq .L171
2982:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 146
2041 .loc 1 2982 9 view .LVU618
2042 005e 0225 movs r5, #2
2043 0060 02E0 b .L171
2044 .L173:
2971:Middlewares/Third_Party/FatFs/src/ff.c ****
2045 .loc 1 2971 45 discriminator 1 view .LVU619
2046 0062 0425 movs r5, #4
2047 0064 00E0 b .L171
2048 .L174:
2973:Middlewares/Third_Party/FatFs/src/ff.c ****
2049 .loc 1 2973 51 discriminator 1 view .LVU620
2050 0066 0325 movs r5, #3
2051 .L171:
2983:Middlewares/Third_Party/FatFs/src/ff.c ****
2052 .loc 1 2983 1 view .LVU621
2053 0068 2846 mov r0, r5
2054 006a 38BD pop {r3, r4, r5, pc}
2055 .LVL223:
2056 .L178:
2983:Middlewares/Third_Party/FatFs/src/ff.c ****
2057 .loc 1 2983 1 view .LVU622
2058 .align 2
2059 .L177:
2060 006c EB009000 .word 9437419
2061 0070 46415400 .word 5521734
2062 0074 46415433 .word 861159750
2063 .cfi_endproc
2064 .LFE1218:
2066 .section .text.find_volume,"ax",%progbits
2067 .align 1
2068 .syntax unified
2069 .thumb
2070 .thumb_func
2072 find_volume:
2073 .LVL224:
2074 .LFB1219:
2998:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, *pt;
2075 .loc 1 2998 1 is_stmt 1 view -0
2076 .cfi_startproc
2077 @ args = 0, pretend = 0, frame = 24
2078 @ frame_needed = 0, uses_anonymous_args = 0
2998:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, *pt;
2079 .loc 1 2998 1 is_stmt 0 view .LVU624
2080 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2081 .LCFI18:
2082 .cfi_def_cfa_offset 36
2083 .cfi_offset 4, -36
2084 .cfi_offset 5, -32
2085 .cfi_offset 6, -28
2086 .cfi_offset 7, -24
2087 .cfi_offset 8, -20
2088 .cfi_offset 9, -16
2089 .cfi_offset 10, -12
2090 .cfi_offset 11, -8
2091 .cfi_offset 14, -4
2092 0004 87B0 sub sp, sp, #28
2093 .LCFI19:
ARM GAS /tmp/ccH7dUYB.s page 147
2094 .cfi_def_cfa_offset 64
2095 0006 0D46 mov r5, r1
2096 0008 1646 mov r6, r2
2999:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
2097 .loc 1 2999 2 is_stmt 1 view .LVU625
3000:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat;
2098 .loc 1 3000 2 view .LVU626
3001:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD bsect, fasize, tsect, sysect, nclst, szbfat, br[4];
2099 .loc 1 3001 2 view .LVU627
3002:Middlewares/Third_Party/FatFs/src/ff.c **** WORD nrsv;
2100 .loc 1 3002 2 view .LVU628
3003:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
2101 .loc 1 3003 2 view .LVU629
3004:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
2102 .loc 1 3004 2 view .LVU630
3005:Middlewares/Third_Party/FatFs/src/ff.c ****
2103 .loc 1 3005 2 view .LVU631
3009:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(path);
2104 .loc 1 3009 2 view .LVU632
3009:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(path);
2105 .loc 1 3009 7 is_stmt 0 view .LVU633
2106 000a 0023 movs r3, #0
2107 000c 0B60 str r3, [r1]
3010:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
2108 .loc 1 3010 2 is_stmt 1 view .LVU634
3010:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
2109 .loc 1 3010 8 is_stmt 0 view .LVU635
2110 000e FFF7FEFF bl get_ldnumber
2111 .LVL225:
3011:Middlewares/Third_Party/FatFs/src/ff.c ****
2112 .loc 1 3011 2 is_stmt 1 view .LVU636
3011:Middlewares/Third_Party/FatFs/src/ff.c ****
2113 .loc 1 3011 5 is_stmt 0 view .LVU637
2114 0012 071E subs r7, r0, #0
2115 0014 C0F26781 blt .L196
3014:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */
2116 .loc 1 3014 2 is_stmt 1 view .LVU638
3014:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */
2117 .loc 1 3014 5 is_stmt 0 view .LVU639
2118 0018 BE4B ldr r3, .L230
2119 001a 53F82740 ldr r4, [r3, r7, lsl #2]
2120 .LVL226:
3015:Middlewares/Third_Party/FatFs/src/ff.c ****
2121 .loc 1 3015 2 is_stmt 1 view .LVU640
3015:Middlewares/Third_Party/FatFs/src/ff.c ****
2122 .loc 1 3015 5 is_stmt 0 view .LVU641
2123 001e 002C cmp r4, #0
2124 0020 00F06681 beq .L197
3017:Middlewares/Third_Party/FatFs/src/ff.c **** *rfs = fs; /* Return pointer to the file system object */
2125 .loc 1 3017 14 is_stmt 1 view .LVU642
3018:Middlewares/Third_Party/FatFs/src/ff.c ****
2126 .loc 1 3018 2 view .LVU643
3018:Middlewares/Third_Party/FatFs/src/ff.c ****
2127 .loc 1 3018 7 is_stmt 0 view .LVU644
2128 0024 2C60 str r4, [r5]
3020:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type) { /* If the volume has been mounted */
2129 .loc 1 3020 2 is_stmt 1 view .LVU645
ARM GAS /tmp/ccH7dUYB.s page 148
3020:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type) { /* If the volume has been mounted */
2130 .loc 1 3020 7 is_stmt 0 view .LVU646
2131 0026 06F0FE06 and r6, r6, #254
2132 .LVL227:
3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv);
2133 .loc 1 3021 2 is_stmt 1 view .LVU647
3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv);
2134 .loc 1 3021 8 is_stmt 0 view .LVU648
2135 002a 2378 ldrb r3, [r4] @ zero_extendqisi2
3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv);
2136 .loc 1 3021 5 view .LVU649
2137 002c 73B1 cbz r3, .L181
3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */
2138 .loc 1 3022 3 is_stmt 1 view .LVU650
3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */
2139 .loc 1 3022 10 is_stmt 0 view .LVU651
2140 002e 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
2141 .LVL228:
3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */
2142 .loc 1 3022 10 view .LVU652
2143 0030 FFF7FEFF bl disk_status
2144 .LVL229:
3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */
2145 .loc 1 3023 3 is_stmt 1 view .LVU653
3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */
2146 .loc 1 3023 6 is_stmt 0 view .LVU654
2147 0034 10F00105 ands r5, r0, #1
2148 .LVL230:
3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */
2149 .loc 1 3023 6 view .LVU655
2150 0038 08D1 bne .L181
3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2151 .loc 1 3024 4 is_stmt 1 view .LVU656
3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2152 .loc 1 3024 7 is_stmt 0 view .LVU657
2153 003a 002E cmp r6, #0
2154 003c 00F05481 beq .L180
3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2155 .loc 1 3024 30 discriminator 1 view .LVU658
2156 0040 10F0040F tst r0, #4
2157 0044 00F05081 beq .L180
3025:Middlewares/Third_Party/FatFs/src/ff.c **** }
2158 .loc 1 3025 12 view .LVU659
2159 0048 0A25 movs r5, #10
2160 004a 4DE1 b .L180
2161 .LVL231:
2162 .L181:
3034:Middlewares/Third_Party/FatFs/src/ff.c **** fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */
2163 .loc 1 3034 2 is_stmt 1 view .LVU660
3034:Middlewares/Third_Party/FatFs/src/ff.c **** fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */
2164 .loc 1 3034 14 is_stmt 0 view .LVU661
2165 004c 0023 movs r3, #0
2166 004e 2370 strb r3, [r4]
3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */
2167 .loc 1 3035 2 is_stmt 1 view .LVU662
3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */
2168 .loc 1 3035 12 is_stmt 0 view .LVU663
ARM GAS /tmp/ccH7dUYB.s page 149
2169 0050 F8B2 uxtb r0, r7
3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */
2170 .loc 1 3035 10 view .LVU664
2171 0052 6070 strb r0, [r4, #1]
3036:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) { /* Check if the initialization succeeded */
2172 .loc 1 3036 2 is_stmt 1 view .LVU665
3036:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) { /* Check if the initialization succeeded */
2173 .loc 1 3036 9 is_stmt 0 view .LVU666
2174 0054 FFF7FEFF bl disk_initialize
2175 .LVL232:
3037:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
2176 .loc 1 3037 2 is_stmt 1 view .LVU667
3037:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */
2177 .loc 1 3037 5 is_stmt 0 view .LVU668
2178 0058 10F0010F tst r0, #1
2179 005c 40F04A81 bne .L199
3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2180 .loc 1 3040 2 is_stmt 1 view .LVU669
3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2181 .loc 1 3040 5 is_stmt 0 view .LVU670
2182 0060 1EB1 cbz r6, .L182
3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED;
2183 .loc 1 3040 28 discriminator 1 view .LVU671
2184 0062 10F0040F tst r0, #4
2185 0066 40F04781 bne .L200
2186 .L182:
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
2187 .loc 1 3044 2 is_stmt 1 view .LVU672
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
2188 .loc 1 3044 6 is_stmt 0 view .LVU673
2189 006a 04F10C02 add r2, r4, #12
2190 006e 0221 movs r1, #2
2191 0070 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
2192 .LVL233:
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
2193 .loc 1 3044 6 view .LVU674
2194 0072 FFF7FEFF bl disk_ioctl
2195 .LVL234:
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
2196 .loc 1 3044 5 discriminator 1 view .LVU675
2197 0076 0546 mov r5, r0
2198 0078 0028 cmp r0, #0
2199 007a 40F03F81 bne .L201
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2200 .loc 1 3045 2 is_stmt 1 view .LVU676
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2201 .loc 1 3045 6 is_stmt 0 view .LVU677
2202 007e A289 ldrh r2, [r4, #12]
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2203 .loc 1 3045 23 view .LVU678
2204 0080 A2F50073 sub r3, r2, #512
2205 0084 9BB2 uxth r3, r3
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2206 .loc 1 3045 5 view .LVU679
2207 0086 B3F5606F cmp r3, #3584
2208 008a 00F23981 bhi .L202
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
ARM GAS /tmp/ccH7dUYB.s page 150
2209 .loc 1 3045 64 discriminator 2 view .LVU680
2210 008e 531E subs r3, r2, #1
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2211 .loc 1 3045 43 discriminator 2 view .LVU681
2212 0090 1A42 tst r2, r3
2213 0092 01D0 beq .L224
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2214 .loc 1 3045 78 discriminator 3 view .LVU682
2215 0094 0125 movs r5, #1
2216 0096 27E1 b .L180
2217 .L224:
3049:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */
2218 .loc 1 3049 2 is_stmt 1 view .LVU683
2219 .LVL235:
3050:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */
2220 .loc 1 3050 2 view .LVU684
3050:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */
2221 .loc 1 3050 8 is_stmt 0 view .LVU685
2222 0098 0021 movs r1, #0
2223 009a 2046 mov r0, r4
2224 009c FFF7FEFF bl check_fs
2225 .LVL236:
3051:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++) { /* Get partition offset */
2226 .loc 1 3051 2 is_stmt 1 view .LVU686
3051:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++) { /* Get partition offset */
2227 .loc 1 3051 5 is_stmt 0 view .LVU687
2228 00a0 0228 cmp r0, #2
2229 00a2 00F08880 beq .L204
3049:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */
2230 .loc 1 3049 8 view .LVU688
2231 00a6 0026 movs r6, #0
2232 .LVL237:
2233 .L184:
3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */
2234 .loc 1 3063 2 is_stmt 1 view .LVU689
3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */
2235 .loc 1 3063 5 is_stmt 0 view .LVU690
2236 00a8 0428 cmp r0, #4
2237 00aa 00F02B81 beq .L207
3064:Middlewares/Third_Party/FatFs/src/ff.c ****
2238 .loc 1 3064 2 is_stmt 1 view .LVU691
3064:Middlewares/Third_Party/FatFs/src/ff.c ****
2239 .loc 1 3064 5 is_stmt 0 view .LVU692
2240 00ae 0128 cmp r0, #1
2241 00b0 00F22A81 bhi .L208
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2242 .loc 1 3116 3 is_stmt 1 view .LVU693
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2243 .loc 1 3116 7 is_stmt 0 view .LVU694
2244 00b4 04F13F00 add r0, r4, #63
2245 .LVL238:
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2246 .loc 1 3116 7 view .LVU695
2247 00b8 FFF7FEFF bl ld_word
2248 .LVL239:
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2249 .loc 1 3116 44 discriminator 1 view .LVU696
ARM GAS /tmp/ccH7dUYB.s page 151
2250 00bc B4F80C80 ldrh r8, [r4, #12]
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2251 .loc 1 3116 6 discriminator 1 view .LVU697
2252 00c0 4045 cmp r0, r8
2253 00c2 40F02381 bne .L209
3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32);
2254 .loc 1 3118 3 is_stmt 1 view .LVU698
3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32);
2255 .loc 1 3118 12 is_stmt 0 view .LVU699
2256 00c6 04F14A00 add r0, r4, #74
2257 00ca FFF7FEFF bl ld_word
2258 .LVL240:
3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32);
2259 .loc 1 3118 10 discriminator 1 view .LVU700
2260 00ce 0746 mov r7, r0
2261 .LVL241:
3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
2262 .loc 1 3119 3 is_stmt 1 view .LVU701
3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
2263 .loc 1 3119 6 is_stmt 0 view .LVU702
2264 00d0 20B9 cbnz r0, .L189
3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
2265 .loc 1 3119 20 is_stmt 1 discriminator 1 view .LVU703
3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
2266 .loc 1 3119 29 is_stmt 0 discriminator 1 view .LVU704
2267 00d2 04F15800 add r0, r4, #88
2268 .LVL242:
3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize;
2269 .loc 1 3119 29 discriminator 1 view .LVU705
2270 00d6 FFF7FEFF bl ld_dword
2271 .LVL243:
2272 00da 0746 mov r7, r0
2273 .LVL244:
2274 .L189:
3120:Middlewares/Third_Party/FatFs/src/ff.c ****
2275 .loc 1 3120 3 is_stmt 1 view .LVU706
3120:Middlewares/Third_Party/FatFs/src/ff.c ****
2276 .loc 1 3120 13 is_stmt 0 view .LVU707
2277 00dc E761 str r7, [r4, #28]
3122:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */
2278 .loc 1 3122 3 is_stmt 1 view .LVU708
3122:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */
2279 .loc 1 3122 23 is_stmt 0 view .LVU709
2280 00de 94F84420 ldrb r2, [r4, #68] @ zero_extendqisi2
3122:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */
2281 .loc 1 3122 14 view .LVU710
2282 00e2 A270 strb r2, [r4, #2]
3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */
2283 .loc 1 3123 3 is_stmt 1 view .LVU711
3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */
2284 .loc 1 3123 23 is_stmt 0 view .LVU712
2285 00e4 531E subs r3, r2, #1
2286 00e6 DBB2 uxtb r3, r3
3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */
2287 .loc 1 3123 6 view .LVU713
2288 00e8 012B cmp r3, #1
2289 00ea 00F21181 bhi .L210
ARM GAS /tmp/ccH7dUYB.s page 152
3124:Middlewares/Third_Party/FatFs/src/ff.c ****
2290 .loc 1 3124 3 is_stmt 1 view .LVU714
3124:Middlewares/Third_Party/FatFs/src/ff.c ****
2291 .loc 1 3124 10 is_stmt 0 view .LVU715
2292 00ee 07FB02F3 mul r3, r7, r2
2293 00f2 0093 str r3, [sp]
2294 .LVL245:
3126:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power o
2295 .loc 1 3126 3 is_stmt 1 view .LVU716
3126:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power o
2296 .loc 1 3126 22 is_stmt 0 view .LVU717
2297 00f4 94F84190 ldrb r9, [r4, #65] @ zero_extendqisi2
3126:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power o
2298 .loc 1 3126 13 view .LVU718
2299 00f8 A4F80A90 strh r9, [r4, #10] @ movhi
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2300 .loc 1 3127 3 is_stmt 1 view .LVU719
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2301 .loc 1 3127 6 is_stmt 0 view .LVU720
2302 00fc B9F1000F cmp r9, #0
2303 0100 00F01081 beq .L211
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2304 .loc 1 3127 49 discriminator 2 view .LVU721
2305 0104 09F1FF33 add r3, r9, #-1
2306 .LVL246:
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2307 .loc 1 3127 22 discriminator 2 view .LVU722
2308 0108 19EA030F tst r9, r3
2309 010c 40F00C81 bne .L212
3129:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */
2310 .loc 1 3129 3 is_stmt 1 view .LVU723
3129:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */
2311 .loc 1 3129 19 is_stmt 0 view .LVU724
2312 0110 04F14500 add r0, r4, #69
2313 0114 FFF7FEFF bl ld_word
2314 .LVL247:
2315 0118 8246 mov r10, r0
3129:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */
2316 .loc 1 3129 17 discriminator 1 view .LVU725
2317 011a 2081 strh r0, [r4, #8] @ movhi
3130:Middlewares/Third_Party/FatFs/src/ff.c ****
2318 .loc 1 3130 3 is_stmt 1 view .LVU726
3130:Middlewares/Third_Party/FatFs/src/ff.c ****
2319 .loc 1 3130 7 is_stmt 0 view .LVU727
2320 011c 4FEA581B lsr fp, r8, #5
2321 0120 B0FBFBF3 udiv r3, r0, fp
2322 0124 0BFB1303 mls r3, fp, r3, r0
2323 0128 9BB2 uxth r3, r3
3130:Middlewares/Third_Party/FatFs/src/ff.c ****
2324 .loc 1 3130 6 view .LVU728
2325 012a 002B cmp r3, #0
2326 012c 40F0FE80 bne .L213
3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32);
2327 .loc 1 3132 3 is_stmt 1 view .LVU729
3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32);
2328 .loc 1 3132 11 is_stmt 0 view .LVU730
2329 0130 04F14700 add r0, r4, #71
ARM GAS /tmp/ccH7dUYB.s page 153
2330 0134 FFF7FEFF bl ld_word
2331 .LVL248:
3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32);
2332 .loc 1 3132 9 discriminator 1 view .LVU731
2333 0138 0190 str r0, [sp, #4]
2334 .LVL249:
3133:Middlewares/Third_Party/FatFs/src/ff.c ****
2335 .loc 1 3133 3 is_stmt 1 view .LVU732
3133:Middlewares/Third_Party/FatFs/src/ff.c ****
2336 .loc 1 3133 6 is_stmt 0 view .LVU733
2337 013a 20B9 cbnz r0, .L190
3133:Middlewares/Third_Party/FatFs/src/ff.c ****
2338 .loc 1 3133 19 is_stmt 1 discriminator 1 view .LVU734
3133:Middlewares/Third_Party/FatFs/src/ff.c ****
2339 .loc 1 3133 27 is_stmt 0 discriminator 1 view .LVU735
2340 013c 04F15400 add r0, r4, #84
2341 .LVL250:
3133:Middlewares/Third_Party/FatFs/src/ff.c ****
2342 .loc 1 3133 27 discriminator 1 view .LVU736
2343 0140 FFF7FEFF bl ld_dword
2344 .LVL251:
2345 0144 0190 str r0, [sp, #4]
2346 .LVL252:
2347 .L190:
3135:Middlewares/Third_Party/FatFs/src/ff.c **** if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */
2348 .loc 1 3135 3 is_stmt 1 view .LVU737
3135:Middlewares/Third_Party/FatFs/src/ff.c **** if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */
2349 .loc 1 3135 10 is_stmt 0 view .LVU738
2350 0146 04F14200 add r0, r4, #66
2351 014a FFF7FEFF bl ld_word
2352 .LVL253:
3136:Middlewares/Third_Party/FatFs/src/ff.c ****
2353 .loc 1 3136 3 is_stmt 1 view .LVU739
3136:Middlewares/Third_Party/FatFs/src/ff.c ****
2354 .loc 1 3136 6 is_stmt 0 view .LVU740
2355 014e 0146 mov r1, r0
2356 0150 0028 cmp r0, #0
2357 0152 00F0ED80 beq .L214
3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2358 .loc 1 3139 3 is_stmt 1 view .LVU741
3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2359 .loc 1 3139 17 is_stmt 0 view .LVU742
2360 0156 009B ldr r3, [sp]
2361 0158 C318 adds r3, r0, r3
3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2362 .loc 1 3139 42 view .LVU743
2363 015a BAFBFBFB udiv fp, r10, fp
3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2364 .loc 1 3139 10 view .LVU744
2365 015e 5B44 add r3, r3, fp
2366 .LVL254:
3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */
2367 .loc 1 3140 3 is_stmt 1 view .LVU745
3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */
2368 .loc 1 3140 6 is_stmt 0 view .LVU746
2369 0160 019A ldr r2, [sp, #4]
2370 0162 9A42 cmp r2, r3
ARM GAS /tmp/ccH7dUYB.s page 154
2371 0164 C0F0E680 bcc .L215
3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2372 .loc 1 3141 3 is_stmt 1 view .LVU747
3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2373 .loc 1 3141 18 is_stmt 0 view .LVU748
2374 0168 D21A subs r2, r2, r3
3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */
2375 .loc 1 3141 9 view .LVU749
2376 016a B2FBF9F0 udiv r0, r2, r9
2377 .LVL255:
3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32;
2378 .loc 1 3142 3 is_stmt 1 view .LVU750
3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32;
2379 .loc 1 3142 6 is_stmt 0 view .LVU751
2380 016e 4A45 cmp r2, r9
2381 0170 C0F0E280 bcc .L216
3143:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT16) fmt = FS_FAT16;
2382 .loc 1 3143 3 is_stmt 1 view .LVU752
2383 .LVL256:
3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12;
2384 .loc 1 3144 3 view .LVU753
3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12;
2385 .loc 1 3144 6 is_stmt 0 view .LVU754
2386 0174 4FF6F572 movw r2, #65525
2387 0178 9042 cmp r0, r2
2388 017a 34D8 bhi .L217
3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12;
2389 .loc 1 3144 27 is_stmt 1 discriminator 1 view .LVU755
2390 .LVL257:
3145:Middlewares/Third_Party/FatFs/src/ff.c ****
2391 .loc 1 3145 3 view .LVU756
3145:Middlewares/Third_Party/FatFs/src/ff.c ****
2392 .loc 1 3145 6 is_stmt 0 view .LVU757
2393 017c 40F6F572 movw r2, #4085
2394 0180 9042 cmp r0, r2
2395 0182 6AD9 bls .L218
2396 0184 4FF0020B mov fp, #2
2397 0188 2FE0 b .L191
2398 .LVL258:
2399 .L205:
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2400 .loc 1 3054 54 discriminator 2 view .LVU758
2401 018a 0020 movs r0, #0
2402 .LVL259:
2403 .L185:
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2404 .loc 1 3054 10 discriminator 4 view .LVU759
2405 018c 06AB add r3, sp, #24
2406 018e 03EB8603 add r3, r3, r6, lsl #2
2407 0192 43F8100C str r0, [r3, #-16]
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2408 .loc 1 3052 23 is_stmt 1 discriminator 2 view .LVU760
2409 0196 0136 adds r6, r6, #1
2410 .LVL260:
2411 .L183:
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2412 .loc 1 3052 17 discriminator 1 view .LVU761
ARM GAS /tmp/ccH7dUYB.s page 155
2413 0198 032E cmp r6, #3
2414 019a 0ED8 bhi .L225
3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
2415 .loc 1 3053 4 view .LVU762
3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
2416 .loc 1 3053 9 is_stmt 0 view .LVU763
2417 019c 04F13400 add r0, r4, #52
3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
2418 .loc 1 3053 34 view .LVU764
2419 01a0 3301 lsls r3, r6, #4
3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
2420 .loc 1 3053 30 view .LVU765
2421 01a2 03F5DF73 add r3, r3, #446
3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
2422 .loc 1 3053 7 view .LVU766
2423 01a6 1844 add r0, r0, r3
2424 .LVL261:
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2425 .loc 1 3054 4 is_stmt 1 view .LVU767
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2426 .loc 1 3054 14 is_stmt 0 view .LVU768
2427 01a8 0379 ldrb r3, [r0, #4] @ zero_extendqisi2
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2428 .loc 1 3054 54 view .LVU769
2429 01aa 002B cmp r3, #0
2430 01ac EDD0 beq .L205
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2431 .loc 1 3054 29 discriminator 1 view .LVU770
2432 01ae 0830 adds r0, r0, #8
2433 .LVL262:
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2434 .loc 1 3054 29 discriminator 1 view .LVU771
2435 01b0 FFF7FEFF bl ld_dword
2436 .LVL263:
3054:Middlewares/Third_Party/FatFs/src/ff.c **** }
2437 .loc 1 3054 29 discriminator 1 view .LVU772
2438 01b4 EAE7 b .L185
2439 .LVL264:
2440 .L204:
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2441 .loc 1 3052 10 view .LVU773
2442 01b6 0026 movs r6, #0
2443 .LVL265:
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2444 .loc 1 3052 10 view .LVU774
2445 01b8 EEE7 b .L183
2446 .LVL266:
2447 .L225:
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2448 .loc 1 3052 10 view .LVU775
2449 01ba 0027 movs r7, #0
2450 .LVL267:
3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE);
2451 .loc 1 3052 10 view .LVU776
2452 01bc 0AE0 b .L188
2453 .LVL268:
2454 .L226:
ARM GAS /tmp/ccH7dUYB.s page 156
3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
2455 .loc 1 3060 18 discriminator 1 view .LVU777
2456 01be 3146 mov r1, r6
2457 01c0 2046 mov r0, r4
2458 01c2 FFF7FEFF bl check_fs
2459 .LVL269:
3061:Middlewares/Third_Party/FatFs/src/ff.c **** }
2460 .loc 1 3061 40 is_stmt 1 view .LVU778
2461 01c6 0128 cmp r0, #1
2462 01c8 7FF66EAF bls .L184
2463 .LVL270:
2464 .L187:
3061:Middlewares/Third_Party/FatFs/src/ff.c **** }
2465 .loc 1 3061 40 is_stmt 0 discriminator 1 view .LVU779
2466 01cc 0137 adds r7, r7, #1
2467 .LVL271:
3061:Middlewares/Third_Party/FatFs/src/ff.c **** }
2468 .loc 1 3061 40 discriminator 1 view .LVU780
2469 01ce 032F cmp r7, #3
2470 01d0 3FF66AAF bhi .L184
2471 .LVL272:
2472 .L188:
3058:Middlewares/Third_Party/FatFs/src/ff.c **** bsect = br[i];
2473 .loc 1 3058 3 is_stmt 1 view .LVU781
3059:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */
2474 .loc 1 3059 4 view .LVU782
3059:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */
2475 .loc 1 3059 10 is_stmt 0 view .LVU783
2476 01d4 06AB add r3, sp, #24
2477 01d6 03EB8703 add r3, r3, r7, lsl #2
2478 01da 53F8106C ldr r6, [r3, #-16]
2479 .LVL273:
3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
2480 .loc 1 3060 4 is_stmt 1 view .LVU784
3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
2481 .loc 1 3060 8 is_stmt 0 view .LVU785
2482 01de 002E cmp r6, #0
2483 01e0 EDD1 bne .L226
3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
2484 .loc 1 3060 8 discriminator 2 view .LVU786
2485 01e2 0320 movs r0, #3
2486 01e4 F2E7 b .L187
2487 .LVL274:
2488 .L217:
3143:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT16) fmt = FS_FAT16;
2489 .loc 1 3143 7 view .LVU787
2490 01e6 4FF0030B mov fp, #3
2491 .LVL275:
2492 .L191:
3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */
2493 .loc 1 3148 3 is_stmt 1 view .LVU788
3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */
2494 .loc 1 3148 24 is_stmt 0 view .LVU789
2495 01ea 00F10209 add r9, r0, #2
3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */
2496 .loc 1 3148 16 view .LVU790
2497 01ee C4F81890 str r9, [r4, #24]
ARM GAS /tmp/ccH7dUYB.s page 157
3149:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + nrsv; /* FAT start sector */
2498 .loc 1 3149 3 is_stmt 1 view .LVU791
3149:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + nrsv; /* FAT start sector */
2499 .loc 1 3149 15 is_stmt 0 view .LVU792
2500 01f2 2662 str r6, [r4, #32]
3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */
2501 .loc 1 3150 3 is_stmt 1 view .LVU793
3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */
2502 .loc 1 3150 23 is_stmt 0 view .LVU794
2503 01f4 8A19 adds r2, r1, r6
3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */
2504 .loc 1 3150 15 view .LVU795
2505 01f6 6262 str r2, [r4, #36]
3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
2506 .loc 1 3151 3 is_stmt 1 view .LVU796
3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
2507 .loc 1 3151 24 is_stmt 0 view .LVU797
2508 01f8 3344 add r3, r3, r6
2509 .LVL276:
3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
2510 .loc 1 3151 16 view .LVU798
2511 01fa E362 str r3, [r4, #44]
3152:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0
2512 .loc 1 3152 3 is_stmt 1 view .LVU799
3152:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0
2513 .loc 1 3152 6 is_stmt 0 view .LVU800
2514 01fc BBF1030F cmp fp, #3
2515 0200 2ED0 beq .L227
3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */
2516 .loc 1 3158 4 is_stmt 1 view .LVU801
3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */
2517 .loc 1 3158 7 is_stmt 0 view .LVU802
2518 0202 BAF1000F cmp r10, #0
2519 0206 00F09D80 beq .L221
3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */
2520 .loc 1 3159 4 is_stmt 1 view .LVU803
3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */
2521 .loc 1 3159 30 is_stmt 0 view .LVU804
2522 020a 009B ldr r3, [sp]
2523 020c 1A44 add r2, r2, r3
3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */
2524 .loc 1 3159 16 view .LVU805
2525 020e A262 str r2, [r4, #40]
3160:Middlewares/Third_Party/FatFs/src/ff.c **** fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1);
2526 .loc 1 3160 4 is_stmt 1 view .LVU806
3161:Middlewares/Third_Party/FatFs/src/ff.c **** }
2527 .loc 1 3161 22 is_stmt 0 view .LVU807
2528 0210 BBF1020F cmp fp, #2
2529 0214 35D0 beq .L228
3161:Middlewares/Third_Party/FatFs/src/ff.c **** }
2530 .loc 1 3161 37 discriminator 2 view .LVU808
2531 0216 09EB4902 add r2, r9, r9, lsl #1
3161:Middlewares/Third_Party/FatFs/src/ff.c **** }
2532 .loc 1 3161 61 discriminator 2 view .LVU809
2533 021a 09F00103 and r3, r9, #1
3161:Middlewares/Third_Party/FatFs/src/ff.c **** }
2534 .loc 1 3161 22 discriminator 2 view .LVU810
ARM GAS /tmp/ccH7dUYB.s page 158
2535 021e 03EB5203 add r3, r3, r2, lsr #1
2536 .LVL277:
2537 .L193:
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2538 .loc 1 3163 3 is_stmt 1 view .LVU811
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2539 .loc 1 3163 27 is_stmt 0 view .LVU812
2540 0222 4344 add r3, r3, r8
2541 .LVL278:
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2542 .loc 1 3163 27 view .LVU813
2543 0224 013B subs r3, r3, #1
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2544 .loc 1 3163 43 view .LVU814
2545 0226 B3FBF8F3 udiv r3, r3, r8
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2546 .loc 1 3163 6 view .LVU815
2547 022a BB42 cmp r3, r7
2548 022c 00F28C80 bhi .L222
3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80;
2549 .loc 1 3167 3 is_stmt 1 view .LVU816
3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80;
2550 .loc 1 3167 33 is_stmt 0 view .LVU817
2551 0230 4FF0FF33 mov r3, #-1
2552 0234 6361 str r3, [r4, #20]
3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80;
2553 .loc 1 3167 17 view .LVU818
2554 0236 2361 str r3, [r4, #16]
3168:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 3) != 3
2555 .loc 1 3168 3 is_stmt 1 view .LVU819
3168:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 3) != 3
2556 .loc 1 3168 16 is_stmt 0 view .LVU820
2557 0238 8023 movs r3, #128
2558 023a 2371 strb r3, [r4, #4]
3170:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_word(fs->win + BPB_FSInfo32) == 1
2559 .loc 1 3170 3 is_stmt 1 view .LVU821
3170:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_word(fs->win + BPB_FSInfo32) == 1
2560 .loc 1 3170 6 is_stmt 0 view .LVU822
2561 023c BBF1030F cmp fp, #3
2562 0240 22D0 beq .L229
2563 .L195:
3191:Middlewares/Third_Party/FatFs/src/ff.c **** fs->id = ++Fsid; /* File system mount ID */
2564 .loc 1 3191 2 is_stmt 1 view .LVU823
3191:Middlewares/Third_Party/FatFs/src/ff.c **** fs->id = ++Fsid; /* File system mount ID */
2565 .loc 1 3191 14 is_stmt 0 view .LVU824
2566 0242 84F800B0 strb fp, [r4]
3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1
2567 .loc 1 3192 2 is_stmt 1 view .LVU825
3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1
2568 .loc 1 3192 11 is_stmt 0 view .LVU826
2569 0246 344A ldr r2, .L230+4
2570 0248 1388 ldrh r3, [r2]
2571 024a 0133 adds r3, r3, #1
2572 024c 9BB2 uxth r3, r3
3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1
2573 .loc 1 3192 9 view .LVU827
2574 024e 1380 strh r3, [r2] @ movhi
ARM GAS /tmp/ccH7dUYB.s page 159
2575 0250 E380 strh r3, [r4, #6] @ movhi
3203:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2576 .loc 1 3203 2 is_stmt 1 view .LVU828
2577 0252 2046 mov r0, r4
2578 0254 FFF7FEFF bl clear_lock
2579 .LVL279:
3205:Middlewares/Third_Party/FatFs/src/ff.c **** }
2580 .loc 1 3205 2 view .LVU829
3205:Middlewares/Third_Party/FatFs/src/ff.c **** }
2581 .loc 1 3205 9 is_stmt 0 view .LVU830
2582 0258 46E0 b .L180
2583 .LVL280:
2584 .L218:
3145:Middlewares/Third_Party/FatFs/src/ff.c ****
2585 .loc 1 3145 31 discriminator 1 view .LVU831
2586 025a 4FF0010B mov fp, #1
2587 025e C4E7 b .L191
2588 .LVL281:
2589 .L227:
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
2590 .loc 1 3153 4 is_stmt 1 view .LVU832
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
2591 .loc 1 3153 8 is_stmt 0 view .LVU833
2592 0260 04F15E00 add r0, r4, #94
2593 .LVL282:
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
2594 .loc 1 3153 8 view .LVU834
2595 0264 FFF7FEFF bl ld_word
2596 .LVL283:
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
2597 .loc 1 3153 7 discriminator 1 view .LVU835
2598 0268 0028 cmp r0, #0
2599 026a 67D1 bne .L219
3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */
2600 .loc 1 3154 4 is_stmt 1 view .LVU836
3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */
2601 .loc 1 3154 7 is_stmt 0 view .LVU837
2602 026c BAF1000F cmp r10, #0
2603 0270 66D1 bne .L220
3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */
2604 .loc 1 3155 4 is_stmt 1 view .LVU838
3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */
2605 .loc 1 3155 18 is_stmt 0 view .LVU839
2606 0272 04F16000 add r0, r4, #96
2607 0276 FFF7FEFF bl ld_dword
2608 .LVL284:
3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */
2609 .loc 1 3155 16 discriminator 1 view .LVU840
2610 027a A062 str r0, [r4, #40]
3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2611 .loc 1 3156 4 is_stmt 1 view .LVU841
3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2612 .loc 1 3156 11 is_stmt 0 view .LVU842
2613 027c 4FEA8903 lsl r3, r9, #2
2614 .LVL285:
3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
2615 .loc 1 3156 11 view .LVU843
ARM GAS /tmp/ccH7dUYB.s page 160
2616 0280 CFE7 b .L193
2617 .LVL286:
2618 .L228:
3161:Middlewares/Third_Party/FatFs/src/ff.c **** }
2619 .loc 1 3161 22 discriminator 1 view .LVU844
2620 0282 4FEA4903 lsl r3, r9, #1
2621 0286 CCE7 b .L193
2622 .LVL287:
2623 .L229:
3171:Middlewares/Third_Party/FatFs/src/ff.c **** && move_window(fs, bsect + 1) == FR_OK)
2624 .loc 1 3171 7 view .LVU845
2625 0288 04F16400 add r0, r4, #100
2626 028c FFF7FEFF bl ld_word
2627 .LVL288:
3171:Middlewares/Third_Party/FatFs/src/ff.c **** && move_window(fs, bsect + 1) == FR_OK)
2628 .loc 1 3171 4 discriminator 1 view .LVU846
2629 0290 0128 cmp r0, #1
2630 0292 D6D1 bne .L195
3172:Middlewares/Third_Party/FatFs/src/ff.c **** {
2631 .loc 1 3172 7 view .LVU847
2632 0294 711C adds r1, r6, #1
2633 0296 2046 mov r0, r4
2634 0298 FFF7FEFF bl move_window
2635 .LVL289:
3172:Middlewares/Third_Party/FatFs/src/ff.c **** {
2636 .loc 1 3172 4 discriminator 1 view .LVU848
2637 029c 0028 cmp r0, #0
2638 029e D0D1 bne .L195
3174:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */
2639 .loc 1 3174 4 is_stmt 1 view .LVU849
3174:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */
2640 .loc 1 3174 17 is_stmt 0 view .LVU850
2641 02a0 0023 movs r3, #0
2642 02a2 2371 strb r3, [r4, #4]
3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252
2643 .loc 1 3175 4 is_stmt 1 view .LVU851
3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252
2644 .loc 1 3175 8 is_stmt 0 view .LVU852
2645 02a4 04F23220 addw r0, r4, #562
2646 02a8 FFF7FEFF bl ld_word
2647 .LVL290:
3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252
2648 .loc 1 3175 7 discriminator 1 view .LVU853
2649 02ac 4AF65523 movw r3, #43605
2650 02b0 9842 cmp r0, r3
2651 02b2 C6D1 bne .L195
3176:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_StrucSig) == 0x61417272)
2652 .loc 1 3176 8 view .LVU854
2653 02b4 04F13400 add r0, r4, #52
2654 02b8 FFF7FEFF bl ld_dword
2655 .LVL291:
3176:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_StrucSig) == 0x61417272)
2656 .loc 1 3176 5 discriminator 1 view .LVU855
2657 02bc 174B ldr r3, .L230+8
2658 02be 9842 cmp r0, r3
2659 02c0 BFD1 bne .L195
3177:Middlewares/Third_Party/FatFs/src/ff.c **** {
ARM GAS /tmp/ccH7dUYB.s page 161
2660 .loc 1 3177 8 view .LVU856
2661 02c2 04F50670 add r0, r4, #536
2662 02c6 FFF7FEFF bl ld_dword
2663 .LVL292:
3177:Middlewares/Third_Party/FatFs/src/ff.c **** {
2664 .loc 1 3177 5 discriminator 1 view .LVU857
2665 02ca 154B ldr r3, .L230+12
2666 02cc 9842 cmp r0, r3
2667 02ce B8D1 bne .L195
3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2668 .loc 1 3180 5 is_stmt 1 view .LVU858
3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2669 .loc 1 3180 21 is_stmt 0 view .LVU859
2670 02d0 04F50770 add r0, r4, #540
2671 02d4 FFF7FEFF bl ld_dword
2672 .LVL293:
3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2673 .loc 1 3180 19 discriminator 1 view .LVU860
2674 02d8 6061 str r0, [r4, #20]
3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2675 .loc 1 3183 5 is_stmt 1 view .LVU861
3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2676 .loc 1 3183 21 is_stmt 0 view .LVU862
2677 02da 04F50870 add r0, r4, #544
2678 02de FFF7FEFF bl ld_dword
2679 .LVL294:
3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2680 .loc 1 3183 19 discriminator 1 view .LVU863
2681 02e2 2061 str r0, [r4, #16]
2682 02e4 ADE7 b .L195
2683 .LVL295:
2684 .L196:
3011:Middlewares/Third_Party/FatFs/src/ff.c ****
2685 .loc 1 3011 22 discriminator 1 view .LVU864
2686 02e6 0B25 movs r5, #11
2687 .LVL296:
2688 .L180:
3206:Middlewares/Third_Party/FatFs/src/ff.c ****
2689 .loc 1 3206 1 view .LVU865
2690 02e8 2846 mov r0, r5
2691 02ea 07B0 add sp, sp, #28
2692 .LCFI20:
2693 .cfi_remember_state
2694 .cfi_def_cfa_offset 36
2695 @ sp needed
2696 02ec BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2697 .LVL297:
2698 .L197:
2699 .LCFI21:
2700 .cfi_restore_state
3015:Middlewares/Third_Party/FatFs/src/ff.c ****
2701 .loc 1 3015 18 discriminator 1 view .LVU866
2702 02f0 0C25 movs r5, #12
2703 .LVL298:
3015:Middlewares/Third_Party/FatFs/src/ff.c ****
2704 .loc 1 3015 18 discriminator 1 view .LVU867
2705 02f2 F9E7 b .L180
ARM GAS /tmp/ccH7dUYB.s page 162
2706 .LVL299:
2707 .L199:
3038:Middlewares/Third_Party/FatFs/src/ff.c **** }
2708 .loc 1 3038 10 view .LVU868
2709 02f4 0325 movs r5, #3
2710 02f6 F7E7 b .L180
2711 .L200:
3041:Middlewares/Third_Party/FatFs/src/ff.c **** }
2712 .loc 1 3041 10 view .LVU869
2713 02f8 0A25 movs r5, #10
2714 02fa F5E7 b .L180
2715 .LVL300:
2716 .L201:
3044:Middlewares/Third_Party/FatFs/src/ff.c **** if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR;
2717 .loc 1 3044 70 discriminator 1 view .LVU870
2718 02fc 0125 movs r5, #1
2719 02fe F3E7 b .L180
2720 .L202:
3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
2721 .loc 1 3045 78 discriminator 3 view .LVU871
2722 0300 0125 movs r5, #1
2723 0302 F1E7 b .L180
2724 .LVL301:
2725 .L207:
3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */
2726 .loc 1 3063 23 discriminator 1 view .LVU872
2727 0304 0125 movs r5, #1
2728 0306 EFE7 b .L180
2729 .L208:
3064:Middlewares/Third_Party/FatFs/src/ff.c ****
2730 .loc 1 3064 23 discriminator 1 view .LVU873
2731 0308 0D25 movs r5, #13
2732 030a EDE7 b .L180
2733 .LVL302:
2734 .L209:
3116:Middlewares/Third_Party/FatFs/src/ff.c ****
2735 .loc 1 3116 59 discriminator 1 view .LVU874
2736 030c 0D25 movs r5, #13
2737 030e EBE7 b .L180
2738 .LVL303:
2739 .L210:
3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */
2740 .loc 1 3123 50 discriminator 1 view .LVU875
2741 0310 0D25 movs r5, #13
2742 0312 E9E7 b .L180
2743 .L231:
2744 .align 2
2745 .L230:
2746 0314 00000000 .word FatFs
2747 0318 00000000 .word Fsid
2748 031c 52526141 .word 1096897106
2749 0320 72724161 .word 1631679090
2750 .LVL304:
2751 .L211:
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2752 .loc 1 3127 63 discriminator 3 view .LVU876
2753 0324 0D25 movs r5, #13
ARM GAS /tmp/ccH7dUYB.s page 163
2754 0326 DFE7 b .L180
2755 .LVL305:
2756 .L212:
3127:Middlewares/Third_Party/FatFs/src/ff.c ****
2757 .loc 1 3127 63 discriminator 3 view .LVU877
2758 0328 0D25 movs r5, #13
2759 032a DDE7 b .L180
2760 .L213:
3130:Middlewares/Third_Party/FatFs/src/ff.c ****
2761 .loc 1 3130 49 discriminator 1 view .LVU878
2762 032c 0D25 movs r5, #13
2763 032e DBE7 b .L180
2764 .LVL306:
2765 .L214:
3136:Middlewares/Third_Party/FatFs/src/ff.c ****
2766 .loc 1 3136 25 discriminator 1 view .LVU879
2767 0330 0D25 movs r5, #13
2768 0332 D9E7 b .L180
2769 .LVL307:
2770 .L215:
3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */
2771 .loc 1 3140 30 discriminator 1 view .LVU880
2772 0334 0D25 movs r5, #13
2773 0336 D7E7 b .L180
2774 .LVL308:
2775 .L216:
3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32;
2776 .loc 1 3142 26 discriminator 1 view .LVU881
2777 0338 0D25 movs r5, #13
2778 033a D5E7 b .L180
2779 .LVL309:
2780 .L219:
3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */
2781 .loc 1 3153 52 discriminator 1 view .LVU882
2782 033c 0D25 movs r5, #13
2783 033e D3E7 b .L180
2784 .L220:
3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */
2785 .loc 1 3154 30 discriminator 1 view .LVU883
2786 0340 0D25 movs r5, #13
2787 0342 D1E7 b .L180
2788 .LVL310:
2789 .L221:
3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */
2790 .loc 1 3158 35 discriminator 1 view .LVU884
2791 0344 0D25 movs r5, #13
2792 0346 CFE7 b .L180
2793 .LVL311:
2794 .L222:
3163:Middlewares/Third_Party/FatFs/src/ff.c ****
2795 .loc 1 3163 60 discriminator 1 view .LVU885
2796 0348 0D25 movs r5, #13
2797 034a CDE7 b .L180
2798 .cfi_endproc
2799 .LFE1219:
2801 .section .text.put_fat,"ax",%progbits
2802 .align 1
ARM GAS /tmp/ccH7dUYB.s page 164
2803 .syntax unified
2804 .thumb
2805 .thumb_func
2807 put_fat:
2808 .LVL312:
2809 .LFB1201:
1086:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bc;
2810 .loc 1 1086 1 is_stmt 1 view -0
2811 .cfi_startproc
2812 @ args = 0, pretend = 0, frame = 0
2813 @ frame_needed = 0, uses_anonymous_args = 0
1086:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bc;
2814 .loc 1 1086 1 is_stmt 0 view .LVU887
2815 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
2816 .LCFI22:
2817 .cfi_def_cfa_offset 32
2818 .cfi_offset 4, -32
2819 .cfi_offset 5, -28
2820 .cfi_offset 6, -24
2821 .cfi_offset 7, -20
2822 .cfi_offset 8, -16
2823 .cfi_offset 9, -12
2824 .cfi_offset 10, -8
2825 .cfi_offset 14, -4
1087:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p;
2826 .loc 1 1087 2 is_stmt 1 view .LVU888
1088:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INT_ERR;
2827 .loc 1 1088 2 view .LVU889
1089:Middlewares/Third_Party/FatFs/src/ff.c ****
2828 .loc 1 1089 2 view .LVU890
2829 .LVL313:
1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
2830 .loc 1 1091 2 view .LVU891
1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
2831 .loc 1 1091 5 is_stmt 0 view .LVU892
2832 0004 0129 cmp r1, #1
2833 0006 40F28E80 bls .L240
2834 000a 0446 mov r4, r0
2835 000c 0D46 mov r5, r1
2836 000e 1746 mov r7, r2
1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
2837 .loc 1 1091 28 discriminator 1 view .LVU893
2838 0010 8369 ldr r3, [r0, #24]
1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) {
2839 .loc 1 1091 16 discriminator 1 view .LVU894
2840 0012 8B42 cmp r3, r1
2841 0014 40F28B80 bls .L241
1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */
2842 .loc 1 1092 3 is_stmt 1 view .LVU895
1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */
2843 .loc 1 1092 13 is_stmt 0 view .LVU896
2844 0018 0378 ldrb r3, [r0] @ zero_extendqisi2
1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */
2845 .loc 1 1092 3 view .LVU897
2846 001a 022B cmp r3, #2
2847 001c 49D0 beq .L234
2848 001e 032B cmp r3, #3
ARM GAS /tmp/ccH7dUYB.s page 165
2849 0020 60D0 beq .L235
2850 0022 012B cmp r3, #1
2851 0024 40F08580 bne .L242
1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
2852 .loc 1 1094 4 is_stmt 1 view .LVU898
2853 .LVL314:
1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
2854 .loc 1 1094 21 view .LVU899
1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
2855 .loc 1 1094 24 is_stmt 0 view .LVU900
2856 0028 01EB5108 add r8, r1, r1, lsr #1
2857 .LVL315:
1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2858 .loc 1 1095 4 is_stmt 1 view .LVU901
1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2859 .loc 1 1095 28 is_stmt 0 view .LVU902
2860 002c 416A ldr r1, [r0, #36]
2861 .LVL316:
1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2862 .loc 1 1095 46 view .LVU903
2863 002e 8389 ldrh r3, [r0, #12]
1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2864 .loc 1 1095 44 view .LVU904
2865 0030 B8FBF3F3 udiv r3, r8, r3
1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2866 .loc 1 1095 10 view .LVU905
2867 0034 1944 add r1, r1, r3
2868 0036 FFF7FEFF bl move_window
2869 .LVL317:
1096:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc++ % SS(fs);
2870 .loc 1 1096 4 is_stmt 1 view .LVU906
1096:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc++ % SS(fs);
2871 .loc 1 1096 7 is_stmt 0 view .LVU907
2872 003a 0646 mov r6, r0
2873 003c 0028 cmp r0, #0
2874 003e 73D1 bne .L233
1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
2875 .loc 1 1097 4 is_stmt 1 view .LVU908
1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
2876 .loc 1 1097 8 is_stmt 0 view .LVU909
2877 0040 04F1340A add r10, r4, #52
1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
2878 .loc 1 1097 20 view .LVU910
2879 0044 08F10109 add r9, r8, #1
2880 .LVL318:
1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
2881 .loc 1 1097 25 view .LVU911
2882 0048 A389 ldrh r3, [r4, #12]
1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
2883 .loc 1 1097 23 view .LVU912
2884 004a B8FBF3F2 udiv r2, r8, r3
2885 004e 03FB1288 mls r8, r3, r2, r8
2886 .LVL319:
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2887 .loc 1 1098 4 is_stmt 1 view .LVU913
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2888 .loc 1 1098 7 is_stmt 0 view .LVU914
ARM GAS /tmp/ccH7dUYB.s page 166
2889 0052 15F00105 ands r5, r5, #1
2890 .LVL320:
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2891 .loc 1 1098 7 view .LVU915
2892 0056 22D0 beq .L236
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2893 .loc 1 1098 24 discriminator 1 view .LVU916
2894 0058 1AF80830 ldrb r3, [r10, r8] @ zero_extendqisi2
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2895 .loc 1 1098 7 discriminator 1 view .LVU917
2896 005c 03F00F03 and r3, r3, #15
2897 0060 43EA0713 orr r3, r3, r7, lsl #4
2898 0064 DBB2 uxtb r3, r3
2899 .L237:
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2900 .loc 1 1098 7 discriminator 4 view .LVU918
2901 0066 0AF80830 strb r3, [r10, r8]
1099:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
2902 .loc 1 1099 4 is_stmt 1 view .LVU919
1099:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs)));
2903 .loc 1 1099 14 is_stmt 0 view .LVU920
2904 006a 0123 movs r3, #1
2905 006c E370 strb r3, [r4, #3]
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2906 .loc 1 1100 4 is_stmt 1 view .LVU921
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2907 .loc 1 1100 28 is_stmt 0 view .LVU922
2908 006e 616A ldr r1, [r4, #36]
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2909 .loc 1 1100 46 view .LVU923
2910 0070 A389 ldrh r3, [r4, #12]
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2911 .loc 1 1100 44 view .LVU924
2912 0072 B9FBF3F3 udiv r3, r9, r3
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2913 .loc 1 1100 10 view .LVU925
2914 0076 1944 add r1, r1, r3
2915 0078 2046 mov r0, r4
2916 .LVL321:
1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2917 .loc 1 1100 10 view .LVU926
2918 007a FFF7FEFF bl move_window
2919 .LVL322:
1101:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc % SS(fs);
2920 .loc 1 1101 4 is_stmt 1 view .LVU927
1101:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc % SS(fs);
2921 .loc 1 1101 7 is_stmt 0 view .LVU928
2922 007e 0646 mov r6, r0
2923 0080 0028 cmp r0, #0
2924 0082 51D1 bne .L233
1102:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
2925 .loc 1 1102 4 is_stmt 1 view .LVU929
1102:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
2926 .loc 1 1102 23 is_stmt 0 view .LVU930
2927 0084 A389 ldrh r3, [r4, #12]
1102:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
2928 .loc 1 1102 21 view .LVU931
ARM GAS /tmp/ccH7dUYB.s page 167
2929 0086 B9FBF3F2 udiv r2, r9, r3
2930 008a 03FB1299 mls r9, r3, r2, r9
2931 .LVL323:
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2932 .loc 1 1103 4 is_stmt 1 view .LVU932
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2933 .loc 1 1103 7 is_stmt 0 view .LVU933
2934 008e 45B1 cbz r5, .L238
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2935 .loc 1 1103 7 discriminator 1 view .LVU934
2936 0090 C7F30713 ubfx r3, r7, #4, #8
2937 .L239:
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2938 .loc 1 1103 7 discriminator 4 view .LVU935
2939 0094 0AF80930 strb r3, [r10, r9]
1104:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2940 .loc 1 1104 4 is_stmt 1 view .LVU936
1104:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2941 .loc 1 1104 14 is_stmt 0 view .LVU937
2942 0098 0123 movs r3, #1
2943 009a E370 strb r3, [r4, #3]
1105:Middlewares/Third_Party/FatFs/src/ff.c ****
2944 .loc 1 1105 4 is_stmt 1 view .LVU938
2945 009c 44E0 b .L233
2946 .LVL324:
2947 .L236:
1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2948 .loc 1 1098 7 is_stmt 0 discriminator 2 view .LVU939
2949 009e FBB2 uxtb r3, r7
2950 00a0 E1E7 b .L237
2951 .LVL325:
2952 .L238:
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2953 .loc 1 1103 43 discriminator 2 view .LVU940
2954 00a2 1AF80930 ldrb r3, [r10, r9] @ zero_extendqisi2
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2955 .loc 1 1103 74 discriminator 2 view .LVU941
2956 00a6 C7F30322 ubfx r2, r7, #8, #4
1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2957 .loc 1 1103 7 discriminator 2 view .LVU942
2958 00aa 23F00F03 bic r3, r3, #15
2959 00ae 1343 orrs r3, r3, r2
2960 00b0 F0E7 b .L239
2961 .LVL326:
2962 .L234:
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2963 .loc 1 1108 4 is_stmt 1 view .LVU943
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2964 .loc 1 1108 28 is_stmt 0 view .LVU944
2965 00b2 416A ldr r1, [r0, #36]
2966 .LVL327:
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2967 .loc 1 1108 49 view .LVU945
2968 00b4 8389 ldrh r3, [r0, #12]
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2969 .loc 1 1108 56 view .LVU946
2970 00b6 5B08 lsrs r3, r3, #1
ARM GAS /tmp/ccH7dUYB.s page 168
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2971 .loc 1 1108 46 view .LVU947
2972 00b8 B5FBF3F3 udiv r3, r5, r3
1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
2973 .loc 1 1108 10 view .LVU948
2974 00bc 1944 add r1, r1, r3
2975 00be FFF7FEFF bl move_window
2976 .LVL328:
1109:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + clst * 2 % SS(fs), (WORD)val);
2977 .loc 1 1109 4 is_stmt 1 view .LVU949
1109:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + clst * 2 % SS(fs), (WORD)val);
2978 .loc 1 1109 7 is_stmt 0 view .LVU950
2979 00c2 0646 mov r6, r0
2980 00c4 80BB cbnz r0, .L233
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2981 .loc 1 1110 4 is_stmt 1 view .LVU951
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2982 .loc 1 1110 12 is_stmt 0 view .LVU952
2983 00c6 04F13400 add r0, r4, #52
2984 .LVL329:
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2985 .loc 1 1110 27 view .LVU953
2986 00ca 6D00 lsls r5, r5, #1
2987 .LVL330:
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2988 .loc 1 1110 33 view .LVU954
2989 00cc A389 ldrh r3, [r4, #12]
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2990 .loc 1 1110 31 view .LVU955
2991 00ce B5FBF3F2 udiv r2, r5, r3
2992 00d2 03FB1255 mls r5, r3, r2, r5
1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
2993 .loc 1 1110 4 view .LVU956
2994 00d6 B9B2 uxth r1, r7
2995 00d8 2844 add r0, r0, r5
2996 00da FFF7FEFF bl st_word
2997 .LVL331:
1111:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2998 .loc 1 1111 4 is_stmt 1 view .LVU957
1111:Middlewares/Third_Party/FatFs/src/ff.c **** break;
2999 .loc 1 1111 14 is_stmt 0 view .LVU958
3000 00de 0123 movs r3, #1
3001 00e0 E370 strb r3, [r4, #3]
1112:Middlewares/Third_Party/FatFs/src/ff.c ****
3002 .loc 1 1112 4 is_stmt 1 view .LVU959
3003 00e2 21E0 b .L233
3004 .LVL332:
3005 .L235:
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3006 .loc 1 1118 4 view .LVU960
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3007 .loc 1 1118 28 is_stmt 0 view .LVU961
3008 00e4 416A ldr r1, [r0, #36]
3009 .LVL333:
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3010 .loc 1 1118 49 view .LVU962
3011 00e6 8389 ldrh r3, [r0, #12]
ARM GAS /tmp/ccH7dUYB.s page 169
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3012 .loc 1 1118 56 view .LVU963
3013 00e8 9B08 lsrs r3, r3, #2
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3014 .loc 1 1118 46 view .LVU964
3015 00ea B5FBF3F3 udiv r3, r5, r3
1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
3016 .loc 1 1118 10 view .LVU965
3017 00ee 1944 add r1, r1, r3
3018 00f0 FFF7FEFF bl move_window
3019 .LVL334:
1119:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3020 .loc 1 1119 4 is_stmt 1 view .LVU966
1119:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3021 .loc 1 1119 7 is_stmt 0 view .LVU967
3022 00f4 0646 mov r6, r0
3023 00f6 B8B9 cbnz r0, .L233
1120:Middlewares/Third_Party/FatFs/src/ff.c **** val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000);
3024 .loc 1 1120 4 is_stmt 1 view .LVU968
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3025 .loc 1 1121 5 view .LVU969
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3026 .loc 1 1121 16 is_stmt 0 view .LVU970
3027 00f8 27F07047 bic r7, r7, #-268435456
3028 .LVL335:
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3029 .loc 1 1121 42 view .LVU971
3030 00fc 04F13403 add r3, r4, #52
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3031 .loc 1 1121 57 view .LVU972
3032 0100 AD00 lsls r5, r5, #2
3033 .LVL336:
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3034 .loc 1 1121 63 view .LVU973
3035 0102 A289 ldrh r2, [r4, #12]
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3036 .loc 1 1121 61 view .LVU974
3037 0104 B5FBF2F1 udiv r1, r5, r2
3038 0108 02FB1155 mls r5, r2, r1, r5
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3039 .loc 1 1121 33 view .LVU975
3040 010c 1D44 add r5, r5, r3
3041 010e 2846 mov r0, r5
3042 .LVL337:
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3043 .loc 1 1121 33 view .LVU976
3044 0110 FFF7FEFF bl ld_dword
3045 .LVL338:
1121:Middlewares/Third_Party/FatFs/src/ff.c **** }
3046 .loc 1 1121 71 discriminator 1 view .LVU977
3047 0114 00F07041 and r1, r0, #-268435456
3048 .LVL339:
1123:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3049 .loc 1 1123 4 is_stmt 1 view .LVU978
3050 0118 3943 orrs r1, r1, r7
3051 .LVL340:
1123:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
ARM GAS /tmp/ccH7dUYB.s page 170
3052 .loc 1 1123 4 is_stmt 0 view .LVU979
3053 011a 2846 mov r0, r5
3054 011c FFF7FEFF bl st_dword
3055 .LVL341:
1124:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3056 .loc 1 1124 4 is_stmt 1 view .LVU980
1124:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3057 .loc 1 1124 14 is_stmt 0 view .LVU981
3058 0120 0123 movs r3, #1
3059 0122 E370 strb r3, [r4, #3]
1125:Middlewares/Third_Party/FatFs/src/ff.c **** }
3060 .loc 1 1125 4 is_stmt 1 view .LVU982
3061 0124 00E0 b .L233
3062 .LVL342:
3063 .L240:
1089:Middlewares/Third_Party/FatFs/src/ff.c ****
3064 .loc 1 1089 10 is_stmt 0 view .LVU983
3065 0126 0226 movs r6, #2
3066 .LVL343:
3067 .L233:
1128:Middlewares/Third_Party/FatFs/src/ff.c **** }
3068 .loc 1 1128 2 is_stmt 1 view .LVU984
1129:Middlewares/Third_Party/FatFs/src/ff.c ****
3069 .loc 1 1129 1 is_stmt 0 view .LVU985
3070 0128 3046 mov r0, r6
3071 012a BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
3072 .LVL344:
3073 .L241:
1089:Middlewares/Third_Party/FatFs/src/ff.c ****
3074 .loc 1 1089 10 view .LVU986
3075 012e 0226 movs r6, #2
3076 0130 FAE7 b .L233
3077 .L242:
1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */
3078 .loc 1 1092 3 view .LVU987
3079 0132 0226 movs r6, #2
3080 0134 F8E7 b .L233
3081 .cfi_endproc
3082 .LFE1201:
3084 .section .text.get_fat,"ax",%progbits
3085 .align 1
3086 .syntax unified
3087 .thumb
3088 .thumb_func
3090 get_fat:
3091 .LVL345:
3092 .LFB1200:
1005:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wc, bc;
3093 .loc 1 1005 1 is_stmt 1 view -0
3094 .cfi_startproc
3095 @ args = 0, pretend = 0, frame = 0
3096 @ frame_needed = 0, uses_anonymous_args = 0
1005:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wc, bc;
3097 .loc 1 1005 1 is_stmt 0 view .LVU989
3098 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
3099 .LCFI23:
3100 .cfi_def_cfa_offset 24
ARM GAS /tmp/ccH7dUYB.s page 171
3101 .cfi_offset 3, -24
3102 .cfi_offset 4, -20
3103 .cfi_offset 5, -16
3104 .cfi_offset 6, -12
3105 .cfi_offset 7, -8
3106 .cfi_offset 14, -4
1006:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD val;
3107 .loc 1 1006 2 is_stmt 1 view .LVU990
1007:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
3108 .loc 1 1007 2 view .LVU991
1008:Middlewares/Third_Party/FatFs/src/ff.c ****
3109 .loc 1 1008 2 view .LVU992
1008:Middlewares/Third_Party/FatFs/src/ff.c ****
3110 .loc 1 1008 9 is_stmt 0 view .LVU993
3111 0002 0568 ldr r5, [r0]
3112 .LVL346:
1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
3113 .loc 1 1011 2 is_stmt 1 view .LVU994
1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
3114 .loc 1 1011 5 is_stmt 0 view .LVU995
3115 0004 0129 cmp r1, #1
3116 0006 6AD9 bls .L249
3117 0008 0C46 mov r4, r1
1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
3118 .loc 1 1011 28 discriminator 1 view .LVU996
3119 000a AB69 ldr r3, [r5, #24]
1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */
3120 .loc 1 1011 15 discriminator 1 view .LVU997
3121 000c 8B42 cmp r3, r1
3122 000e 68D9 bls .L250
1015:Middlewares/Third_Party/FatFs/src/ff.c ****
3123 .loc 1 1015 3 is_stmt 1 view .LVU998
3124 .LVL347:
1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
3125 .loc 1 1017 3 view .LVU999
1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
3126 .loc 1 1017 13 is_stmt 0 view .LVU1000
3127 0010 2B78 ldrb r3, [r5] @ zero_extendqisi2
1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
3128 .loc 1 1017 3 view .LVU1001
3129 0012 022B cmp r3, #2
3130 0014 35D0 beq .L246
3131 0016 032B cmp r3, #3
3132 0018 49D0 beq .L247
3133 001a 012B cmp r3, #1
3134 001c 63D1 bne .L251
1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3135 .loc 1 1019 4 is_stmt 1 view .LVU1002
3136 .LVL348:
1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3137 .loc 1 1019 21 view .LVU1003
1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3138 .loc 1 1019 24 is_stmt 0 view .LVU1004
3139 001e 01EB5106 add r6, r1, r1, lsr #1
3140 .LVL349:
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3141 .loc 1 1020 4 is_stmt 1 view .LVU1005
ARM GAS /tmp/ccH7dUYB.s page 172
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3142 .loc 1 1020 26 is_stmt 0 view .LVU1006
3143 0022 696A ldr r1, [r5, #36]
3144 .LVL350:
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3145 .loc 1 1020 44 view .LVU1007
3146 0024 AB89 ldrh r3, [r5, #12]
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3147 .loc 1 1020 42 view .LVU1008
3148 0026 B6FBF3F3 udiv r3, r6, r3
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3149 .loc 1 1020 8 view .LVU1009
3150 002a 1944 add r1, r1, r3
3151 002c 2846 mov r0, r5
3152 .LVL351:
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3153 .loc 1 1020 8 view .LVU1010
3154 002e FFF7FEFF bl move_window
3155 .LVL352:
1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)];
3156 .loc 1 1020 7 discriminator 1 view .LVU1011
3157 0032 10B1 cbz r0, .L257
1015:Middlewares/Third_Party/FatFs/src/ff.c ****
3158 .loc 1 1015 7 view .LVU1012
3159 0034 4FF0FF30 mov r0, #-1
3160 0038 52E0 b .L244
3161 .L257:
1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3162 .loc 1 1021 4 is_stmt 1 view .LVU1013
1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3163 .loc 1 1021 19 is_stmt 0 view .LVU1014
3164 003a 771C adds r7, r6, #1
3165 .LVL353:
1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3166 .loc 1 1021 24 view .LVU1015
3167 003c AB89 ldrh r3, [r5, #12]
1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3168 .loc 1 1021 22 view .LVU1016
3169 003e B6FBF3F2 udiv r2, r6, r3
3170 0042 03FB1266 mls r6, r3, r2, r6
1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break;
3171 .loc 1 1021 16 view .LVU1017
3172 0046 2E44 add r6, r6, r5
3173 0048 96F83460 ldrb r6, [r6, #52] @ zero_extendqisi2
3174 .LVL354:
1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
3175 .loc 1 1022 4 is_stmt 1 view .LVU1018
1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
3176 .loc 1 1022 26 is_stmt 0 view .LVU1019
3177 004c 696A ldr r1, [r5, #36]
1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
3178 .loc 1 1022 42 view .LVU1020
3179 004e B7FBF3F3 udiv r3, r7, r3
1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
3180 .loc 1 1022 8 view .LVU1021
3181 0052 1944 add r1, r1, r3
3182 0054 2846 mov r0, r5
ARM GAS /tmp/ccH7dUYB.s page 173
3183 0056 FFF7FEFF bl move_window
3184 .LVL355:
1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8;
3185 .loc 1 1022 7 discriminator 1 view .LVU1022
3186 005a 0028 cmp r0, #0
3187 005c 45D1 bne .L253
1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
3188 .loc 1 1023 4 is_stmt 1 view .LVU1023
1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
3189 .loc 1 1023 23 is_stmt 0 view .LVU1024
3190 005e AB89 ldrh r3, [r5, #12]
1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
3191 .loc 1 1023 21 view .LVU1025
3192 0060 B7FBF3F2 udiv r2, r7, r3
3193 0064 03FB1277 mls r7, r3, r2, r7
3194 .LVL356:
1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
3195 .loc 1 1023 17 view .LVU1026
3196 0068 2F44 add r7, r7, r5
3197 006a 97F83430 ldrb r3, [r7, #52] @ zero_extendqisi2
1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
3198 .loc 1 1023 7 view .LVU1027
3199 006e 46EA0320 orr r0, r6, r3, lsl #8
3200 .LVL357:
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3201 .loc 1 1024 4 is_stmt 1 view .LVU1028
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3202 .loc 1 1024 33 is_stmt 0 view .LVU1029
3203 0072 14F0010F tst r4, #1
3204 0076 01D0 beq .L248
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3205 .loc 1 1024 33 discriminator 1 view .LVU1030
3206 0078 0009 lsrs r0, r0, #4
3207 .LVL358:
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3208 .loc 1 1024 33 discriminator 1 view .LVU1031
3209 007a 31E0 b .L244
3210 .LVL359:
3211 .L248:
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3212 .loc 1 1024 33 discriminator 2 view .LVU1032
3213 007c C0F30B00 ubfx r0, r0, #0, #12
3214 .LVL360:
1024:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3215 .loc 1 1024 33 discriminator 2 view .LVU1033
3216 0080 2EE0 b .L244
3217 .LVL361:
3218 .L246:
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3219 .loc 1 1028 4 is_stmt 1 view .LVU1034
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3220 .loc 1 1028 26 is_stmt 0 view .LVU1035
3221 0082 696A ldr r1, [r5, #36]
3222 .LVL362:
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3223 .loc 1 1028 47 view .LVU1036
3224 0084 AB89 ldrh r3, [r5, #12]
ARM GAS /tmp/ccH7dUYB.s page 174
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3225 .loc 1 1028 54 view .LVU1037
3226 0086 5B08 lsrs r3, r3, #1
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3227 .loc 1 1028 44 view .LVU1038
3228 0088 B4FBF3F3 udiv r3, r4, r3
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3229 .loc 1 1028 8 view .LVU1039
3230 008c 1944 add r1, r1, r3
3231 008e 2846 mov r0, r5
3232 .LVL363:
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3233 .loc 1 1028 8 view .LVU1040
3234 0090 FFF7FEFF bl move_window
3235 .LVL364:
1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs));
3236 .loc 1 1028 7 discriminator 1 view .LVU1041
3237 0094 60BB cbnz r0, .L254
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3238 .loc 1 1029 4 is_stmt 1 view .LVU1042
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3239 .loc 1 1029 18 is_stmt 0 view .LVU1043
3240 0096 05F13400 add r0, r5, #52
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3241 .loc 1 1029 33 view .LVU1044
3242 009a 6400 lsls r4, r4, #1
3243 .LVL365:
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3244 .loc 1 1029 39 view .LVU1045
3245 009c AB89 ldrh r3, [r5, #12]
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3246 .loc 1 1029 37 view .LVU1046
3247 009e B4FBF3F2 udiv r2, r4, r3
3248 00a2 03FB1244 mls r4, r3, r2, r4
1029:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3249 .loc 1 1029 10 view .LVU1047
3250 00a6 2044 add r0, r0, r4
3251 00a8 FFF7FEFF bl ld_word
3252 .LVL366:
1030:Middlewares/Third_Party/FatFs/src/ff.c ****
3253 .loc 1 1030 4 is_stmt 1 view .LVU1048
3254 00ac 18E0 b .L244
3255 .LVL367:
3256 .L247:
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3257 .loc 1 1033 4 view .LVU1049
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3258 .loc 1 1033 26 is_stmt 0 view .LVU1050
3259 00ae 696A ldr r1, [r5, #36]
3260 .LVL368:
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3261 .loc 1 1033 47 view .LVU1051
3262 00b0 AB89 ldrh r3, [r5, #12]
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3263 .loc 1 1033 54 view .LVU1052
3264 00b2 9B08 lsrs r3, r3, #2
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
ARM GAS /tmp/ccH7dUYB.s page 175
3265 .loc 1 1033 44 view .LVU1053
3266 00b4 B4FBF3F3 udiv r3, r4, r3
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3267 .loc 1 1033 8 view .LVU1054
3268 00b8 1944 add r1, r1, r3
3269 00ba 2846 mov r0, r5
3270 .LVL369:
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3271 .loc 1 1033 8 view .LVU1055
3272 00bc FFF7FEFF bl move_window
3273 .LVL370:
1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF;
3274 .loc 1 1033 7 discriminator 1 view .LVU1056
3275 00c0 C8B9 cbnz r0, .L255
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3276 .loc 1 1034 4 is_stmt 1 view .LVU1057
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3277 .loc 1 1034 19 is_stmt 0 view .LVU1058
3278 00c2 05F13400 add r0, r5, #52
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3279 .loc 1 1034 34 view .LVU1059
3280 00c6 A400 lsls r4, r4, #2
3281 .LVL371:
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3282 .loc 1 1034 40 view .LVU1060
3283 00c8 AB89 ldrh r3, [r5, #12]
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3284 .loc 1 1034 38 view .LVU1061
3285 00ca B4FBF3F2 udiv r2, r4, r3
3286 00ce 03FB1244 mls r4, r3, r2, r4
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3287 .loc 1 1034 10 view .LVU1062
3288 00d2 2044 add r0, r0, r4
3289 00d4 FFF7FEFF bl ld_dword
3290 .LVL372:
1034:Middlewares/Third_Party/FatFs/src/ff.c **** break;
3291 .loc 1 1034 8 discriminator 1 view .LVU1063
3292 00d8 20F07040 bic r0, r0, #-268435456
3293 .LVL373:
1035:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
3294 .loc 1 1035 4 is_stmt 1 view .LVU1064
3295 00dc 00E0 b .L244
3296 .LVL374:
3297 .L249:
1012:Middlewares/Third_Party/FatFs/src/ff.c ****
3298 .loc 1 1012 7 is_stmt 0 view .LVU1065
3299 00de 0120 movs r0, #1
3300 .LVL375:
3301 .L244:
1070:Middlewares/Third_Party/FatFs/src/ff.c ****
3302 .loc 1 1070 1 view .LVU1066
3303 00e0 F8BD pop {r3, r4, r5, r6, r7, pc}
3304 .LVL376:
3305 .L250:
1012:Middlewares/Third_Party/FatFs/src/ff.c ****
3306 .loc 1 1012 7 view .LVU1067
3307 00e2 0120 movs r0, #1
ARM GAS /tmp/ccH7dUYB.s page 176
3308 .LVL377:
1012:Middlewares/Third_Party/FatFs/src/ff.c ****
3309 .loc 1 1012 7 view .LVU1068
3310 00e4 FCE7 b .L244
3311 .LVL378:
3312 .L251:
1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
3313 .loc 1 1017 3 view .LVU1069
3314 00e6 0120 movs r0, #1
3315 .LVL379:
1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 :
3316 .loc 1 1017 3 view .LVU1070
3317 00e8 FAE7 b .L244
3318 .LVL380:
3319 .L253:
1015:Middlewares/Third_Party/FatFs/src/ff.c ****
3320 .loc 1 1015 7 view .LVU1071
3321 00ea 4FF0FF30 mov r0, #-1
3322 00ee F7E7 b .L244
3323 .LVL381:
3324 .L254:
1015:Middlewares/Third_Party/FatFs/src/ff.c ****
3325 .loc 1 1015 7 view .LVU1072
3326 00f0 4FF0FF30 mov r0, #-1
3327 00f4 F4E7 b .L244
3328 .L255:
1015:Middlewares/Third_Party/FatFs/src/ff.c ****
3329 .loc 1 1015 7 view .LVU1073
3330 00f6 4FF0FF30 mov r0, #-1
1069:Middlewares/Third_Party/FatFs/src/ff.c **** }
3331 .loc 1 1069 2 is_stmt 1 view .LVU1074
1069:Middlewares/Third_Party/FatFs/src/ff.c **** }
3332 .loc 1 1069 9 is_stmt 0 view .LVU1075
3333 00fa F1E7 b .L244
3334 .cfi_endproc
3335 .LFE1200:
3337 .section .text.dir_sdi,"ax",%progbits
3338 .align 1
3339 .syntax unified
3340 .thumb
3341 .thumb_func
3343 dir_sdi:
3344 .LVL382:
3345 .LFB1205:
1474:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD csz, clst;
3346 .loc 1 1474 1 is_stmt 1 view -0
3347 .cfi_startproc
3348 @ args = 0, pretend = 0, frame = 0
3349 @ frame_needed = 0, uses_anonymous_args = 0
1474:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD csz, clst;
3350 .loc 1 1474 1 is_stmt 0 view .LVU1077
3351 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
3352 .LCFI24:
3353 .cfi_def_cfa_offset 24
3354 .cfi_offset 4, -24
3355 .cfi_offset 5, -20
3356 .cfi_offset 6, -16
ARM GAS /tmp/ccH7dUYB.s page 177
3357 .cfi_offset 7, -12
3358 .cfi_offset 8, -8
3359 .cfi_offset 14, -4
1475:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
3360 .loc 1 1475 2 is_stmt 1 view .LVU1078
1476:Middlewares/Third_Party/FatFs/src/ff.c ****
3361 .loc 1 1476 2 view .LVU1079
1476:Middlewares/Third_Party/FatFs/src/ff.c ****
3362 .loc 1 1476 9 is_stmt 0 view .LVU1080
3363 0004 D0F80080 ldr r8, [r0]
3364 .LVL383:
1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR;
3365 .loc 1 1479 2 is_stmt 1 view .LVU1081
1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR;
3366 .loc 1 1479 5 is_stmt 0 view .LVU1082
3367 0008 B1F5001F cmp r1, #2097152
3368 000c 49D2 bcs .L265
3369 000e 0746 mov r7, r0
3370 0010 0E46 mov r6, r1
1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR;
3371 .loc 1 1479 84 discriminator 1 view .LVU1083
3372 0012 11F01F0F tst r1, #31
3373 0016 47D1 bne .L266
1482:Middlewares/Third_Party/FatFs/src/ff.c **** clst = dp->obj.sclust; /* Table start cluster (0:root) */
3374 .loc 1 1482 2 is_stmt 1 view .LVU1084
1482:Middlewares/Third_Party/FatFs/src/ff.c **** clst = dp->obj.sclust; /* Table start cluster (0:root) */
3375 .loc 1 1482 11 is_stmt 0 view .LVU1085
3376 0018 4161 str r1, [r0, #20]
1483:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */
3377 .loc 1 1483 2 is_stmt 1 view .LVU1086
1483:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */
3378 .loc 1 1483 7 is_stmt 0 view .LVU1087
3379 001a 8468 ldr r4, [r0, #8]
3380 .LVL384:
1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase;
3381 .loc 1 1484 2 is_stmt 1 view .LVU1088
1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase;
3382 .loc 1 1484 5 is_stmt 0 view .LVU1089
3383 001c 1CBB cbnz r4, .L260
1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase;
3384 .loc 1 1484 21 discriminator 1 view .LVU1090
3385 001e 98F80030 ldrb r3, [r8] @ zero_extendqisi2
1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase;
3386 .loc 1 1484 16 discriminator 1 view .LVU1091
3387 0022 022B cmp r3, #2
3388 0024 01D9 bls .L261
1485:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */
3389 .loc 1 1485 3 is_stmt 1 view .LVU1092
1485:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */
3390 .loc 1 1485 8 is_stmt 0 view .LVU1093
3391 0026 D8F82840 ldr r4, [r8, #40]
3392 .LVL385:
1486:Middlewares/Third_Party/FatFs/src/ff.c **** }
3393 .loc 1 1486 3 is_stmt 1 view .LVU1094
3394 .L261:
1489:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */
3395 .loc 1 1489 2 view .LVU1095
ARM GAS /tmp/ccH7dUYB.s page 178
1489:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */
3396 .loc 1 1489 5 is_stmt 0 view .LVU1096
3397 002a E4B9 cbnz r4, .L260
1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
3398 .loc 1 1490 3 is_stmt 1 view .LVU1097
1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
3399 .loc 1 1490 25 is_stmt 0 view .LVU1098
3400 002c B8F80830 ldrh r3, [r8, #8]
1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
3401 .loc 1 1490 6 view .LVU1099
3402 0030 B3EB561F cmp r3, r6, lsr #5
3403 0034 3AD9 bls .L267
1491:Middlewares/Third_Party/FatFs/src/ff.c ****
3404 .loc 1 1491 3 is_stmt 1 view .LVU1100
1491:Middlewares/Third_Party/FatFs/src/ff.c ****
3405 .loc 1 1491 16 is_stmt 0 view .LVU1101
3406 0036 D8F82830 ldr r3, [r8, #40]
1491:Middlewares/Third_Party/FatFs/src/ff.c ****
3407 .loc 1 1491 12 view .LVU1102
3408 003a FB61 str r3, [r7, #28]
3409 .LVL386:
3410 .L262:
1503:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return FR_INT_ERR;
3411 .loc 1 1503 2 is_stmt 1 view .LVU1103
1503:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return FR_INT_ERR;
3412 .loc 1 1503 12 is_stmt 0 view .LVU1104
3413 003c BC61 str r4, [r7, #24]
1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */
3414 .loc 1 1504 2 is_stmt 1 view .LVU1105
1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */
3415 .loc 1 1504 9 is_stmt 0 view .LVU1106
3416 003e FB69 ldr r3, [r7, #28]
1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */
3417 .loc 1 1504 5 view .LVU1107
3418 0040 E3B3 cbz r3, .L271
1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */
3419 .loc 1 1505 2 is_stmt 1 view .LVU1108
1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */
3420 .loc 1 1505 20 is_stmt 0 view .LVU1109
3421 0042 B8F80C20 ldrh r2, [r8, #12]
1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */
3422 .loc 1 1505 18 view .LVU1110
3423 0046 B6FBF2F2 udiv r2, r6, r2
1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */
3424 .loc 1 1505 11 view .LVU1111
3425 004a 1344 add r3, r3, r2
3426 004c FB61 str r3, [r7, #28]
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3427 .loc 1 1506 2 is_stmt 1 view .LVU1112
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3428 .loc 1 1506 12 is_stmt 0 view .LVU1113
3429 004e 08F13403 add r3, r8, #52
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3430 .loc 1 1506 29 view .LVU1114
3431 0052 B8F80C20 ldrh r2, [r8, #12]
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3432 .loc 1 1506 27 view .LVU1115
ARM GAS /tmp/ccH7dUYB.s page 179
3433 0056 B6FBF2F1 udiv r1, r6, r2
3434 005a 02FB1161 mls r1, r2, r1, r6
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3435 .loc 1 1506 20 view .LVU1116
3436 005e 0B44 add r3, r3, r1
1506:Middlewares/Third_Party/FatFs/src/ff.c ****
3437 .loc 1 1506 10 view .LVU1117
3438 0060 3B62 str r3, [r7, #32]
1508:Middlewares/Third_Party/FatFs/src/ff.c **** }
3439 .loc 1 1508 2 is_stmt 1 view .LVU1118
1508:Middlewares/Third_Party/FatFs/src/ff.c **** }
3440 .loc 1 1508 9 is_stmt 0 view .LVU1119
3441 0062 0020 movs r0, #0
3442 0064 1EE0 b .L259
3443 .LVL387:
3444 .L260:
1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */
3445 .loc 1 1494 3 is_stmt 1 view .LVU1120
1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */
3446 .loc 1 1494 18 is_stmt 0 view .LVU1121
3447 0066 B8F80A50 ldrh r5, [r8, #10]
1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */
3448 .loc 1 1494 28 view .LVU1122
3449 006a B8F80C30 ldrh r3, [r8, #12]
1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */
3450 .loc 1 1494 7 view .LVU1123
3451 006e 03FB05F5 mul r5, r3, r5
3452 .LVL388:
1495:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, clst); /* Get next cluster */
3453 .loc 1 1495 3 is_stmt 1 view .LVU1124
3454 .L263:
1495:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, clst); /* Get next cluster */
3455 .loc 1 1495 14 view .LVU1125
3456 0072 AE42 cmp r6, r5
3457 0074 0FD3 bcc .L273
1496:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
3458 .loc 1 1496 4 view .LVU1126
1496:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
3459 .loc 1 1496 11 is_stmt 0 view .LVU1127
3460 0076 2146 mov r1, r4
3461 0078 3846 mov r0, r7
3462 007a FFF7FEFF bl get_fat
3463 .LVL389:
3464 007e 0446 mov r4, r0
3465 .LVL390:
1497:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal
3466 .loc 1 1497 4 is_stmt 1 view .LVU1128
1497:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal
3467 .loc 1 1497 7 is_stmt 0 view .LVU1129
3468 0080 B0F1FF3F cmp r0, #-1
3469 0084 14D0 beq .L268
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3470 .loc 1 1498 4 is_stmt 1 view .LVU1130
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3471 .loc 1 1498 7 is_stmt 0 view .LVU1131
3472 0086 0128 cmp r0, #1
3473 0088 14D9 bls .L269
ARM GAS /tmp/ccH7dUYB.s page 180
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3474 .loc 1 1498 30 discriminator 2 view .LVU1132
3475 008a D8F81830 ldr r3, [r8, #24]
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3476 .loc 1 1498 17 discriminator 2 view .LVU1133
3477 008e 8342 cmp r3, r0
3478 0090 12D9 bls .L270
1499:Middlewares/Third_Party/FatFs/src/ff.c **** }
3479 .loc 1 1499 4 is_stmt 1 view .LVU1134
1499:Middlewares/Third_Party/FatFs/src/ff.c **** }
3480 .loc 1 1499 8 is_stmt 0 view .LVU1135
3481 0092 761B subs r6, r6, r5
3482 .LVL391:
1499:Middlewares/Third_Party/FatFs/src/ff.c **** }
3483 .loc 1 1499 8 view .LVU1136
3484 0094 EDE7 b .L263
3485 .LVL392:
3486 .L273:
1501:Middlewares/Third_Party/FatFs/src/ff.c **** }
3487 .loc 1 1501 3 is_stmt 1 view .LVU1137
1501:Middlewares/Third_Party/FatFs/src/ff.c **** }
3488 .loc 1 1501 14 is_stmt 0 view .LVU1138
3489 0096 2146 mov r1, r4
3490 0098 4046 mov r0, r8
3491 009a FFF7FEFF bl clust2sect
3492 .LVL393:
1501:Middlewares/Third_Party/FatFs/src/ff.c **** }
3493 .loc 1 1501 12 discriminator 1 view .LVU1139
3494 009e F861 str r0, [r7, #28]
3495 00a0 CCE7 b .L262
3496 .LVL394:
3497 .L265:
1480:Middlewares/Third_Party/FatFs/src/ff.c **** }
3498 .loc 1 1480 10 view .LVU1140
3499 00a2 0220 movs r0, #2
3500 .LVL395:
3501 .L259:
1509:Middlewares/Third_Party/FatFs/src/ff.c ****
3502 .loc 1 1509 1 view .LVU1141
3503 00a4 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
3504 .LVL396:
3505 .L266:
1480:Middlewares/Third_Party/FatFs/src/ff.c **** }
3506 .loc 1 1480 10 view .LVU1142
3507 00a8 0220 movs r0, #2
3508 .LVL397:
1480:Middlewares/Third_Party/FatFs/src/ff.c **** }
3509 .loc 1 1480 10 view .LVU1143
3510 00aa FBE7 b .L259
3511 .LVL398:
3512 .L267:
1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
3513 .loc 1 1490 45 discriminator 1 view .LVU1144
3514 00ac 0220 movs r0, #2
3515 .LVL399:
1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase;
3516 .loc 1 1490 45 discriminator 1 view .LVU1145
ARM GAS /tmp/ccH7dUYB.s page 181
3517 00ae F9E7 b .L259
3518 .LVL400:
3519 .L268:
1497:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal
3520 .loc 1 1497 35 discriminator 1 view .LVU1146
3521 00b0 0120 movs r0, #1
3522 .LVL401:
1497:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal
3523 .loc 1 1497 35 discriminator 1 view .LVU1147
3524 00b2 F7E7 b .L259
3525 .LVL402:
3526 .L269:
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3527 .loc 1 1498 49 discriminator 3 view .LVU1148
3528 00b4 0220 movs r0, #2
3529 .LVL403:
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3530 .loc 1 1498 49 discriminator 3 view .LVU1149
3531 00b6 F5E7 b .L259
3532 .LVL404:
3533 .L270:
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3534 .loc 1 1498 49 discriminator 3 view .LVU1150
3535 00b8 0220 movs r0, #2
3536 .LVL405:
1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz;
3537 .loc 1 1498 49 discriminator 3 view .LVU1151
3538 00ba F3E7 b .L259
3539 .LVL406:
3540 .L271:
1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */
3541 .loc 1 1504 24 discriminator 1 view .LVU1152
3542 00bc 0220 movs r0, #2
3543 00be F1E7 b .L259
3544 .cfi_endproc
3545 .LFE1205:
3547 .section .text.create_chain,"ax",%progbits
3548 .align 1
3549 .syntax unified
3550 .thumb
3551 .thumb_func
3553 create_chain:
3554 .LVL407:
3555 .LFB1203:
1355:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cs, ncl, scl;
3556 .loc 1 1355 1 is_stmt 1 view -0
3557 .cfi_startproc
3558 @ args = 0, pretend = 0, frame = 0
3559 @ frame_needed = 0, uses_anonymous_args = 0
1355:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cs, ncl, scl;
3560 .loc 1 1355 1 is_stmt 0 view .LVU1154
3561 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
3562 .LCFI25:
3563 .cfi_def_cfa_offset 24
3564 .cfi_offset 4, -24
3565 .cfi_offset 5, -20
3566 .cfi_offset 6, -16
ARM GAS /tmp/ccH7dUYB.s page 182
3567 .cfi_offset 7, -12
3568 .cfi_offset 8, -8
3569 .cfi_offset 14, -4
3570 0004 0546 mov r5, r0
1356:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3571 .loc 1 1356 2 is_stmt 1 view .LVU1155
1357:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
3572 .loc 1 1357 2 view .LVU1156
1358:Middlewares/Third_Party/FatFs/src/ff.c ****
3573 .loc 1 1358 2 view .LVU1157
1358:Middlewares/Third_Party/FatFs/src/ff.c ****
3574 .loc 1 1358 9 is_stmt 0 view .LVU1158
3575 0006 0668 ldr r6, [r0]
3576 .LVL408:
1361:Middlewares/Third_Party/FatFs/src/ff.c **** scl = fs->last_clst; /* Get suggested cluster to start from */
3577 .loc 1 1361 2 is_stmt 1 view .LVU1159
1361:Middlewares/Third_Party/FatFs/src/ff.c **** scl = fs->last_clst; /* Get suggested cluster to start from */
3578 .loc 1 1361 5 is_stmt 0 view .LVU1160
3579 0008 0F46 mov r7, r1
3580 000a 51B9 cbnz r1, .L275
1362:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0 || scl >= fs->n_fatent) scl = 1;
3581 .loc 1 1362 3 is_stmt 1 view .LVU1161
1362:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0 || scl >= fs->n_fatent) scl = 1;
3582 .loc 1 1362 7 is_stmt 0 view .LVU1162
3583 000c D6F81080 ldr r8, [r6, #16]
3584 .LVL409:
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3585 .loc 1 1363 3 is_stmt 1 view .LVU1163
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3586 .loc 1 1363 6 is_stmt 0 view .LVU1164
3587 0010 B8F1000F cmp r8, #0
3588 0014 12D0 beq .L284
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3589 .loc 1 1363 28 discriminator 2 view .LVU1165
3590 0016 B369 ldr r3, [r6, #24]
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3591 .loc 1 1363 16 discriminator 2 view .LVU1166
3592 0018 4345 cmp r3, r8
3593 001a 11D8 bhi .L276
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3594 .loc 1 1363 44 discriminator 3 view .LVU1167
3595 001c 4FF00108 mov r8, #1
3596 .LVL410:
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3597 .loc 1 1363 44 discriminator 3 view .LVU1168
3598 0020 0EE0 b .L276
3599 .LVL411:
3600 .L275:
1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */
3601 .loc 1 1366 3 is_stmt 1 view .LVU1169
1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */
3602 .loc 1 1366 8 is_stmt 0 view .LVU1170
3603 0022 FFF7FEFF bl get_fat
3604 .LVL412:
1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */
3605 .loc 1 1366 8 view .LVU1171
3606 0026 0346 mov r3, r0
ARM GAS /tmp/ccH7dUYB.s page 183
3607 .LVL413:
1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */
3608 .loc 1 1367 3 is_stmt 1 view .LVU1172
1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */
3609 .loc 1 1367 6 is_stmt 0 view .LVU1173
3610 0028 0128 cmp r0, #1
3611 002a 4CD9 bls .L286
1368:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */
3612 .loc 1 1368 3 is_stmt 1 view .LVU1174
1368:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */
3613 .loc 1 1368 6 is_stmt 0 view .LVU1175
3614 002c B0F1FF3F cmp r0, #-1
3615 0030 4ED0 beq .L274
1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst;
3616 .loc 1 1369 3 is_stmt 1 view .LVU1176
1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst;
3617 .loc 1 1369 14 is_stmt 0 view .LVU1177
3618 0032 B269 ldr r2, [r6, #24]
1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst;
3619 .loc 1 1369 6 view .LVU1178
3620 0034 8242 cmp r2, r0
3621 0036 4BD8 bhi .L274
1370:Middlewares/Third_Party/FatFs/src/ff.c **** }
3622 .loc 1 1370 7 view .LVU1179
3623 0038 B846 mov r8, r7
3624 003a 01E0 b .L276
3625 .LVL414:
3626 .L284:
1363:Middlewares/Third_Party/FatFs/src/ff.c **** }
3627 .loc 1 1363 44 discriminator 3 view .LVU1180
3628 003c 4FF00108 mov r8, #1
3629 .LVL415:
3630 .L276:
1400:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
3631 .loc 1 1400 3 is_stmt 1 view .LVU1181
1400:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
3632 .loc 1 1400 7 is_stmt 0 view .LVU1182
3633 0040 4446 mov r4, r8
3634 0042 0CE0 b .L280
3635 .LVL416:
3636 .L278:
1407:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0) break; /* Found a free cluster */
3637 .loc 1 1407 4 is_stmt 1 view .LVU1183
1407:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0) break; /* Found a free cluster */
3638 .loc 1 1407 9 is_stmt 0 view .LVU1184
3639 0044 2146 mov r1, r4
3640 0046 2846 mov r0, r5
3641 0048 FFF7FEFF bl get_fat
3642 .LVL417:
1408:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */
3643 .loc 1 1408 4 is_stmt 1 view .LVU1185
1408:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */
3644 .loc 1 1408 7 is_stmt 0 view .LVU1186
3645 004c 0346 mov r3, r0
3646 004e 78B1 cbz r0, .L279
1409:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == scl) return 0; /* No free cluster */
3647 .loc 1 1409 4 is_stmt 1 view .LVU1187
ARM GAS /tmp/ccH7dUYB.s page 184
1409:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == scl) return 0; /* No free cluster */
3648 .loc 1 1409 7 is_stmt 0 view .LVU1188
3649 0050 B0F1FF3F cmp r0, #-1
3650 0054 18BF it ne
3651 0056 0128 cmpne r0, #1
3652 0058 3AD0 beq .L274
1410:Middlewares/Third_Party/FatFs/src/ff.c **** }
3653 .loc 1 1410 4 is_stmt 1 view .LVU1189
1410:Middlewares/Third_Party/FatFs/src/ff.c **** }
3654 .loc 1 1410 7 is_stmt 0 view .LVU1190
3655 005a 4445 cmp r4, r8
3656 005c 37D0 beq .L291
3657 .LVL418:
3658 .L280:
1401:Middlewares/Third_Party/FatFs/src/ff.c **** ncl++; /* Next cluster */
3659 .loc 1 1401 3 is_stmt 1 view .LVU1191
1402:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl >= fs->n_fatent) { /* Check wrap-around */
3660 .loc 1 1402 4 view .LVU1192
1402:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl >= fs->n_fatent) { /* Check wrap-around */
3661 .loc 1 1402 7 is_stmt 0 view .LVU1193
3662 005e 0134 adds r4, r4, #1
3663 .LVL419:
1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2;
3664 .loc 1 1403 4 is_stmt 1 view .LVU1194
1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2;
3665 .loc 1 1403 17 is_stmt 0 view .LVU1195
3666 0060 B369 ldr r3, [r6, #24]
1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2;
3667 .loc 1 1403 7 view .LVU1196
3668 0062 A342 cmp r3, r4
3669 0064 EED8 bhi .L278
1404:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl > scl) return 0; /* No free cluster */
3670 .loc 1 1404 5 is_stmt 1 view .LVU1197
3671 .LVL420:
1405:Middlewares/Third_Party/FatFs/src/ff.c **** }
3672 .loc 1 1405 5 view .LVU1198
1405:Middlewares/Third_Party/FatFs/src/ff.c **** }
3673 .loc 1 1405 8 is_stmt 0 view .LVU1199
3674 0066 B8F1010F cmp r8, #1
3675 006a 2ED9 bls .L287
1404:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl > scl) return 0; /* No free cluster */
3676 .loc 1 1404 9 view .LVU1200
3677 006c 0224 movs r4, #2
3678 006e E9E7 b .L278
3679 .LVL421:
3680 .L279:
1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) {
3681 .loc 1 1412 3 is_stmt 1 view .LVU1201
1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) {
3682 .loc 1 1412 9 is_stmt 0 view .LVU1202
3683 0070 4FF0FF32 mov r2, #-1
3684 0074 2146 mov r1, r4
3685 0076 3046 mov r0, r6
3686 .LVL422:
1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) {
3687 .loc 1 1412 9 view .LVU1203
3688 0078 FFF7FEFF bl put_fat
ARM GAS /tmp/ccH7dUYB.s page 185
3689 .LVL423:
1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
3690 .loc 1 1413 3 is_stmt 1 view .LVU1204
1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
3691 .loc 1 1413 11 is_stmt 0 view .LVU1205
3692 007c 0246 mov r2, r0
1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
3693 .loc 1 1413 20 view .LVU1206
3694 007e B0FA80F0 clz r0, r0
3695 .LVL424:
1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
3696 .loc 1 1413 20 view .LVU1207
3697 0082 4009 lsrs r0, r0, #5
3698 0084 002F cmp r7, #0
3699 0086 08BF it eq
3700 0088 0020 moveq r0, #0
1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */
3701 .loc 1 1413 6 view .LVU1208
3702 008a 70B9 cbnz r0, .L292
3703 .LVL425:
3704 .L281:
1418:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ncl;
3705 .loc 1 1418 2 is_stmt 1 view .LVU1209
1418:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ncl;
3706 .loc 1 1418 5 is_stmt 0 view .LVU1210
3707 008c A2B9 cbnz r2, .L282
1419:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--;
3708 .loc 1 1419 3 is_stmt 1 view .LVU1211
1419:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--;
3709 .loc 1 1419 17 is_stmt 0 view .LVU1212
3710 008e 3461 str r4, [r6, #16]
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3711 .loc 1 1420 3 is_stmt 1 view .LVU1213
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3712 .loc 1 1420 9 is_stmt 0 view .LVU1214
3713 0090 7269 ldr r2, [r6, #20]
3714 .LVL426:
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3715 .loc 1 1420 26 view .LVU1215
3716 0092 B369 ldr r3, [r6, #24]
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3717 .loc 1 1420 37 view .LVU1216
3718 0094 023B subs r3, r3, #2
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3719 .loc 1 1420 6 view .LVU1217
3720 0096 9A42 cmp r2, r3
3721 0098 01D8 bhi .L283
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3722 .loc 1 1420 42 is_stmt 1 discriminator 1 view .LVU1218
1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3723 .loc 1 1420 55 is_stmt 0 discriminator 1 view .LVU1219
3724 009a 013A subs r2, r2, #1
3725 009c 7261 str r2, [r6, #20]
3726 .L283:
1421:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3727 .loc 1 1421 3 is_stmt 1 view .LVU1220
1421:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
ARM GAS /tmp/ccH7dUYB.s page 186
3728 .loc 1 1421 5 is_stmt 0 view .LVU1221
3729 009e 3379 ldrb r3, [r6, #4] @ zero_extendqisi2
1421:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
3730 .loc 1 1421 16 view .LVU1222
3731 00a0 43F00103 orr r3, r3, #1
3732 00a4 3371 strb r3, [r6, #4]
3733 00a6 2346 mov r3, r4
3734 00a8 12E0 b .L274
3735 .LVL427:
3736 .L292:
1414:Middlewares/Third_Party/FatFs/src/ff.c **** }
3737 .loc 1 1414 4 is_stmt 1 view .LVU1223
1414:Middlewares/Third_Party/FatFs/src/ff.c **** }
3738 .loc 1 1414 10 is_stmt 0 view .LVU1224
3739 00aa 2246 mov r2, r4
3740 .LVL428:
1414:Middlewares/Third_Party/FatFs/src/ff.c **** }
3741 .loc 1 1414 10 view .LVU1225
3742 00ac 3946 mov r1, r7
3743 00ae 3046 mov r0, r6
3744 00b0 FFF7FEFF bl put_fat
3745 .LVL429:
3746 00b4 0246 mov r2, r0
3747 .LVL430:
1414:Middlewares/Third_Party/FatFs/src/ff.c **** }
3748 .loc 1 1414 10 view .LVU1226
3749 00b6 E9E7 b .L281
3750 .L282:
1423:Middlewares/Third_Party/FatFs/src/ff.c **** }
3751 .loc 1 1423 3 is_stmt 1 view .LVU1227
1423:Middlewares/Third_Party/FatFs/src/ff.c **** }
3752 .loc 1 1423 43 is_stmt 0 view .LVU1228
3753 00b8 012A cmp r2, #1
3754 00ba 01D0 beq .L293
1423:Middlewares/Third_Party/FatFs/src/ff.c **** }
3755 .loc 1 1423 43 discriminator 2 view .LVU1229
3756 00bc 0123 movs r3, #1
3757 .LVL431:
1423:Middlewares/Third_Party/FatFs/src/ff.c **** }
3758 .loc 1 1423 43 discriminator 2 view .LVU1230
3759 00be 07E0 b .L274
3760 .LVL432:
3761 .L293:
1423:Middlewares/Third_Party/FatFs/src/ff.c **** }
3762 .loc 1 1423 43 discriminator 1 view .LVU1231
3763 00c0 4FF0FF33 mov r3, #-1
3764 00c4 04E0 b .L274
3765 .LVL433:
3766 .L286:
1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */
3767 .loc 1 1367 22 discriminator 1 view .LVU1232
3768 00c6 0123 movs r3, #1
3769 00c8 02E0 b .L274
3770 .LVL434:
3771 .L287:
1405:Middlewares/Third_Party/FatFs/src/ff.c **** }
3772 .loc 1 1405 27 discriminator 1 view .LVU1233
ARM GAS /tmp/ccH7dUYB.s page 187
3773 00ca 0023 movs r3, #0
3774 00cc 00E0 b .L274
3775 .LVL435:
3776 .L291:
1410:Middlewares/Third_Party/FatFs/src/ff.c **** }
3777 .loc 1 1410 27 discriminator 1 view .LVU1234
3778 00ce 0023 movs r3, #0
3779 .LVL436:
3780 .L274:
1427:Middlewares/Third_Party/FatFs/src/ff.c ****
3781 .loc 1 1427 1 view .LVU1235
3782 00d0 1846 mov r0, r3
3783 00d2 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1427:Middlewares/Third_Party/FatFs/src/ff.c ****
3784 .loc 1 1427 1 view .LVU1236
3785 .cfi_endproc
3786 .LFE1203:
3788 .section .text.remove_chain,"ax",%progbits
3789 .align 1
3790 .syntax unified
3791 .thumb
3792 .thumb_func
3794 remove_chain:
3795 .LVL437:
3796 .LFB1202:
1276:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
3797 .loc 1 1276 1 is_stmt 1 view -0
3798 .cfi_startproc
3799 @ args = 0, pretend = 0, frame = 0
3800 @ frame_needed = 0, uses_anonymous_args = 0
1276:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK;
3801 .loc 1 1276 1 is_stmt 0 view .LVU1238
3802 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
3803 .LCFI26:
3804 .cfi_def_cfa_offset 24
3805 .cfi_offset 3, -24
3806 .cfi_offset 4, -20
3807 .cfi_offset 5, -16
3808 .cfi_offset 6, -12
3809 .cfi_offset 7, -8
3810 .cfi_offset 14, -4
3811 0002 0C46 mov r4, r1
1277:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nxt;
3812 .loc 1 1277 2 is_stmt 1 view .LVU1239
3813 .LVL438:
1278:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
3814 .loc 1 1278 2 view .LVU1240
1279:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM
3815 .loc 1 1279 2 view .LVU1241
1279:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM
3816 .loc 1 1279 9 is_stmt 0 view .LVU1242
3817 0004 0568 ldr r5, [r0]
3818 .LVL439:
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3819 .loc 1 1287 2 is_stmt 1 view .LVU1243
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3820 .loc 1 1287 5 is_stmt 0 view .LVU1244
ARM GAS /tmp/ccH7dUYB.s page 188
3821 0006 0129 cmp r1, #1
3822 0008 2ED9 bls .L299
3823 000a 0646 mov r6, r0
3824 000c 1146 mov r1, r2
3825 .LVL440:
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3826 .loc 1 1287 28 discriminator 2 view .LVU1245
3827 000e AB69 ldr r3, [r5, #24]
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3828 .loc 1 1287 15 discriminator 2 view .LVU1246
3829 0010 A342 cmp r3, r4
3830 0012 2BD9 bls .L300
1290:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, pclst, 0xFFFFFFFF);
3831 .loc 1 1290 2 is_stmt 1 view .LVU1247
1290:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, pclst, 0xFFFFFFFF);
3832 .loc 1 1290 5 is_stmt 0 view .LVU1248
3833 0014 4AB1 cbz r2, .L298
1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3834 .loc 1 1291 3 is_stmt 1 view .LVU1249
1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3835 .loc 1 1291 9 is_stmt 0 view .LVU1250
3836 0016 4FF0FF32 mov r2, #-1
3837 .LVL441:
1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3838 .loc 1 1291 9 view .LVU1251
3839 001a 2846 mov r0, r5
3840 .LVL442:
1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3841 .loc 1 1291 9 view .LVU1252
3842 001c FFF7FEFF bl put_fat
3843 .LVL443:
1292:Middlewares/Third_Party/FatFs/src/ff.c **** }
3844 .loc 1 1292 3 is_stmt 1 view .LVU1253
1292:Middlewares/Third_Party/FatFs/src/ff.c **** }
3845 .loc 1 1292 6 is_stmt 0 view .LVU1254
3846 0020 0746 mov r7, r0
3847 0022 10B1 cbz r0, .L298
3848 0024 23E0 b .L295
3849 .LVL444:
3850 .L297:
1327:Middlewares/Third_Party/FatFs/src/ff.c **** } while (clst < fs->n_fatent); /* Repeat while not the last link */
3851 .loc 1 1327 3 is_stmt 1 view .LVU1255
1328:Middlewares/Third_Party/FatFs/src/ff.c ****
3852 .loc 1 1328 16 view .LVU1256
3853 0026 A242 cmp r2, r4
3854 0028 21D9 bls .L295
3855 .LVL445:
3856 .L298:
1296:Middlewares/Third_Party/FatFs/src/ff.c **** nxt = get_fat(obj, clst); /* Get cluster status */
3857 .loc 1 1296 2 view .LVU1257
1297:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0) break; /* Empty cluster? */
3858 .loc 1 1297 3 view .LVU1258
3859 002a 2746 mov r7, r4
1297:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0) break; /* Empty cluster? */
3860 .loc 1 1297 9 is_stmt 0 view .LVU1259
3861 002c 2146 mov r1, r4
3862 002e 3046 mov r0, r6
ARM GAS /tmp/ccH7dUYB.s page 189
3863 0030 FFF7FEFF bl get_fat
3864 .LVL446:
1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */
3865 .loc 1 1298 3 is_stmt 1 view .LVU1260
1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */
3866 .loc 1 1298 6 is_stmt 0 view .LVU1261
3867 0034 0446 mov r4, r0
3868 .LVL447:
1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */
3869 .loc 1 1298 6 view .LVU1262
3870 0036 E0B1 cbz r0, .L301
1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */
3871 .loc 1 1299 3 is_stmt 1 view .LVU1263
1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */
3872 .loc 1 1299 6 is_stmt 0 view .LVU1264
3873 0038 0128 cmp r0, #1
3874 003a 1CD0 beq .L302
1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3875 .loc 1 1300 3 is_stmt 1 view .LVU1265
1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3876 .loc 1 1300 6 is_stmt 0 view .LVU1266
3877 003c B0F1FF3F cmp r0, #-1
3878 0040 1BD0 beq .L303
1301:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */
3879 .loc 1 1301 3 is_stmt 1 view .LVU1267
1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3880 .loc 1 1302 4 view .LVU1268
1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3881 .loc 1 1302 10 is_stmt 0 view .LVU1269
3882 0042 0022 movs r2, #0
3883 0044 3946 mov r1, r7
3884 0046 2846 mov r0, r5
3885 .LVL448:
1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
3886 .loc 1 1302 10 view .LVU1270
3887 0048 FFF7FEFF bl put_fat
3888 .LVL449:
1303:Middlewares/Third_Party/FatFs/src/ff.c **** }
3889 .loc 1 1303 4 is_stmt 1 view .LVU1271
1303:Middlewares/Third_Party/FatFs/src/ff.c **** }
3890 .loc 1 1303 7 is_stmt 0 view .LVU1272
3891 004c 0746 mov r7, r0
3892 .LVL450:
1303:Middlewares/Third_Party/FatFs/src/ff.c **** }
3893 .loc 1 1303 7 view .LVU1273
3894 004e 70B9 cbnz r0, .L295
1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
3895 .loc 1 1305 3 is_stmt 1 view .LVU1274
1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
3896 .loc 1 1305 9 is_stmt 0 view .LVU1275
3897 0050 6B69 ldr r3, [r5, #20]
1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
3898 .loc 1 1305 25 view .LVU1276
3899 0052 AA69 ldr r2, [r5, #24]
1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
3900 .loc 1 1305 36 view .LVU1277
3901 0054 911E subs r1, r2, #2
ARM GAS /tmp/ccH7dUYB.s page 190
1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++;
3902 .loc 1 1305 6 view .LVU1278
3903 0056 8B42 cmp r3, r1
3904 0058 E5D2 bcs .L297
1306:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3905 .loc 1 1306 4 is_stmt 1 view .LVU1279
1306:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1;
3906 .loc 1 1306 17 is_stmt 0 view .LVU1280
3907 005a 0133 adds r3, r3, #1
3908 005c 6B61 str r3, [r5, #20]
1307:Middlewares/Third_Party/FatFs/src/ff.c **** }
3909 .loc 1 1307 4 is_stmt 1 view .LVU1281
1307:Middlewares/Third_Party/FatFs/src/ff.c **** }
3910 .loc 1 1307 6 is_stmt 0 view .LVU1282
3911 005e 2B79 ldrb r3, [r5, #4] @ zero_extendqisi2
1307:Middlewares/Third_Party/FatFs/src/ff.c **** }
3912 .loc 1 1307 17 view .LVU1283
3913 0060 43F00103 orr r3, r3, #1
3914 0064 2B71 strb r3, [r5, #4]
3915 0066 DEE7 b .L297
3916 .LVL451:
3917 .L299:
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3918 .loc 1 1287 47 discriminator 3 view .LVU1284
3919 0068 0227 movs r7, #2
3920 006a 00E0 b .L295
3921 .LVL452:
3922 .L300:
1287:Middlewares/Third_Party/FatFs/src/ff.c ****
3923 .loc 1 1287 47 discriminator 3 view .LVU1285
3924 006c 0227 movs r7, #2
3925 .LVL453:
3926 .L295:
1342:Middlewares/Third_Party/FatFs/src/ff.c ****
3927 .loc 1 1342 1 view .LVU1286
3928 006e 3846 mov r0, r7
3929 0070 F8BD pop {r3, r4, r5, r6, r7, pc}
3930 .LVL454:
3931 .L301:
1341:Middlewares/Third_Party/FatFs/src/ff.c **** }
3932 .loc 1 1341 9 view .LVU1287
3933 0072 0027 movs r7, #0
3934 .LVL455:
1341:Middlewares/Third_Party/FatFs/src/ff.c **** }
3935 .loc 1 1341 9 view .LVU1288
3936 0074 FBE7 b .L295
3937 .LVL456:
3938 .L302:
1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */
3939 .loc 1 1299 24 discriminator 1 view .LVU1289
3940 0076 0227 movs r7, #2
3941 .LVL457:
1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */
3942 .loc 1 1299 24 discriminator 1 view .LVU1290
3943 0078 F9E7 b .L295
3944 .LVL458:
3945 .L303:
ARM GAS /tmp/ccH7dUYB.s page 191
1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3946 .loc 1 1300 33 discriminator 1 view .LVU1291
3947 007a 0127 movs r7, #1
3948 .LVL459:
1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
3949 .loc 1 1300 33 discriminator 1 view .LVU1292
3950 007c F7E7 b .L295
3951 .cfi_endproc
3952 .LFE1202:
3954 .section .text.dir_remove,"ax",%progbits
3955 .align 1
3956 .syntax unified
3957 .thumb
3958 .thumb_func
3960 dir_remove:
3961 .LVL460:
3962 .LFB1213:
2399:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3963 .loc 1 2399 1 is_stmt 1 view -0
3964 .cfi_startproc
3965 @ args = 0, pretend = 0, frame = 0
3966 @ frame_needed = 0, uses_anonymous_args = 0
2399:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
3967 .loc 1 2399 1 is_stmt 0 view .LVU1294
3968 0000 38B5 push {r3, r4, r5, lr}
3969 .LCFI27:
3970 .cfi_def_cfa_offset 16
3971 .cfi_offset 3, -16
3972 .cfi_offset 4, -12
3973 .cfi_offset 5, -8
3974 .cfi_offset 14, -4
3975 0002 0446 mov r4, r0
2400:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
3976 .loc 1 2400 2 is_stmt 1 view .LVU1295
2401:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
3977 .loc 1 2401 2 view .LVU1296
2401:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
3978 .loc 1 2401 9 is_stmt 0 view .LVU1297
3979 0004 0568 ldr r5, [r0]
3980 .LVL461:
2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3981 .loc 1 2424 2 is_stmt 1 view .LVU1298
2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3982 .loc 1 2424 8 is_stmt 0 view .LVU1299
3983 0006 C169 ldr r1, [r0, #28]
3984 0008 2846 mov r0, r5
3985 .LVL462:
2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
3986 .loc 1 2424 8 view .LVU1300
3987 000a FFF7FEFF bl move_window
3988 .LVL463:
2425:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM;
3989 .loc 1 2425 2 is_stmt 1 view .LVU1301
2425:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM;
3990 .loc 1 2425 5 is_stmt 0 view .LVU1302
3991 000e 20B9 cbnz r0, .L306
2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
ARM GAS /tmp/ccH7dUYB.s page 192
3992 .loc 1 2426 3 is_stmt 1 view .LVU1303
2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3993 .loc 1 2426 5 is_stmt 0 view .LVU1304
3994 0010 236A ldr r3, [r4, #32]
2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
3995 .loc 1 2426 21 view .LVU1305
3996 0012 E522 movs r2, #229
3997 0014 1A70 strb r2, [r3]
2427:Middlewares/Third_Party/FatFs/src/ff.c **** }
3998 .loc 1 2427 3 is_stmt 1 view .LVU1306
2427:Middlewares/Third_Party/FatFs/src/ff.c **** }
3999 .loc 1 2427 13 is_stmt 0 view .LVU1307
4000 0016 0123 movs r3, #1
4001 0018 EB70 strb r3, [r5, #3]
4002 .L306:
2431:Middlewares/Third_Party/FatFs/src/ff.c **** }
4003 .loc 1 2431 2 is_stmt 1 view .LVU1308
2432:Middlewares/Third_Party/FatFs/src/ff.c ****
4004 .loc 1 2432 1 is_stmt 0 view .LVU1309
4005 001a 38BD pop {r3, r4, r5, pc}
2432:Middlewares/Third_Party/FatFs/src/ff.c ****
4006 .loc 1 2432 1 view .LVU1310
4007 .cfi_endproc
4008 .LFE1213:
4010 .section .text.dir_next,"ax",%progbits
4011 .align 1
4012 .syntax unified
4013 .thumb
4014 .thumb_func
4016 dir_next:
4017 .LVL464:
4018 .LFB1206:
1523:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs, clst;
4019 .loc 1 1523 1 is_stmt 1 view -0
4020 .cfi_startproc
4021 @ args = 0, pretend = 0, frame = 0
4022 @ frame_needed = 0, uses_anonymous_args = 0
1523:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs, clst;
4023 .loc 1 1523 1 is_stmt 0 view .LVU1312
4024 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
4025 .LCFI28:
4026 .cfi_def_cfa_offset 32
4027 .cfi_offset 3, -32
4028 .cfi_offset 4, -28
4029 .cfi_offset 5, -24
4030 .cfi_offset 6, -20
4031 .cfi_offset 7, -16
4032 .cfi_offset 8, -12
4033 .cfi_offset 9, -8
4034 .cfi_offset 14, -4
1524:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4035 .loc 1 1524 2 is_stmt 1 view .LVU1313
1525:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4036 .loc 1 1525 2 view .LVU1314
1525:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4037 .loc 1 1525 9 is_stmt 0 view .LVU1315
4038 0004 0668 ldr r6, [r0]
ARM GAS /tmp/ccH7dUYB.s page 193
4039 .LVL465:
1527:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4040 .loc 1 1527 2 is_stmt 1 view .LVU1316
1530:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect || ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) re
4041 .loc 1 1530 2 view .LVU1317
1530:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect || ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) re
4042 .loc 1 1530 10 is_stmt 0 view .LVU1318
4043 0006 4469 ldr r4, [r0, #20]
4044 .LVL466:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4045 .loc 1 1531 2 is_stmt 1 view .LVU1319
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4046 .loc 1 1531 9 is_stmt 0 view .LVU1320
4047 0008 C369 ldr r3, [r0, #28]
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4048 .loc 1 1531 5 view .LVU1321
4049 000a 002B cmp r3, #0
4050 000c 74D0 beq .L316
4051 000e 0546 mov r5, r0
4052 0010 0F46 mov r7, r1
4053 0012 2034 adds r4, r4, #32
4054 .LVL467:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4055 .loc 1 1531 16 discriminator 2 view .LVU1322
4056 0014 B4F5001F cmp r4, #2097152
4057 0018 70D2 bcs .L317
1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */
4058 .loc 1 1533 2 is_stmt 1 view .LVU1323
1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */
4059 .loc 1 1533 12 is_stmt 0 view .LVU1324
4060 001a B189 ldrh r1, [r6, #12]
4061 .LVL468:
1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */
4062 .loc 1 1533 10 view .LVU1325
4063 001c B4FBF1F2 udiv r2, r4, r1
4064 0020 01FB1242 mls r2, r1, r2, r4
1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */
4065 .loc 1 1533 5 view .LVU1326
4066 0024 3AB9 cbnz r2, .L310
1534:Middlewares/Third_Party/FatFs/src/ff.c ****
4067 .loc 1 1534 3 is_stmt 1 view .LVU1327
1534:Middlewares/Third_Party/FatFs/src/ff.c ****
4068 .loc 1 1534 11 is_stmt 0 view .LVU1328
4069 0026 0133 adds r3, r3, #1
4070 0028 C361 str r3, [r0, #28]
1536:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */
4071 .loc 1 1536 3 is_stmt 1 view .LVU1329
1536:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */
4072 .loc 1 1536 10 is_stmt 0 view .LVU1330
4073 002a 8169 ldr r1, [r0, #24]
1536:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */
4074 .loc 1 1536 6 view .LVU1331
4075 002c A1B9 cbnz r1, .L311
1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
4076 .loc 1 1537 4 is_stmt 1 view .LVU1332
1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
4077 .loc 1 1537 26 is_stmt 0 view .LVU1333
ARM GAS /tmp/ccH7dUYB.s page 194
4078 002e 3389 ldrh r3, [r6, #8]
1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
4079 .loc 1 1537 7 view .LVU1334
4080 0030 B3EB541F cmp r3, r4, lsr #5
4081 0034 0CD9 bls .L326
4082 .LVL469:
4083 .L310:
1574:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */
4084 .loc 1 1574 2 is_stmt 1 view .LVU1335
1574:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */
4085 .loc 1 1574 11 is_stmt 0 view .LVU1336
4086 0036 6C61 str r4, [r5, #20]
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4087 .loc 1 1575 2 is_stmt 1 view .LVU1337
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4088 .loc 1 1575 12 is_stmt 0 view .LVU1338
4089 0038 06F13403 add r3, r6, #52
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4090 .loc 1 1575 28 view .LVU1339
4091 003c B289 ldrh r2, [r6, #12]
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4092 .loc 1 1575 26 view .LVU1340
4093 003e B4FBF2F1 udiv r1, r4, r2
4094 0042 02FB1144 mls r4, r2, r1, r4
4095 .LVL470:
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4096 .loc 1 1575 20 view .LVU1341
4097 0046 2344 add r3, r3, r4
1575:Middlewares/Third_Party/FatFs/src/ff.c ****
4098 .loc 1 1575 10 view .LVU1342
4099 0048 2B62 str r3, [r5, #32]
1577:Middlewares/Third_Party/FatFs/src/ff.c **** }
4100 .loc 1 1577 2 is_stmt 1 view .LVU1343
1577:Middlewares/Third_Party/FatFs/src/ff.c **** }
4101 .loc 1 1577 9 is_stmt 0 view .LVU1344
4102 004a 0020 movs r0, #0
4103 .LVL471:
4104 .L309:
1578:Middlewares/Third_Party/FatFs/src/ff.c ****
4105 .loc 1 1578 1 view .LVU1345
4106 004c BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
4107 .LVL472:
4108 .L326:
1538:Middlewares/Third_Party/FatFs/src/ff.c **** }
4109 .loc 1 1538 5 is_stmt 1 view .LVU1346
1538:Middlewares/Third_Party/FatFs/src/ff.c **** }
4110 .loc 1 1538 14 is_stmt 0 view .LVU1347
4111 0050 0023 movs r3, #0
4112 0052 C361 str r3, [r0, #28]
1538:Middlewares/Third_Party/FatFs/src/ff.c **** }
4113 .loc 1 1538 19 is_stmt 1 view .LVU1348
1538:Middlewares/Third_Party/FatFs/src/ff.c **** }
4114 .loc 1 1538 26 is_stmt 0 view .LVU1349
4115 0054 0420 movs r0, #4
4116 .LVL473:
1538:Middlewares/Third_Party/FatFs/src/ff.c **** }
4117 .loc 1 1538 26 view .LVU1350
ARM GAS /tmp/ccH7dUYB.s page 195
4118 0056 F9E7 b .L309
4119 .LVL474:
4120 .L311:
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4121 .loc 1 1542 4 is_stmt 1 view .LVU1351
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4122 .loc 1 1542 15 is_stmt 0 view .LVU1352
4123 0058 B289 ldrh r2, [r6, #12]
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4124 .loc 1 1542 13 view .LVU1353
4125 005a B4FBF2F2 udiv r2, r4, r2
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4126 .loc 1 1542 27 view .LVU1354
4127 005e 7389 ldrh r3, [r6, #10]
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4128 .loc 1 1542 35 view .LVU1355
4129 0060 013B subs r3, r3, #1
1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */
4130 .loc 1 1542 7 view .LVU1356
4131 0062 12EA0308 ands r8, r2, r3
4132 0066 E6D1 bne .L310
1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */
4133 .loc 1 1543 5 is_stmt 1 view .LVU1357
1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */
4134 .loc 1 1543 12 is_stmt 0 view .LVU1358
4135 0068 FFF7FEFF bl get_fat
4136 .LVL475:
1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */
4137 .loc 1 1543 12 view .LVU1359
4138 006c 8146 mov r9, r0
4139 .LVL476:
1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4140 .loc 1 1544 5 is_stmt 1 view .LVU1360
1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4141 .loc 1 1544 8 is_stmt 0 view .LVU1361
4142 006e 0128 cmp r0, #1
4143 0070 46D9 bls .L318
1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */
4144 .loc 1 1545 5 is_stmt 1 view .LVU1362
1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */
4145 .loc 1 1545 8 is_stmt 0 view .LVU1363
4146 0072 B0F1FF3F cmp r0, #-1
4147 0076 45D0 beq .L319
1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4148 .loc 1 1546 5 is_stmt 1 view .LVU1364
1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4149 .loc 1 1546 19 is_stmt 0 view .LVU1365
4150 0078 B369 ldr r3, [r6, #24]
1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
4151 .loc 1 1546 8 view .LVU1366
4152 007a 8342 cmp r3, r0
4153 007c 34D8 bhi .L312
1548:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
4154 .loc 1 1548 6 is_stmt 1 view .LVU1367
1548:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE;
4155 .loc 1 1548 9 is_stmt 0 view .LVU1368
4156 007e 8FB1 cbz r7, .L327
ARM GAS /tmp/ccH7dUYB.s page 196
1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */
4157 .loc 1 1551 6 is_stmt 1 view .LVU1369
1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */
4158 .loc 1 1551 13 is_stmt 0 view .LVU1370
4159 0080 A969 ldr r1, [r5, #24]
4160 0082 2846 mov r0, r5
4161 .LVL477:
1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */
4162 .loc 1 1551 13 view .LVU1371
4163 0084 FFF7FEFF bl create_chain
4164 .LVL478:
1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */
4165 .loc 1 1552 6 is_stmt 1 view .LVU1372
1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */
4166 .loc 1 1552 9 is_stmt 0 view .LVU1373
4167 0088 8146 mov r9, r0
4168 008a 0028 cmp r0, #0
4169 008c 3CD0 beq .L320
1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4170 .loc 1 1553 6 is_stmt 1 view .LVU1374
1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4171 .loc 1 1553 9 is_stmt 0 view .LVU1375
4172 008e 0128 cmp r0, #1
4173 0090 3CD0 beq .L321
1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */
4174 .loc 1 1554 6 is_stmt 1 view .LVU1376
1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */
4175 .loc 1 1554 9 is_stmt 0 view .LVU1377
4176 0092 B0F1FF3F cmp r0, #-1
4177 0096 3BD0 beq .L322
1556:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */
4178 .loc 1 1556 6 is_stmt 1 view .LVU1378
1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
4179 .loc 1 1557 6 view .LVU1379
1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
4180 .loc 1 1557 10 is_stmt 0 view .LVU1380
4181 0098 3046 mov r0, r6
4182 .LVL479:
1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
4183 .loc 1 1557 10 view .LVU1381
4184 009a FFF7FEFF bl sync_window
4185 .LVL480:
1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
4186 .loc 1 1557 9 discriminator 1 view .LVU1382
4187 009e 28B1 cbz r0, .L328
1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */
4188 .loc 1 1557 43 discriminator 1 view .LVU1383
4189 00a0 0120 movs r0, #1
4190 00a2 D3E7 b .L309
4191 .LVL481:
4192 .L327:
1549:Middlewares/Third_Party/FatFs/src/ff.c **** }
4193 .loc 1 1549 7 is_stmt 1 view .LVU1384
1549:Middlewares/Third_Party/FatFs/src/ff.c **** }
4194 .loc 1 1549 16 is_stmt 0 view .LVU1385
4195 00a4 0023 movs r3, #0
4196 00a6 EB61 str r3, [r5, #28]
ARM GAS /tmp/ccH7dUYB.s page 197
1549:Middlewares/Third_Party/FatFs/src/ff.c **** }
4197 .loc 1 1549 21 is_stmt 1 view .LVU1386
1549:Middlewares/Third_Party/FatFs/src/ff.c **** }
4198 .loc 1 1549 28 is_stmt 0 view .LVU1387
4199 00a8 0420 movs r0, #4
4200 .LVL482:
1549:Middlewares/Third_Party/FatFs/src/ff.c **** }
4201 .loc 1 1549 28 view .LVU1388
4202 00aa CFE7 b .L309
4203 .L328:
1558:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 0, fs->winsect = clust2sect(fs, clst); n < fs->csize; n++, fs->winsect++) { /* Fill t
4204 .loc 1 1558 6 is_stmt 1 view .LVU1389
4205 00ac B289 ldrh r2, [r6, #12]
4206 00ae 0021 movs r1, #0
4207 00b0 06F13400 add r0, r6, #52
4208 00b4 FFF7FEFF bl mem_set
4209 .LVL483:
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4210 .loc 1 1559 6 view .LVU1390
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4211 .loc 1 1559 32 is_stmt 0 view .LVU1391
4212 00b8 4946 mov r1, r9
4213 00ba 3046 mov r0, r6
4214 00bc FFF7FEFF bl clust2sect
4215 .LVL484:
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4216 .loc 1 1559 30 discriminator 1 view .LVU1392
4217 00c0 3063 str r0, [r6, #48]
4218 .LVL485:
4219 .L314:
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4220 .loc 1 1559 56 is_stmt 1 discriminator 1 view .LVU1393
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4221 .loc 1 1559 60 is_stmt 0 discriminator 1 view .LVU1394
4222 00c2 7389 ldrh r3, [r6, #10]
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4223 .loc 1 1559 56 discriminator 1 view .LVU1395
4224 00c4 9845 cmp r8, r3
4225 00c6 0BD2 bcs .L329
1560:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR;
4226 .loc 1 1560 7 is_stmt 1 view .LVU1396
1560:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR;
4227 .loc 1 1560 17 is_stmt 0 view .LVU1397
4228 00c8 0123 movs r3, #1
4229 00ca F370 strb r3, [r6, #3]
1561:Middlewares/Third_Party/FatFs/src/ff.c **** }
4230 .loc 1 1561 7 is_stmt 1 view .LVU1398
1561:Middlewares/Third_Party/FatFs/src/ff.c **** }
4231 .loc 1 1561 11 is_stmt 0 view .LVU1399
4232 00cc 3046 mov r0, r6
4233 00ce FFF7FEFF bl sync_window
4234 .LVL486:
1561:Middlewares/Third_Party/FatFs/src/ff.c **** }
4235 .loc 1 1561 10 discriminator 1 view .LVU1400
4236 00d2 F8B9 cbnz r0, .L324
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4237 .loc 1 1559 72 is_stmt 1 discriminator 2 view .LVU1401
ARM GAS /tmp/ccH7dUYB.s page 198
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4238 .loc 1 1559 70 is_stmt 0 discriminator 2 view .LVU1402
4239 00d4 08F10108 add r8, r8, #1
4240 .LVL487:
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4241 .loc 1 1559 76 discriminator 2 view .LVU1403
4242 00d8 336B ldr r3, [r6, #48]
1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
4243 .loc 1 1559 85 discriminator 2 view .LVU1404
4244 00da 0133 adds r3, r3, #1
4245 00dc 3363 str r3, [r6, #48]
4246 00de F0E7 b .L314
4247 .L329:
1563:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4248 .loc 1 1563 6 is_stmt 1 view .LVU1405
1563:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4249 .loc 1 1563 8 is_stmt 0 view .LVU1406
4250 00e0 336B ldr r3, [r6, #48]
1563:Middlewares/Third_Party/FatFs/src/ff.c **** #else
4251 .loc 1 1563 18 view .LVU1407
4252 00e2 A3EB0803 sub r3, r3, r8
4253 00e6 3363 str r3, [r6, #48]
4254 .LVL488:
4255 .L312:
1569:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst);
4256 .loc 1 1569 5 is_stmt 1 view .LVU1408
1569:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst);
4257 .loc 1 1569 15 is_stmt 0 view .LVU1409
4258 00e8 C5F81890 str r9, [r5, #24]
1570:Middlewares/Third_Party/FatFs/src/ff.c **** }
4259 .loc 1 1570 5 is_stmt 1 view .LVU1410
1570:Middlewares/Third_Party/FatFs/src/ff.c **** }
4260 .loc 1 1570 16 is_stmt 0 view .LVU1411
4261 00ec 4946 mov r1, r9
4262 00ee 3046 mov r0, r6
4263 00f0 FFF7FEFF bl clust2sect
4264 .LVL489:
1570:Middlewares/Third_Party/FatFs/src/ff.c **** }
4265 .loc 1 1570 14 discriminator 1 view .LVU1412
4266 00f4 E861 str r0, [r5, #28]
4267 00f6 9EE7 b .L310
4268 .LVL490:
4269 .L316:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4270 .loc 1 1531 105 discriminator 3 view .LVU1413
4271 00f8 0420 movs r0, #4
4272 .LVL491:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4273 .loc 1 1531 105 discriminator 3 view .LVU1414
4274 00fa A7E7 b .L309
4275 .LVL492:
4276 .L317:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
4277 .loc 1 1531 105 discriminator 3 view .LVU1415
4278 00fc 0420 movs r0, #4
4279 .LVL493:
1531:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 199
4280 .loc 1 1531 105 discriminator 3 view .LVU1416
4281 00fe A5E7 b .L309
4282 .LVL494:
4283 .L318:
1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4284 .loc 1 1544 27 discriminator 1 view .LVU1417
4285 0100 0220 movs r0, #2
4286 .LVL495:
1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4287 .loc 1 1544 27 discriminator 1 view .LVU1418
4288 0102 A3E7 b .L309
4289 .LVL496:
4290 .L319:
1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */
4291 .loc 1 1545 36 discriminator 1 view .LVU1419
4292 0104 0120 movs r0, #1
4293 .LVL497:
1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */
4294 .loc 1 1545 36 discriminator 1 view .LVU1420
4295 0106 A1E7 b .L309
4296 .LVL498:
4297 .L320:
1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */
4298 .loc 1 1552 28 discriminator 1 view .LVU1421
4299 0108 0720 movs r0, #7
4300 .LVL499:
1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */
4301 .loc 1 1552 28 discriminator 1 view .LVU1422
4302 010a 9FE7 b .L309
4303 .LVL500:
4304 .L321:
1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4305 .loc 1 1553 28 discriminator 1 view .LVU1423
4306 010c 0220 movs r0, #2
4307 .LVL501:
1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */
4308 .loc 1 1553 28 discriminator 1 view .LVU1424
4309 010e 9DE7 b .L309
4310 .LVL502:
4311 .L322:
1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */
4312 .loc 1 1554 37 discriminator 1 view .LVU1425
4313 0110 0120 movs r0, #1
4314 .LVL503:
1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */
4315 .loc 1 1554 37 discriminator 1 view .LVU1426
4316 0112 9BE7 b .L309
4317 .LVL504:
4318 .L324:
1561:Middlewares/Third_Party/FatFs/src/ff.c **** }
4319 .loc 1 1561 44 discriminator 1 view .LVU1427
4320 0114 0120 movs r0, #1
4321 0116 99E7 b .L309
4322 .cfi_endproc
4323 .LFE1206:
4325 .section .text.dir_find,"ax",%progbits
4326 .align 1
ARM GAS /tmp/ccH7dUYB.s page 200
4327 .syntax unified
4328 .thumb
4329 .thumb_func
4331 dir_find:
4332 .LVL505:
4333 .LFB1211:
2213:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4334 .loc 1 2213 1 is_stmt 1 view -0
4335 .cfi_startproc
4336 @ args = 0, pretend = 0, frame = 0
4337 @ frame_needed = 0, uses_anonymous_args = 0
2213:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4338 .loc 1 2213 1 is_stmt 0 view .LVU1429
4339 0000 70B5 push {r4, r5, r6, lr}
4340 .LCFI29:
4341 .cfi_def_cfa_offset 16
4342 .cfi_offset 4, -16
4343 .cfi_offset 5, -12
4344 .cfi_offset 6, -8
4345 .cfi_offset 14, -4
4346 0002 0446 mov r4, r0
2214:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4347 .loc 1 2214 2 is_stmt 1 view .LVU1430
2215:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c;
4348 .loc 1 2215 2 view .LVU1431
2215:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c;
4349 .loc 1 2215 9 is_stmt 0 view .LVU1432
4350 0004 0668 ldr r6, [r0]
4351 .LVL506:
2216:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
4352 .loc 1 2216 2 is_stmt 1 view .LVU1433
2221:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
4353 .loc 1 2221 2 view .LVU1434
2221:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res;
4354 .loc 1 2221 8 is_stmt 0 view .LVU1435
4355 0006 0021 movs r1, #0
4356 0008 FFF7FEFF bl dir_sdi
4357 .LVL507:
2222:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4358 .loc 1 2222 2 is_stmt 1 view .LVU1436
2222:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4359 .loc 1 2222 5 is_stmt 0 view .LVU1437
4360 000c 0546 mov r5, r0
4361 000e 40B1 cbz r0, .L333
4362 .LVL508:
4363 .L331:
2281:Middlewares/Third_Party/FatFs/src/ff.c ****
4364 .loc 1 2281 1 view .LVU1438
4365 0010 2846 mov r0, r5
4366 0012 70BD pop {r4, r5, r6, pc}
4367 .LVL509:
4368 .L332:
2277:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK);
4369 .loc 1 2277 3 is_stmt 1 view .LVU1439
2277:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK);
4370 .loc 1 2277 9 is_stmt 0 view .LVU1440
4371 0014 0021 movs r1, #0
ARM GAS /tmp/ccH7dUYB.s page 201
4372 0016 2046 mov r0, r4
4373 0018 FFF7FEFF bl dir_next
4374 .LVL510:
2278:Middlewares/Third_Party/FatFs/src/ff.c ****
4375 .loc 1 2278 15 is_stmt 1 view .LVU1441
4376 001c 0546 mov r5, r0
4377 001e 0028 cmp r0, #0
4378 0020 F6D1 bne .L331
4379 .LVL511:
4380 .L333:
2247:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4381 .loc 1 2247 2 view .LVU1442
2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4382 .loc 1 2248 3 view .LVU1443
2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4383 .loc 1 2248 9 is_stmt 0 view .LVU1444
4384 0022 E169 ldr r1, [r4, #28]
4385 0024 3046 mov r0, r6
4386 .LVL512:
2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4387 .loc 1 2248 9 view .LVU1445
4388 0026 FFF7FEFF bl move_window
4389 .LVL513:
2249:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name];
4390 .loc 1 2249 3 is_stmt 1 view .LVU1446
2249:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name];
4391 .loc 1 2249 6 is_stmt 0 view .LVU1447
4392 002a 0546 mov r5, r0
4393 002c 0028 cmp r0, #0
4394 002e EFD1 bne .L331
2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
4395 .loc 1 2250 3 is_stmt 1 view .LVU1448
2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
4396 .loc 1 2250 9 is_stmt 0 view .LVU1449
4397 0030 206A ldr r0, [r4, #32]
4398 .LVL514:
2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
4399 .loc 1 2250 5 view .LVU1450
4400 0032 0378 ldrb r3, [r0] @ zero_extendqisi2
4401 .LVL515:
2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4402 .loc 1 2251 3 is_stmt 1 view .LVU1451
2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4403 .loc 1 2251 6 is_stmt 0 view .LVU1452
4404 0034 7BB1 cbz r3, .L334
2274:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry
4405 .loc 1 2274 3 is_stmt 1 view .LVU1453
2274:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry
4406 .loc 1 2274 25 is_stmt 0 view .LVU1454
4407 0036 C37A ldrb r3, [r0, #11] @ zero_extendqisi2
2274:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry
4408 .loc 1 2274 36 view .LVU1455
4409 0038 03F03F03 and r3, r3, #63
2274:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry
4410 .loc 1 2274 16 view .LVU1456
4411 003c A371 strb r3, [r4, #6]
4412 .LVL516:
ARM GAS /tmp/ccH7dUYB.s page 202
2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4413 .loc 1 2275 3 is_stmt 1 view .LVU1457
2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4414 .loc 1 2275 16 is_stmt 0 view .LVU1458
4415 003e C37A ldrb r3, [r0, #11] @ zero_extendqisi2
2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4416 .loc 1 2275 6 view .LVU1459
4417 0040 13F0080F tst r3, #8
4418 0044 E6D1 bne .L332
2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4419 .loc 1 2275 41 discriminator 1 view .LVU1460
4420 0046 0B22 movs r2, #11
4421 0048 04F12401 add r1, r4, #36
4422 004c FFF7FEFF bl mem_cmp
4423 .LVL517:
2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4424 .loc 1 2275 37 discriminator 1 view .LVU1461
4425 0050 0028 cmp r0, #0
4426 0052 DFD1 bne .L332
4427 0054 DCE7 b .L331
4428 .LVL518:
4429 .L334:
2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4430 .loc 1 2251 21 discriminator 1 view .LVU1462
4431 0056 0425 movs r5, #4
4432 .LVL519:
2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4433 .loc 1 2251 21 discriminator 1 view .LVU1463
4434 0058 DAE7 b .L331
4435 .cfi_endproc
4436 .LFE1211:
4438 .section .text.follow_path,"ax",%progbits
4439 .align 1
4440 .syntax unified
4441 .thumb
4442 .thumb_func
4444 follow_path:
4445 .LVL520:
4446 .LFB1216:
2817:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4447 .loc 1 2817 1 is_stmt 1 view -0
4448 .cfi_startproc
4449 @ args = 0, pretend = 0, frame = 8
4450 @ frame_needed = 0, uses_anonymous_args = 0
2817:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4451 .loc 1 2817 1 is_stmt 0 view .LVU1465
4452 0000 30B5 push {r4, r5, lr}
4453 .LCFI30:
4454 .cfi_def_cfa_offset 12
4455 .cfi_offset 4, -12
4456 .cfi_offset 5, -8
4457 .cfi_offset 14, -4
4458 0002 83B0 sub sp, sp, #12
4459 .LCFI31:
4460 .cfi_def_cfa_offset 24
4461 0004 0446 mov r4, r0
4462 0006 0191 str r1, [sp, #4]
ARM GAS /tmp/ccH7dUYB.s page 203
2818:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ns;
4463 .loc 1 2818 2 is_stmt 1 view .LVU1466
2819:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj = &dp->obj;
4464 .loc 1 2819 2 view .LVU1467
2820:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs;
4465 .loc 1 2820 2 view .LVU1468
4466 .LVL521:
2821:Middlewares/Third_Party/FatFs/src/ff.c ****
4467 .loc 1 2821 2 view .LVU1469
2821:Middlewares/Third_Party/FatFs/src/ff.c ****
4468 .loc 1 2821 9 is_stmt 0 view .LVU1470
4469 0008 0568 ldr r5, [r0]
4470 .LVL522:
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4471 .loc 1 2830 3 is_stmt 1 view .LVU1471
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4472 .loc 1 2830 9 is_stmt 0 view .LVU1472
4473 000a 01E0 b .L337
4474 .L338:
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4475 .loc 1 2830 41 is_stmt 1 discriminator 2 view .LVU1473
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4476 .loc 1 2830 45 is_stmt 0 discriminator 2 view .LVU1474
4477 000c 0133 adds r3, r3, #1
4478 000e 0193 str r3, [sp, #4]
4479 .L337:
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4480 .loc 1 2830 23 is_stmt 1 discriminator 1 view .LVU1475
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4481 .loc 1 2830 10 is_stmt 0 discriminator 1 view .LVU1476
4482 0010 019B ldr r3, [sp, #4]
4483 0012 1A78 ldrb r2, [r3] @ zero_extendqisi2
2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */
4484 .loc 1 2830 23 discriminator 1 view .LVU1477
4485 0014 2F2A cmp r2, #47
4486 0016 F9D0 beq .L338
4487 0018 5C2A cmp r2, #92
4488 001a F7D0 beq .L338
2831:Middlewares/Third_Party/FatFs/src/ff.c **** }
4489 .loc 1 2831 3 is_stmt 1 view .LVU1478
2831:Middlewares/Third_Party/FatFs/src/ff.c **** }
4490 .loc 1 2831 15 is_stmt 0 view .LVU1479
4491 001c 0022 movs r2, #0
4492 001e A260 str r2, [r4, #8]
2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME;
4493 .loc 1 2850 2 is_stmt 1 view .LVU1480
2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME;
4494 .loc 1 2850 12 is_stmt 0 view .LVU1481
4495 0020 1B78 ldrb r3, [r3] @ zero_extendqisi2
2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME;
4496 .loc 1 2850 5 view .LVU1482
4497 0022 1F2B cmp r3, #31
4498 0024 21D9 bls .L345
4499 .LVL523:
4500 .L339:
2855:Middlewares/Third_Party/FatFs/src/ff.c **** res = create_name(dp, &path); /* Get a segment name of the path */
4501 .loc 1 2855 3 is_stmt 1 view .LVU1483
ARM GAS /tmp/ccH7dUYB.s page 204
2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4502 .loc 1 2856 4 view .LVU1484
2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4503 .loc 1 2856 10 is_stmt 0 view .LVU1485
4504 0026 01A9 add r1, sp, #4
4505 0028 2046 mov r0, r4
4506 002a FFF7FEFF bl create_name
4507 .LVL524:
2857:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Find an object with the segment name */
4508 .loc 1 2857 4 is_stmt 1 view .LVU1486
2857:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Find an object with the segment name */
4509 .loc 1 2857 7 is_stmt 0 view .LVU1487
4510 002e 0346 mov r3, r0
4511 0030 18BB cbnz r0, .L340
2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG];
4512 .loc 1 2858 4 is_stmt 1 view .LVU1488
2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG];
4513 .loc 1 2858 10 is_stmt 0 view .LVU1489
4514 0032 2046 mov r0, r4
4515 .LVL525:
2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG];
4516 .loc 1 2858 10 view .LVU1490
4517 0034 FFF7FEFF bl dir_find
4518 .LVL526:
2859:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* Failed to find the object */
4519 .loc 1 2859 4 is_stmt 1 view .LVU1491
2859:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* Failed to find the object */
4520 .loc 1 2859 7 is_stmt 0 view .LVU1492
4521 0038 94F82F20 ldrb r2, [r4, #47] @ zero_extendqisi2
4522 .LVL527:
2860:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Object is not found */
4523 .loc 1 2860 4 is_stmt 1 view .LVU1493
2860:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Object is not found */
4524 .loc 1 2860 7 is_stmt 0 view .LVU1494
4525 003c 0346 mov r3, r0
4526 003e F8B9 cbnz r0, .L346
2872:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get into the sub-directory */
4527 .loc 1 2872 4 is_stmt 1 view .LVU1495
2872:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get into the sub-directory */
4528 .loc 1 2872 7 is_stmt 0 view .LVU1496
4529 0040 12F0040F tst r2, #4
4530 0044 19D1 bne .L340
2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break;
4531 .loc 1 2874 4 is_stmt 1 view .LVU1497
2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break;
4532 .loc 1 2874 13 is_stmt 0 view .LVU1498
4533 0046 A379 ldrb r3, [r4, #6] @ zero_extendqisi2
2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break;
4534 .loc 1 2874 7 view .LVU1499
4535 0048 13F0100F tst r3, #16
4536 004c 1FD0 beq .L343
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4537 .loc 1 2888 5 is_stmt 1 view .LVU1500
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4538 .loc 1 2888 32 is_stmt 0 view .LVU1501
4539 004e 05F13401 add r1, r5, #52
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 205
4540 .loc 1 2888 44 view .LVU1502
4541 0052 6369 ldr r3, [r4, #20]
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4542 .loc 1 2888 53 view .LVU1503
4543 0054 AA89 ldrh r2, [r5, #12]
4544 .LVL528:
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4545 .loc 1 2888 51 view .LVU1504
4546 0056 B3FBF2F0 udiv r0, r3, r2
4547 .LVL529:
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4548 .loc 1 2888 51 view .LVU1505
4549 005a 02FB1033 mls r3, r2, r0, r3
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4550 .loc 1 2888 19 view .LVU1506
4551 005e 1944 add r1, r1, r3
4552 0060 2846 mov r0, r5
4553 0062 FFF7FEFF bl ld_clust
4554 .LVL530:
2888:Middlewares/Third_Party/FatFs/src/ff.c **** }
4555 .loc 1 2888 17 discriminator 1 view .LVU1507
4556 0066 A060 str r0, [r4, #8]
2855:Middlewares/Third_Party/FatFs/src/ff.c **** res = create_name(dp, &path); /* Get a segment name of the path */
4557 .loc 1 2855 3 is_stmt 1 view .LVU1508
2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4558 .loc 1 2856 8 is_stmt 0 view .LVU1509
4559 0068 DDE7 b .L339
4560 .LVL531:
4561 .L345:
2851:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0);
4562 .loc 1 2851 3 is_stmt 1 view .LVU1510
2851:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0);
4563 .loc 1 2851 18 is_stmt 0 view .LVU1511
4564 006a 8023 movs r3, #128
4565 006c 84F82F30 strb r3, [r4, #47]
2852:Middlewares/Third_Party/FatFs/src/ff.c ****
4566 .loc 1 2852 3 is_stmt 1 view .LVU1512
2852:Middlewares/Third_Party/FatFs/src/ff.c ****
4567 .loc 1 2852 9 is_stmt 0 view .LVU1513
4568 0070 1146 mov r1, r2
4569 .LVL532:
2852:Middlewares/Third_Party/FatFs/src/ff.c ****
4570 .loc 1 2852 9 view .LVU1514
4571 0072 2046 mov r0, r4
4572 .LVL533:
2852:Middlewares/Third_Party/FatFs/src/ff.c ****
4573 .loc 1 2852 9 view .LVU1515
4574 0074 FFF7FEFF bl dir_sdi
4575 .LVL534:
4576 0078 0346 mov r3, r0
4577 .LVL535:
4578 .L340:
2893:Middlewares/Third_Party/FatFs/src/ff.c **** }
4579 .loc 1 2893 2 is_stmt 1 view .LVU1516
2894:Middlewares/Third_Party/FatFs/src/ff.c ****
4580 .loc 1 2894 1 is_stmt 0 view .LVU1517
4581 007a 1846 mov r0, r3
ARM GAS /tmp/ccH7dUYB.s page 206
4582 007c 03B0 add sp, sp, #12
4583 .LCFI32:
4584 .cfi_remember_state
4585 .cfi_def_cfa_offset 12
4586 @ sp needed
4587 007e 30BD pop {r4, r5, pc}
4588 .LVL536:
4589 .L346:
4590 .LCFI33:
4591 .cfi_restore_state
2861:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */
4592 .loc 1 2861 5 is_stmt 1 view .LVU1518
2861:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */
4593 .loc 1 2861 8 is_stmt 0 view .LVU1519
4594 0080 0428 cmp r0, #4
4595 0082 FAD1 bne .L340
2862:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */
4596 .loc 1 2862 6 is_stmt 1 view .LVU1520
2867:Middlewares/Third_Party/FatFs/src/ff.c **** }
4597 .loc 1 2867 7 view .LVU1521
2867:Middlewares/Third_Party/FatFs/src/ff.c **** }
4598 .loc 1 2867 10 is_stmt 0 view .LVU1522
4599 0084 12F0040F tst r2, #4
4600 0088 F7D1 bne .L340
2867:Middlewares/Third_Party/FatFs/src/ff.c **** }
4601 .loc 1 2867 32 discriminator 1 view .LVU1523
4602 008a 0523 movs r3, #5
4603 008c F5E7 b .L340
4604 .L343:
2875:Middlewares/Third_Party/FatFs/src/ff.c **** }
4605 .loc 1 2875 9 view .LVU1524
4606 008e 0523 movs r3, #5
4607 0090 F3E7 b .L340
4608 .cfi_endproc
4609 .LFE1216:
4611 .section .text.dir_alloc,"ax",%progbits
4612 .align 1
4613 .syntax unified
4614 .thumb
4615 .thumb_func
4617 dir_alloc:
4618 .LVL537:
4619 .LFB1207:
1593:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4620 .loc 1 1593 1 is_stmt 1 view -0
4621 .cfi_startproc
4622 @ args = 0, pretend = 0, frame = 0
4623 @ frame_needed = 0, uses_anonymous_args = 0
1593:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4624 .loc 1 1593 1 is_stmt 0 view .LVU1526
4625 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
4626 .LCFI34:
4627 .cfi_def_cfa_offset 24
4628 .cfi_offset 3, -24
4629 .cfi_offset 4, -20
4630 .cfi_offset 5, -16
4631 .cfi_offset 6, -12
ARM GAS /tmp/ccH7dUYB.s page 207
4632 .cfi_offset 7, -8
4633 .cfi_offset 14, -4
4634 0002 0446 mov r4, r0
4635 0004 0E46 mov r6, r1
1594:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n;
4636 .loc 1 1594 2 is_stmt 1 view .LVU1527
1595:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4637 .loc 1 1595 2 view .LVU1528
1596:Middlewares/Third_Party/FatFs/src/ff.c ****
4638 .loc 1 1596 2 view .LVU1529
1596:Middlewares/Third_Party/FatFs/src/ff.c ****
4639 .loc 1 1596 9 is_stmt 0 view .LVU1530
4640 0006 0768 ldr r7, [r0]
4641 .LVL538:
1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4642 .loc 1 1599 2 is_stmt 1 view .LVU1531
1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4643 .loc 1 1599 8 is_stmt 0 view .LVU1532
4644 0008 0021 movs r1, #0
4645 .LVL539:
1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4646 .loc 1 1599 8 view .LVU1533
4647 000a FFF7FEFF bl dir_sdi
4648 .LVL540:
1600:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0;
4649 .loc 1 1600 2 is_stmt 1 view .LVU1534
1600:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0;
4650 .loc 1 1600 5 is_stmt 0 view .LVU1535
4651 000e 0246 mov r2, r0
4652 0010 B8B9 cbnz r0, .L348
1601:Middlewares/Third_Party/FatFs/src/ff.c **** do {
4653 .loc 1 1601 5 view .LVU1536
4654 0012 0025 movs r5, #0
4655 0014 06E0 b .L350
4656 .LVL541:
4657 .L352:
1612:Middlewares/Third_Party/FatFs/src/ff.c **** }
4658 .loc 1 1612 7 view .LVU1537
4659 0016 0025 movs r5, #0
4660 .LVL542:
4661 .L349:
1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */
4662 .loc 1 1614 4 is_stmt 1 view .LVU1538
1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */
4663 .loc 1 1614 10 is_stmt 0 view .LVU1539
4664 0018 0121 movs r1, #1
4665 001a 2046 mov r0, r4
4666 .LVL543:
1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */
4667 .loc 1 1614 10 view .LVU1540
4668 001c FFF7FEFF bl dir_next
4669 .LVL544:
1615:Middlewares/Third_Party/FatFs/src/ff.c **** }
4670 .loc 1 1615 16 is_stmt 1 view .LVU1541
4671 0020 0246 mov r2, r0
4672 0022 70B9 cbnz r0, .L348
4673 .LVL545:
ARM GAS /tmp/ccH7dUYB.s page 208
4674 .L350:
1602:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4675 .loc 1 1602 3 view .LVU1542
1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4676 .loc 1 1603 4 view .LVU1543
1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4677 .loc 1 1603 10 is_stmt 0 view .LVU1544
4678 0024 E169 ldr r1, [r4, #28]
4679 0026 3846 mov r0, r7
4680 .LVL546:
1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4681 .loc 1 1603 10 view .LVU1545
4682 0028 FFF7FEFF bl move_window
4683 .LVL547:
1604:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4684 .loc 1 1604 4 is_stmt 1 view .LVU1546
1604:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
4685 .loc 1 1604 7 is_stmt 0 view .LVU1547
4686 002c 0246 mov r2, r0
4687 002e 40B9 cbnz r0, .L348
1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4688 .loc 1 1608 4 is_stmt 1 view .LVU1548
1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4689 .loc 1 1608 10 is_stmt 0 view .LVU1549
4690 0030 236A ldr r3, [r4, #32]
1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4691 .loc 1 1608 15 view .LVU1550
4692 0032 1B78 ldrb r3, [r3] @ zero_extendqisi2
1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
4693 .loc 1 1608 7 view .LVU1551
4694 0034 002B cmp r3, #0
4695 0036 18BF it ne
4696 0038 E52B cmpne r3, #229
4697 003a ECD1 bne .L352
1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4698 .loc 1 1610 5 is_stmt 1 view .LVU1552
1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4699 .loc 1 1610 8 is_stmt 0 view .LVU1553
4700 003c 0135 adds r5, r5, #1
4701 .LVL548:
1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
4702 .loc 1 1610 8 view .LVU1554
4703 003e B542 cmp r5, r6
4704 0040 EAD1 bne .L349
4705 .LVL549:
4706 .L348:
1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4707 .loc 1 1618 2 is_stmt 1 view .LVU1555
1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4708 .loc 1 1618 5 is_stmt 0 view .LVU1556
4709 0042 042A cmp r2, #4
4710 0044 01D0 beq .L355
4711 .LVL550:
4712 .L351:
1619:Middlewares/Third_Party/FatFs/src/ff.c **** }
4713 .loc 1 1619 2 is_stmt 1 view .LVU1557
1620:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 209
4714 .loc 1 1620 1 is_stmt 0 view .LVU1558
4715 0046 1046 mov r0, r2
4716 0048 F8BD pop {r3, r4, r5, r6, r7, pc}
4717 .LVL551:
4718 .L355:
1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4719 .loc 1 1618 29 discriminator 1 view .LVU1559
4720 004a 0722 movs r2, #7
4721 .LVL552:
1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4722 .loc 1 1618 29 discriminator 1 view .LVU1560
4723 004c FBE7 b .L351
4724 .cfi_endproc
4725 .LFE1207:
4727 .section .text.dir_register,"ax",%progbits
4728 .align 1
4729 .syntax unified
4730 .thumb
4731 .thumb_func
4733 dir_register:
4734 .LVL553:
4735 .LFB1212:
2295:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4736 .loc 1 2295 1 is_stmt 1 view -0
4737 .cfi_startproc
4738 @ args = 0, pretend = 0, frame = 0
4739 @ frame_needed = 0, uses_anonymous_args = 0
2295:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4740 .loc 1 2295 1 is_stmt 0 view .LVU1562
4741 0000 70B5 push {r4, r5, r6, lr}
4742 .LCFI35:
4743 .cfi_def_cfa_offset 16
4744 .cfi_offset 4, -16
4745 .cfi_offset 5, -12
4746 .cfi_offset 6, -8
4747 .cfi_offset 14, -4
4748 0002 0446 mov r4, r0
2296:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4749 .loc 1 2296 2 is_stmt 1 view .LVU1563
2297:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4750 .loc 1 2297 2 view .LVU1564
2297:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4751 .loc 1 2297 9 is_stmt 0 view .LVU1565
4752 0004 0668 ldr r6, [r0]
4753 .LVL554:
2366:Middlewares/Third_Party/FatFs/src/ff.c ****
4754 .loc 1 2366 2 is_stmt 1 view .LVU1566
2366:Middlewares/Third_Party/FatFs/src/ff.c ****
4755 .loc 1 2366 8 is_stmt 0 view .LVU1567
4756 0006 0121 movs r1, #1
4757 0008 FFF7FEFF bl dir_alloc
4758 .LVL555:
2371:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4759 .loc 1 2371 2 is_stmt 1 view .LVU1568
2371:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4760 .loc 1 2371 5 is_stmt 0 view .LVU1569
4761 000c 0546 mov r5, r0
ARM GAS /tmp/ccH7dUYB.s page 210
4762 000e 08B1 cbz r0, .L359
4763 .LVL556:
4764 .L357:
2383:Middlewares/Third_Party/FatFs/src/ff.c **** }
4765 .loc 1 2383 2 is_stmt 1 view .LVU1570
2384:Middlewares/Third_Party/FatFs/src/ff.c ****
4766 .loc 1 2384 1 is_stmt 0 view .LVU1571
4767 0010 2846 mov r0, r5
4768 0012 70BD pop {r4, r5, r6, pc}
4769 .LVL557:
4770 .L359:
2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4771 .loc 1 2372 3 is_stmt 1 view .LVU1572
2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4772 .loc 1 2372 9 is_stmt 0 view .LVU1573
4773 0014 E169 ldr r1, [r4, #28]
4774 0016 3046 mov r0, r6
4775 .LVL558:
2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4776 .loc 1 2372 9 view .LVU1574
4777 0018 FFF7FEFF bl move_window
4778 .LVL559:
2373:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */
4779 .loc 1 2373 3 is_stmt 1 view .LVU1575
2373:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */
4780 .loc 1 2373 6 is_stmt 0 view .LVU1576
4781 001c 0546 mov r5, r0
4782 001e 0028 cmp r0, #0
4783 0020 F6D1 bne .L357
2374:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */
4784 .loc 1 2374 4 is_stmt 1 view .LVU1577
4785 0022 2022 movs r2, #32
4786 0024 0021 movs r1, #0
4787 0026 206A ldr r0, [r4, #32]
4788 .LVL560:
2374:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */
4789 .loc 1 2374 4 is_stmt 0 view .LVU1578
4790 0028 FFF7FEFF bl mem_set
4791 .LVL561:
2375:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
4792 .loc 1 2375 4 is_stmt 1 view .LVU1579
4793 002c 0B22 movs r2, #11
4794 002e 04F12401 add r1, r4, #36
4795 0032 206A ldr r0, [r4, #32]
4796 0034 FFF7FEFF bl mem_cpy
4797 .LVL562:
2379:Middlewares/Third_Party/FatFs/src/ff.c **** }
4798 .loc 1 2379 4 view .LVU1580
2379:Middlewares/Third_Party/FatFs/src/ff.c **** }
4799 .loc 1 2379 14 is_stmt 0 view .LVU1581
4800 0038 0123 movs r3, #1
4801 003a F370 strb r3, [r6, #3]
4802 003c E8E7 b .L357
4803 .cfi_endproc
4804 .LFE1212:
4806 .section .text.dir_read,"ax",%progbits
4807 .align 1
ARM GAS /tmp/ccH7dUYB.s page 211
4808 .syntax unified
4809 .thumb
4810 .thumb_func
4812 dir_read:
4813 .LVL563:
4814 .LFB1210:
2135:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_NO_FILE;
4815 .loc 1 2135 1 is_stmt 1 view -0
4816 .cfi_startproc
4817 @ args = 0, pretend = 0, frame = 0
4818 @ frame_needed = 0, uses_anonymous_args = 0
2135:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_NO_FILE;
4819 .loc 1 2135 1 is_stmt 0 view .LVU1583
4820 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
4821 .LCFI36:
4822 .cfi_def_cfa_offset 24
4823 .cfi_offset 3, -24
4824 .cfi_offset 4, -20
4825 .cfi_offset 5, -16
4826 .cfi_offset 6, -12
4827 .cfi_offset 7, -8
4828 .cfi_offset 14, -4
4829 0002 0446 mov r4, r0
4830 0004 0E46 mov r6, r1
2136:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4831 .loc 1 2136 2 is_stmt 1 view .LVU1584
4832 .LVL564:
2137:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, c;
4833 .loc 1 2137 2 view .LVU1585
2137:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, c;
4834 .loc 1 2137 9 is_stmt 0 view .LVU1586
4835 0006 0568 ldr r5, [r0]
4836 .LVL565:
2138:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0
4837 .loc 1 2138 2 is_stmt 1 view .LVU1587
2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4838 .loc 1 2143 2 view .LVU1588
2136:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs;
4839 .loc 1 2136 10 is_stmt 0 view .LVU1589
4840 0008 0427 movs r7, #4
2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4841 .loc 1 2143 8 view .LVU1590
4842 000a 05E0 b .L361
4843 .LVL566:
4844 .L363:
2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4845 .loc 1 2193 3 is_stmt 1 view .LVU1591
2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4846 .loc 1 2193 9 is_stmt 0 view .LVU1592
4847 000c 0021 movs r1, #0
4848 000e 2046 mov r0, r4
4849 .LVL567:
2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4850 .loc 1 2193 9 view .LVU1593
4851 0010 FFF7FEFF bl dir_next
4852 .LVL568:
2194:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 212
4853 .loc 1 2194 3 is_stmt 1 view .LVU1594
2194:Middlewares/Third_Party/FatFs/src/ff.c **** }
4854 .loc 1 2194 6 is_stmt 0 view .LVU1595
4855 0014 0746 mov r7, r0
4856 0016 E8B9 cbnz r0, .L362
4857 .LVL569:
4858 .L361:
2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4859 .loc 1 2143 9 is_stmt 1 view .LVU1596
2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4860 .loc 1 2143 11 is_stmt 0 view .LVU1597
4861 0018 E169 ldr r1, [r4, #28]
2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect);
4862 .loc 1 2143 9 view .LVU1598
4863 001a D9B1 cbz r1, .L362
2144:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4864 .loc 1 2144 3 is_stmt 1 view .LVU1599
2144:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
4865 .loc 1 2144 9 is_stmt 0 view .LVU1600
4866 001c 2846 mov r0, r5
4867 001e FFF7FEFF bl move_window
4868 .LVL570:
2145:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; /* Test for the entry type */
4869 .loc 1 2145 3 is_stmt 1 view .LVU1601
2145:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; /* Test for the entry type */
4870 .loc 1 2145 6 is_stmt 0 view .LVU1602
4871 0022 0746 mov r7, r0
4872 0024 B0B9 cbnz r0, .L362
2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) {
4873 .loc 1 2146 3 is_stmt 1 view .LVU1603
2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) {
4874 .loc 1 2146 9 is_stmt 0 view .LVU1604
4875 0026 236A ldr r3, [r4, #32]
2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) {
4876 .loc 1 2146 5 view .LVU1605
4877 0028 1A78 ldrb r2, [r3] @ zero_extendqisi2
4878 .LVL571:
2147:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; break; /* Reached to end of the directory */
4879 .loc 1 2147 3 is_stmt 1 view .LVU1606
2147:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; break; /* Reached to end of the directory */
4880 .loc 1 2147 6 is_stmt 0 view .LVU1607
4881 002a 92B1 cbz r2, .L366
2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4882 .loc 1 2167 4 is_stmt 1 view .LVU1608
2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4883 .loc 1 2167 30 is_stmt 0 view .LVU1609
4884 002c DB7A ldrb r3, [r3, #11] @ zero_extendqisi2
2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4885 .loc 1 2167 21 view .LVU1610
4886 002e 03F03F03 and r3, r3, #63
4887 .LVL572:
2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */
4888 .loc 1 2167 17 view .LVU1611
4889 0032 A371 strb r3, [r4, #6]
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
4890 .loc 1 2188 4 is_stmt 1 view .LVU1612
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
ARM GAS /tmp/ccH7dUYB.s page 213
4891 .loc 1 2188 7 is_stmt 0 view .LVU1613
4892 0034 E52A cmp r2, #229
4893 0036 18BF it ne
4894 0038 2E2A cmpne r2, #46
4895 003a E7D0 beq .L363
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
4896 .loc 1 2188 30 discriminator 1 view .LVU1614
4897 003c 0F2B cmp r3, #15
4898 003e E5D0 beq .L363
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
4899 .loc 1 2188 57 discriminator 2 view .LVU1615
4900 0040 23F02003 bic r3, r3, #32
4901 .LVL573:
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
4902 .loc 1 2188 48 discriminator 2 view .LVU1616
4903 0044 082B cmp r3, #8
4904 0046 14BF ite ne
4905 0048 0023 movne r3, #0
4906 004a 0123 moveq r3, #1
2188:Middlewares/Third_Party/FatFs/src/ff.c **** break;
4907 .loc 1 2188 45 discriminator 2 view .LVU1617
4908 004c B342 cmp r3, r6
4909 004e DDD1 bne .L363
4910 0050 00E0 b .L362
4911 .LVL574:
4912 .L366:
2148:Middlewares/Third_Party/FatFs/src/ff.c **** }
4913 .loc 1 2148 8 view .LVU1618
4914 0052 0427 movs r7, #4
4915 .LVL575:
4916 .L362:
2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4917 .loc 1 2197 2 is_stmt 1 view .LVU1619
2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4918 .loc 1 2197 5 is_stmt 0 view .LVU1620
4919 0054 0FB1 cbz r7, .L365
2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4920 .loc 1 2197 20 is_stmt 1 discriminator 1 view .LVU1621
2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res;
4921 .loc 1 2197 29 is_stmt 0 discriminator 1 view .LVU1622
4922 0056 0023 movs r3, #0
4923 0058 E361 str r3, [r4, #28]
4924 .L365:
2198:Middlewares/Third_Party/FatFs/src/ff.c **** }
4925 .loc 1 2198 2 is_stmt 1 view .LVU1623
2199:Middlewares/Third_Party/FatFs/src/ff.c ****
4926 .loc 1 2199 1 is_stmt 0 view .LVU1624
4927 005a 3846 mov r0, r7
4928 005c F8BD pop {r3, r4, r5, r6, r7, pc}
2199:Middlewares/Third_Party/FatFs/src/ff.c ****
4929 .loc 1 2199 1 view .LVU1625
4930 .cfi_endproc
4931 .LFE1210:
4933 .section .text.sync_fs,"ax",%progbits
4934 .align 1
4935 .syntax unified
4936 .thumb
ARM GAS /tmp/ccH7dUYB.s page 214
4937 .thumb_func
4939 sync_fs:
4940 .LVL576:
4941 .LFB1198:
947:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4942 .loc 1 947 1 is_stmt 1 view -0
4943 .cfi_startproc
4944 @ args = 0, pretend = 0, frame = 0
4945 @ frame_needed = 0, uses_anonymous_args = 0
947:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
4946 .loc 1 947 1 is_stmt 0 view .LVU1627
4947 0000 70B5 push {r4, r5, r6, lr}
4948 .LCFI37:
4949 .cfi_def_cfa_offset 16
4950 .cfi_offset 4, -16
4951 .cfi_offset 5, -12
4952 .cfi_offset 6, -8
4953 .cfi_offset 14, -4
4954 0002 0446 mov r4, r0
948:Middlewares/Third_Party/FatFs/src/ff.c ****
4955 .loc 1 948 2 is_stmt 1 view .LVU1628
951:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4956 .loc 1 951 2 view .LVU1629
951:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
4957 .loc 1 951 8 is_stmt 0 view .LVU1630
4958 0004 FFF7FEFF bl sync_window
4959 .LVL577:
952:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update FSInfo sector if needed */
4960 .loc 1 952 2 is_stmt 1 view .LVU1631
952:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update FSInfo sector if needed */
4961 .loc 1 952 5 is_stmt 0 view .LVU1632
4962 0008 0546 mov r5, r0
4963 000a 48B9 cbnz r0, .L369
954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
4964 .loc 1 954 3 is_stmt 1 view .LVU1633
954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
4965 .loc 1 954 9 is_stmt 0 view .LVU1634
4966 000c 2378 ldrb r3, [r4] @ zero_extendqisi2
954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
4967 .loc 1 954 6 view .LVU1635
4968 000e 032B cmp r3, #3
4969 0010 08D0 beq .L373
4970 .LVL578:
4971 .L370:
968:Middlewares/Third_Party/FatFs/src/ff.c **** }
4972 .loc 1 968 3 is_stmt 1 view .LVU1636
968:Middlewares/Third_Party/FatFs/src/ff.c **** }
4973 .loc 1 968 7 is_stmt 0 view .LVU1637
4974 0012 0022 movs r2, #0
4975 0014 1146 mov r1, r2
4976 0016 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
4977 0018 FFF7FEFF bl disk_ioctl
4978 .LVL579:
968:Middlewares/Third_Party/FatFs/src/ff.c **** }
4979 .loc 1 968 6 discriminator 1 view .LVU1638
4980 001c 00B1 cbz r0, .L369
968:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 215
4981 .loc 1 968 56 discriminator 1 view .LVU1639
4982 001e 0125 movs r5, #1
4983 .LVL580:
4984 .L369:
971:Middlewares/Third_Party/FatFs/src/ff.c **** }
4985 .loc 1 971 2 is_stmt 1 view .LVU1640
972:Middlewares/Third_Party/FatFs/src/ff.c ****
4986 .loc 1 972 1 is_stmt 0 view .LVU1641
4987 0020 2846 mov r0, r5
4988 0022 70BD pop {r4, r5, r6, pc}
4989 .LVL581:
4990 .L373:
954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
4991 .loc 1 954 36 discriminator 1 view .LVU1642
4992 0024 2379 ldrb r3, [r4, #4] @ zero_extendqisi2
954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */
4993 .loc 1 954 31 discriminator 1 view .LVU1643
4994 0026 012B cmp r3, #1
4995 0028 F3D1 bne .L370
956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55);
4996 .loc 1 956 4 is_stmt 1 view .LVU1644
956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55);
4997 .loc 1 956 14 is_stmt 0 view .LVU1645
4998 002a 04F13406 add r6, r4, #52
956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55);
4999 .loc 1 956 4 view .LVU1646
5000 002e A289 ldrh r2, [r4, #12]
5001 0030 0021 movs r1, #0
5002 0032 3046 mov r0, r6
5003 .LVL582:
956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55);
5004 .loc 1 956 4 view .LVU1647
5005 0034 FFF7FEFF bl mem_set
5006 .LVL583:
957:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_LeadSig, 0x41615252);
5007 .loc 1 957 4 is_stmt 1 view .LVU1648
5008 0038 4AF65521 movw r1, #43605
5009 003c 04F23220 addw r0, r4, #562
5010 0040 FFF7FEFF bl st_word
5011 .LVL584:
958:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_StrucSig, 0x61417272);
5012 .loc 1 958 4 view .LVU1649
5013 0044 0E49 ldr r1, .L374
5014 0046 3046 mov r0, r6
5015 0048 FFF7FEFF bl st_dword
5016 .LVL585:
959:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Free_Count, fs->free_clst);
5017 .loc 1 959 4 view .LVU1650
5018 004c 0D49 ldr r1, .L374+4
5019 004e 04F50670 add r0, r4, #536
5020 0052 FFF7FEFF bl st_dword
5021 .LVL586:
960:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Nxt_Free, fs->last_clst);
5022 .loc 1 960 4 view .LVU1651
5023 0056 6169 ldr r1, [r4, #20]
5024 0058 04F50770 add r0, r4, #540
5025 005c FFF7FEFF bl st_dword
ARM GAS /tmp/ccH7dUYB.s page 216
5026 .LVL587:
961:Middlewares/Third_Party/FatFs/src/ff.c **** /* Write it into the FSInfo sector */
5027 .loc 1 961 4 view .LVU1652
5028 0060 2169 ldr r1, [r4, #16]
5029 0062 04F50870 add r0, r4, #544
5030 0066 FFF7FEFF bl st_dword
5031 .LVL588:
963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1);
5032 .loc 1 963 4 view .LVU1653
963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1);
5033 .loc 1 963 20 is_stmt 0 view .LVU1654
5034 006a 226A ldr r2, [r4, #32]
963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1);
5035 .loc 1 963 30 view .LVU1655
5036 006c 0132 adds r2, r2, #1
963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1);
5037 .loc 1 963 16 view .LVU1656
5038 006e 2263 str r2, [r4, #48]
964:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0;
5039 .loc 1 964 4 is_stmt 1 view .LVU1657
5040 0070 0123 movs r3, #1
5041 0072 3146 mov r1, r6
5042 0074 6078 ldrb r0, [r4, #1] @ zero_extendqisi2
5043 0076 FFF7FEFF bl disk_write
5044 .LVL589:
965:Middlewares/Third_Party/FatFs/src/ff.c **** }
5045 .loc 1 965 4 view .LVU1658
965:Middlewares/Third_Party/FatFs/src/ff.c **** }
5046 .loc 1 965 17 is_stmt 0 view .LVU1659
5047 007a 0023 movs r3, #0
5048 007c 2371 strb r3, [r4, #4]
5049 007e C8E7 b .L370
5050 .L375:
5051 .align 2
5052 .L374:
5053 0080 52526141 .word 1096897106
5054 0084 72724161 .word 1631679090
5055 .cfi_endproc
5056 .LFE1198:
5058 .section .text.f_mount,"ax",%progbits
5059 .align 1
5060 .global f_mount
5061 .syntax unified
5062 .thumb
5063 .thumb_func
5065 f_mount:
5066 .LVL590:
5067 .LFB1221:
3265:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *cfs;
5068 .loc 1 3265 1 is_stmt 1 view -0
5069 .cfi_startproc
5070 @ args = 0, pretend = 0, frame = 16
5071 @ frame_needed = 0, uses_anonymous_args = 0
3265:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *cfs;
5072 .loc 1 3265 1 is_stmt 0 view .LVU1661
5073 0000 70B5 push {r4, r5, r6, lr}
5074 .LCFI38:
ARM GAS /tmp/ccH7dUYB.s page 217
5075 .cfi_def_cfa_offset 16
5076 .cfi_offset 4, -16
5077 .cfi_offset 5, -12
5078 .cfi_offset 6, -8
5079 .cfi_offset 14, -4
5080 0002 84B0 sub sp, sp, #16
5081 .LCFI39:
5082 .cfi_def_cfa_offset 32
5083 0004 0190 str r0, [sp, #4]
5084 0006 0091 str r1, [sp]
5085 0008 1646 mov r6, r2
3266:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
5086 .loc 1 3266 2 is_stmt 1 view .LVU1662
3267:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5087 .loc 1 3267 2 view .LVU1663
3268:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *rp = path;
5088 .loc 1 3268 2 view .LVU1664
3269:Middlewares/Third_Party/FatFs/src/ff.c ****
5089 .loc 1 3269 2 view .LVU1665
3269:Middlewares/Third_Party/FatFs/src/ff.c ****
5090 .loc 1 3269 15 is_stmt 0 view .LVU1666
5091 000a 0391 str r1, [sp, #12]
3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
5092 .loc 1 3273 2 is_stmt 1 view .LVU1667
3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
5093 .loc 1 3273 8 is_stmt 0 view .LVU1668
5094 000c 03A8 add r0, sp, #12
5095 .LVL591:
3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
5096 .loc 1 3273 8 view .LVU1669
5097 000e FFF7FEFF bl get_ldnumber
5098 .LVL592:
3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */
5099 .loc 1 3274 2 is_stmt 1 view .LVU1670
3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */
5100 .loc 1 3274 5 is_stmt 0 view .LVU1671
5101 0012 041E subs r4, r0, #0
5102 0014 20DB blt .L380
3275:Middlewares/Third_Party/FatFs/src/ff.c ****
5103 .loc 1 3275 2 is_stmt 1 view .LVU1672
3275:Middlewares/Third_Party/FatFs/src/ff.c ****
5104 .loc 1 3275 6 is_stmt 0 view .LVU1673
5105 0016 114B ldr r3, .L384
5106 0018 53F82450 ldr r5, [r3, r4, lsl #2]
5107 .LVL593:
3277:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5108 .loc 1 3277 2 is_stmt 1 view .LVU1674
3277:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5109 .loc 1 3277 5 is_stmt 0 view .LVU1675
5110 001c 25B1 cbz r5, .L378
3279:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5111 .loc 1 3279 3 is_stmt 1 view .LVU1676
5112 001e 2846 mov r0, r5
5113 .LVL594:
3279:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5114 .loc 1 3279 3 is_stmt 0 view .LVU1677
5115 0020 FFF7FEFF bl clear_lock
ARM GAS /tmp/ccH7dUYB.s page 218
5116 .LVL595:
3284:Middlewares/Third_Party/FatFs/src/ff.c **** }
5117 .loc 1 3284 3 is_stmt 1 view .LVU1678
3284:Middlewares/Third_Party/FatFs/src/ff.c **** }
5118 .loc 1 3284 16 is_stmt 0 view .LVU1679
5119 0024 0023 movs r3, #0
5120 0026 2B70 strb r3, [r5]
5121 .L378:
3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */
5122 .loc 1 3287 2 is_stmt 1 view .LVU1680
3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */
5123 .loc 1 3287 6 is_stmt 0 view .LVU1681
5124 0028 019B ldr r3, [sp, #4]
3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */
5125 .loc 1 3287 5 view .LVU1682
5126 002a 0BB1 cbz r3, .L379
3288:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Create sync object for the new volume */
5127 .loc 1 3288 3 is_stmt 1 view .LVU1683
3288:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Create sync object for the new volume */
5128 .loc 1 3288 15 is_stmt 0 view .LVU1684
5129 002c 0022 movs r2, #0
5130 002e 1A70 strb r2, [r3]
5131 .L379:
3293:Middlewares/Third_Party/FatFs/src/ff.c ****
5132 .loc 1 3293 2 is_stmt 1 view .LVU1685
3293:Middlewares/Third_Party/FatFs/src/ff.c ****
5133 .loc 1 3293 13 is_stmt 0 view .LVU1686
5134 0030 019B ldr r3, [sp, #4]
5135 0032 0A4A ldr r2, .L384
5136 0034 42F82430 str r3, [r2, r4, lsl #2]
3295:Middlewares/Third_Party/FatFs/src/ff.c ****
5137 .loc 1 3295 2 is_stmt 1 view .LVU1687
3295:Middlewares/Third_Party/FatFs/src/ff.c ****
5138 .loc 1 3295 17 is_stmt 0 view .LVU1688
5139 0038 721E subs r2, r6, #1
5140 003a 18BF it ne
5141 003c 0122 movne r2, #1
3295:Middlewares/Third_Party/FatFs/src/ff.c ****
5142 .loc 1 3295 10 view .LVU1689
5143 003e 002B cmp r3, #0
5144 0040 08BF it eq
5145 0042 42F00102 orreq r2, r2, #1
3295:Middlewares/Third_Party/FatFs/src/ff.c ****
5146 .loc 1 3295 5 view .LVU1690
5147 0046 12B1 cbz r2, .L383
3295:Middlewares/Third_Party/FatFs/src/ff.c ****
5148 .loc 1 3295 30 discriminator 1 view .LVU1691
5149 0048 0020 movs r0, #0
5150 .LVL596:
5151 .L377:
3299:Middlewares/Third_Party/FatFs/src/ff.c ****
5152 .loc 1 3299 1 view .LVU1692
5153 004a 04B0 add sp, sp, #16
5154 .LCFI40:
5155 .cfi_remember_state
5156 .cfi_def_cfa_offset 16
5157 @ sp needed
ARM GAS /tmp/ccH7dUYB.s page 219
5158 004c 70BD pop {r4, r5, r6, pc}
5159 .LVL597:
5160 .L383:
5161 .LCFI41:
5162 .cfi_restore_state
3297:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
5163 .loc 1 3297 2 is_stmt 1 view .LVU1693
3297:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res);
5164 .loc 1 3297 8 is_stmt 0 view .LVU1694
5165 004e 01A9 add r1, sp, #4
5166 0050 6846 mov r0, sp
5167 0052 FFF7FEFF bl find_volume
5168 .LVL598:
3298:Middlewares/Third_Party/FatFs/src/ff.c **** }
5169 .loc 1 3298 2 is_stmt 1 view .LVU1695
5170 0056 F8E7 b .L377
5171 .LVL599:
5172 .L380:
3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */
5173 .loc 1 3274 22 is_stmt 0 discriminator 1 view .LVU1696
5174 0058 0B20 movs r0, #11
5175 .LVL600:
3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */
5176 .loc 1 3274 22 discriminator 1 view .LVU1697
5177 005a F6E7 b .L377
5178 .L385:
5179 .align 2
5180 .L384:
5181 005c 00000000 .word FatFs
5182 .cfi_endproc
5183 .LFE1221:
5185 .section .text.f_open,"ax",%progbits
5186 .align 1
5187 .global f_open
5188 .syntax unified
5189 .thumb
5190 .thumb_func
5192 f_open:
5193 .LVL601:
5194 .LFB1222:
3313:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5195 .loc 1 3313 1 is_stmt 1 view -0
5196 .cfi_startproc
5197 @ args = 0, pretend = 0, frame = 64
5198 @ frame_needed = 0, uses_anonymous_args = 0
3313:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5199 .loc 1 3313 1 is_stmt 0 view .LVU1699
5200 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
5201 .LCFI42:
5202 .cfi_def_cfa_offset 28
5203 .cfi_offset 4, -28
5204 .cfi_offset 5, -24
5205 .cfi_offset 6, -20
5206 .cfi_offset 7, -16
5207 .cfi_offset 8, -12
5208 .cfi_offset 9, -8
5209 .cfi_offset 14, -4
ARM GAS /tmp/ccH7dUYB.s page 220
5210 0004 91B0 sub sp, sp, #68
5211 .LCFI43:
5212 .cfi_def_cfa_offset 96
5213 0006 0191 str r1, [sp, #4]
3314:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
5214 .loc 1 3314 2 is_stmt 1 view .LVU1700
3315:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
5215 .loc 1 3315 2 view .LVU1701
3316:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5216 .loc 1 3316 2 view .LVU1702
3318:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ofs;
5217 .loc 1 3318 2 view .LVU1703
3319:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5218 .loc 1 3319 2 view .LVU1704
3324:Middlewares/Third_Party/FatFs/src/ff.c ****
5219 .loc 1 3324 2 view .LVU1705
3324:Middlewares/Third_Party/FatFs/src/ff.c ****
5220 .loc 1 3324 5 is_stmt 0 view .LVU1706
5221 0008 0028 cmp r0, #0
5222 000a 00F01081 beq .L401
5223 000e 1446 mov r4, r2
5224 0010 0646 mov r6, r0
3327:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, mode);
5225 .loc 1 3327 2 is_stmt 1 view .LVU1707
3327:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, mode);
5226 .loc 1 3327 7 is_stmt 0 view .LVU1708
5227 0012 02F03F07 and r7, r2, #63
5228 .LVL602:
3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5229 .loc 1 3328 2 is_stmt 1 view .LVU1709
3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5230 .loc 1 3328 8 is_stmt 0 view .LVU1710
5231 0016 3A46 mov r2, r7
5232 0018 03A9 add r1, sp, #12
5233 .LVL603:
3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5234 .loc 1 3328 8 view .LVU1711
5235 001a 01A8 add r0, sp, #4
5236 .LVL604:
3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5237 .loc 1 3328 8 view .LVU1712
5238 001c FFF7FEFF bl find_volume
5239 .LVL605:
3329:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
5240 .loc 1 3329 2 is_stmt 1 view .LVU1713
3329:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
5241 .loc 1 3329 5 is_stmt 0 view .LVU1714
5242 0020 0546 mov r5, r0
5243 0022 28B1 cbz r0, .L415
5244 .LVL606:
5245 .L388:
3499:Middlewares/Third_Party/FatFs/src/ff.c ****
5246 .loc 1 3499 20 is_stmt 1 discriminator 1 view .LVU1715
3499:Middlewares/Third_Party/FatFs/src/ff.c ****
5247 .loc 1 3499 31 is_stmt 0 discriminator 1 view .LVU1716
5248 0024 0023 movs r3, #0
5249 0026 3360 str r3, [r6]
ARM GAS /tmp/ccH7dUYB.s page 221
5250 .LVL607:
5251 .L387:
3502:Middlewares/Third_Party/FatFs/src/ff.c ****
5252 .loc 1 3502 1 view .LVU1717
5253 0028 2846 mov r0, r5
5254 002a 11B0 add sp, sp, #68
5255 .LCFI44:
5256 .cfi_remember_state
5257 .cfi_def_cfa_offset 28
5258 @ sp needed
5259 002c BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
5260 .LVL608:
5261 .L415:
5262 .LCFI45:
5263 .cfi_restore_state
3330:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
5264 .loc 1 3330 3 is_stmt 1 view .LVU1718
3330:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
5265 .loc 1 3330 13 is_stmt 0 view .LVU1719
5266 0030 039B ldr r3, [sp, #12]
5267 0032 0493 str r3, [sp, #16]
3331:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
5268 .loc 1 3331 18 is_stmt 1 view .LVU1720
3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */
5269 .loc 1 3332 3 view .LVU1721
3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */
5270 .loc 1 3332 9 is_stmt 0 view .LVU1722
5271 0034 0199 ldr r1, [sp, #4]
5272 0036 04A8 add r0, sp, #16
5273 .LVL609:
3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */
5274 .loc 1 3332 9 view .LVU1723
5275 0038 FFF7FEFF bl follow_path
5276 .LVL610:
3334:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */
5277 .loc 1 3334 3 is_stmt 1 view .LVU1724
3334:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */
5278 .loc 1 3334 6 is_stmt 0 view .LVU1725
5279 003c 0546 mov r5, r0
5280 003e 60B9 cbnz r0, .L389
3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
5281 .loc 1 3335 4 is_stmt 1 view .LVU1726
3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
5282 .loc 1 3335 8 is_stmt 0 view .LVU1727
5283 0040 9DF93F30 ldrsb r3, [sp, #63]
3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
5284 .loc 1 3335 7 view .LVU1728
5285 0044 002B cmp r3, #0
5286 0046 52DB blt .L402
3340:Middlewares/Third_Party/FatFs/src/ff.c **** }
5287 .loc 1 3340 5 is_stmt 1 view .LVU1729
3340:Middlewares/Third_Party/FatFs/src/ff.c **** }
5288 .loc 1 3340 11 is_stmt 0 view .LVU1730
5289 0048 14F03E0F tst r4, #62
5290 004c 14BF ite ne
5291 004e 0121 movne r1, #1
5292 0050 0021 moveq r1, #0
ARM GAS /tmp/ccH7dUYB.s page 222
5293 0052 04A8 add r0, sp, #16
5294 .LVL611:
3340:Middlewares/Third_Party/FatFs/src/ff.c **** }
5295 .loc 1 3340 11 view .LVU1731
5296 0054 FFF7FEFF bl chk_lock
5297 .LVL612:
5298 0058 0546 mov r5, r0
5299 .LVL613:
5300 .L389:
3345:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* No file, create new */
5301 .loc 1 3345 3 is_stmt 1 view .LVU1732
3345:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* No file, create new */
5302 .loc 1 3345 6 is_stmt 0 view .LVU1733
5303 005a 14F01C0F tst r4, #28
5304 005e 5CD0 beq .L390
3346:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */
5305 .loc 1 3346 4 is_stmt 1 view .LVU1734
3346:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */
5306 .loc 1 3346 7 is_stmt 0 view .LVU1735
5307 0060 002D cmp r5, #0
5308 0062 50D0 beq .L391
3347:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5309 .loc 1 3347 5 is_stmt 1 view .LVU1736
3347:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5310 .loc 1 3347 8 is_stmt 0 view .LVU1737
5311 0064 042D cmp r5, #4
5312 0066 44D0 beq .L416
5313 .LVL614:
5314 .L392:
3354:Middlewares/Third_Party/FatFs/src/ff.c **** }
5315 .loc 1 3354 5 is_stmt 1 view .LVU1738
3354:Middlewares/Third_Party/FatFs/src/ff.c **** }
5316 .loc 1 3354 10 is_stmt 0 view .LVU1739
5317 0068 47F00807 orr r7, r7, #8
5318 .LVL615:
5319 .L393:
3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME();
5320 .loc 1 3363 4 is_stmt 1 view .LVU1740
3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME();
5321 .loc 1 3363 7 is_stmt 0 view .LVU1741
5322 006c 002D cmp r5, #0
5323 006e D9D1 bne .L388
3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME();
5324 .loc 1 3363 21 discriminator 1 view .LVU1742
5325 0070 17F0080F tst r7, #8
5326 0074 61D0 beq .L394
3364:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5327 .loc 1 3364 5 is_stmt 1 view .LVU1743
3364:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5328 .loc 1 3364 10 is_stmt 0 view .LVU1744
5329 0076 FFF7FEFF bl get_fattime
5330 .LVL616:
5331 007a 0446 mov r4, r0
5332 .LVL617:
3392:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */
5333 .loc 1 3392 6 is_stmt 1 view .LVU1745
5334 007c 0146 mov r1, r0
ARM GAS /tmp/ccH7dUYB.s page 223
5335 007e 0C98 ldr r0, [sp, #48]
5336 .LVL618:
3392:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */
5337 .loc 1 3392 6 is_stmt 0 view .LVU1746
5338 0080 0E30 adds r0, r0, #14
5339 0082 FFF7FEFF bl st_dword
5340 .LVL619:
3393:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */
5341 .loc 1 3393 6 is_stmt 1 view .LVU1747
5342 0086 2146 mov r1, r4
5343 0088 0C98 ldr r0, [sp, #48]
5344 008a 1630 adds r0, r0, #22
5345 008c FFF7FEFF bl st_dword
5346 .LVL620:
3394:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_clust(fs, dj.dir); /* Get cluster chain */
5347 .loc 1 3394 6 view .LVU1748
3394:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_clust(fs, dj.dir); /* Get cluster chain */
5348 .loc 1 3394 23 is_stmt 0 view .LVU1749
5349 0090 0C9B ldr r3, [sp, #48]
5350 0092 2022 movs r2, #32
5351 0094 DA72 strb r2, [r3, #11]
3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */
5352 .loc 1 3395 6 is_stmt 1 view .LVU1750
3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */
5353 .loc 1 3395 11 is_stmt 0 view .LVU1751
5354 0096 DDF80C80 ldr r8, [sp, #12]
3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */
5355 .loc 1 3395 26 view .LVU1752
5356 009a DDF83090 ldr r9, [sp, #48]
3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */
5357 .loc 1 3395 11 view .LVU1753
5358 009e 4946 mov r1, r9
5359 00a0 4046 mov r0, r8
5360 00a2 FFF7FEFF bl ld_clust
5361 .LVL621:
5362 00a6 0446 mov r4, r0
5363 .LVL622:
3396:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_FileSize, 0);
5364 .loc 1 3396 6 is_stmt 1 view .LVU1754
5365 00a8 0022 movs r2, #0
5366 00aa 4946 mov r1, r9
5367 00ac 4046 mov r0, r8
5368 .LVL623:
3396:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_FileSize, 0);
5369 .loc 1 3396 6 is_stmt 0 view .LVU1755
5370 00ae FFF7FEFF bl st_clust
5371 .LVL624:
3397:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
5372 .loc 1 3397 6 is_stmt 1 view .LVU1756
5373 00b2 0021 movs r1, #0
5374 00b4 0C98 ldr r0, [sp, #48]
5375 00b6 1C30 adds r0, r0, #28
5376 00b8 FFF7FEFF bl st_dword
5377 .LVL625:
3398:Middlewares/Third_Party/FatFs/src/ff.c ****
5378 .loc 1 3398 6 view .LVU1757
3398:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 224
5379 .loc 1 3398 16 is_stmt 0 view .LVU1758
5380 00bc 039B ldr r3, [sp, #12]
5381 00be 0122 movs r2, #1
5382 00c0 DA70 strb r2, [r3, #3]
3400:Middlewares/Third_Party/FatFs/src/ff.c **** dw = fs->winsect;
5383 .loc 1 3400 6 is_stmt 1 view .LVU1759
3400:Middlewares/Third_Party/FatFs/src/ff.c **** dw = fs->winsect;
5384 .loc 1 3400 9 is_stmt 0 view .LVU1760
5385 00c2 002C cmp r4, #0
5386 00c4 39D0 beq .L394
3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0);
5387 .loc 1 3401 7 is_stmt 1 view .LVU1761
3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0);
5388 .loc 1 3401 14 is_stmt 0 view .LVU1762
5389 00c6 039B ldr r3, [sp, #12]
3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0);
5390 .loc 1 3401 10 view .LVU1763
5391 00c8 D3F83080 ldr r8, [r3, #48]
5392 .LVL626:
3402:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5393 .loc 1 3402 7 is_stmt 1 view .LVU1764
3402:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
5394 .loc 1 3402 13 is_stmt 0 view .LVU1765
5395 00cc 0022 movs r2, #0
5396 00ce 2146 mov r1, r4
5397 00d0 04A8 add r0, sp, #16
5398 00d2 FFF7FEFF bl remove_chain
5399 .LVL627:
3403:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw);
5400 .loc 1 3403 7 is_stmt 1 view .LVU1766
3403:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw);
5401 .loc 1 3403 10 is_stmt 0 view .LVU1767
5402 00d6 0546 mov r5, r0
5403 00d8 0028 cmp r0, #0
5404 00da A3D1 bne .L388
3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */
5405 .loc 1 3404 8 is_stmt 1 view .LVU1768
3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */
5406 .loc 1 3404 14 is_stmt 0 view .LVU1769
5407 00dc 4146 mov r1, r8
5408 00de 0398 ldr r0, [sp, #12]
5409 .LVL628:
3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */
5410 .loc 1 3404 14 view .LVU1770
5411 00e0 FFF7FEFF bl move_window
5412 .LVL629:
5413 00e4 0546 mov r5, r0
5414 .LVL630:
3405:Middlewares/Third_Party/FatFs/src/ff.c **** }
5415 .loc 1 3405 8 is_stmt 1 view .LVU1771
3405:Middlewares/Third_Party/FatFs/src/ff.c **** }
5416 .loc 1 3405 27 is_stmt 0 view .LVU1772
5417 00e6 013C subs r4, r4, #1
5418 .LVL631:
3405:Middlewares/Third_Party/FatFs/src/ff.c **** }
5419 .loc 1 3405 22 view .LVU1773
5420 00e8 039B ldr r3, [sp, #12]
ARM GAS /tmp/ccH7dUYB.s page 225
5421 00ea 1C61 str r4, [r3, #16]
5422 00ec 25E0 b .L394
5423 .LVL632:
5424 .L402:
3336:Middlewares/Third_Party/FatFs/src/ff.c **** }
5425 .loc 1 3336 9 view .LVU1774
5426 00ee 0625 movs r5, #6
5427 00f0 B3E7 b .L389
5428 .LVL633:
5429 .L416:
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5430 .loc 1 3349 6 is_stmt 1 view .LVU1775
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5431 .loc 1 3349 12 is_stmt 0 view .LVU1776
5432 00f2 FFF7FEFF bl enq_lock
5433 .LVL634:
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5434 .loc 1 3349 43 discriminator 1 view .LVU1777
5435 00f6 08B9 cbnz r0, .L417
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5436 .loc 1 3349 43 discriminator 2 view .LVU1778
5437 00f8 1225 movs r5, #18
5438 .LVL635:
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5439 .loc 1 3349 43 discriminator 2 view .LVU1779
5440 00fa B5E7 b .L392
5441 .LVL636:
5442 .L417:
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5443 .loc 1 3349 25 discriminator 1 view .LVU1780
5444 00fc 04A8 add r0, sp, #16
5445 00fe FFF7FEFF bl dir_register
5446 .LVL637:
5447 0102 0546 mov r5, r0
5448 .LVL638:
3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else
5449 .loc 1 3349 25 discriminator 1 view .LVU1781
5450 0104 B0E7 b .L392
5451 .LVL639:
5452 .L391:
3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5453 .loc 1 3357 5 is_stmt 1 view .LVU1782
3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5454 .loc 1 3357 15 is_stmt 0 view .LVU1783
5455 0106 9DF81630 ldrb r3, [sp, #22] @ zero_extendqisi2
3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5456 .loc 1 3357 8 view .LVU1784
5457 010a 13F0110F tst r3, #17
5458 010e 13D1 bne .L404
3360:Middlewares/Third_Party/FatFs/src/ff.c **** }
5459 .loc 1 3360 6 is_stmt 1 view .LVU1785
3360:Middlewares/Third_Party/FatFs/src/ff.c **** }
5460 .loc 1 3360 9 is_stmt 0 view .LVU1786
5461 0110 14F0040F tst r4, #4
5462 0114 AAD0 beq .L393
3360:Middlewares/Third_Party/FatFs/src/ff.c **** }
5463 .loc 1 3360 36 discriminator 1 view .LVU1787
ARM GAS /tmp/ccH7dUYB.s page 226
5464 0116 0825 movs r5, #8
5465 .LVL640:
3360:Middlewares/Third_Party/FatFs/src/ff.c **** }
5466 .loc 1 3360 36 discriminator 1 view .LVU1788
5467 0118 84E7 b .L388
5468 .LVL641:
5469 .L390:
3412:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */
5470 .loc 1 3412 4 is_stmt 1 view .LVU1789
3412:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */
5471 .loc 1 3412 7 is_stmt 0 view .LVU1790
5472 011a 002D cmp r5, #0
5473 011c 82D1 bne .L388
3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE;
5474 .loc 1 3413 5 is_stmt 1 view .LVU1791
3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE;
5475 .loc 1 3413 15 is_stmt 0 view .LVU1792
5476 011e 9DF81630 ldrb r3, [sp, #22] @ zero_extendqisi2
3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE;
5477 .loc 1 3413 8 view .LVU1793
5478 0122 13F0100F tst r3, #16
5479 0126 7ED1 bne .L406
3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5480 .loc 1 3416 6 is_stmt 1 view .LVU1794
3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5481 .loc 1 3416 9 is_stmt 0 view .LVU1795
5482 0128 14F0020F tst r4, #2
5483 012c 05D0 beq .L394
3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED;
5484 .loc 1 3416 28 discriminator 1 view .LVU1796
5485 012e 13F0010F tst r3, #1
5486 0132 02D0 beq .L394
3417:Middlewares/Third_Party/FatFs/src/ff.c **** }
5487 .loc 1 3417 11 view .LVU1797
5488 0134 0725 movs r5, #7
5489 .LVL642:
3417:Middlewares/Third_Party/FatFs/src/ff.c **** }
5490 .loc 1 3417 11 view .LVU1798
5491 0136 75E7 b .L388
5492 .LVL643:
5493 .L404:
3358:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5494 .loc 1 3358 10 view .LVU1799
5495 0138 0725 movs r5, #7
5496 .LVL644:
5497 .L394:
3422:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */
5498 .loc 1 3422 3 is_stmt 1 view .LVU1800
3422:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */
5499 .loc 1 3422 6 is_stmt 0 view .LVU1801
5500 013a 002D cmp r5, #0
5501 013c 7FF472AF bne .L388
3423:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_MODIFIED;
5502 .loc 1 3423 4 is_stmt 1 view .LVU1802
3423:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_MODIFIED;
5503 .loc 1 3423 7 is_stmt 0 view .LVU1803
5504 0140 17F0080F tst r7, #8
ARM GAS /tmp/ccH7dUYB.s page 227
5505 0144 01D0 beq .L395
3424:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
5506 .loc 1 3424 5 is_stmt 1 view .LVU1804
3424:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
5507 .loc 1 3424 10 is_stmt 0 view .LVU1805
5508 0146 47F04007 orr r7, r7, #64
5509 .LVL645:
5510 .L395:
3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir;
5511 .loc 1 3425 4 is_stmt 1 view .LVU1806
3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir;
5512 .loc 1 3425 21 is_stmt 0 view .LVU1807
5513 014a 039B ldr r3, [sp, #12]
5514 014c 1B6B ldr r3, [r3, #48]
3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir;
5515 .loc 1 3425 17 view .LVU1808
5516 014e 7362 str r3, [r6, #36]
3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5517 .loc 1 3426 4 is_stmt 1 view .LVU1809
3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5518 .loc 1 3426 20 is_stmt 0 view .LVU1810
5519 0150 0C9B ldr r3, [sp, #48]
3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
5520 .loc 1 3426 16 view .LVU1811
5521 0152 B362 str r3, [r6, #40]
3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR;
5522 .loc 1 3428 4 is_stmt 1 view .LVU1812
3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR;
5523 .loc 1 3428 21 is_stmt 0 view .LVU1813
5524 0154 012F cmp r7, #1
5525 0156 94BF ite ls
5526 0158 0021 movls r1, #0
5527 015a 0121 movhi r1, #1
5528 015c 04A8 add r0, sp, #16
5529 015e FFF7FEFF bl inc_lock
5530 .LVL646:
3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR;
5531 .loc 1 3428 19 discriminator 1 view .LVU1814
5532 0162 3061 str r0, [r6, #16]
3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5533 .loc 1 3429 4 is_stmt 1 view .LVU1815
3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5534 .loc 1 3429 7 is_stmt 0 view .LVU1816
5535 0164 08B9 cbnz r0, .L418
3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5536 .loc 1 3429 29 discriminator 1 view .LVU1817
5537 0166 0225 movs r5, #2
5538 .LVL647:
3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5539 .loc 1 3429 29 discriminator 1 view .LVU1818
5540 0168 5CE7 b .L388
5541 .LVL648:
5542 .L418:
3444:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
5543 .loc 1 3444 3 is_stmt 1 view .LVU1819
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
5544 .loc 1 3456 5 view .LVU1820
ARM GAS /tmp/ccH7dUYB.s page 228
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
5545 .loc 1 3456 22 is_stmt 0 view .LVU1821
5546 016a 039C ldr r4, [sp, #12]
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
5547 .loc 1 3456 37 view .LVU1822
5548 016c DDF83080 ldr r8, [sp, #48]
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
5549 .loc 1 3456 22 view .LVU1823
5550 0170 4146 mov r1, r8
5551 0172 2046 mov r0, r4
5552 0174 FFF7FEFF bl ld_clust
5553 .LVL649:
3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize);
5554 .loc 1 3456 20 discriminator 1 view .LVU1824
5555 0178 B060 str r0, [r6, #8]
3457:Middlewares/Third_Party/FatFs/src/ff.c **** }
5556 .loc 1 3457 5 is_stmt 1 view .LVU1825
3457:Middlewares/Third_Party/FatFs/src/ff.c **** }
5557 .loc 1 3457 23 is_stmt 0 view .LVU1826
5558 017a 08F11C00 add r0, r8, #28
5559 017e FFF7FEFF bl ld_dword
5560 .LVL650:
3457:Middlewares/Third_Party/FatFs/src/ff.c **** }
5561 .loc 1 3457 21 discriminator 1 view .LVU1827
5562 0182 F060 str r0, [r6, #12]
3460:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5563 .loc 1 3460 4 is_stmt 1 view .LVU1828
3460:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5564 .loc 1 3460 14 is_stmt 0 view .LVU1829
5565 0184 0021 movs r1, #0
5566 0186 F162 str r1, [r6, #44]
3462:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.id = fs->id;
5567 .loc 1 3462 4 is_stmt 1 view .LVU1830
3462:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.id = fs->id;
5568 .loc 1 3462 15 is_stmt 0 view .LVU1831
5569 0188 3460 str r4, [r6]
3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */
5570 .loc 1 3463 4 is_stmt 1 view .LVU1832
3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */
5571 .loc 1 3463 19 is_stmt 0 view .LVU1833
5572 018a E388 ldrh r3, [r4, #6]
3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */
5573 .loc 1 3463 15 view .LVU1834
5574 018c B380 strh r3, [r6, #4] @ movhi
3464:Middlewares/Third_Party/FatFs/src/ff.c **** fp->err = 0; /* Clear error flag */
5575 .loc 1 3464 4 is_stmt 1 view .LVU1835
3464:Middlewares/Third_Party/FatFs/src/ff.c **** fp->err = 0; /* Clear error flag */
5576 .loc 1 3464 13 is_stmt 0 view .LVU1836
5577 018e 3775 strb r7, [r6, #20]
3465:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = 0; /* Invalidate current data sector */
5578 .loc 1 3465 4 is_stmt 1 view .LVU1837
3465:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = 0; /* Invalidate current data sector */
5579 .loc 1 3465 12 is_stmt 0 view .LVU1838
5580 0190 7175 strb r1, [r6, #21]
3466:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = 0; /* Set file pointer top of the file */
5581 .loc 1 3466 4 is_stmt 1 view .LVU1839
3466:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = 0; /* Set file pointer top of the file */
ARM GAS /tmp/ccH7dUYB.s page 229
5582 .loc 1 3466 13 is_stmt 0 view .LVU1840
5583 0192 3162 str r1, [r6, #32]
3467:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5584 .loc 1 3467 4 is_stmt 1 view .LVU1841
3467:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5585 .loc 1 3467 13 is_stmt 0 view .LVU1842
5586 0194 B161 str r1, [r6, #24]
3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5587 .loc 1 3470 4 is_stmt 1 view .LVU1843
3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5588 .loc 1 3470 14 is_stmt 0 view .LVU1844
5589 0196 06F13008 add r8, r6, #48
3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5590 .loc 1 3470 4 view .LVU1845
5591 019a 4FF48052 mov r2, #4096
5592 019e 4046 mov r0, r8
5593 01a0 FFF7FEFF bl mem_set
5594 .LVL651:
3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */
5595 .loc 1 3472 4 is_stmt 1 view .LVU1846
3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */
5596 .loc 1 3472 7 is_stmt 0 view .LVU1847
5597 01a4 17F0200F tst r7, #32
5598 01a8 39D0 beq .L396
3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */
5599 .loc 1 3472 38 discriminator 1 view .LVU1848
5600 01aa F468 ldr r4, [r6, #12]
3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */
5601 .loc 1 3472 28 discriminator 1 view .LVU1849
5602 01ac 002C cmp r4, #0
5603 01ae 36D0 beq .L396
3473:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */
5604 .loc 1 3473 5 is_stmt 1 view .LVU1850
3473:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */
5605 .loc 1 3473 14 is_stmt 0 view .LVU1851
5606 01b0 B461 str r4, [r6, #24]
3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */
5607 .loc 1 3474 5 is_stmt 1 view .LVU1852
3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */
5608 .loc 1 3474 20 is_stmt 0 view .LVU1853
5609 01b2 039B ldr r3, [sp, #12]
5610 01b4 5F89 ldrh r7, [r3, #10]
5611 .LVL652:
3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */
5612 .loc 1 3474 30 view .LVU1854
5613 01b6 9B89 ldrh r3, [r3, #12]
3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */
5614 .loc 1 3474 9 view .LVU1855
5615 01b8 03FB07F7 mul r7, r3, r7
5616 .LVL653:
3475:Middlewares/Third_Party/FatFs/src/ff.c **** for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) {
5617 .loc 1 3475 5 is_stmt 1 view .LVU1856
3475:Middlewares/Third_Party/FatFs/src/ff.c **** for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) {
5618 .loc 1 3475 10 is_stmt 0 view .LVU1857
5619 01bc B168 ldr r1, [r6, #8]
5620 .LVL654:
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
ARM GAS /tmp/ccH7dUYB.s page 230
5621 .loc 1 3476 5 is_stmt 1 view .LVU1858
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5622 .loc 1 3476 5 is_stmt 0 view .LVU1859
5623 01be 01E0 b .L397
5624 .LVL655:
5625 .L409:
3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR;
5626 .loc 1 3478 25 discriminator 1 view .LVU1860
5627 01c0 0225 movs r5, #2
5628 .LVL656:
5629 .L398:
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5630 .loc 1 3476 64 is_stmt 1 discriminator 2 view .LVU1861
5631 01c2 E41B subs r4, r4, r7
5632 .LVL657:
5633 .L397:
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5634 .loc 1 3476 46 discriminator 1 view .LVU1862
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5635 .loc 1 3476 53 is_stmt 0 discriminator 1 view .LVU1863
5636 01c4 BC42 cmp r4, r7
5637 01c6 94BF ite ls
5638 01c8 0023 movls r3, #0
5639 01ca 0123 movhi r3, #1
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5640 .loc 1 3476 46 discriminator 1 view .LVU1864
5641 01cc 5DB9 cbnz r5, .L413
3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst);
5642 .loc 1 3476 46 discriminator 1 view .LVU1865
5643 01ce 53B1 cbz r3, .L413
3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR;
5644 .loc 1 3477 6 is_stmt 1 view .LVU1866
3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR;
5645 .loc 1 3477 13 is_stmt 0 view .LVU1867
5646 01d0 3046 mov r0, r6
5647 01d2 FFF7FEFF bl get_fat
5648 .LVL658:
3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR;
5649 .loc 1 3477 13 view .LVU1868
5650 01d6 0146 mov r1, r0
5651 .LVL659:
3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR;
5652 .loc 1 3478 6 is_stmt 1 view .LVU1869
3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR;
5653 .loc 1 3478 9 is_stmt 0 view .LVU1870
5654 01d8 0128 cmp r0, #1
5655 01da F1D9 bls .L409
3479:Middlewares/Third_Party/FatFs/src/ff.c **** }
5656 .loc 1 3479 6 is_stmt 1 view .LVU1871
3479:Middlewares/Third_Party/FatFs/src/ff.c **** }
5657 .loc 1 3479 9 is_stmt 0 view .LVU1872
5658 01dc B0F1FF3F cmp r0, #-1
5659 01e0 EFD1 bne .L398
3479:Middlewares/Third_Party/FatFs/src/ff.c **** }
5660 .loc 1 3479 34 discriminator 1 view .LVU1873
5661 01e2 0125 movs r5, #1
5662 .LVL660:
ARM GAS /tmp/ccH7dUYB.s page 231
3479:Middlewares/Third_Party/FatFs/src/ff.c **** }
5663 .loc 1 3479 34 discriminator 1 view .LVU1874
5664 01e4 EDE7 b .L398
5665 .LVL661:
5666 .L413:
3481:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */
5667 .loc 1 3481 5 is_stmt 1 view .LVU1875
3481:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */
5668 .loc 1 3481 15 is_stmt 0 view .LVU1876
5669 01e6 F161 str r1, [r6, #28]
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5670 .loc 1 3482 5 is_stmt 1 view .LVU1877
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5671 .loc 1 3482 8 is_stmt 0 view .LVU1878
5672 01e8 002D cmp r5, #0
5673 01ea 7FF41BAF bne .L388
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5674 .loc 1 3482 31 discriminator 1 view .LVU1879
5675 01ee 039F ldr r7, [sp, #12]
5676 .LVL662:
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5677 .loc 1 3482 31 discriminator 1 view .LVU1880
5678 01f0 B7F80C90 ldrh r9, [r7, #12]
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5679 .loc 1 3482 29 discriminator 1 view .LVU1881
5680 01f4 B4FBF9F3 udiv r3, r4, r9
5681 01f8 09FB1343 mls r3, r9, r3, r4
3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) {
5682 .loc 1 3482 22 discriminator 1 view .LVU1882
5683 01fc 7BB1 cbz r3, .L396
3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
5684 .loc 1 3483 6 is_stmt 1 view .LVU1883
3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
5685 .loc 1 3483 16 is_stmt 0 view .LVU1884
5686 01fe 3846 mov r0, r7
5687 0200 FFF7FEFF bl clust2sect
5688 .LVL663:
3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
5689 .loc 1 3483 9 discriminator 1 view .LVU1885
5690 0204 08B9 cbnz r0, .L419
3484:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5691 .loc 1 3484 11 view .LVU1886
5692 0206 0225 movs r5, #2
5693 .LVL664:
3484:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5694 .loc 1 3484 11 view .LVU1887
5695 0208 0CE7 b .L388
5696 .LVL665:
5697 .L419:
3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
5698 .loc 1 3486 7 is_stmt 1 view .LVU1888
3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
5699 .loc 1 3486 23 is_stmt 0 view .LVU1889
5700 020a B4FBF9F2 udiv r2, r4, r9
3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
5701 .loc 1 3486 21 view .LVU1890
5702 020e 0244 add r2, r2, r0
ARM GAS /tmp/ccH7dUYB.s page 232
3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
5703 .loc 1 3486 16 view .LVU1891
5704 0210 3262 str r2, [r6, #32]
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5705 .loc 1 3488 7 is_stmt 1 view .LVU1892
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5706 .loc 1 3488 11 is_stmt 0 view .LVU1893
5707 0212 0123 movs r3, #1
5708 0214 4146 mov r1, r8
5709 0216 7878 ldrb r0, [r7, #1] @ zero_extendqisi2
5710 .LVL666:
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5711 .loc 1 3488 11 view .LVU1894
5712 0218 FFF7FEFF bl disk_read
5713 .LVL667:
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5714 .loc 1 3488 10 discriminator 1 view .LVU1895
5715 021c 28B9 cbnz r0, .L412
5716 .LVL668:
5717 .L396:
3496:Middlewares/Third_Party/FatFs/src/ff.c **** }
5718 .loc 1 3496 16 is_stmt 1 view .LVU1896
3499:Middlewares/Third_Party/FatFs/src/ff.c ****
5719 .loc 1 3499 2 view .LVU1897
3499:Middlewares/Third_Party/FatFs/src/ff.c ****
5720 .loc 1 3499 5 is_stmt 0 view .LVU1898
5721 021e 002D cmp r5, #0
5722 0220 3FF402AF beq .L387
3499:Middlewares/Third_Party/FatFs/src/ff.c ****
5723 .loc 1 3499 5 view .LVU1899
5724 0224 FEE6 b .L388
5725 .LVL669:
5726 .L406:
3414:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5727 .loc 1 3414 10 view .LVU1900
5728 0226 0425 movs r5, #4
5729 .LVL670:
3414:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
5730 .loc 1 3414 10 view .LVU1901
5731 0228 FCE6 b .L388
5732 .LVL671:
5733 .L412:
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5734 .loc 1 3488 67 discriminator 1 view .LVU1902
5735 022a 0125 movs r5, #1
5736 .LVL672:
3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5737 .loc 1 3488 67 discriminator 1 view .LVU1903
5738 022c FAE6 b .L388
5739 .LVL673:
5740 .L401:
3324:Middlewares/Third_Party/FatFs/src/ff.c ****
5741 .loc 1 3324 18 discriminator 1 view .LVU1904
5742 022e 0925 movs r5, #9
5743 0230 FAE6 b .L387
5744 .cfi_endproc
5745 .LFE1222:
ARM GAS /tmp/ccH7dUYB.s page 233
5747 .section .text.f_read,"ax",%progbits
5748 .align 1
5749 .global f_read
5750 .syntax unified
5751 .thumb
5752 .thumb_func
5754 f_read:
5755 .LVL674:
5756 .LFB1223:
3517:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5757 .loc 1 3517 1 is_stmt 1 view -0
5758 .cfi_startproc
5759 @ args = 0, pretend = 0, frame = 16
5760 @ frame_needed = 0, uses_anonymous_args = 0
3517:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
5761 .loc 1 3517 1 is_stmt 0 view .LVU1906
5762 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5763 .LCFI46:
5764 .cfi_def_cfa_offset 36
5765 .cfi_offset 4, -36
5766 .cfi_offset 5, -32
5767 .cfi_offset 6, -28
5768 .cfi_offset 7, -24
5769 .cfi_offset 8, -20
5770 .cfi_offset 9, -16
5771 .cfi_offset 10, -12
5772 .cfi_offset 11, -8
5773 .cfi_offset 14, -4
5774 0004 85B0 sub sp, sp, #20
5775 .LCFI47:
5776 .cfi_def_cfa_offset 56
5777 0006 0446 mov r4, r0
5778 0008 0F46 mov r7, r1
5779 000a 1546 mov r5, r2
5780 000c 9846 mov r8, r3
3518:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
5781 .loc 1 3518 2 is_stmt 1 view .LVU1907
3519:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect;
5782 .loc 1 3519 2 view .LVU1908
3520:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t remain;
5783 .loc 1 3520 2 view .LVU1909
3521:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rcnt, cc, csect;
5784 .loc 1 3521 2 view .LVU1910
3522:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *rbuff = (BYTE*)buff;
5785 .loc 1 3522 2 view .LVU1911
3523:Middlewares/Third_Party/FatFs/src/ff.c ****
5786 .loc 1 3523 2 view .LVU1912
5787 .LVL675:
3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
5788 .loc 1 3526 2 view .LVU1913
3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
5789 .loc 1 3526 6 is_stmt 0 view .LVU1914
5790 000e 0023 movs r3, #0
5791 .LVL676:
3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
5792 .loc 1 3526 6 view .LVU1915
5793 0010 C8F80030 str r3, [r8]
ARM GAS /tmp/ccH7dUYB.s page 234
3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
5794 .loc 1 3527 2 is_stmt 1 view .LVU1916
3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
5795 .loc 1 3527 8 is_stmt 0 view .LVU1917
5796 0014 03A9 add r1, sp, #12
5797 .LVL677:
3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
5798 .loc 1 3527 8 view .LVU1918
5799 0016 FFF7FEFF bl validate
5800 .LVL678:
3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
5801 .loc 1 3528 2 is_stmt 1 view .LVU1919
3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
5802 .loc 1 3528 5 is_stmt 0 view .LVU1920
5803 001a 0190 str r0, [sp, #4]
5804 001c 0028 cmp r0, #0
5805 001e 40F0B980 bne .L423
3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
5806 .loc 1 3528 27 discriminator 2 view .LVU1921
5807 0022 637D ldrb r3, [r4, #21] @ zero_extendqisi2
5808 0024 0193 str r3, [sp, #4]
5809 .LVL679:
3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
5810 .loc 1 3528 19 discriminator 2 view .LVU1922
5811 0026 002B cmp r3, #0
5812 0028 40F0B480 bne .L423
3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
5813 .loc 1 3529 2 is_stmt 1 view .LVU1923
3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
5814 .loc 1 3529 10 is_stmt 0 view .LVU1924
5815 002c 237D ldrb r3, [r4, #20] @ zero_extendqisi2
5816 .LVL680:
3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
5817 .loc 1 3529 5 view .LVU1925
5818 002e 13F0010F tst r3, #1
5819 0032 00F0CE80 beq .L445
3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
5820 .loc 1 3530 2 is_stmt 1 view .LVU1926
3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
5821 .loc 1 3530 18 is_stmt 0 view .LVU1927
5822 0036 E668 ldr r6, [r4, #12]
3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
5823 .loc 1 3530 31 view .LVU1928
5824 0038 A369 ldr r3, [r4, #24]
3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
5825 .loc 1 3530 9 view .LVU1929
5826 003a F61A subs r6, r6, r3
5827 .LVL681:
3531:Middlewares/Third_Party/FatFs/src/ff.c ****
5828 .loc 1 3531 2 is_stmt 1 view .LVU1930
3531:Middlewares/Third_Party/FatFs/src/ff.c ****
5829 .loc 1 3531 5 is_stmt 0 view .LVU1931
5830 003c AE42 cmp r6, r5
5831 003e 67D3 bcc .L443
5832 0040 2E46 mov r6, r5
5833 .LVL682:
3531:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 235
5834 .loc 1 3531 5 view .LVU1932
5835 0042 65E0 b .L443
5836 .LVL683:
5837 .L428:
3542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
5838 .loc 1 3542 6 is_stmt 1 view .LVU1933
3542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
5839 .loc 1 3542 12 is_stmt 0 view .LVU1934
5840 0044 E36A ldr r3, [r4, #44]
3542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
5841 .loc 1 3542 9 view .LVU1935
5842 0046 1BB1 cbz r3, .L430
3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5843 .loc 1 3543 7 is_stmt 1 view .LVU1936
3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5844 .loc 1 3543 14 is_stmt 0 view .LVU1937
5845 0048 2046 mov r0, r4
5846 004a FFF7FEFF bl clmt_clust
5847 .LVL684:
3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else
5848 .loc 1 3543 14 view .LVU1938
5849 004e 73E0 b .L429
5850 .LVL685:
5851 .L430:
3547:Middlewares/Third_Party/FatFs/src/ff.c **** }
5852 .loc 1 3547 7 is_stmt 1 view .LVU1939
3547:Middlewares/Third_Party/FatFs/src/ff.c **** }
5853 .loc 1 3547 14 is_stmt 0 view .LVU1940
5854 0050 E169 ldr r1, [r4, #28]
5855 0052 2046 mov r0, r4
5856 0054 FFF7FEFF bl get_fat
5857 .LVL686:
3547:Middlewares/Third_Party/FatFs/src/ff.c **** }
5858 .loc 1 3547 14 view .LVU1941
5859 0058 6EE0 b .L429
5860 .L452:
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
5861 .loc 1 3550 19 is_stmt 1 discriminator 1 view .LVU1942
5862 005a 4FF0020A mov r10, #2
5863 005e 84F815A0 strb r10, [r4, #21]
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
5864 .loc 1 3550 19 discriminator 1 view .LVU1943
5865 0062 CDF804A0 str r10, [sp, #4]
5866 .LVL687:
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
5867 .loc 1 3550 19 is_stmt 0 view .LVU1944
5868 0066 95E0 b .L423
5869 .LVL688:
5870 .L453:
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
5871 .loc 1 3551 29 is_stmt 1 discriminator 1 view .LVU1945
5872 0068 4FF0010A mov r10, #1
5873 006c 84F815A0 strb r10, [r4, #21]
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
5874 .loc 1 3551 29 discriminator 1 view .LVU1946
5875 0070 CDF804A0 str r10, [sp, #4]
5876 .LVL689:
ARM GAS /tmp/ccH7dUYB.s page 236
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
5877 .loc 1 3551 29 is_stmt 0 view .LVU1947
5878 0074 8EE0 b .L423
5879 .LVL690:
5880 .L454:
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
5881 .loc 1 3555 15 is_stmt 1 discriminator 1 view .LVU1948
5882 0076 4FF0020A mov r10, #2
5883 007a 84F815A0 strb r10, [r4, #21]
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
5884 .loc 1 3555 15 discriminator 1 view .LVU1949
5885 007e CDF804A0 str r10, [sp, #4]
5886 .LVL691:
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
5887 .loc 1 3555 15 is_stmt 0 view .LVU1950
5888 0082 87E0 b .L423
5889 .LVL692:
5890 .L436:
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
5891 .loc 1 3562 78 is_stmt 1 discriminator 2 view .LVU1951
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5892 .loc 1 3569 5 view .LVU1952
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5893 .loc 1 3569 9 is_stmt 0 view .LVU1953
5894 0084 94F91430 ldrsb r3, [r4, #20]
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5895 .loc 1 3569 8 view .LVU1954
5896 0088 002B cmp r3, #0
5897 008a 04DB blt .L449
5898 .L437:
3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
5899 .loc 1 3574 5 is_stmt 1 view .LVU1955
3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
5900 .loc 1 3574 12 is_stmt 0 view .LVU1956
5901 008c 039B ldr r3, [sp, #12]
5902 008e 9D89 ldrh r5, [r3, #12]
5903 .LVL693:
3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
5904 .loc 1 3574 10 view .LVU1957
5905 0090 0AFB05F5 mul r5, r10, r5
5906 .LVL694:
3575:Middlewares/Third_Party/FatFs/src/ff.c **** }
5907 .loc 1 3575 5 is_stmt 1 view .LVU1958
5908 0094 32E0 b .L438
5909 .LVL695:
5910 .L449:
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5911 .loc 1 3569 36 is_stmt 0 discriminator 1 view .LVU1959
5912 0096 236A ldr r3, [r4, #32]
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5913 .loc 1 3569 43 discriminator 1 view .LVU1960
5914 0098 A3EB0903 sub r3, r3, r9
3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs));
5915 .loc 1 3569 31 discriminator 1 view .LVU1961
5916 009c 5345 cmp r3, r10
5917 009e F5D2 bcs .L437
3570:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 237
5918 .loc 1 3570 6 is_stmt 1 view .LVU1962
3570:Middlewares/Third_Party/FatFs/src/ff.c **** }
5919 .loc 1 3570 43 is_stmt 0 view .LVU1963
5920 00a0 039A ldr r2, [sp, #12]
5921 00a2 9289 ldrh r2, [r2, #12]
3570:Middlewares/Third_Party/FatFs/src/ff.c **** }
5922 .loc 1 3570 6 view .LVU1964
5923 00a4 04F13001 add r1, r4, #48
5924 00a8 02FB0370 mla r0, r2, r3, r7
5925 00ac FFF7FEFF bl mem_cpy
5926 .LVL696:
5927 00b0 ECE7 b .L437
5928 .L434:
3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5929 .loc 1 3578 4 is_stmt 1 view .LVU1965
3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5930 .loc 1 3578 10 is_stmt 0 view .LVU1966
5931 00b2 226A ldr r2, [r4, #32]
3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
5932 .loc 1 3578 7 view .LVU1967
5933 00b4 4A45 cmp r2, r9
5934 00b6 0DD0 beq .L439
3580:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
5935 .loc 1 3580 5 is_stmt 1 view .LVU1968
3580:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
5936 .loc 1 3580 9 is_stmt 0 view .LVU1969
5937 00b8 94F91430 ldrsb r3, [r4, #20]
3580:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
5938 .loc 1 3580 8 view .LVU1970
5939 00bc 002B cmp r3, #0
5940 00be 6DDB blt .L450
5941 .L440:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
5942 .loc 1 3585 5 is_stmt 1 view .LVU1971
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
5943 .loc 1 3585 9 is_stmt 0 view .LVU1972
5944 00c0 0123 movs r3, #1
5945 00c2 4A46 mov r2, r9
5946 00c4 04F13001 add r1, r4, #48
5947 00c8 0398 ldr r0, [sp, #12]
5948 00ca 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
5949 00cc FFF7FEFF bl disk_read
5950 .LVL697:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
5951 .loc 1 3585 8 discriminator 1 view .LVU1973
5952 00d0 0028 cmp r0, #0
5953 00d2 77D1 bne .L451
5954 .L439:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
5955 .loc 1 3585 79 is_stmt 1 discriminator 2 view .LVU1974
3588:Middlewares/Third_Party/FatFs/src/ff.c **** }
5956 .loc 1 3588 4 view .LVU1975
3588:Middlewares/Third_Party/FatFs/src/ff.c **** }
5957 .loc 1 3588 13 is_stmt 0 view .LVU1976
5958 00d4 C4F82090 str r9, [r4, #32]
5959 .LVL698:
5960 .L426:
ARM GAS /tmp/ccH7dUYB.s page 238
3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
5961 .loc 1 3590 3 is_stmt 1 view .LVU1977
3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
5962 .loc 1 3590 10 is_stmt 0 view .LVU1978
5963 00d8 039B ldr r3, [sp, #12]
5964 00da 9D89 ldrh r5, [r3, #12]
3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
5965 .loc 1 3590 27 view .LVU1979
5966 00dc A369 ldr r3, [r4, #24]
3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
5967 .loc 1 3590 34 view .LVU1980
5968 00de B3FBF5F2 udiv r2, r3, r5
5969 00e2 05FB1233 mls r3, r5, r2, r3
3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */
5970 .loc 1 3590 8 view .LVU1981
5971 00e6 ED1A subs r5, r5, r3
5972 .LVL699:
3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
5973 .loc 1 3591 3 is_stmt 1 view .LVU1982
3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
5974 .loc 1 3591 6 is_stmt 0 view .LVU1983
5975 00e8 AE42 cmp r6, r5
5976 00ea 00D2 bcs .L442
3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
5977 .loc 1 3591 24 discriminator 1 view .LVU1984
5978 00ec 3546 mov r5, r6
5979 .LVL700:
5980 .L442:
3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5981 .loc 1 3596 3 is_stmt 1 view .LVU1985
3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5982 .loc 1 3596 18 is_stmt 0 view .LVU1986
5983 00ee 04F13001 add r1, r4, #48
3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
5984 .loc 1 3596 3 view .LVU1987
5985 00f2 2A46 mov r2, r5
5986 00f4 1944 add r1, r1, r3
5987 00f6 3846 mov r0, r7
5988 00f8 FFF7FEFF bl mem_cpy
5989 .LVL701:
5990 .L438:
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
5991 .loc 1 3534 47 is_stmt 1 view .LVU1988
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
5992 .loc 1 3534 9 is_stmt 0 view .LVU1989
5993 00fc 2F44 add r7, r7, r5
5994 .LVL702:
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
5995 .loc 1 3534 20 view .LVU1990
5996 00fe A369 ldr r3, [r4, #24]
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
5997 .loc 1 3534 27 view .LVU1991
5998 0100 2B44 add r3, r3, r5
5999 0102 A361 str r3, [r4, #24]
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6000 .loc 1 3534 36 view .LVU1992
6001 0104 D8F80030 ldr r3, [r8]
ARM GAS /tmp/ccH7dUYB.s page 239
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6002 .loc 1 3534 40 view .LVU1993
6003 0108 2B44 add r3, r3, r5
6004 010a C8F80030 str r3, [r8]
3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6005 .loc 1 3534 53 view .LVU1994
6006 010e 761B subs r6, r6, r5
6007 .LVL703:
6008 .L443:
3533:Middlewares/Third_Party/FatFs/src/ff.c **** rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
6009 .loc 1 3533 11 is_stmt 1 view .LVU1995
6010 0110 002E cmp r6, #0
6011 0112 3FD0 beq .L423
3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
6012 .loc 1 3535 3 view .LVU1996
3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
6013 .loc 1 3535 9 is_stmt 0 view .LVU1997
6014 0114 A169 ldr r1, [r4, #24]
3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
6015 .loc 1 3535 18 view .LVU1998
6016 0116 039A ldr r2, [sp, #12]
6017 0118 9589 ldrh r5, [r2, #12]
3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
6018 .loc 1 3535 16 view .LVU1999
6019 011a B1FBF5F3 udiv r3, r1, r5
6020 011e 05FB1313 mls r3, r5, r3, r1
3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */
6021 .loc 1 3535 6 view .LVU2000
6022 0122 002B cmp r3, #0
6023 0124 D8D1 bne .L426
3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6024 .loc 1 3536 4 is_stmt 1 view .LVU2001
3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6025 .loc 1 3536 28 is_stmt 0 view .LVU2002
6026 0126 B1FBF5F5 udiv r5, r1, r5
3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6027 .loc 1 3536 42 view .LVU2003
6028 012a 5389 ldrh r3, [r2, #10]
3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6029 .loc 1 3536 50 view .LVU2004
6030 012c 013B subs r3, r3, #1
6031 .LVL704:
3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6032 .loc 1 3537 4 is_stmt 1 view .LVU2005
3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6033 .loc 1 3537 7 is_stmt 0 view .LVU2006
6034 012e 1D40 ands r5, r5, r3
6035 .LVL705:
3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6036 .loc 1 3537 7 view .LVU2007
6037 0130 08D1 bne .L427
3538:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow cluster chain from the origin */
6038 .loc 1 3538 5 is_stmt 1 view .LVU2008
3538:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow cluster chain from the origin */
6039 .loc 1 3538 8 is_stmt 0 view .LVU2009
6040 0132 0029 cmp r1, #0
6041 0134 86D1 bne .L428
ARM GAS /tmp/ccH7dUYB.s page 240
3539:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Middle or end of the file */
6042 .loc 1 3539 6 is_stmt 1 view .LVU2010
3539:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Middle or end of the file */
6043 .loc 1 3539 11 is_stmt 0 view .LVU2011
6044 0136 A068 ldr r0, [r4, #8]
6045 .LVL706:
6046 .L429:
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6047 .loc 1 3550 5 is_stmt 1 view .LVU2012
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6048 .loc 1 3550 8 is_stmt 0 view .LVU2013
6049 0138 0128 cmp r0, #1
6050 013a 8ED9 bls .L452
3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6051 .loc 1 3550 40 is_stmt 1 discriminator 2 view .LVU2014
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6052 .loc 1 3551 5 view .LVU2015
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6053 .loc 1 3551 8 is_stmt 0 view .LVU2016
6054 013c B0F1FF3F cmp r0, #-1
6055 0140 92D0 beq .L453
3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6056 .loc 1 3551 51 is_stmt 1 discriminator 2 view .LVU2017
3552:Middlewares/Third_Party/FatFs/src/ff.c **** }
6057 .loc 1 3552 5 view .LVU2018
3552:Middlewares/Third_Party/FatFs/src/ff.c **** }
6058 .loc 1 3552 15 is_stmt 0 view .LVU2019
6059 0142 E061 str r0, [r4, #28]
6060 .LVL707:
6061 .L427:
3554:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
6062 .loc 1 3554 4 is_stmt 1 view .LVU2020
3554:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
6063 .loc 1 3554 11 is_stmt 0 view .LVU2021
6064 0144 DDF80CB0 ldr fp, [sp, #12]
6065 0148 E169 ldr r1, [r4, #28]
6066 014a 5846 mov r0, fp
6067 014c FFF7FEFF bl clust2sect
6068 .LVL708:
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6069 .loc 1 3555 4 is_stmt 1 view .LVU2022
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6070 .loc 1 3555 7 is_stmt 0 view .LVU2023
6071 0150 8146 mov r9, r0
6072 0152 0028 cmp r0, #0
6073 0154 8FD0 beq .L454
3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6074 .loc 1 3555 36 is_stmt 1 discriminator 2 view .LVU2024
3556:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btr / SS(fs); /* When remaining bytes >= sector size, */
6075 .loc 1 3556 4 view .LVU2025
3556:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btr / SS(fs); /* When remaining bytes >= sector size, */
6076 .loc 1 3556 9 is_stmt 0 view .LVU2026
6077 0156 A944 add r9, r9, r5
6078 .LVL709:
3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */
6079 .loc 1 3557 4 is_stmt 1 view .LVU2027
3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */
ARM GAS /tmp/ccH7dUYB.s page 241
6080 .loc 1 3557 15 is_stmt 0 view .LVU2028
6081 0158 BBF80C30 ldrh r3, [fp, #12]
3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */
6082 .loc 1 3557 7 view .LVU2029
6083 015c B6FBF3FA udiv r10, r6, r3
6084 .LVL710:
3558:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
6085 .loc 1 3558 4 is_stmt 1 view .LVU2030
3558:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
6086 .loc 1 3558 7 is_stmt 0 view .LVU2031
6087 0160 B342 cmp r3, r6
6088 0162 A6D8 bhi .L434
3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6089 .loc 1 3559 5 is_stmt 1 view .LVU2032
3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6090 .loc 1 3559 15 is_stmt 0 view .LVU2033
6091 0164 05EB0A03 add r3, r5, r10
3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6092 .loc 1 3559 24 view .LVU2034
6093 0168 BBF80A20 ldrh r2, [fp, #10]
3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6094 .loc 1 3559 8 view .LVU2035
6095 016c 9342 cmp r3, r2
6096 016e 01D9 bls .L435
3560:Middlewares/Third_Party/FatFs/src/ff.c **** }
6097 .loc 1 3560 6 is_stmt 1 view .LVU2036
3560:Middlewares/Third_Party/FatFs/src/ff.c **** }
6098 .loc 1 3560 9 is_stmt 0 view .LVU2037
6099 0170 A2EB050A sub r10, r2, r5
6100 .LVL711:
6101 .L435:
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6102 .loc 1 3562 5 is_stmt 1 view .LVU2038
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6103 .loc 1 3562 9 is_stmt 0 view .LVU2039
6104 0174 5346 mov r3, r10
6105 0176 4A46 mov r2, r9
6106 0178 3946 mov r1, r7
6107 017a 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2
6108 017e FFF7FEFF bl disk_read
6109 .LVL712:
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6110 .loc 1 3562 8 discriminator 1 view .LVU2040
6111 0182 0028 cmp r0, #0
6112 0184 3FF47EAF beq .L436
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6113 .loc 1 3562 56 is_stmt 1 discriminator 1 view .LVU2041
6114 0188 4FF0010A mov r10, #1
6115 .LVL713:
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6116 .loc 1 3562 56 is_stmt 0 discriminator 1 view .LVU2042
6117 018c 84F815A0 strb r10, [r4, #21]
3562:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it
6118 .loc 1 3562 56 is_stmt 1 discriminator 1 view .LVU2043
6119 0190 CDF804A0 str r10, [sp, #4]
6120 .LVL714:
6121 .L423:
ARM GAS /tmp/ccH7dUYB.s page 242
3601:Middlewares/Third_Party/FatFs/src/ff.c ****
6122 .loc 1 3601 1 is_stmt 0 view .LVU2044
6123 0194 0198 ldr r0, [sp, #4]
6124 0196 05B0 add sp, sp, #20
6125 .LCFI48:
6126 .cfi_remember_state
6127 .cfi_def_cfa_offset 36
6128 @ sp needed
6129 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6130 .LVL715:
6131 .L450:
6132 .LCFI49:
6133 .cfi_restore_state
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6134 .loc 1 3581 6 is_stmt 1 view .LVU2045
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6135 .loc 1 3581 10 is_stmt 0 view .LVU2046
6136 019c 0123 movs r3, #1
6137 019e 04F13001 add r1, r4, #48
6138 01a2 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2
6139 01a6 FFF7FEFF bl disk_write
6140 .LVL716:
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6141 .loc 1 3581 9 discriminator 1 view .LVU2047
6142 01aa 20B9 cbnz r0, .L455
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6143 .loc 1 3581 85 is_stmt 1 discriminator 2 view .LVU2048
3582:Middlewares/Third_Party/FatFs/src/ff.c **** }
6144 .loc 1 3582 6 view .LVU2049
3582:Middlewares/Third_Party/FatFs/src/ff.c **** }
6145 .loc 1 3582 8 is_stmt 0 view .LVU2050
6146 01ac 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3582:Middlewares/Third_Party/FatFs/src/ff.c **** }
6147 .loc 1 3582 15 view .LVU2051
6148 01ae 03F07F03 and r3, r3, #127
6149 01b2 2375 strb r3, [r4, #20]
6150 01b4 84E7 b .L440
6151 .L455:
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6152 .loc 1 3581 63 is_stmt 1 discriminator 1 view .LVU2052
6153 01b6 4FF0010A mov r10, #1
6154 .LVL717:
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6155 .loc 1 3581 63 is_stmt 0 discriminator 1 view .LVU2053
6156 01ba 84F815A0 strb r10, [r4, #21]
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6157 .loc 1 3581 63 is_stmt 1 discriminator 1 view .LVU2054
6158 01be CDF804A0 str r10, [sp, #4]
6159 .LVL718:
3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6160 .loc 1 3581 63 is_stmt 0 view .LVU2055
6161 01c2 E7E7 b .L423
6162 .LVL719:
6163 .L451:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
6164 .loc 1 3585 57 is_stmt 1 discriminator 1 view .LVU2056
6165 01c4 4FF0010A mov r10, #1
ARM GAS /tmp/ccH7dUYB.s page 243
6166 .LVL720:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
6167 .loc 1 3585 57 is_stmt 0 discriminator 1 view .LVU2057
6168 01c8 84F815A0 strb r10, [r4, #21]
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
6169 .loc 1 3585 57 is_stmt 1 discriminator 1 view .LVU2058
6170 01cc CDF804A0 str r10, [sp, #4]
6171 .LVL721:
3585:Middlewares/Third_Party/FatFs/src/ff.c **** }
6172 .loc 1 3585 57 is_stmt 0 view .LVU2059
6173 01d0 E0E7 b .L423
6174 .LVL722:
6175 .L445:
3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
6176 .loc 1 3529 29 discriminator 1 view .LVU2060
6177 01d2 0723 movs r3, #7
6178 01d4 0193 str r3, [sp, #4]
6179 .LVL723:
3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr;
6180 .loc 1 3529 29 discriminator 1 view .LVU2061
6181 01d6 DDE7 b .L423
6182 .cfi_endproc
6183 .LFE1223:
6185 .section .text.f_write,"ax",%progbits
6186 .align 1
6187 .global f_write
6188 .syntax unified
6189 .thumb
6190 .thumb_func
6192 f_write:
6193 .LVL724:
6194 .LFB1224:
3617:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
6195 .loc 1 3617 1 is_stmt 1 view -0
6196 .cfi_startproc
6197 @ args = 0, pretend = 0, frame = 16
6198 @ frame_needed = 0, uses_anonymous_args = 0
3617:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
6199 .loc 1 3617 1 is_stmt 0 view .LVU2063
6200 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6201 .LCFI50:
6202 .cfi_def_cfa_offset 36
6203 .cfi_offset 4, -36
6204 .cfi_offset 5, -32
6205 .cfi_offset 6, -28
6206 .cfi_offset 7, -24
6207 .cfi_offset 8, -20
6208 .cfi_offset 9, -16
6209 .cfi_offset 10, -12
6210 .cfi_offset 11, -8
6211 .cfi_offset 14, -4
6212 0004 85B0 sub sp, sp, #20
6213 .LCFI51:
6214 .cfi_def_cfa_offset 56
6215 0006 0446 mov r4, r0
6216 0008 0F46 mov r7, r1
6217 000a 1546 mov r5, r2
ARM GAS /tmp/ccH7dUYB.s page 244
6218 000c 9846 mov r8, r3
3618:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
6219 .loc 1 3618 2 is_stmt 1 view .LVU2064
3619:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect;
6220 .loc 1 3619 2 view .LVU2065
3620:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wcnt, cc, csect;
6221 .loc 1 3620 2 view .LVU2066
3621:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *wbuff = (const BYTE*)buff;
6222 .loc 1 3621 2 view .LVU2067
3622:Middlewares/Third_Party/FatFs/src/ff.c ****
6223 .loc 1 3622 2 view .LVU2068
6224 .LVL725:
3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
6225 .loc 1 3625 2 view .LVU2069
3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
6226 .loc 1 3625 6 is_stmt 0 view .LVU2070
6227 000e 0023 movs r3, #0
6228 .LVL726:
3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */
6229 .loc 1 3625 6 view .LVU2071
6230 0010 C8F80030 str r3, [r8]
3626:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
6231 .loc 1 3626 2 is_stmt 1 view .LVU2072
3626:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
6232 .loc 1 3626 8 is_stmt 0 view .LVU2073
6233 0014 03A9 add r1, sp, #12
6234 .LVL727:
3626:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */
6235 .loc 1 3626 8 view .LVU2074
6236 0016 FFF7FEFF bl validate
6237 .LVL728:
3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
6238 .loc 1 3627 2 is_stmt 1 view .LVU2075
3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
6239 .loc 1 3627 5 is_stmt 0 view .LVU2076
6240 001a 0190 str r0, [sp, #4]
6241 001c 0028 cmp r0, #0
6242 001e 4AD1 bne .L459
3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
6243 .loc 1 3627 27 discriminator 2 view .LVU2077
6244 0020 637D ldrb r3, [r4, #21] @ zero_extendqisi2
6245 0022 0193 str r3, [sp, #4]
6246 .LVL729:
3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
6247 .loc 1 3627 19 discriminator 2 view .LVU2078
6248 0024 002B cmp r3, #0
6249 0026 46D1 bne .L459
3628:Middlewares/Third_Party/FatFs/src/ff.c ****
6250 .loc 1 3628 2 is_stmt 1 view .LVU2079
3628:Middlewares/Third_Party/FatFs/src/ff.c ****
6251 .loc 1 3628 10 is_stmt 0 view .LVU2080
6252 0028 237D ldrb r3, [r4, #20] @ zero_extendqisi2
6253 .LVL730:
3628:Middlewares/Third_Party/FatFs/src/ff.c ****
6254 .loc 1 3628 5 view .LVU2081
6255 002a 13F0020F tst r3, #2
6256 002e 00F0EC80 beq .L482
ARM GAS /tmp/ccH7dUYB.s page 245
3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr);
6257 .loc 1 3631 2 is_stmt 1 view .LVU2082
3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr);
6258 .loc 1 3631 59 is_stmt 0 view .LVU2083
6259 0032 A369 ldr r3, [r4, #24]
3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr);
6260 .loc 1 3631 5 view .LVU2084
6261 0034 EB42 cmn r3, r5
6262 0036 C0F0B680 bcc .L480
3632:Middlewares/Third_Party/FatFs/src/ff.c **** }
6263 .loc 1 3632 3 is_stmt 1 view .LVU2085
3632:Middlewares/Third_Party/FatFs/src/ff.c **** }
6264 .loc 1 3632 7 is_stmt 0 view .LVU2086
6265 003a DD43 mvns r5, r3
6266 .LVL731:
3632:Middlewares/Third_Party/FatFs/src/ff.c **** }
6267 .loc 1 3632 7 view .LVU2087
6268 003c B3E0 b .L480
6269 .LVL732:
6270 .L463:
3647:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
6271 .loc 1 3647 6 is_stmt 1 view .LVU2088
3647:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
6272 .loc 1 3647 12 is_stmt 0 view .LVU2089
6273 003e E36A ldr r3, [r4, #44]
3647:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */
6274 .loc 1 3647 9 view .LVU2090
6275 0040 002B cmp r3, #0
6276 0042 3CD0 beq .L466
3648:Middlewares/Third_Party/FatFs/src/ff.c **** } else
6277 .loc 1 3648 7 is_stmt 1 view .LVU2091
3648:Middlewares/Third_Party/FatFs/src/ff.c **** } else
6278 .loc 1 3648 14 is_stmt 0 view .LVU2092
6279 0044 2046 mov r0, r4
6280 0046 FFF7FEFF bl clmt_clust
6281 .LVL733:
6282 .L465:
3655:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
6283 .loc 1 3655 5 is_stmt 1 view .LVU2093
3655:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
6284 .loc 1 3655 8 is_stmt 0 view .LVU2094
6285 004a 0028 cmp r0, #0
6286 004c 00F0D880 beq .L467
6287 .L464:
6288 .LVL734:
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6289 .loc 1 3656 5 is_stmt 1 view .LVU2095
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6290 .loc 1 3656 8 is_stmt 0 view .LVU2096
6291 0050 0128 cmp r0, #1
6292 0052 39D0 beq .L485
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6293 .loc 1 3656 41 is_stmt 1 discriminator 2 view .LVU2097
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6294 .loc 1 3657 5 view .LVU2098
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6295 .loc 1 3657 8 is_stmt 0 view .LVU2099
ARM GAS /tmp/ccH7dUYB.s page 246
6296 0054 B0F1FF3F cmp r0, #-1
6297 0058 3DD0 beq .L486
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6298 .loc 1 3657 51 is_stmt 1 discriminator 2 view .LVU2100
3658:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */
6299 .loc 1 3658 5 view .LVU2101
3658:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */
6300 .loc 1 3658 15 is_stmt 0 view .LVU2102
6301 005a E061 str r0, [r4, #28]
3659:Middlewares/Third_Party/FatFs/src/ff.c **** }
6302 .loc 1 3659 5 is_stmt 1 view .LVU2103
3659:Middlewares/Third_Party/FatFs/src/ff.c **** }
6303 .loc 1 3659 16 is_stmt 0 view .LVU2104
6304 005c A368 ldr r3, [r4, #8]
3659:Middlewares/Third_Party/FatFs/src/ff.c **** }
6305 .loc 1 3659 8 view .LVU2105
6306 005e 03B9 cbnz r3, .L462
3659:Middlewares/Third_Party/FatFs/src/ff.c **** }
6307 .loc 1 3659 30 is_stmt 1 discriminator 1 view .LVU2106
3659:Middlewares/Third_Party/FatFs/src/ff.c **** }
6308 .loc 1 3659 45 is_stmt 0 discriminator 1 view .LVU2107
6309 0060 A060 str r0, [r4, #8]
6310 .L462:
3664:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
6311 .loc 1 3664 4 is_stmt 1 view .LVU2108
3664:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
6312 .loc 1 3664 8 is_stmt 0 view .LVU2109
6313 0062 94F91430 ldrsb r3, [r4, #20]
3664:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
6314 .loc 1 3664 7 view .LVU2110
6315 0066 002B cmp r3, #0
6316 0068 3CDB blt .L487
6317 .L470:
3669:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
6318 .loc 1 3669 4 is_stmt 1 view .LVU2111
3669:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR);
6319 .loc 1 3669 11 is_stmt 0 view .LVU2112
6320 006a DDF80CB0 ldr fp, [sp, #12]
6321 006e E169 ldr r1, [r4, #28]
6322 0070 5846 mov r0, fp
6323 0072 FFF7FEFF bl clust2sect
6324 .LVL735:
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6325 .loc 1 3670 4 is_stmt 1 view .LVU2113
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6326 .loc 1 3670 7 is_stmt 0 view .LVU2114
6327 0076 8146 mov r9, r0
6328 0078 0028 cmp r0, #0
6329 007a 48D0 beq .L488
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6330 .loc 1 3670 36 is_stmt 1 discriminator 2 view .LVU2115
3671:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btw / SS(fs); /* When remaining bytes >= sector size, */
6331 .loc 1 3671 4 view .LVU2116
3671:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btw / SS(fs); /* When remaining bytes >= sector size, */
6332 .loc 1 3671 9 is_stmt 0 view .LVU2117
6333 007c B144 add r9, r9, r6
6334 .LVL736:
ARM GAS /tmp/ccH7dUYB.s page 247
3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */
6335 .loc 1 3672 4 is_stmt 1 view .LVU2118
3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */
6336 .loc 1 3672 15 is_stmt 0 view .LVU2119
6337 007e BBF80C30 ldrh r3, [fp, #12]
3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */
6338 .loc 1 3672 7 view .LVU2120
6339 0082 B5FBF3FA udiv r10, r5, r3
6340 .LVL737:
3673:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
6341 .loc 1 3673 4 is_stmt 1 view .LVU2121
3673:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */
6342 .loc 1 3673 7 is_stmt 0 view .LVU2122
6343 0086 AB42 cmp r3, r5
6344 0088 5FD8 bhi .L473
3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6345 .loc 1 3674 5 is_stmt 1 view .LVU2123
3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6346 .loc 1 3674 15 is_stmt 0 view .LVU2124
6347 008a 06EB0A03 add r3, r6, r10
3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6348 .loc 1 3674 24 view .LVU2125
6349 008e BBF80A20 ldrh r2, [fp, #10]
3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect;
6350 .loc 1 3674 8 view .LVU2126
6351 0092 9342 cmp r3, r2
6352 0094 01D9 bls .L474
3675:Middlewares/Third_Party/FatFs/src/ff.c **** }
6353 .loc 1 3675 6 is_stmt 1 view .LVU2127
3675:Middlewares/Third_Party/FatFs/src/ff.c **** }
6354 .loc 1 3675 9 is_stmt 0 view .LVU2128
6355 0096 A2EB060A sub r10, r2, r6
6356 .LVL738:
6357 .L474:
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6358 .loc 1 3677 5 is_stmt 1 view .LVU2129
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6359 .loc 1 3677 9 is_stmt 0 view .LVU2130
6360 009a 5346 mov r3, r10
6361 009c 4A46 mov r2, r9
6362 009e 3946 mov r1, r7
6363 00a0 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2
6364 00a4 FFF7FEFF bl disk_write
6365 .LVL739:
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6366 .loc 1 3677 8 discriminator 1 view .LVU2131
6367 00a8 C0B3 cbz r0, .L475
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6368 .loc 1 3677 57 is_stmt 1 discriminator 1 view .LVU2132
6369 00aa 4FF0010A mov r10, #1
6370 .LVL740:
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6371 .loc 1 3677 57 is_stmt 0 discriminator 1 view .LVU2133
6372 00ae 84F815A0 strb r10, [r4, #21]
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6373 .loc 1 3677 57 is_stmt 1 discriminator 1 view .LVU2134
6374 00b2 CDF804A0 str r10, [sp, #4]
ARM GAS /tmp/ccH7dUYB.s page 248
6375 .LVL741:
6376 .L459:
3723:Middlewares/Third_Party/FatFs/src/ff.c ****
6377 .loc 1 3723 1 is_stmt 0 view .LVU2135
6378 00b6 0198 ldr r0, [sp, #4]
6379 00b8 05B0 add sp, sp, #20
6380 .LCFI52:
6381 .cfi_remember_state
6382 .cfi_def_cfa_offset 36
6383 @ sp needed
6384 00ba BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6385 .LVL742:
6386 .L466:
6387 .LCFI53:
6388 .cfi_restore_state
3652:Middlewares/Third_Party/FatFs/src/ff.c **** }
6389 .loc 1 3652 7 is_stmt 1 view .LVU2136
3652:Middlewares/Third_Party/FatFs/src/ff.c **** }
6390 .loc 1 3652 14 is_stmt 0 view .LVU2137
6391 00be E169 ldr r1, [r4, #28]
6392 00c0 2046 mov r0, r4
6393 00c2 FFF7FEFF bl create_chain
6394 .LVL743:
3652:Middlewares/Third_Party/FatFs/src/ff.c **** }
6395 .loc 1 3652 14 view .LVU2138
6396 00c6 C0E7 b .L465
6397 .LVL744:
6398 .L485:
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6399 .loc 1 3656 20 is_stmt 1 discriminator 1 view .LVU2139
6400 00c8 4FF0020A mov r10, #2
6401 00cc 84F815A0 strb r10, [r4, #21]
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6402 .loc 1 3656 20 discriminator 1 view .LVU2140
6403 00d0 CDF804A0 str r10, [sp, #4]
6404 .LVL745:
3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
6405 .loc 1 3656 20 is_stmt 0 view .LVU2141
6406 00d4 EFE7 b .L459
6407 .LVL746:
6408 .L486:
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6409 .loc 1 3657 29 is_stmt 1 discriminator 1 view .LVU2142
6410 00d6 4FF0010A mov r10, #1
6411 00da 84F815A0 strb r10, [r4, #21]
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6412 .loc 1 3657 29 discriminator 1 view .LVU2143
6413 00de CDF804A0 str r10, [sp, #4]
6414 .LVL747:
3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */
6415 .loc 1 3657 29 is_stmt 0 view .LVU2144
6416 00e2 E8E7 b .L459
6417 .LVL748:
6418 .L487:
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6419 .loc 1 3665 5 is_stmt 1 view .LVU2145
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
ARM GAS /tmp/ccH7dUYB.s page 249
6420 .loc 1 3665 9 is_stmt 0 view .LVU2146
6421 00e4 0123 movs r3, #1
6422 00e6 226A ldr r2, [r4, #32]
6423 00e8 04F13001 add r1, r4, #48
6424 00ec 0398 ldr r0, [sp, #12]
6425 00ee 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
6426 00f0 FFF7FEFF bl disk_write
6427 .LVL749:
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6428 .loc 1 3665 8 discriminator 1 view .LVU2147
6429 00f4 20B9 cbnz r0, .L489
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6430 .loc 1 3665 84 is_stmt 1 discriminator 2 view .LVU2148
3666:Middlewares/Third_Party/FatFs/src/ff.c **** }
6431 .loc 1 3666 5 view .LVU2149
3666:Middlewares/Third_Party/FatFs/src/ff.c **** }
6432 .loc 1 3666 7 is_stmt 0 view .LVU2150
6433 00f6 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3666:Middlewares/Third_Party/FatFs/src/ff.c **** }
6434 .loc 1 3666 14 view .LVU2151
6435 00f8 03F07F03 and r3, r3, #127
6436 00fc 2375 strb r3, [r4, #20]
6437 00fe B4E7 b .L470
6438 .L489:
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6439 .loc 1 3665 62 is_stmt 1 discriminator 1 view .LVU2152
6440 0100 4FF0010A mov r10, #1
6441 0104 84F815A0 strb r10, [r4, #21]
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6442 .loc 1 3665 62 discriminator 1 view .LVU2153
6443 0108 CDF804A0 str r10, [sp, #4]
6444 .LVL750:
3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6445 .loc 1 3665 62 is_stmt 0 view .LVU2154
6446 010c D3E7 b .L459
6447 .LVL751:
6448 .L488:
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6449 .loc 1 3670 15 is_stmt 1 discriminator 1 view .LVU2155
6450 010e 4FF0020A mov r10, #2
6451 0112 84F815A0 strb r10, [r4, #21]
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6452 .loc 1 3670 15 discriminator 1 view .LVU2156
6453 0116 CDF804A0 str r10, [sp, #4]
6454 .LVL752:
3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect;
6455 .loc 1 3670 15 is_stmt 0 view .LVU2157
6456 011a CCE7 b .L459
6457 .LVL753:
6458 .L475:
3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2
6459 .loc 1 3677 79 is_stmt 1 discriminator 2 view .LVU2158
3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs));
6460 .loc 1 3685 5 view .LVU2159
3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs));
6461 .loc 1 3685 11 is_stmt 0 view .LVU2160
6462 011c 236A ldr r3, [r4, #32]
ARM GAS /tmp/ccH7dUYB.s page 250
3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs));
6463 .loc 1 3685 18 view .LVU2161
6464 011e A3EB0903 sub r3, r3, r9
3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs));
6465 .loc 1 3685 8 view .LVU2162
6466 0122 5345 cmp r3, r10
6467 0124 04D3 bcc .L490
6468 .L476:
3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
6469 .loc 1 3691 5 is_stmt 1 view .LVU2163
3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
6470 .loc 1 3691 12 is_stmt 0 view .LVU2164
6471 0126 039B ldr r3, [sp, #12]
6472 0128 9E89 ldrh r6, [r3, #12]
6473 .LVL754:
3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
6474 .loc 1 3691 10 view .LVU2165
6475 012a 0AFB06F6 mul r6, r10, r6
6476 .LVL755:
3692:Middlewares/Third_Party/FatFs/src/ff.c **** }
6477 .loc 1 3692 5 is_stmt 1 view .LVU2166
6478 012e 2BE0 b .L477
6479 .LVL756:
6480 .L490:
3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6481 .loc 1 3686 6 view .LVU2167
3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6482 .loc 1 3686 52 is_stmt 0 view .LVU2168
6483 0130 039A ldr r2, [sp, #12]
6484 0132 9289 ldrh r2, [r2, #12]
3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6485 .loc 1 3686 6 view .LVU2169
6486 0134 02FB0371 mla r1, r2, r3, r7
6487 0138 04F13000 add r0, r4, #48
6488 013c FFF7FEFF bl mem_cpy
6489 .LVL757:
3687:Middlewares/Third_Party/FatFs/src/ff.c **** }
6490 .loc 1 3687 6 is_stmt 1 view .LVU2170
3687:Middlewares/Third_Party/FatFs/src/ff.c **** }
6491 .loc 1 3687 8 is_stmt 0 view .LVU2171
6492 0140 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3687:Middlewares/Third_Party/FatFs/src/ff.c **** }
6493 .loc 1 3687 15 view .LVU2172
6494 0142 03F07F03 and r3, r3, #127
6495 0146 2375 strb r3, [r4, #20]
6496 0148 EDE7 b .L476
6497 .L473:
3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize &&
6498 .loc 1 3700 4 is_stmt 1 view .LVU2173
3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize &&
6499 .loc 1 3700 10 is_stmt 0 view .LVU2174
6500 014a 236A ldr r3, [r4, #32]
3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize &&
6501 .loc 1 3700 7 view .LVU2175
6502 014c 4B45 cmp r3, r9
6503 014e 03D0 beq .L478
3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) {
ARM GAS /tmp/ccH7dUYB.s page 251
6504 .loc 1 3701 7 view .LVU2176
6505 0150 A269 ldr r2, [r4, #24]
3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) {
6506 .loc 1 3701 23 view .LVU2177
6507 0152 E368 ldr r3, [r4, #12]
3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize &&
6508 .loc 1 3700 25 discriminator 1 view .LVU2178
6509 0154 9A42 cmp r2, r3
6510 0156 42D3 bcc .L491
6511 .L478:
3703:Middlewares/Third_Party/FatFs/src/ff.c **** }
6512 .loc 1 3703 28 is_stmt 1 view .LVU2179
3706:Middlewares/Third_Party/FatFs/src/ff.c **** }
6513 .loc 1 3706 4 view .LVU2180
3706:Middlewares/Third_Party/FatFs/src/ff.c **** }
6514 .loc 1 3706 13 is_stmt 0 view .LVU2181
6515 0158 C4F82090 str r9, [r4, #32]
6516 .LVL758:
6517 .L461:
3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
6518 .loc 1 3708 3 is_stmt 1 view .LVU2182
3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
6519 .loc 1 3708 10 is_stmt 0 view .LVU2183
6520 015c 039B ldr r3, [sp, #12]
6521 015e 9E89 ldrh r6, [r3, #12]
3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
6522 .loc 1 3708 27 view .LVU2184
6523 0160 A369 ldr r3, [r4, #24]
3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
6524 .loc 1 3708 34 view .LVU2185
6525 0162 B3FBF6F2 udiv r2, r3, r6
6526 0166 06FB1233 mls r3, r6, r2, r3
3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */
6527 .loc 1 3708 8 view .LVU2186
6528 016a F61A subs r6, r6, r3
6529 .LVL759:
3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
6530 .loc 1 3709 3 is_stmt 1 view .LVU2187
3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
6531 .loc 1 3709 6 is_stmt 0 view .LVU2188
6532 016c B542 cmp r5, r6
6533 016e 00D2 bcs .L479
3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY
6534 .loc 1 3709 24 discriminator 1 view .LVU2189
6535 0170 2E46 mov r6, r5
6536 .LVL760:
6537 .L479:
3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY;
6538 .loc 1 3715 3 is_stmt 1 view .LVU2190
3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY;
6539 .loc 1 3715 11 is_stmt 0 view .LVU2191
6540 0172 04F13000 add r0, r4, #48
3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY;
6541 .loc 1 3715 3 view .LVU2192
6542 0176 3246 mov r2, r6
6543 0178 3946 mov r1, r7
6544 017a 1844 add r0, r0, r3
ARM GAS /tmp/ccH7dUYB.s page 252
6545 017c FFF7FEFF bl mem_cpy
6546 .LVL761:
3716:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
6547 .loc 1 3716 3 is_stmt 1 view .LVU2193
3716:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
6548 .loc 1 3716 5 is_stmt 0 view .LVU2194
6549 0180 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3716:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
6550 .loc 1 3716 12 view .LVU2195
6551 0182 63F07F03 orn r3, r3, #127
6552 0186 2375 strb r3, [r4, #20]
6553 .L477:
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6554 .loc 1 3636 124 is_stmt 1 view .LVU2196
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6555 .loc 1 3636 9 is_stmt 0 view .LVU2197
6556 0188 3744 add r7, r7, r6
6557 .LVL762:
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6558 .loc 1 3636 20 view .LVU2198
6559 018a A369 ldr r3, [r4, #24]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6560 .loc 1 3636 27 view .LVU2199
6561 018c 3344 add r3, r3, r6
6562 018e A361 str r3, [r4, #24]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6563 .loc 1 3636 73 view .LVU2200
6564 0190 E268 ldr r2, [r4, #12]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6565 .loc 1 3636 94 view .LVU2201
6566 0192 9342 cmp r3, r2
6567 0194 38BF it cc
6568 0196 1346 movcc r3, r2
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6569 .loc 1 3636 52 view .LVU2202
6570 0198 E360 str r3, [r4, #12]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6571 .loc 1 3636 113 view .LVU2203
6572 019a D8F80030 ldr r3, [r8]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6573 .loc 1 3636 117 view .LVU2204
6574 019e 3344 add r3, r3, r6
6575 01a0 C8F80030 str r3, [r8]
3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */
6576 .loc 1 3636 130 view .LVU2205
6577 01a4 AD1B subs r5, r5, r6
6578 .LVL763:
6579 .L480:
3635:Middlewares/Third_Party/FatFs/src/ff.c **** wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->
6580 .loc 1 3635 11 is_stmt 1 view .LVU2206
6581 01a6 5DB3 cbz r5, .L467
3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
6582 .loc 1 3637 3 view .LVU2207
3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
6583 .loc 1 3637 9 is_stmt 0 view .LVU2208
6584 01a8 A169 ldr r1, [r4, #24]
3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
ARM GAS /tmp/ccH7dUYB.s page 253
6585 .loc 1 3637 18 view .LVU2209
6586 01aa 039A ldr r2, [sp, #12]
6587 01ac 9689 ldrh r6, [r2, #12]
3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
6588 .loc 1 3637 16 view .LVU2210
6589 01ae B1FBF6F3 udiv r3, r1, r6
6590 01b2 06FB1313 mls r3, r6, r3, r1
3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */
6591 .loc 1 3637 6 view .LVU2211
6592 01b6 002B cmp r3, #0
6593 01b8 D0D1 bne .L461
3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6594 .loc 1 3638 4 is_stmt 1 view .LVU2212
3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6595 .loc 1 3638 28 is_stmt 0 view .LVU2213
6596 01ba B1FBF6F6 udiv r6, r1, r6
3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6597 .loc 1 3638 43 view .LVU2214
6598 01be 5389 ldrh r3, [r2, #10]
3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */
6599 .loc 1 3638 51 view .LVU2215
6600 01c0 013B subs r3, r3, #1
6601 .LVL764:
3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6602 .loc 1 3639 4 is_stmt 1 view .LVU2216
3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6603 .loc 1 3639 7 is_stmt 0 view .LVU2217
6604 01c2 1E40 ands r6, r6, r3
6605 .LVL765:
3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */
6606 .loc 1 3639 7 view .LVU2218
6607 01c4 7FF44DAF bne .L462
3640:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow from the origin */
6608 .loc 1 3640 5 is_stmt 1 view .LVU2219
3640:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow from the origin */
6609 .loc 1 3640 8 is_stmt 0 view .LVU2220
6610 01c8 0029 cmp r1, #0
6611 01ca 7FF438AF bne .L463
3641:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster is allocated, */
6612 .loc 1 3641 6 is_stmt 1 view .LVU2221
3641:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster is allocated, */
6613 .loc 1 3641 11 is_stmt 0 view .LVU2222
6614 01ce A068 ldr r0, [r4, #8]
6615 .LVL766:
3642:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); /* create a new cluster chain */
6616 .loc 1 3642 6 is_stmt 1 view .LVU2223
3642:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); /* create a new cluster chain */
6617 .loc 1 3642 9 is_stmt 0 view .LVU2224
6618 01d0 0028 cmp r0, #0
6619 01d2 7FF43DAF bne .L464
3643:Middlewares/Third_Party/FatFs/src/ff.c **** }
6620 .loc 1 3643 7 is_stmt 1 view .LVU2225
3643:Middlewares/Third_Party/FatFs/src/ff.c **** }
6621 .loc 1 3643 14 is_stmt 0 view .LVU2226
6622 01d6 2046 mov r0, r4
6623 .LVL767:
3643:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 254
6624 .loc 1 3643 14 view .LVU2227
6625 01d8 FFF7FEFF bl create_chain
6626 .LVL768:
3643:Middlewares/Third_Party/FatFs/src/ff.c **** }
6627 .loc 1 3643 14 view .LVU2228
6628 01dc 35E7 b .L465
6629 .LVL769:
6630 .L491:
3702:Middlewares/Third_Party/FatFs/src/ff.c **** ABORT(fs, FR_DISK_ERR);
6631 .loc 1 3702 5 view .LVU2229
6632 01de 0123 movs r3, #1
6633 01e0 4A46 mov r2, r9
6634 01e2 04F13001 add r1, r4, #48
6635 01e6 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2
6636 01ea FFF7FEFF bl disk_read
6637 .LVL770:
3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) {
6638 .loc 1 3701 32 view .LVU2230
6639 01ee 0028 cmp r0, #0
6640 01f0 B2D0 beq .L478
3703:Middlewares/Third_Party/FatFs/src/ff.c **** }
6641 .loc 1 3703 6 is_stmt 1 view .LVU2231
6642 01f2 4FF0010A mov r10, #1
6643 .LVL771:
3703:Middlewares/Third_Party/FatFs/src/ff.c **** }
6644 .loc 1 3703 6 is_stmt 0 view .LVU2232
6645 01f6 84F815A0 strb r10, [r4, #21]
3703:Middlewares/Third_Party/FatFs/src/ff.c **** }
6646 .loc 1 3703 6 is_stmt 1 view .LVU2233
6647 01fa CDF804A0 str r10, [sp, #4]
6648 .LVL772:
3703:Middlewares/Third_Party/FatFs/src/ff.c **** }
6649 .loc 1 3703 6 is_stmt 0 view .LVU2234
6650 01fe 5AE7 b .L459
6651 .LVL773:
6652 .L467:
3720:Middlewares/Third_Party/FatFs/src/ff.c ****
6653 .loc 1 3720 2 is_stmt 1 view .LVU2235
3720:Middlewares/Third_Party/FatFs/src/ff.c ****
6654 .loc 1 3720 4 is_stmt 0 view .LVU2236
6655 0200 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3720:Middlewares/Third_Party/FatFs/src/ff.c ****
6656 .loc 1 3720 11 view .LVU2237
6657 0202 43F04003 orr r3, r3, #64
6658 0206 2375 strb r3, [r4, #20]
3722:Middlewares/Third_Party/FatFs/src/ff.c **** }
6659 .loc 1 3722 2 is_stmt 1 view .LVU2238
6660 0208 55E7 b .L459
6661 .LVL774:
6662 .L482:
3628:Middlewares/Third_Party/FatFs/src/ff.c ****
6663 .loc 1 3628 30 is_stmt 0 discriminator 1 view .LVU2239
6664 020a 0723 movs r3, #7
6665 020c 0193 str r3, [sp, #4]
6666 .LVL775:
3628:Middlewares/Third_Party/FatFs/src/ff.c ****
6667 .loc 1 3628 30 discriminator 1 view .LVU2240
ARM GAS /tmp/ccH7dUYB.s page 255
6668 020e 52E7 b .L459
6669 .cfi_endproc
6670 .LFE1224:
6672 .section .text.putc_bfd,"ax",%progbits
6673 .align 1
6674 .syntax unified
6675 .thumb
6676 .thumb_func
6678 putc_bfd:
6679 .LVL776:
6680 .LFB1239:
5921:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bw;
6681 .loc 1 5921 1 is_stmt 1 view -0
6682 .cfi_startproc
6683 @ args = 0, pretend = 0, frame = 8
6684 @ frame_needed = 0, uses_anonymous_args = 0
5921:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bw;
6685 .loc 1 5921 1 is_stmt 0 view .LVU2242
6686 0000 70B5 push {r4, r5, r6, lr}
6687 .LCFI54:
6688 .cfi_def_cfa_offset 16
6689 .cfi_offset 4, -16
6690 .cfi_offset 5, -12
6691 .cfi_offset 6, -8
6692 .cfi_offset 14, -4
6693 0002 82B0 sub sp, sp, #8
6694 .LCFI55:
6695 .cfi_def_cfa_offset 24
6696 0004 0446 mov r4, r0
6697 0006 0D46 mov r5, r1
5922:Middlewares/Third_Party/FatFs/src/ff.c **** int i;
6698 .loc 1 5922 2 is_stmt 1 view .LVU2243
5923:Middlewares/Third_Party/FatFs/src/ff.c ****
6699 .loc 1 5923 2 view .LVU2244
5926:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(pb, '\r');
6700 .loc 1 5926 2 view .LVU2245
5926:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(pb, '\r');
6701 .loc 1 5926 5 is_stmt 0 view .LVU2246
6702 0008 0A29 cmp r1, #10
6703 000a 0DD0 beq .L499
6704 .LVL777:
6705 .L493:
5930:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 0) return;
6706 .loc 1 5930 2 is_stmt 1 view .LVU2247
5930:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 0) return;
6707 .loc 1 5930 4 is_stmt 0 view .LVU2248
6708 000c 6368 ldr r3, [r4, #4]
6709 .LVL778:
5931:Middlewares/Third_Party/FatFs/src/ff.c ****
6710 .loc 1 5931 2 is_stmt 1 view .LVU2249
5931:Middlewares/Third_Party/FatFs/src/ff.c ****
6711 .loc 1 5931 5 is_stmt 0 view .LVU2250
6712 000e 002B cmp r3, #0
6713 0010 08DB blt .L492
5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
6714 .loc 1 5960 2 is_stmt 1 view .LVU2251
5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
ARM GAS /tmp/ccH7dUYB.s page 256
6715 .loc 1 5960 11 is_stmt 0 view .LVU2252
6716 0012 5E1C adds r6, r3, #1
6717 .LVL779:
5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
6718 .loc 1 5960 15 view .LVU2253
6719 0014 2344 add r3, r3, r4
6720 0016 1D73 strb r5, [r3, #12]
5963:Middlewares/Third_Party/FatFs/src/ff.c **** f_write(pb->fp, pb->buf, (UINT)i, &bw);
6721 .loc 1 5963 2 is_stmt 1 view .LVU2254
5963:Middlewares/Third_Party/FatFs/src/ff.c **** f_write(pb->fp, pb->buf, (UINT)i, &bw);
6722 .loc 1 5963 5 is_stmt 0 view .LVU2255
6723 0018 3C2E cmp r6, #60
6724 001a 09DC bgt .L500
6725 .LVL780:
6726 .L496:
5967:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr++;
6727 .loc 1 5967 2 is_stmt 1 view .LVU2256
5967:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr++;
6728 .loc 1 5967 10 is_stmt 0 view .LVU2257
6729 001c 6660 str r6, [r4, #4]
5968:Middlewares/Third_Party/FatFs/src/ff.c **** }
6730 .loc 1 5968 2 is_stmt 1 view .LVU2258
5968:Middlewares/Third_Party/FatFs/src/ff.c **** }
6731 .loc 1 5968 4 is_stmt 0 view .LVU2259
6732 001e A368 ldr r3, [r4, #8]
5968:Middlewares/Third_Party/FatFs/src/ff.c **** }
6733 .loc 1 5968 10 view .LVU2260
6734 0020 0133 adds r3, r3, #1
6735 0022 A360 str r3, [r4, #8]
6736 .LVL781:
6737 .L492:
5969:Middlewares/Third_Party/FatFs/src/ff.c ****
6738 .loc 1 5969 1 view .LVU2261
6739 0024 02B0 add sp, sp, #8
6740 .LCFI56:
6741 .cfi_remember_state
6742 .cfi_def_cfa_offset 16
6743 @ sp needed
6744 0026 70BD pop {r4, r5, r6, pc}
6745 .LVL782:
6746 .L499:
6747 .LCFI57:
6748 .cfi_restore_state
5927:Middlewares/Third_Party/FatFs/src/ff.c **** }
6749 .loc 1 5927 3 is_stmt 1 view .LVU2262
6750 0028 0D21 movs r1, #13
6751 .LVL783:
5927:Middlewares/Third_Party/FatFs/src/ff.c **** }
6752 .loc 1 5927 3 is_stmt 0 view .LVU2263
6753 002a FFF7E9FF bl putc_bfd
6754 .LVL784:
5927:Middlewares/Third_Party/FatFs/src/ff.c **** }
6755 .loc 1 5927 3 view .LVU2264
6756 002e EDE7 b .L493
6757 .LVL785:
6758 .L500:
5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1;
ARM GAS /tmp/ccH7dUYB.s page 257
6759 .loc 1 5964 3 is_stmt 1 view .LVU2265
5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1;
6760 .loc 1 5964 21 is_stmt 0 view .LVU2266
6761 0030 2146 mov r1, r4
5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1;
6762 .loc 1 5964 3 view .LVU2267
6763 0032 51F80C0B ldr r0, [r1], #12
6764 0036 01AB add r3, sp, #4
6765 0038 3246 mov r2, r6
6766 003a FFF7FEFF bl f_write
6767 .LVL786:
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6768 .loc 1 5965 3 is_stmt 1 view .LVU2268
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6769 .loc 1 5965 11 is_stmt 0 view .LVU2269
6770 003e 019B ldr r3, [sp, #4]
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6771 .loc 1 5965 27 view .LVU2270
6772 0040 9E42 cmp r6, r3
6773 0042 02D0 beq .L501
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6774 .loc 1 5965 27 discriminator 2 view .LVU2271
6775 0044 4FF0FF36 mov r6, #-1
6776 .LVL787:
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6777 .loc 1 5965 27 discriminator 2 view .LVU2272
6778 0048 E8E7 b .L496
6779 .LVL788:
6780 .L501:
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6781 .loc 1 5965 27 discriminator 1 view .LVU2273
6782 004a 0026 movs r6, #0
6783 .LVL789:
5965:Middlewares/Third_Party/FatFs/src/ff.c **** }
6784 .loc 1 5965 27 discriminator 1 view .LVU2274
6785 004c E6E7 b .L496
6786 .cfi_endproc
6787 .LFE1239:
6789 .section .text.putc_flush,"ax",%progbits
6790 .align 1
6791 .syntax unified
6792 .thumb
6793 .thumb_func
6795 putc_flush:
6796 .LVL790:
6797 .LFB1240:
5976:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nw;
6798 .loc 1 5976 1 is_stmt 1 view -0
6799 .cfi_startproc
6800 @ args = 0, pretend = 0, frame = 8
6801 @ frame_needed = 0, uses_anonymous_args = 0
5977:Middlewares/Third_Party/FatFs/src/ff.c ****
6802 .loc 1 5977 2 view .LVU2276
5979:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK
6803 .loc 1 5979 2 view .LVU2277
5979:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK
6804 .loc 1 5979 11 is_stmt 0 view .LVU2278
ARM GAS /tmp/ccH7dUYB.s page 258
6805 0000 4268 ldr r2, [r0, #4]
5979:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK
6806 .loc 1 5979 5 view .LVU2279
6807 0002 002A cmp r2, #0
6808 0004 10DB blt .L504
5976:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nw;
6809 .loc 1 5976 1 view .LVU2280
6810 0006 10B5 push {r4, lr}
6811 .LCFI58:
6812 .cfi_def_cfa_offset 8
6813 .cfi_offset 4, -8
6814 .cfi_offset 14, -4
6815 0008 82B0 sub sp, sp, #8
6816 .LCFI59:
6817 .cfi_def_cfa_offset 16
6818 000a 0446 mov r4, r0
5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr;
6819 .loc 1 5980 24 view .LVU2281
6820 000c 0146 mov r1, r0
5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr;
6821 .loc 1 5980 6 view .LVU2282
6822 000e 51F80C0B ldr r0, [r1], #12
6823 .LVL791:
5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr;
6824 .loc 1 5980 6 view .LVU2283
6825 0012 01AB add r3, sp, #4
6826 0014 FFF7FEFF bl f_write
6827 .LVL792:
5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr;
6828 .loc 1 5980 3 discriminator 1 view .LVU2284
6829 0018 48B9 cbnz r0, .L505
5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
6830 .loc 1 5981 14 view .LVU2285
6831 001a 6268 ldr r2, [r4, #4]
5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
6832 .loc 1 5981 20 view .LVU2286
6833 001c 019B ldr r3, [sp, #4]
5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
6834 .loc 1 5981 3 view .LVU2287
6835 001e 9A42 cmp r2, r3
6836 0020 08D1 bne .L506
5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
6837 .loc 1 5981 27 is_stmt 1 discriminator 1 view .LVU2288
5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF;
6838 .loc 1 5981 36 is_stmt 0 discriminator 1 view .LVU2289
6839 0022 A068 ldr r0, [r4, #8]
6840 .L502:
5983:Middlewares/Third_Party/FatFs/src/ff.c ****
6841 .loc 1 5983 1 view .LVU2290
6842 0024 02B0 add sp, sp, #8
6843 .LCFI60:
6844 .cfi_def_cfa_offset 8
6845 @ sp needed
6846 0026 10BD pop {r4, pc}
6847 .LVL793:
6848 .L504:
6849 .LCFI61:
ARM GAS /tmp/ccH7dUYB.s page 259
6850 .cfi_def_cfa_offset 0
6851 .cfi_restore 4
6852 .cfi_restore 14
5982:Middlewares/Third_Party/FatFs/src/ff.c **** }
6853 .loc 1 5982 9 view .LVU2291
6854 0028 4FF0FF30 mov r0, #-1
6855 .LVL794:
5983:Middlewares/Third_Party/FatFs/src/ff.c ****
6856 .loc 1 5983 1 view .LVU2292
6857 002c 7047 bx lr
6858 .LVL795:
6859 .L505:
6860 .LCFI62:
6861 .cfi_def_cfa_offset 16
6862 .cfi_offset 4, -8
6863 .cfi_offset 14, -4
5982:Middlewares/Third_Party/FatFs/src/ff.c **** }
6864 .loc 1 5982 9 view .LVU2293
6865 002e 4FF0FF30 mov r0, #-1
6866 0032 F7E7 b .L502
6867 .L506:
6868 0034 4FF0FF30 mov r0, #-1
6869 0038 F4E7 b .L502
6870 .cfi_endproc
6871 .LFE1240:
6873 .section .text.f_sync,"ax",%progbits
6874 .align 1
6875 .global f_sync
6876 .syntax unified
6877 .thumb
6878 .thumb_func
6880 f_sync:
6881 .LVL796:
6882 .LFB1225:
3735:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
6883 .loc 1 3735 1 is_stmt 1 view -0
6884 .cfi_startproc
6885 @ args = 0, pretend = 0, frame = 8
6886 @ frame_needed = 0, uses_anonymous_args = 0
3735:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
6887 .loc 1 3735 1 is_stmt 0 view .LVU2295
6888 0000 70B5 push {r4, r5, r6, lr}
6889 .LCFI63:
6890 .cfi_def_cfa_offset 16
6891 .cfi_offset 4, -16
6892 .cfi_offset 5, -12
6893 .cfi_offset 6, -8
6894 .cfi_offset 14, -4
6895 0002 82B0 sub sp, sp, #8
6896 .LCFI64:
6897 .cfi_def_cfa_offset 24
6898 0004 0446 mov r4, r0
3736:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
6899 .loc 1 3736 2 is_stmt 1 view .LVU2296
3737:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tm;
6900 .loc 1 3737 2 view .LVU2297
3738:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir;
ARM GAS /tmp/ccH7dUYB.s page 260
6901 .loc 1 3738 2 view .LVU2298
3739:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
6902 .loc 1 3739 2 view .LVU2299
3745:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
6903 .loc 1 3745 2 view .LVU2300
3745:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
6904 .loc 1 3745 8 is_stmt 0 view .LVU2301
6905 0006 01A9 add r1, sp, #4
6906 0008 FFF7FEFF bl validate
6907 .LVL797:
3746:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */
6908 .loc 1 3746 2 is_stmt 1 view .LVU2302
3746:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */
6909 .loc 1 3746 5 is_stmt 0 view .LVU2303
6910 000c 70B9 cbnz r0, .L512
3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
6911 .loc 1 3747 3 is_stmt 1 view .LVU2304
3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
6912 .loc 1 3747 9 is_stmt 0 view .LVU2305
6913 000e 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
6914 .loc 1 3747 6 view .LVU2306
6915 0010 13F0400F tst r3, #64
6916 0014 0AD0 beq .L512
3749:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR);
6917 .loc 1 3749 4 is_stmt 1 view .LVU2307
3749:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR);
6918 .loc 1 3749 7 is_stmt 0 view .LVU2308
6919 0016 13F0800F tst r3, #128
6920 001a 09D1 bne .L516
6921 .L513:
3755:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
6922 .loc 1 3755 4 is_stmt 1 view .LVU2309
3755:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
6923 .loc 1 3755 9 is_stmt 0 view .LVU2310
6924 001c FFF7FEFF bl get_fattime
6925 .LVL798:
6926 0020 0546 mov r5, r0
6927 .LVL799:
3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
6928 .loc 1 3785 5 is_stmt 1 view .LVU2311
3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
6929 .loc 1 3785 11 is_stmt 0 view .LVU2312
6930 0022 616A ldr r1, [r4, #36]
6931 0024 0198 ldr r0, [sp, #4]
6932 .LVL800:
3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
6933 .loc 1 3785 11 view .LVU2313
6934 0026 FFF7FEFF bl move_window
6935 .LVL801:
3786:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fp->dir_ptr;
6936 .loc 1 3786 5 is_stmt 1 view .LVU2314
3786:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fp->dir_ptr;
6937 .loc 1 3786 8 is_stmt 0 view .LVU2315
6938 002a 78B1 cbz r0, .L517
6939 .LVL802:
6940 .L512:
ARM GAS /tmp/ccH7dUYB.s page 261
3802:Middlewares/Third_Party/FatFs/src/ff.c ****
6941 .loc 1 3802 1 view .LVU2316
6942 002c 02B0 add sp, sp, #8
6943 .LCFI65:
6944 .cfi_remember_state
6945 .cfi_def_cfa_offset 16
6946 @ sp needed
6947 002e 70BD pop {r4, r5, r6, pc}
6948 .LVL803:
6949 .L516:
6950 .LCFI66:
6951 .cfi_restore_state
3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6952 .loc 1 3750 5 is_stmt 1 view .LVU2317
3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6953 .loc 1 3750 9 is_stmt 0 view .LVU2318
6954 0030 0123 movs r3, #1
6955 0032 226A ldr r2, [r4, #32]
6956 0034 04F13001 add r1, r4, #48
6957 0038 0198 ldr r0, [sp, #4]
6958 003a 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
6959 003c FFF7FEFF bl disk_write
6960 .LVL804:
3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
6961 .loc 1 3750 8 discriminator 1 view .LVU2319
6962 0040 40BB cbnz r0, .L514
3751:Middlewares/Third_Party/FatFs/src/ff.c **** }
6963 .loc 1 3751 5 is_stmt 1 view .LVU2320
3751:Middlewares/Third_Party/FatFs/src/ff.c **** }
6964 .loc 1 3751 7 is_stmt 0 view .LVU2321
6965 0042 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3751:Middlewares/Third_Party/FatFs/src/ff.c **** }
6966 .loc 1 3751 14 view .LVU2322
6967 0044 03F07F03 and r3, r3, #127
6968 0048 2375 strb r3, [r4, #20]
6969 004a E7E7 b .L513
6970 .LVL805:
6971 .L517:
3787:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
6972 .loc 1 3787 6 is_stmt 1 view .LVU2323
3787:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
6973 .loc 1 3787 10 is_stmt 0 view .LVU2324
6974 004c A66A ldr r6, [r4, #40]
6975 .LVL806:
3788:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */
6976 .loc 1 3788 6 is_stmt 1 view .LVU2325
3788:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */
6977 .loc 1 3788 9 is_stmt 0 view .LVU2326
6978 004e F37A ldrb r3, [r6, #11] @ zero_extendqisi2
3788:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */
6979 .loc 1 3788 20 view .LVU2327
6980 0050 43F02003 orr r3, r3, #32
6981 0054 F372 strb r3, [r6, #11]
3789:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */
6982 .loc 1 3789 6 is_stmt 1 view .LVU2328
6983 0056 A268 ldr r2, [r4, #8]
6984 0058 3146 mov r1, r6
ARM GAS /tmp/ccH7dUYB.s page 262
6985 005a 2068 ldr r0, [r4]
6986 .LVL807:
3789:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */
6987 .loc 1 3789 6 is_stmt 0 view .LVU2329
6988 005c FFF7FEFF bl st_clust
6989 .LVL808:
3790:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Update modified time */
6990 .loc 1 3790 6 is_stmt 1 view .LVU2330
6991 0060 E168 ldr r1, [r4, #12]
6992 0062 06F11C00 add r0, r6, #28
6993 0066 FFF7FEFF bl st_dword
6994 .LVL809:
3791:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_LstAccDate, 0);
6995 .loc 1 3791 6 view .LVU2331
6996 006a 2946 mov r1, r5
6997 006c 06F11600 add r0, r6, #22
6998 0070 FFF7FEFF bl st_dword
6999 .LVL810:
3792:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
7000 .loc 1 3792 6 view .LVU2332
7001 0074 0021 movs r1, #0
7002 0076 06F11200 add r0, r6, #18
7003 007a FFF7FEFF bl st_word
7004 .LVL811:
3793:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); /* Restore it to the directory */
7005 .loc 1 3793 6 view .LVU2333
3793:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); /* Restore it to the directory */
7006 .loc 1 3793 16 is_stmt 0 view .LVU2334
7007 007e 019B ldr r3, [sp, #4]
7008 0080 0122 movs r2, #1
7009 0082 DA70 strb r2, [r3, #3]
3794:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED;
7010 .loc 1 3794 6 is_stmt 1 view .LVU2335
3794:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED;
7011 .loc 1 3794 12 is_stmt 0 view .LVU2336
7012 0084 0198 ldr r0, [sp, #4]
7013 0086 FFF7FEFF bl sync_fs
7014 .LVL812:
3795:Middlewares/Third_Party/FatFs/src/ff.c **** }
7015 .loc 1 3795 6 is_stmt 1 view .LVU2337
3795:Middlewares/Third_Party/FatFs/src/ff.c **** }
7016 .loc 1 3795 8 is_stmt 0 view .LVU2338
7017 008a 237D ldrb r3, [r4, #20] @ zero_extendqisi2
3795:Middlewares/Third_Party/FatFs/src/ff.c **** }
7018 .loc 1 3795 15 view .LVU2339
7019 008c 23F04003 bic r3, r3, #64
7020 0090 2375 strb r3, [r4, #20]
7021 0092 CBE7 b .L512
7022 .LVL813:
7023 .L514:
3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7024 .loc 1 3750 62 discriminator 1 view .LVU2340
7025 0094 0120 movs r0, #1
7026 0096 C9E7 b .L512
7027 .cfi_endproc
7028 .LFE1225:
7030 .section .text.f_close,"ax",%progbits
ARM GAS /tmp/ccH7dUYB.s page 263
7031 .align 1
7032 .global f_close
7033 .syntax unified
7034 .thumb
7035 .thumb_func
7037 f_close:
7038 .LVL814:
7039 .LFB1226:
3816:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7040 .loc 1 3816 1 is_stmt 1 view -0
7041 .cfi_startproc
7042 @ args = 0, pretend = 0, frame = 8
7043 @ frame_needed = 0, uses_anonymous_args = 0
3816:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7044 .loc 1 3816 1 is_stmt 0 view .LVU2342
7045 0000 10B5 push {r4, lr}
7046 .LCFI67:
7047 .cfi_def_cfa_offset 8
7048 .cfi_offset 4, -8
7049 .cfi_offset 14, -4
7050 0002 82B0 sub sp, sp, #8
7051 .LCFI68:
7052 .cfi_def_cfa_offset 16
7053 0004 0446 mov r4, r0
3817:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
7054 .loc 1 3817 2 is_stmt 1 view .LVU2343
3818:Middlewares/Third_Party/FatFs/src/ff.c ****
7055 .loc 1 3818 2 view .LVU2344
3821:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
7056 .loc 1 3821 2 view .LVU2345
3821:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
7057 .loc 1 3821 8 is_stmt 0 view .LVU2346
7058 0006 FFF7FEFF bl f_sync
7059 .LVL815:
3822:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7060 .loc 1 3822 2 is_stmt 1 view .LVU2347
3822:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7061 .loc 1 3822 5 is_stmt 0 view .LVU2348
7062 000a 08B1 cbz r0, .L521
7063 .L519:
7064 .LVL816:
3839:Middlewares/Third_Party/FatFs/src/ff.c **** }
7065 .loc 1 3839 2 is_stmt 1 view .LVU2349
3840:Middlewares/Third_Party/FatFs/src/ff.c ****
7066 .loc 1 3840 1 is_stmt 0 view .LVU2350
7067 000c 02B0 add sp, sp, #8
7068 .LCFI69:
7069 .cfi_remember_state
7070 .cfi_def_cfa_offset 8
7071 @ sp needed
7072 000e 10BD pop {r4, pc}
7073 .LVL817:
7074 .L521:
7075 .LCFI70:
7076 .cfi_restore_state
3825:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7077 .loc 1 3825 3 is_stmt 1 view .LVU2351
ARM GAS /tmp/ccH7dUYB.s page 264
3825:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7078 .loc 1 3825 9 is_stmt 0 view .LVU2352
7079 0010 01A9 add r1, sp, #4
7080 0012 2046 mov r0, r4
7081 0014 FFF7FEFF bl validate
7082 .LVL818:
3826:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
7083 .loc 1 3826 3 is_stmt 1 view .LVU2353
3826:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
7084 .loc 1 3826 6 is_stmt 0 view .LVU2354
7085 0018 0028 cmp r0, #0
7086 001a F7D1 bne .L519
3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
7087 .loc 1 3828 4 is_stmt 1 view .LVU2355
3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
7088 .loc 1 3828 10 is_stmt 0 view .LVU2356
7089 001c 2069 ldr r0, [r4, #16]
7090 .LVL819:
3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK)
7091 .loc 1 3828 10 view .LVU2357
7092 001e FFF7FEFF bl dec_lock
7093 .LVL820:
3829:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7094 .loc 1 3829 4 is_stmt 1 view .LVU2358
3829:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7095 .loc 1 3829 7 is_stmt 0 view .LVU2359
7096 0022 0028 cmp r0, #0
7097 0024 F2D1 bne .L519
3832:Middlewares/Third_Party/FatFs/src/ff.c **** }
7098 .loc 1 3832 5 is_stmt 1 view .LVU2360
3832:Middlewares/Third_Party/FatFs/src/ff.c **** }
7099 .loc 1 3832 16 is_stmt 0 view .LVU2361
7100 0026 2060 str r0, [r4]
7101 0028 F0E7 b .L519
7102 .cfi_endproc
7103 .LFE1226:
7105 .section .text.f_lseek,"ax",%progbits
7106 .align 1
7107 .global f_lseek
7108 .syntax unified
7109 .thumb
7110 .thumb_func
7112 f_lseek:
7113 .LVL821:
7114 .LFB1227:
4005:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7115 .loc 1 4005 1 is_stmt 1 view -0
7116 .cfi_startproc
7117 @ args = 0, pretend = 0, frame = 8
7118 @ frame_needed = 0, uses_anonymous_args = 0
4005:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7119 .loc 1 4005 1 is_stmt 0 view .LVU2363
7120 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7121 .LCFI71:
7122 .cfi_def_cfa_offset 36
7123 .cfi_offset 4, -36
7124 .cfi_offset 5, -32
ARM GAS /tmp/ccH7dUYB.s page 265
7125 .cfi_offset 6, -28
7126 .cfi_offset 7, -24
7127 .cfi_offset 8, -20
7128 .cfi_offset 9, -16
7129 .cfi_offset 10, -12
7130 .cfi_offset 11, -8
7131 .cfi_offset 14, -4
7132 0004 83B0 sub sp, sp, #12
7133 .LCFI72:
7134 .cfi_def_cfa_offset 48
7135 0006 0446 mov r4, r0
7136 0008 0D46 mov r5, r1
4006:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
7137 .loc 1 4006 2 is_stmt 1 view .LVU2364
4007:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, bcs, nsect;
7138 .loc 1 4007 2 view .LVU2365
4008:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ifptr;
7139 .loc 1 4008 2 view .LVU2366
4009:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK
7140 .loc 1 4009 2 view .LVU2367
4011:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7141 .loc 1 4011 2 view .LVU2368
4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err;
7142 .loc 1 4014 2 view .LVU2369
4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err;
7143 .loc 1 4014 8 is_stmt 0 view .LVU2370
7144 000a 01A9 add r1, sp, #4
7145 .LVL822:
4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err;
7146 .loc 1 4014 8 view .LVU2371
7147 000c FFF7FEFF bl validate
7148 .LVL823:
4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
7149 .loc 1 4015 2 is_stmt 1 view .LVU2372
4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
7150 .loc 1 4015 5 is_stmt 0 view .LVU2373
7151 0010 0646 mov r6, r0
7152 0012 78B9 cbnz r0, .L525
4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
7153 .loc 1 4015 20 is_stmt 1 discriminator 1 view .LVU2374
4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY
7154 .loc 1 4015 24 is_stmt 0 discriminator 1 view .LVU2375
7155 0014 667D ldrb r6, [r4, #21] @ zero_extendqisi2
7156 .LVL824:
4021:Middlewares/Third_Party/FatFs/src/ff.c ****
7157 .loc 1 4021 2 is_stmt 1 view .LVU2376
4021:Middlewares/Third_Party/FatFs/src/ff.c ****
7158 .loc 1 4021 5 is_stmt 0 view .LVU2377
7159 0016 6EB9 cbnz r6, .L525
4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */
7160 .loc 1 4024 2 is_stmt 1 view .LVU2378
4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */
7161 .loc 1 4024 8 is_stmt 0 view .LVU2379
7162 0018 E36A ldr r3, [r4, #44]
4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */
7163 .loc 1 4024 5 view .LVU2380
7164 001a 002B cmp r3, #0
ARM GAS /tmp/ccH7dUYB.s page 266
7165 001c 00F08E80 beq .L526
4025:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl;
7166 .loc 1 4025 3 is_stmt 1 view .LVU2381
4025:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl;
7167 .loc 1 4025 6 is_stmt 0 view .LVU2382
7168 0020 B5F1FF3F cmp r5, #-1
7169 0024 0AD0 beq .L566
4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */
7170 .loc 1 4051 4 is_stmt 1 view .LVU2383
4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */
7171 .loc 1 4051 21 is_stmt 0 view .LVU2384
7172 0026 E768 ldr r7, [r4, #12]
4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */
7173 .loc 1 4051 7 view .LVU2385
7174 0028 AF42 cmp r7, r5
7175 002a 00D3 bcc .L534
7176 002c 2F46 mov r7, r5
7177 .L534:
7178 .LVL825:
4052:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7179 .loc 1 4052 4 is_stmt 1 view .LVU2386
4052:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7180 .loc 1 4052 13 is_stmt 0 view .LVU2387
7181 002e A761 str r7, [r4, #24]
4053:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clmt_clust(fp, ofs - 1);
7182 .loc 1 4053 4 is_stmt 1 view .LVU2388
4053:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clmt_clust(fp, ofs - 1);
7183 .loc 1 4053 7 is_stmt 0 view .LVU2389
7184 0030 002F cmp r7, #0
7185 0032 3FD1 bne .L567
7186 .LVL826:
7187 .L525:
4153:Middlewares/Third_Party/FatFs/src/ff.c ****
7188 .loc 1 4153 1 view .LVU2390
7189 0034 3046 mov r0, r6
7190 0036 03B0 add sp, sp, #12
7191 .LCFI73:
7192 .cfi_remember_state
7193 .cfi_def_cfa_offset 36
7194 @ sp needed
7195 0038 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7196 .LVL827:
7197 .L566:
7198 .LCFI74:
7199 .cfi_restore_state
4026:Middlewares/Third_Party/FatFs/src/ff.c **** tlen = *tbl++; ulen = 2; /* Given table size and required table size */
7200 .loc 1 4026 4 is_stmt 1 view .LVU2391
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7201 .loc 1 4027 4 view .LVU2392
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7202 .loc 1 4027 15 is_stmt 0 view .LVU2393
7203 003c 9846 mov r8, r3
7204 .LVL828:
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7205 .loc 1 4027 9 view .LVU2394
7206 003e 58F804BB ldr fp, [r8], #4
7207 .LVL829:
ARM GAS /tmp/ccH7dUYB.s page 267
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7208 .loc 1 4027 19 is_stmt 1 view .LVU2395
4028:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) {
7209 .loc 1 4028 4 view .LVU2396
4028:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) {
7210 .loc 1 4028 7 is_stmt 0 view .LVU2397
7211 0042 D4F808A0 ldr r10, [r4, #8]
7212 .LVL830:
4029:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7213 .loc 1 4029 4 is_stmt 1 view .LVU2398
4029:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7214 .loc 1 4029 7 is_stmt 0 view .LVU2399
7215 0046 BAF1000F cmp r10, #0
7216 004a 27D0 beq .L559
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7217 .loc 1 4027 24 view .LVU2400
7218 004c 4FF00209 mov r9, #2
7219 .LVL831:
7220 .L533:
4030:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get a fragment */
7221 .loc 1 4030 5 is_stmt 1 view .LVU2401
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7222 .loc 1 4032 6 view .LVU2402
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7223 .loc 1 4032 16 view .LVU2403
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7224 .loc 1 4032 25 view .LVU2404
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7225 .loc 1 4032 30 is_stmt 0 view .LVU2405
7226 0050 09F10209 add r9, r9, #2
7227 .LVL832:
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7228 .loc 1 4032 30 view .LVU2406
7229 0054 5146 mov r1, r10
4032:Middlewares/Third_Party/FatFs/src/ff.c **** do {
7230 .loc 1 4032 20 view .LVU2407
7231 0056 0027 movs r7, #0
7232 .LVL833:
7233 .L531:
4033:Middlewares/Third_Party/FatFs/src/ff.c **** pcl = cl; ncl++;
7234 .loc 1 4033 6 is_stmt 1 view .LVU2408
4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl);
7235 .loc 1 4034 7 view .LVU2409
4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl);
7236 .loc 1 4034 17 view .LVU2410
4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl);
7237 .loc 1 4034 20 is_stmt 0 view .LVU2411
7238 0058 0137 adds r7, r7, #1
7239 .LVL834:
4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
7240 .loc 1 4035 7 is_stmt 1 view .LVU2412
7241 005a 0D46 mov r5, r1
4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
7242 .loc 1 4035 12 is_stmt 0 view .LVU2413
7243 005c 2046 mov r0, r4
7244 005e FFF7FEFF bl get_fat
7245 .LVL835:
ARM GAS /tmp/ccH7dUYB.s page 268
4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
7246 .loc 1 4035 12 view .LVU2414
7247 0062 0146 mov r1, r0
7248 .LVL836:
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7249 .loc 1 4036 7 is_stmt 1 view .LVU2415
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7250 .loc 1 4036 10 is_stmt 0 view .LVU2416
7251 0064 0128 cmp r0, #1
7252 0066 13D9 bls .L568
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7253 .loc 1 4036 41 is_stmt 1 discriminator 2 view .LVU2417
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7254 .loc 1 4037 7 view .LVU2418
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7255 .loc 1 4037 10 is_stmt 0 view .LVU2419
7256 0068 B0F1FF3F cmp r0, #-1
7257 006c 13D0 beq .L569
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7258 .loc 1 4037 51 is_stmt 1 discriminator 2 view .LVU2420
4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */
7259 .loc 1 4038 18 view .LVU2421
4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */
7260 .loc 1 4038 25 is_stmt 0 view .LVU2422
7261 006e 0135 adds r5, r5, #1
7262 .LVL837:
4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */
7263 .loc 1 4038 18 view .LVU2423
7264 0070 8542 cmp r5, r0
7265 0072 F1D0 beq .L531
4039:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl++ = ncl; *tbl++ = tcl;
7266 .loc 1 4039 6 is_stmt 1 view .LVU2424
4039:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl++ = ncl; *tbl++ = tcl;
7267 .loc 1 4039 9 is_stmt 0 view .LVU2425
7268 0074 CB45 cmp fp, r9
7269 0076 05D3 bcc .L532
4040:Middlewares/Third_Party/FatFs/src/ff.c **** }
7270 .loc 1 4040 7 is_stmt 1 view .LVU2426
7271 .LVL838:
4040:Middlewares/Third_Party/FatFs/src/ff.c **** }
7272 .loc 1 4040 14 is_stmt 0 view .LVU2427
7273 0078 4346 mov r3, r8
7274 007a 43F8087B str r7, [r3], #8
4040:Middlewares/Third_Party/FatFs/src/ff.c **** }
7275 .loc 1 4040 21 is_stmt 1 view .LVU2428
7276 .LVL839:
4040:Middlewares/Third_Party/FatFs/src/ff.c **** }
7277 .loc 1 4040 28 is_stmt 0 view .LVU2429
7278 007e C8F804A0 str r10, [r8, #4]
4040:Middlewares/Third_Party/FatFs/src/ff.c **** }
7279 .loc 1 4040 25 view .LVU2430
7280 0082 9846 mov r8, r3
7281 .LVL840:
7282 .L532:
4042:Middlewares/Third_Party/FatFs/src/ff.c **** }
7283 .loc 1 4042 17 is_stmt 1 view .LVU2431
4042:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 269
7284 .loc 1 4042 21 is_stmt 0 view .LVU2432
7285 0084 019B ldr r3, [sp, #4]
7286 0086 9B69 ldr r3, [r3, #24]
4042:Middlewares/Third_Party/FatFs/src/ff.c **** }
7287 .loc 1 4042 17 view .LVU2433
7288 0088 8B42 cmp r3, r1
7289 008a 09D9 bls .L528
4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
7290 .loc 1 4035 12 view .LVU2434
7291 008c 8A46 mov r10, r1
7292 .LVL841:
4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR);
7293 .loc 1 4035 12 view .LVU2435
7294 008e DFE7 b .L533
7295 .LVL842:
7296 .L568:
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7297 .loc 1 4036 20 is_stmt 1 discriminator 1 view .LVU2436
7298 0090 0226 movs r6, #2
7299 .LVL843:
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7300 .loc 1 4036 20 is_stmt 0 discriminator 1 view .LVU2437
7301 0092 6675 strb r6, [r4, #21]
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7302 .loc 1 4036 20 is_stmt 1 discriminator 1 view .LVU2438
4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7303 .loc 1 4036 20 is_stmt 0 view .LVU2439
7304 0094 CEE7 b .L525
7305 .LVL844:
7306 .L569:
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7307 .loc 1 4037 29 is_stmt 1 discriminator 1 view .LVU2440
7308 0096 0126 movs r6, #1
7309 .LVL845:
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7310 .loc 1 4037 29 is_stmt 0 discriminator 1 view .LVU2441
7311 0098 6675 strb r6, [r4, #21]
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7312 .loc 1 4037 29 is_stmt 1 discriminator 1 view .LVU2442
4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1);
7313 .loc 1 4037 29 is_stmt 0 view .LVU2443
7314 009a CBE7 b .L525
7315 .LVL846:
7316 .L559:
4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */
7317 .loc 1 4027 24 view .LVU2444
7318 009c 4FF00209 mov r9, #2
7319 .LVL847:
7320 .L528:
4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) {
7321 .loc 1 4044 4 is_stmt 1 view .LVU2445
4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) {
7322 .loc 1 4044 7 is_stmt 0 view .LVU2446
7323 00a0 E36A ldr r3, [r4, #44]
4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) {
7324 .loc 1 4044 15 view .LVU2447
7325 00a2 C3F80090 str r9, [r3]
ARM GAS /tmp/ccH7dUYB.s page 270
4045:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl = 0; /* Terminate table */
7326 .loc 1 4045 4 is_stmt 1 view .LVU2448
4045:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl = 0; /* Terminate table */
7327 .loc 1 4045 7 is_stmt 0 view .LVU2449
7328 00a6 D945 cmp r9, fp
7329 00a8 00F2FB80 bhi .L561
4046:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
7330 .loc 1 4046 5 is_stmt 1 view .LVU2450
4046:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
7331 .loc 1 4046 10 is_stmt 0 view .LVU2451
7332 00ac 0023 movs r3, #0
7333 00ae C8F80030 str r3, [r8]
7334 00b2 BFE7 b .L525
7335 .LVL848:
7336 .L567:
4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust);
7337 .loc 1 4054 5 is_stmt 1 view .LVU2452
4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust);
7338 .loc 1 4054 17 is_stmt 0 view .LVU2453
7339 00b4 7D1E subs r5, r7, #1
7340 00b6 2946 mov r1, r5
7341 00b8 2046 mov r0, r4
7342 00ba FFF7FEFF bl clmt_clust
7343 .LVL849:
7344 00be 0146 mov r1, r0
4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust);
7345 .loc 1 4054 15 discriminator 1 view .LVU2454
7346 00c0 E061 str r0, [r4, #28]
4055:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dsc) ABORT(fs, FR_INT_ERR);
7347 .loc 1 4055 5 is_stmt 1 view .LVU2455
4055:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dsc) ABORT(fs, FR_INT_ERR);
7348 .loc 1 4055 11 is_stmt 0 view .LVU2456
7349 00c2 DDF80480 ldr r8, [sp, #4]
7350 00c6 4046 mov r0, r8
7351 00c8 FFF7FEFF bl clust2sect
7352 .LVL850:
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7353 .loc 1 4056 5 is_stmt 1 view .LVU2457
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7354 .loc 1 4056 8 is_stmt 0 view .LVU2458
7355 00cc 00B3 cbz r0, .L570
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7356 .loc 1 4056 36 is_stmt 1 discriminator 2 view .LVU2459
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7357 .loc 1 4057 5 view .LVU2460
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7358 .loc 1 4057 32 is_stmt 0 view .LVU2461
7359 00ce B8F80C30 ldrh r3, [r8, #12]
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7360 .loc 1 4057 12 view .LVU2462
7361 00d2 B5FBF3F5 udiv r5, r5, r3
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7362 .loc 1 4057 45 view .LVU2463
7363 00d6 B8F80A20 ldrh r2, [r8, #10]
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7364 .loc 1 4057 53 view .LVU2464
7365 00da 013A subs r2, r2, #1
ARM GAS /tmp/ccH7dUYB.s page 271
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7366 .loc 1 4057 40 view .LVU2465
7367 00dc 1540 ands r5, r5, r2
4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */
7368 .loc 1 4057 9 view .LVU2466
7369 00de 0544 add r5, r5, r0
7370 .LVL851:
4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7371 .loc 1 4058 5 is_stmt 1 view .LVU2467
4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7372 .loc 1 4058 18 is_stmt 0 view .LVU2468
7373 00e0 B7FBF3F2 udiv r2, r7, r3
7374 00e4 03FB1277 mls r7, r3, r2, r7
7375 .LVL852:
4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7376 .loc 1 4058 8 view .LVU2469
7377 00e8 002F cmp r7, #0
7378 00ea A3D0 beq .L525
4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7379 .loc 1 4058 39 discriminator 1 view .LVU2470
7380 00ec 226A ldr r2, [r4, #32]
4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7381 .loc 1 4058 27 discriminator 1 view .LVU2471
7382 00ee AA42 cmp r2, r5
7383 00f0 A0D0 beq .L525
4061:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7384 .loc 1 4061 6 is_stmt 1 view .LVU2472
4061:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7385 .loc 1 4061 10 is_stmt 0 view .LVU2473
7386 00f2 94F91430 ldrsb r3, [r4, #20]
4061:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7387 .loc 1 4061 9 view .LVU2474
7388 00f6 002B cmp r3, #0
7389 00f8 0DDB blt .L571
7390 .L536:
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7391 .loc 1 4066 6 is_stmt 1 view .LVU2475
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7392 .loc 1 4066 10 is_stmt 0 view .LVU2476
7393 00fa 0123 movs r3, #1
7394 00fc 2A46 mov r2, r5
7395 00fe 04F13001 add r1, r4, #48
7396 0102 0198 ldr r0, [sp, #4]
7397 0104 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
7398 0106 FFF7FEFF bl disk_read
7399 .LVL853:
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7400 .loc 1 4066 9 discriminator 1 view .LVU2477
7401 010a A0B9 cbnz r0, .L572
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7402 .loc 1 4066 79 is_stmt 1 discriminator 2 view .LVU2478
4068:Middlewares/Third_Party/FatFs/src/ff.c **** }
7403 .loc 1 4068 6 view .LVU2479
4068:Middlewares/Third_Party/FatFs/src/ff.c **** }
7404 .loc 1 4068 15 is_stmt 0 view .LVU2480
7405 010c 2562 str r5, [r4, #32]
7406 010e 91E7 b .L525
ARM GAS /tmp/ccH7dUYB.s page 272
7407 .LVL854:
7408 .L570:
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7409 .loc 1 4056 15 is_stmt 1 discriminator 1 view .LVU2481
7410 0110 0226 movs r6, #2
7411 .LVL855:
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7412 .loc 1 4056 15 is_stmt 0 discriminator 1 view .LVU2482
7413 0112 6675 strb r6, [r4, #21]
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7414 .loc 1 4056 15 is_stmt 1 discriminator 1 view .LVU2483
4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1);
7415 .loc 1 4056 15 is_stmt 0 view .LVU2484
7416 0114 8EE7 b .L525
7417 .LVL856:
7418 .L571:
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7419 .loc 1 4062 7 is_stmt 1 view .LVU2485
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7420 .loc 1 4062 11 is_stmt 0 view .LVU2486
7421 0116 0123 movs r3, #1
7422 0118 04F13001 add r1, r4, #48
7423 011c 98F80100 ldrb r0, [r8, #1] @ zero_extendqisi2
7424 0120 FFF7FEFF bl disk_write
7425 .LVL857:
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7426 .loc 1 4062 10 discriminator 1 view .LVU2487
7427 0124 20B9 cbnz r0, .L573
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7428 .loc 1 4062 86 is_stmt 1 discriminator 2 view .LVU2488
4063:Middlewares/Third_Party/FatFs/src/ff.c **** }
7429 .loc 1 4063 7 view .LVU2489
4063:Middlewares/Third_Party/FatFs/src/ff.c **** }
7430 .loc 1 4063 9 is_stmt 0 view .LVU2490
7431 0126 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4063:Middlewares/Third_Party/FatFs/src/ff.c **** }
7432 .loc 1 4063 16 view .LVU2491
7433 0128 03F07F03 and r3, r3, #127
7434 012c 2375 strb r3, [r4, #20]
7435 012e E4E7 b .L536
7436 .L573:
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7437 .loc 1 4062 64 is_stmt 1 discriminator 1 view .LVU2492
7438 0130 0126 movs r6, #1
7439 .LVL858:
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7440 .loc 1 4062 64 is_stmt 0 discriminator 1 view .LVU2493
7441 0132 6675 strb r6, [r4, #21]
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7442 .loc 1 4062 64 is_stmt 1 discriminator 1 view .LVU2494
4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7443 .loc 1 4062 64 is_stmt 0 view .LVU2495
7444 0134 7EE7 b .L525
7445 .LVL859:
7446 .L572:
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7447 .loc 1 4066 57 is_stmt 1 discriminator 1 view .LVU2496
ARM GAS /tmp/ccH7dUYB.s page 273
7448 0136 0126 movs r6, #1
7449 .LVL860:
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7450 .loc 1 4066 57 is_stmt 0 discriminator 1 view .LVU2497
7451 0138 6675 strb r6, [r4, #21]
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7452 .loc 1 4066 57 is_stmt 1 discriminator 1 view .LVU2498
4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7453 .loc 1 4066 57 is_stmt 0 view .LVU2499
7454 013a 7BE7 b .L525
7455 .LVL861:
7456 .L526:
4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
7457 .loc 1 4080 3 is_stmt 1 view .LVU2500
4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
7458 .loc 1 4080 20 is_stmt 0 view .LVU2501
7459 013c E368 ldr r3, [r4, #12]
4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
7460 .loc 1 4080 6 view .LVU2502
7461 013e AB42 cmp r3, r5
7462 0140 04D2 bcs .L539
4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
7463 .loc 1 4080 53 discriminator 1 view .LVU2503
7464 0142 227D ldrb r2, [r4, #20] @ zero_extendqisi2
4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize;
7465 .loc 1 4080 29 discriminator 1 view .LVU2504
7466 0144 12F0020F tst r2, #2
7467 0148 00D1 bne .L539
4081:Middlewares/Third_Party/FatFs/src/ff.c **** }
7468 .loc 1 4081 8 view .LVU2505
7469 014a 1D46 mov r5, r3
7470 .LVL862:
7471 .L539:
4083:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = nsect = 0;
7472 .loc 1 4083 3 is_stmt 1 view .LVU2506
4083:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = nsect = 0;
7473 .loc 1 4083 9 is_stmt 0 view .LVU2507
7474 014c A369 ldr r3, [r4, #24]
7475 .LVL863:
4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7476 .loc 1 4084 3 is_stmt 1 view .LVU2508
4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7477 .loc 1 4084 12 is_stmt 0 view .LVU2509
7478 014e 0022 movs r2, #0
7479 0150 A261 str r2, [r4, #24]
4085:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */
7480 .loc 1 4085 3 is_stmt 1 view .LVU2510
4085:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */
7481 .loc 1 4085 6 is_stmt 0 view .LVU2511
7482 0152 E5B1 cbz r5, .L540
4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 &&
7483 .loc 1 4086 4 is_stmt 1 view .LVU2512
4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 &&
7484 .loc 1 4086 19 is_stmt 0 view .LVU2513
7485 0154 019A ldr r2, [sp, #4]
7486 0156 B2F80A80 ldrh r8, [r2, #10]
4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 &&
ARM GAS /tmp/ccH7dUYB.s page 274
7487 .loc 1 4086 29 view .LVU2514
7488 015a 9289 ldrh r2, [r2, #12]
4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 &&
7489 .loc 1 4086 8 view .LVU2515
7490 015c 02FB08F8 mul r8, r2, r8
7491 .LVL864:
4087:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
7492 .loc 1 4087 4 is_stmt 1 view .LVU2516
4087:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
7493 .loc 1 4087 7 is_stmt 0 view .LVU2517
7494 0160 73B1 cbz r3, .L541
4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */
7495 .loc 1 4088 10 view .LVU2518
7496 0162 6A1E subs r2, r5, #1
4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */
7497 .loc 1 4088 15 view .LVU2519
7498 0164 B2FBF8F2 udiv r2, r2, r8
4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */
7499 .loc 1 4088 31 view .LVU2520
7500 0168 013B subs r3, r3, #1
7501 .LVL865:
4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */
7502 .loc 1 4088 36 view .LVU2521
7503 016a B3FBF8F1 udiv r1, r3, r8
4087:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
7504 .loc 1 4087 18 discriminator 1 view .LVU2522
7505 016e 8A42 cmp r2, r1
7506 0170 06D3 bcc .L541
4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr;
7507 .loc 1 4089 5 is_stmt 1 view .LVU2523
4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr;
7508 .loc 1 4089 30 is_stmt 0 view .LVU2524
7509 0172 C8F10002 rsb r2, r8, #0
4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr;
7510 .loc 1 4089 28 view .LVU2525
7511 0176 1340 ands r3, r3, r2
7512 .LVL866:
4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr;
7513 .loc 1 4089 14 view .LVU2526
7514 0178 A361 str r3, [r4, #24]
4090:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->clust;
7515 .loc 1 4090 5 is_stmt 1 view .LVU2527
4090:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->clust;
7516 .loc 1 4090 9 is_stmt 0 view .LVU2528
7517 017a EF1A subs r7, r5, r3
7518 .LVL867:
4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */
7519 .loc 1 4091 5 is_stmt 1 view .LVU2529
4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */
7520 .loc 1 4091 10 is_stmt 0 view .LVU2530
7521 017c E569 ldr r5, [r4, #28]
7522 .LVL868:
4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */
7523 .loc 1 4091 10 view .LVU2531
7524 017e 04E0 b .L542
7525 .LVL869:
7526 .L541:
ARM GAS /tmp/ccH7dUYB.s page 275
4093:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7527 .loc 1 4093 5 is_stmt 1 view .LVU2532
4093:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7528 .loc 1 4093 10 is_stmt 0 view .LVU2533
7529 0180 A068 ldr r0, [r4, #8]
7530 .LVL870:
4095:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0);
7531 .loc 1 4095 5 is_stmt 1 view .LVU2534
4095:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0);
7532 .loc 1 4095 8 is_stmt 0 view .LVU2535
7533 0182 50B3 cbz r0, .L574
7534 .L543:
4102:Middlewares/Third_Party/FatFs/src/ff.c **** }
7535 .loc 1 4102 5 is_stmt 1 view .LVU2536
4102:Middlewares/Third_Party/FatFs/src/ff.c **** }
7536 .loc 1 4102 15 is_stmt 0 view .LVU2537
7537 0184 E061 str r0, [r4, #28]
7538 0186 2F46 mov r7, r5
7539 0188 0546 mov r5, r0
7540 .LVL871:
7541 .L542:
4104:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs > bcs) { /* Cluster following loop */
7542 .loc 1 4104 4 is_stmt 1 view .LVU2538
4104:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs > bcs) { /* Cluster following loop */
7543 .loc 1 4104 7 is_stmt 0 view .LVU2539
7544 018a 002D cmp r5, #0
7545 018c 45D1 bne .L546
7546 .LVL872:
7547 .L540:
4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
7548 .loc 1 4134 3 is_stmt 1 view .LVU2540
4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
7549 .loc 1 4134 26 is_stmt 0 view .LVU2541
7550 018e A369 ldr r3, [r4, #24]
4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
7551 .loc 1 4134 42 view .LVU2542
7552 0190 E268 ldr r2, [r4, #12]
4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
7553 .loc 1 4134 6 view .LVU2543
7554 0192 9342 cmp r3, r2
7555 0194 04D9 bls .L555
4135:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
7556 .loc 1 4135 4 is_stmt 1 view .LVU2544
4135:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
7557 .loc 1 4135 20 is_stmt 0 view .LVU2545
7558 0196 E360 str r3, [r4, #12]
4136:Middlewares/Third_Party/FatFs/src/ff.c **** }
7559 .loc 1 4136 4 is_stmt 1 view .LVU2546
4136:Middlewares/Third_Party/FatFs/src/ff.c **** }
7560 .loc 1 4136 6 is_stmt 0 view .LVU2547
7561 0198 227D ldrb r2, [r4, #20] @ zero_extendqisi2
4136:Middlewares/Third_Party/FatFs/src/ff.c **** }
7562 .loc 1 4136 13 view .LVU2548
7563 019a 42F04002 orr r2, r2, #64
7564 019e 2275 strb r2, [r4, #20]
7565 .L555:
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
ARM GAS /tmp/ccH7dUYB.s page 276
7566 .loc 1 4138 3 is_stmt 1 view .LVU2549
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7567 .loc 1 4138 18 is_stmt 0 view .LVU2550
7568 01a0 0198 ldr r0, [sp, #4]
7569 01a2 8289 ldrh r2, [r0, #12]
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7570 .loc 1 4138 16 view .LVU2551
7571 01a4 B3FBF2F1 udiv r1, r3, r2
7572 01a8 02FB1133 mls r3, r2, r1, r3
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7573 .loc 1 4138 6 view .LVU2552
7574 01ac 002B cmp r3, #0
7575 01ae 3FF441AF beq .L525
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7576 .loc 1 4138 39 discriminator 1 view .LVU2553
7577 01b2 226A ldr r2, [r4, #32]
4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
7578 .loc 1 4138 25 discriminator 1 view .LVU2554
7579 01b4 AA42 cmp r2, r5
7580 01b6 3FF43DAF beq .L525
4141:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7581 .loc 1 4141 4 is_stmt 1 view .LVU2555
4141:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7582 .loc 1 4141 8 is_stmt 0 view .LVU2556
7583 01ba 94F91430 ldrsb r3, [r4, #20]
4141:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR);
7584 .loc 1 4141 7 view .LVU2557
7585 01be 002B cmp r3, #0
7586 01c0 5DDB blt .L575
7587 .L556:
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7588 .loc 1 4146 4 is_stmt 1 view .LVU2558
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7589 .loc 1 4146 8 is_stmt 0 view .LVU2559
7590 01c2 0123 movs r3, #1
7591 01c4 2A46 mov r2, r5
7592 01c6 04F13001 add r1, r4, #48
7593 01ca 0198 ldr r0, [sp, #4]
7594 01cc 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
7595 01ce FFF7FEFF bl disk_read
7596 .LVL873:
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7597 .loc 1 4146 7 discriminator 1 view .LVU2560
7598 01d2 0028 cmp r0, #0
7599 01d4 62D1 bne .L576
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7600 .loc 1 4146 79 is_stmt 1 discriminator 2 view .LVU2561
4148:Middlewares/Third_Party/FatFs/src/ff.c **** }
7601 .loc 1 4148 4 view .LVU2562
4148:Middlewares/Third_Party/FatFs/src/ff.c **** }
7602 .loc 1 4148 13 is_stmt 0 view .LVU2563
7603 01d6 2562 str r5, [r4, #32]
7604 01d8 2CE7 b .L525
7605 .LVL874:
7606 .L574:
4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
7607 .loc 1 4096 6 is_stmt 1 view .LVU2564
ARM GAS /tmp/ccH7dUYB.s page 277
4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
7608 .loc 1 4096 13 is_stmt 0 view .LVU2565
7609 01da 0021 movs r1, #0
7610 01dc 2046 mov r0, r4
7611 .LVL875:
4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR);
7612 .loc 1 4096 13 view .LVU2566
7613 01de FFF7FEFF bl create_chain
7614 .LVL876:
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7615 .loc 1 4097 6 is_stmt 1 view .LVU2567
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7616 .loc 1 4097 9 is_stmt 0 view .LVU2568
7617 01e2 0128 cmp r0, #1
7618 01e4 04D0 beq .L577
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7619 .loc 1 4097 42 is_stmt 1 discriminator 2 view .LVU2569
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7620 .loc 1 4098 6 view .LVU2570
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7621 .loc 1 4098 9 is_stmt 0 view .LVU2571
7622 01e6 B0F1FF3F cmp r0, #-1
7623 01ea 04D0 beq .L578
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7624 .loc 1 4098 52 is_stmt 1 discriminator 2 view .LVU2572
4099:Middlewares/Third_Party/FatFs/src/ff.c **** }
7625 .loc 1 4099 6 view .LVU2573
4099:Middlewares/Third_Party/FatFs/src/ff.c **** }
7626 .loc 1 4099 21 is_stmt 0 view .LVU2574
7627 01ec A060 str r0, [r4, #8]
7628 01ee C9E7 b .L543
7629 .L577:
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7630 .loc 1 4097 21 is_stmt 1 discriminator 1 view .LVU2575
7631 01f0 0226 movs r6, #2
7632 .LVL877:
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7633 .loc 1 4097 21 is_stmt 0 discriminator 1 view .LVU2576
7634 01f2 6675 strb r6, [r4, #21]
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7635 .loc 1 4097 21 is_stmt 1 discriminator 1 view .LVU2577
4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR);
7636 .loc 1 4097 21 is_stmt 0 view .LVU2578
7637 01f4 1EE7 b .L525
7638 .LVL878:
7639 .L578:
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7640 .loc 1 4098 30 is_stmt 1 discriminator 1 view .LVU2579
7641 01f6 0126 movs r6, #1
7642 .LVL879:
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7643 .loc 1 4098 30 is_stmt 0 discriminator 1 view .LVU2580
7644 01f8 6675 strb r6, [r4, #21]
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7645 .loc 1 4098 30 is_stmt 1 discriminator 1 view .LVU2581
4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst;
7646 .loc 1 4098 30 is_stmt 0 view .LVU2582
ARM GAS /tmp/ccH7dUYB.s page 278
7647 01fa 1BE7 b .L525
7648 .LVL880:
7649 .L547:
4120:Middlewares/Third_Party/FatFs/src/ff.c **** }
7650 .loc 1 4120 7 is_stmt 1 view .LVU2583
4120:Middlewares/Third_Party/FatFs/src/ff.c **** }
7651 .loc 1 4120 14 is_stmt 0 view .LVU2584
7652 01fc 2946 mov r1, r5
7653 01fe 2046 mov r0, r4
7654 0200 FFF7FEFF bl get_fat
7655 .LVL881:
7656 0204 0546 mov r5, r0
7657 .LVL882:
7658 .L549:
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7659 .loc 1 4122 6 is_stmt 1 view .LVU2585
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7660 .loc 1 4122 9 is_stmt 0 view .LVU2586
7661 0206 B5F1FF3F cmp r5, #-1
7662 020a 2DD0 beq .L579
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7663 .loc 1 4122 52 is_stmt 1 discriminator 2 view .LVU2587
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7664 .loc 1 4123 6 view .LVU2588
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7665 .loc 1 4123 9 is_stmt 0 view .LVU2589
7666 020c 012D cmp r5, #1
7667 020e 2ED9 bls .L551
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7668 .loc 1 4123 33 discriminator 2 view .LVU2590
7669 0210 019B ldr r3, [sp, #4]
7670 0212 9B69 ldr r3, [r3, #24]
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7671 .loc 1 4123 20 discriminator 2 view .LVU2591
7672 0214 AB42 cmp r3, r5
7673 0216 2AD9 bls .L551
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7674 .loc 1 4123 66 is_stmt 1 discriminator 4 view .LVU2592
4124:Middlewares/Third_Party/FatFs/src/ff.c **** }
7675 .loc 1 4124 6 view .LVU2593
4124:Middlewares/Third_Party/FatFs/src/ff.c **** }
7676 .loc 1 4124 16 is_stmt 0 view .LVU2594
7677 0218 E561 str r5, [r4, #28]
7678 .LVL883:
7679 .L546:
4105:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= bcs; fp->fptr += bcs;
7680 .loc 1 4105 16 is_stmt 1 view .LVU2595
7681 021a 4745 cmp r7, r8
7682 021c 10D9 bls .L548
4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7683 .loc 1 4106 6 view .LVU2596
4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7684 .loc 1 4106 10 is_stmt 0 view .LVU2597
7685 021e A7EB0807 sub r7, r7, r8
7686 .LVL884:
4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7687 .loc 1 4106 18 is_stmt 1 view .LVU2598
ARM GAS /tmp/ccH7dUYB.s page 279
4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7688 .loc 1 4106 20 is_stmt 0 view .LVU2599
7689 0222 A369 ldr r3, [r4, #24]
4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY
7690 .loc 1 4106 27 view .LVU2600
7691 0224 4344 add r3, r3, r8
7692 0226 A361 str r3, [r4, #24]
4108:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize t
7693 .loc 1 4108 6 is_stmt 1 view .LVU2601
4108:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize t
7694 .loc 1 4108 12 is_stmt 0 view .LVU2602
7695 0228 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4108:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize t
7696 .loc 1 4108 9 view .LVU2603
7697 022a 13F0020F tst r3, #2
7698 022e E5D0 beq .L547
4109:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr;
7699 .loc 1 4109 7 is_stmt 1 view .LVU2604
4113:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Clip file size in case of disk full */
7700 .loc 1 4113 7 view .LVU2605
4113:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Clip file size in case of disk full */
7701 .loc 1 4113 14 is_stmt 0 view .LVU2606
7702 0230 2946 mov r1, r5
7703 0232 2046 mov r0, r4
7704 0234 FFF7FEFF bl create_chain
7705 .LVL885:
4114:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = 0; break;
7706 .loc 1 4114 7 is_stmt 1 view .LVU2607
4114:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = 0; break;
7707 .loc 1 4114 10 is_stmt 0 view .LVU2608
7708 0238 0546 mov r5, r0
7709 023a 0028 cmp r0, #0
7710 023c E3D1 bne .L549
4115:Middlewares/Third_Party/FatFs/src/ff.c **** }
7711 .loc 1 4115 12 view .LVU2609
7712 023e 0746 mov r7, r0
7713 .LVL886:
7714 .L548:
4126:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) {
7715 .loc 1 4126 5 is_stmt 1 view .LVU2610
4126:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) {
7716 .loc 1 4126 7 is_stmt 0 view .LVU2611
7717 0240 A369 ldr r3, [r4, #24]
4126:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) {
7718 .loc 1 4126 14 view .LVU2612
7719 0242 3B44 add r3, r3, r7
7720 0244 A361 str r3, [r4, #24]
4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */
7721 .loc 1 4127 5 is_stmt 1 view .LVU2613
4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */
7722 .loc 1 4127 15 is_stmt 0 view .LVU2614
7723 0246 0198 ldr r0, [sp, #4]
7724 0248 B0F80C80 ldrh r8, [r0, #12]
7725 .LVL887:
4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */
7726 .loc 1 4127 13 view .LVU2615
7727 024c B7FBF8F3 udiv r3, r7, r8
ARM GAS /tmp/ccH7dUYB.s page 280
7728 0250 08FB1373 mls r3, r8, r3, r7
4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */
7729 .loc 1 4127 8 view .LVU2616
7730 0254 8BB1 cbz r3, .L564
4128:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nsect) ABORT(fs, FR_INT_ERR);
7731 .loc 1 4128 6 is_stmt 1 view .LVU2617
4128:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nsect) ABORT(fs, FR_INT_ERR);
7732 .loc 1 4128 14 is_stmt 0 view .LVU2618
7733 0256 2946 mov r1, r5
7734 0258 FFF7FEFF bl clust2sect
7735 .LVL888:
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7736 .loc 1 4129 6 is_stmt 1 view .LVU2619
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7737 .loc 1 4129 9 is_stmt 0 view .LVU2620
7738 025c 0546 mov r5, r0
7739 .LVL889:
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7740 .loc 1 4129 9 view .LVU2621
7741 025e 48B1 cbz r0, .L580
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7742 .loc 1 4129 39 is_stmt 1 discriminator 2 view .LVU2622
4130:Middlewares/Third_Party/FatFs/src/ff.c **** }
7743 .loc 1 4130 6 view .LVU2623
4130:Middlewares/Third_Party/FatFs/src/ff.c **** }
7744 .loc 1 4130 15 is_stmt 0 view .LVU2624
7745 0260 B7FBF8F7 udiv r7, r7, r8
7746 .LVL890:
4130:Middlewares/Third_Party/FatFs/src/ff.c **** }
7747 .loc 1 4130 12 view .LVU2625
7748 0264 3D44 add r5, r5, r7
7749 .LVL891:
4130:Middlewares/Third_Party/FatFs/src/ff.c **** }
7750 .loc 1 4130 12 view .LVU2626
7751 0266 92E7 b .L540
7752 .LVL892:
7753 .L579:
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7754 .loc 1 4122 30 is_stmt 1 discriminator 1 view .LVU2627
7755 0268 0126 movs r6, #1
7756 .LVL893:
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7757 .loc 1 4122 30 is_stmt 0 discriminator 1 view .LVU2628
7758 026a 6675 strb r6, [r4, #21]
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7759 .loc 1 4122 30 is_stmt 1 discriminator 1 view .LVU2629
4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR);
7760 .loc 1 4122 30 is_stmt 0 view .LVU2630
7761 026c E2E6 b .L525
7762 .LVL894:
7763 .L551:
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7764 .loc 1 4123 45 is_stmt 1 discriminator 3 view .LVU2631
7765 026e 0226 movs r6, #2
7766 .LVL895:
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7767 .loc 1 4123 45 is_stmt 0 discriminator 3 view .LVU2632
ARM GAS /tmp/ccH7dUYB.s page 281
7768 0270 6675 strb r6, [r4, #21]
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7769 .loc 1 4123 45 is_stmt 1 discriminator 3 view .LVU2633
4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst;
7770 .loc 1 4123 45 is_stmt 0 view .LVU2634
7771 0272 DFE6 b .L525
7772 .LVL896:
7773 .L580:
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7774 .loc 1 4129 18 is_stmt 1 discriminator 1 view .LVU2635
7775 0274 0226 movs r6, #2
7776 .LVL897:
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7777 .loc 1 4129 18 is_stmt 0 discriminator 1 view .LVU2636
7778 0276 6675 strb r6, [r4, #21]
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7779 .loc 1 4129 18 is_stmt 1 discriminator 1 view .LVU2637
4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs));
7780 .loc 1 4129 18 is_stmt 0 view .LVU2638
7781 0278 DCE6 b .L525
7782 .LVL898:
7783 .L564:
4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7784 .loc 1 4084 20 view .LVU2639
7785 027a 1D46 mov r5, r3
7786 .LVL899:
4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) {
7787 .loc 1 4084 20 view .LVU2640
7788 027c 87E7 b .L540
7789 .LVL900:
7790 .L575:
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7791 .loc 1 4142 5 is_stmt 1 view .LVU2641
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7792 .loc 1 4142 9 is_stmt 0 view .LVU2642
7793 027e 0123 movs r3, #1
7794 0280 04F13001 add r1, r4, #48
7795 0284 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
7796 0286 FFF7FEFF bl disk_write
7797 .LVL901:
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7798 .loc 1 4142 8 discriminator 1 view .LVU2643
7799 028a 20B9 cbnz r0, .L581
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7800 .loc 1 4142 84 is_stmt 1 discriminator 2 view .LVU2644
4143:Middlewares/Third_Party/FatFs/src/ff.c **** }
7801 .loc 1 4143 5 view .LVU2645
4143:Middlewares/Third_Party/FatFs/src/ff.c **** }
7802 .loc 1 4143 7 is_stmt 0 view .LVU2646
7803 028c 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4143:Middlewares/Third_Party/FatFs/src/ff.c **** }
7804 .loc 1 4143 14 view .LVU2647
7805 028e 03F07F03 and r3, r3, #127
7806 0292 2375 strb r3, [r4, #20]
7807 0294 95E7 b .L556
7808 .L581:
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
ARM GAS /tmp/ccH7dUYB.s page 282
7809 .loc 1 4142 62 is_stmt 1 discriminator 1 view .LVU2648
7810 0296 0126 movs r6, #1
7811 .LVL902:
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7812 .loc 1 4142 62 is_stmt 0 discriminator 1 view .LVU2649
7813 0298 6675 strb r6, [r4, #21]
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7814 .loc 1 4142 62 is_stmt 1 discriminator 1 view .LVU2650
4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY;
7815 .loc 1 4142 62 is_stmt 0 view .LVU2651
7816 029a CBE6 b .L525
7817 .LVL903:
7818 .L576:
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7819 .loc 1 4146 57 is_stmt 1 discriminator 1 view .LVU2652
7820 029c 0126 movs r6, #1
7821 .LVL904:
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7822 .loc 1 4146 57 is_stmt 0 discriminator 1 view .LVU2653
7823 029e 6675 strb r6, [r4, #21]
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7824 .loc 1 4146 57 is_stmt 1 discriminator 1 view .LVU2654
4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
7825 .loc 1 4146 57 is_stmt 0 view .LVU2655
7826 02a0 C8E6 b .L525
7827 .LVL905:
7828 .L561:
4048:Middlewares/Third_Party/FatFs/src/ff.c **** }
7829 .loc 1 4048 9 view .LVU2656
7830 02a2 1126 movs r6, #17
7831 .LVL906:
4048:Middlewares/Third_Party/FatFs/src/ff.c **** }
7832 .loc 1 4048 9 view .LVU2657
7833 02a4 C6E6 b .L525
7834 .cfi_endproc
7835 .LFE1227:
7837 .section .text.f_opendir,"ax",%progbits
7838 .align 1
7839 .global f_opendir
7840 .syntax unified
7841 .thumb
7842 .thumb_func
7844 f_opendir:
7845 .LVL907:
7846 .LFB1228:
4166:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7847 .loc 1 4166 1 is_stmt 1 view -0
7848 .cfi_startproc
7849 @ args = 0, pretend = 0, frame = 16
7850 @ frame_needed = 0, uses_anonymous_args = 0
4166:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
7851 .loc 1 4166 1 is_stmt 0 view .LVU2659
7852 0000 30B5 push {r4, r5, lr}
7853 .LCFI75:
7854 .cfi_def_cfa_offset 12
7855 .cfi_offset 4, -12
7856 .cfi_offset 5, -8
ARM GAS /tmp/ccH7dUYB.s page 283
7857 .cfi_offset 14, -4
7858 0002 85B0 sub sp, sp, #20
7859 .LCFI76:
7860 .cfi_def_cfa_offset 32
7861 0004 0191 str r1, [sp, #4]
4167:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
7862 .loc 1 4167 2 is_stmt 1 view .LVU2660
4168:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj;
7863 .loc 1 4168 2 view .LVU2661
4169:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
7864 .loc 1 4169 2 view .LVU2662
4173:Middlewares/Third_Party/FatFs/src/ff.c ****
7865 .loc 1 4173 2 view .LVU2663
4173:Middlewares/Third_Party/FatFs/src/ff.c ****
7866 .loc 1 4173 5 is_stmt 0 view .LVU2664
7867 0006 0028 cmp r0, #0
7868 0008 3FD0 beq .L589
7869 000a 0546 mov r5, r0
4176:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0);
7870 .loc 1 4176 2 is_stmt 1 view .LVU2665
7871 .LVL908:
4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7872 .loc 1 4177 2 view .LVU2666
4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7873 .loc 1 4177 8 is_stmt 0 view .LVU2667
7874 000c 0022 movs r2, #0
7875 000e 03A9 add r1, sp, #12
7876 .LVL909:
4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7877 .loc 1 4177 8 view .LVU2668
7878 0010 01A8 add r0, sp, #4
7879 .LVL910:
4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
7880 .loc 1 4177 8 view .LVU2669
7881 0012 FFF7FEFF bl find_volume
7882 .LVL911:
4178:Middlewares/Third_Party/FatFs/src/ff.c **** obj->fs = fs;
7883 .loc 1 4178 2 is_stmt 1 view .LVU2670
4178:Middlewares/Third_Party/FatFs/src/ff.c **** obj->fs = fs;
7884 .loc 1 4178 5 is_stmt 0 view .LVU2671
7885 0016 0446 mov r4, r0
7886 0018 20B1 cbz r0, .L594
7887 .LVL912:
7888 .L584:
4220:Middlewares/Third_Party/FatFs/src/ff.c ****
7889 .loc 1 4220 20 is_stmt 1 discriminator 1 view .LVU2672
4220:Middlewares/Third_Party/FatFs/src/ff.c ****
7890 .loc 1 4220 28 is_stmt 0 discriminator 1 view .LVU2673
7891 001a 0023 movs r3, #0
7892 001c 2B60 str r3, [r5]
7893 .LVL913:
7894 .L583:
4223:Middlewares/Third_Party/FatFs/src/ff.c ****
7895 .loc 1 4223 1 view .LVU2674
7896 001e 2046 mov r0, r4
7897 0020 05B0 add sp, sp, #20
7898 .LCFI77:
ARM GAS /tmp/ccH7dUYB.s page 284
7899 .cfi_remember_state
7900 .cfi_def_cfa_offset 12
7901 @ sp needed
7902 0022 30BD pop {r4, r5, pc}
7903 .LVL914:
7904 .L594:
7905 .LCFI78:
7906 .cfi_restore_state
4179:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
7907 .loc 1 4179 3 is_stmt 1 view .LVU2675
4179:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
7908 .loc 1 4179 11 is_stmt 0 view .LVU2676
7909 0024 039B ldr r3, [sp, #12]
7910 0026 2B60 str r3, [r5]
4180:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(dp, path); /* Follow the path to the directory */
7911 .loc 1 4180 18 is_stmt 1 view .LVU2677
4181:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
7912 .loc 1 4181 3 view .LVU2678
4181:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
7913 .loc 1 4181 9 is_stmt 0 view .LVU2679
7914 0028 0199 ldr r1, [sp, #4]
7915 002a 2846 mov r0, r5
7916 .LVL915:
4181:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
7917 .loc 1 4181 9 view .LVU2680
7918 002c FFF7FEFF bl follow_path
7919 .LVL916:
4182:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */
7920 .loc 1 4182 3 is_stmt 1 view .LVU2681
4182:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */
7921 .loc 1 4182 6 is_stmt 0 view .LVU2682
7922 0030 0446 mov r4, r0
7923 0032 18BB cbnz r0, .L585
4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */
7924 .loc 1 4183 4 is_stmt 1 view .LVU2683
4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */
7925 .loc 1 4183 8 is_stmt 0 view .LVU2684
7926 0034 95F92F30 ldrsb r3, [r5, #47]
4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */
7927 .loc 1 4183 7 view .LVU2685
7928 0038 002B cmp r3, #0
7929 003a 08DB blt .L586
4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
7930 .loc 1 4184 5 is_stmt 1 view .LVU2686
4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
7931 .loc 1 4184 12 is_stmt 0 view .LVU2687
7932 003c AB79 ldrb r3, [r5, #6] @ zero_extendqisi2
4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
7933 .loc 1 4184 8 view .LVU2688
7934 003e 13F0100F tst r3, #16
7935 0042 1AD0 beq .L590
4196:Middlewares/Third_Party/FatFs/src/ff.c **** }
7936 .loc 1 4196 7 is_stmt 1 view .LVU2689
4196:Middlewares/Third_Party/FatFs/src/ff.c **** }
7937 .loc 1 4196 21 is_stmt 0 view .LVU2690
7938 0044 296A ldr r1, [r5, #32]
7939 0046 0398 ldr r0, [sp, #12]
ARM GAS /tmp/ccH7dUYB.s page 285
7940 .LVL917:
4196:Middlewares/Third_Party/FatFs/src/ff.c **** }
7941 .loc 1 4196 21 view .LVU2691
7942 0048 FFF7FEFF bl ld_clust
7943 .LVL918:
4196:Middlewares/Third_Party/FatFs/src/ff.c **** }
7944 .loc 1 4196 19 discriminator 1 view .LVU2692
7945 004c A860 str r0, [r5, #8]
7946 .L586:
4202:Middlewares/Third_Party/FatFs/src/ff.c **** obj->id = fs->id;
7947 .loc 1 4202 4 is_stmt 1 view .LVU2693
4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */
7948 .loc 1 4203 5 view .LVU2694
4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */
7949 .loc 1 4203 17 is_stmt 0 view .LVU2695
7950 004e 039B ldr r3, [sp, #12]
7951 0050 DB88 ldrh r3, [r3, #6]
4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */
7952 .loc 1 4203 13 view .LVU2696
7953 0052 AB80 strh r3, [r5, #4] @ movhi
4204:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
7954 .loc 1 4204 5 is_stmt 1 view .LVU2697
4204:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
7955 .loc 1 4204 11 is_stmt 0 view .LVU2698
7956 0054 0021 movs r1, #0
7957 0056 2846 mov r0, r5
7958 0058 FFF7FEFF bl dir_sdi
7959 .LVL919:
4206:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->sclust) {
7960 .loc 1 4206 5 is_stmt 1 view .LVU2699
4206:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->sclust) {
7961 .loc 1 4206 8 is_stmt 0 view .LVU2700
7962 005c 0446 mov r4, r0
7963 005e 68B9 cbnz r0, .L585
4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */
7964 .loc 1 4207 6 is_stmt 1 view .LVU2701
4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */
7965 .loc 1 4207 13 is_stmt 0 view .LVU2702
7966 0060 AB68 ldr r3, [r5, #8]
4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */
7967 .loc 1 4207 9 view .LVU2703
7968 0062 13B9 cbnz r3, .L595
4211:Middlewares/Third_Party/FatFs/src/ff.c **** }
7969 .loc 1 4211 7 is_stmt 1 view .LVU2704
4211:Middlewares/Third_Party/FatFs/src/ff.c **** }
7970 .loc 1 4211 19 is_stmt 0 view .LVU2705
7971 0064 0023 movs r3, #0
7972 0066 2B61 str r3, [r5, #16]
7973 0068 08E0 b .L585
7974 .L595:
4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES;
7975 .loc 1 4208 7 is_stmt 1 view .LVU2706
4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES;
7976 .loc 1 4208 21 is_stmt 0 view .LVU2707
7977 006a 0021 movs r1, #0
7978 006c 2846 mov r0, r5
7979 .LVL920:
ARM GAS /tmp/ccH7dUYB.s page 286
4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES;
7980 .loc 1 4208 21 view .LVU2708
7981 006e FFF7FEFF bl inc_lock
7982 .LVL921:
4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES;
7983 .loc 1 4208 19 discriminator 1 view .LVU2709
7984 0072 2861 str r0, [r5, #16]
4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
7985 .loc 1 4209 7 is_stmt 1 view .LVU2710
4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
7986 .loc 1 4209 10 is_stmt 0 view .LVU2711
7987 0074 10B9 cbnz r0, .L585
7988 .LVL922:
4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
7989 .loc 1 4209 29 discriminator 1 view .LVU2712
7990 0076 1224 movs r4, #18
7991 0078 02E0 b .L588
7992 .LVL923:
7993 .L590:
4199:Middlewares/Third_Party/FatFs/src/ff.c **** }
7994 .loc 1 4199 10 view .LVU2713
7995 007a 0524 movs r4, #5
7996 .LVL924:
7997 .L585:
4217:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_NO_PATH;
7998 .loc 1 4217 16 is_stmt 1 view .LVU2714
4218:Middlewares/Third_Party/FatFs/src/ff.c **** }
7999 .loc 1 4218 3 view .LVU2715
4218:Middlewares/Third_Party/FatFs/src/ff.c **** }
8000 .loc 1 4218 6 is_stmt 0 view .LVU2716
8001 007c 042C cmp r4, #4
8002 007e 02D0 beq .L596
8003 .LVL925:
8004 .L588:
4220:Middlewares/Third_Party/FatFs/src/ff.c ****
8005 .loc 1 4220 2 is_stmt 1 view .LVU2717
4220:Middlewares/Third_Party/FatFs/src/ff.c ****
8006 .loc 1 4220 5 is_stmt 0 view .LVU2718
8007 0080 002C cmp r4, #0
8008 0082 CCD0 beq .L583
8009 0084 C9E7 b .L584
8010 .L596:
8011 .LVL926:
4218:Middlewares/Third_Party/FatFs/src/ff.c **** }
8012 .loc 1 4218 30 discriminator 1 view .LVU2719
8013 0086 0524 movs r4, #5
8014 0088 C7E7 b .L584
8015 .LVL927:
8016 .L589:
4173:Middlewares/Third_Party/FatFs/src/ff.c ****
8017 .loc 1 4173 18 discriminator 1 view .LVU2720
8018 008a 0924 movs r4, #9
8019 008c C7E7 b .L583
8020 .cfi_endproc
8021 .LFE1228:
8023 .section .text.f_closedir,"ax",%progbits
8024 .align 1
ARM GAS /tmp/ccH7dUYB.s page 287
8025 .global f_closedir
8026 .syntax unified
8027 .thumb
8028 .thumb_func
8030 f_closedir:
8031 .LVL928:
8032 .LFB1229:
4235:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8033 .loc 1 4235 1 is_stmt 1 view -0
8034 .cfi_startproc
8035 @ args = 0, pretend = 0, frame = 8
8036 @ frame_needed = 0, uses_anonymous_args = 0
4235:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8037 .loc 1 4235 1 is_stmt 0 view .LVU2722
8038 0000 10B5 push {r4, lr}
8039 .LCFI79:
8040 .cfi_def_cfa_offset 8
8041 .cfi_offset 4, -8
8042 .cfi_offset 14, -4
8043 0002 82B0 sub sp, sp, #8
8044 .LCFI80:
8045 .cfi_def_cfa_offset 16
8046 0004 0446 mov r4, r0
4236:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
8047 .loc 1 4236 2 is_stmt 1 view .LVU2723
4237:Middlewares/Third_Party/FatFs/src/ff.c ****
8048 .loc 1 4237 2 view .LVU2724
4240:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8049 .loc 1 4240 2 view .LVU2725
4240:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8050 .loc 1 4240 8 is_stmt 0 view .LVU2726
8051 0006 01A9 add r1, sp, #4
8052 0008 FFF7FEFF bl validate
8053 .LVL929:
4241:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
8054 .loc 1 4241 2 is_stmt 1 view .LVU2727
4241:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
8055 .loc 1 4241 5 is_stmt 0 view .LVU2728
8056 000c 20B9 cbnz r0, .L598
4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid);
8057 .loc 1 4243 3 is_stmt 1 view .LVU2729
4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid);
8058 .loc 1 4243 14 is_stmt 0 view .LVU2730
8059 000e 2369 ldr r3, [r4, #16]
4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid);
8060 .loc 1 4243 6 view .LVU2731
8061 0010 23B9 cbnz r3, .L601
8062 .L599:
8063 .LVL930:
4246:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8064 .loc 1 4246 3 is_stmt 1 view .LVU2732
4246:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8065 .loc 1 4246 6 is_stmt 0 view .LVU2733
8066 0012 08B9 cbnz r0, .L598
4249:Middlewares/Third_Party/FatFs/src/ff.c **** }
8067 .loc 1 4249 4 is_stmt 1 view .LVU2734
4249:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 288
8068 .loc 1 4249 15 is_stmt 0 view .LVU2735
8069 0014 0023 movs r3, #0
8070 0016 2360 str r3, [r4]
8071 .LVL931:
8072 .L598:
4255:Middlewares/Third_Party/FatFs/src/ff.c **** }
8073 .loc 1 4255 2 is_stmt 1 view .LVU2736
4256:Middlewares/Third_Party/FatFs/src/ff.c ****
8074 .loc 1 4256 1 is_stmt 0 view .LVU2737
8075 0018 02B0 add sp, sp, #8
8076 .LCFI81:
8077 .cfi_remember_state
8078 .cfi_def_cfa_offset 8
8079 @ sp needed
8080 001a 10BD pop {r4, pc}
8081 .LVL932:
8082 .L601:
8083 .LCFI82:
8084 .cfi_restore_state
4244:Middlewares/Third_Party/FatFs/src/ff.c **** }
8085 .loc 1 4244 4 is_stmt 1 view .LVU2738
4244:Middlewares/Third_Party/FatFs/src/ff.c **** }
8086 .loc 1 4244 10 is_stmt 0 view .LVU2739
8087 001c 1846 mov r0, r3
8088 001e FFF7FEFF bl dec_lock
8089 .LVL933:
4244:Middlewares/Third_Party/FatFs/src/ff.c **** }
8090 .loc 1 4244 10 view .LVU2740
8091 0022 F6E7 b .L599
8092 .cfi_endproc
8093 .LFE1229:
8095 .section .text.f_readdir,"ax",%progbits
8096 .align 1
8097 .global f_readdir
8098 .syntax unified
8099 .thumb
8100 .thumb_func
8102 f_readdir:
8103 .LVL934:
8104 .LFB1230:
4269:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8105 .loc 1 4269 1 is_stmt 1 view -0
8106 .cfi_startproc
8107 @ args = 0, pretend = 0, frame = 8
8108 @ frame_needed = 0, uses_anonymous_args = 0
4269:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8109 .loc 1 4269 1 is_stmt 0 view .LVU2742
8110 0000 70B5 push {r4, r5, r6, lr}
8111 .LCFI83:
8112 .cfi_def_cfa_offset 16
8113 .cfi_offset 4, -16
8114 .cfi_offset 5, -12
8115 .cfi_offset 6, -8
8116 .cfi_offset 14, -4
8117 0002 82B0 sub sp, sp, #8
8118 .LCFI84:
8119 .cfi_def_cfa_offset 24
ARM GAS /tmp/ccH7dUYB.s page 289
8120 0004 0446 mov r4, r0
8121 0006 0D46 mov r5, r1
4270:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
8122 .loc 1 4270 2 is_stmt 1 view .LVU2743
4271:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
8123 .loc 1 4271 2 view .LVU2744
4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8124 .loc 1 4275 2 view .LVU2745
4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8125 .loc 1 4275 8 is_stmt 0 view .LVU2746
8126 0008 01A9 add r1, sp, #4
8127 .LVL935:
4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8128 .loc 1 4275 8 view .LVU2747
8129 000a FFF7FEFF bl validate
8130 .LVL936:
4276:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fno) {
8131 .loc 1 4276 2 is_stmt 1 view .LVU2748
4276:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fno) {
8132 .loc 1 4276 5 is_stmt 0 view .LVU2749
8133 000e 0646 mov r6, r0
8134 0010 C0B9 cbnz r0, .L603
4277:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind the directory object */
8135 .loc 1 4277 3 is_stmt 1 view .LVU2750
4277:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind the directory object */
8136 .loc 1 4277 6 is_stmt 0 view .LVU2751
8137 0012 95B1 cbz r5, .L608
4280:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(dp, 0); /* Read an item */
8138 .loc 1 4280 19 is_stmt 1 view .LVU2752
4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */
8139 .loc 1 4281 4 view .LVU2753
4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */
8140 .loc 1 4281 10 is_stmt 0 view .LVU2754
8141 0014 0021 movs r1, #0
8142 0016 2046 mov r0, r4
8143 .LVL937:
4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */
8144 .loc 1 4281 10 view .LVU2755
8145 0018 FFF7FEFF bl dir_read
8146 .LVL938:
4282:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A valid entry is found */
8147 .loc 1 4282 4 is_stmt 1 view .LVU2756
4282:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A valid entry is found */
8148 .loc 1 4282 7 is_stmt 0 view .LVU2757
8149 001c 0428 cmp r0, #4
8150 001e 00D0 beq .L605
4283:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(dp, fno); /* Get the object information */
8151 .loc 1 4283 4 is_stmt 1 view .LVU2758
4283:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(dp, fno); /* Get the object information */
8152 .loc 1 4283 7 is_stmt 0 view .LVU2759
8153 0020 98B9 cbnz r0, .L606
8154 .L605:
8155 .LVL939:
4284:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Increment index for next */
8156 .loc 1 4284 5 is_stmt 1 view .LVU2760
8157 0022 2946 mov r1, r5
8158 0024 2046 mov r0, r4
ARM GAS /tmp/ccH7dUYB.s page 290
8159 0026 FFF7FEFF bl get_fileinfo
8160 .LVL940:
4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */
8161 .loc 1 4285 5 view .LVU2761
4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */
8162 .loc 1 4285 11 is_stmt 0 view .LVU2762
8163 002a 0021 movs r1, #0
8164 002c 2046 mov r0, r4
8165 002e FFF7FEFF bl dir_next
8166 .LVL941:
4286:Middlewares/Third_Party/FatFs/src/ff.c **** }
8167 .loc 1 4286 5 is_stmt 1 view .LVU2763
4286:Middlewares/Third_Party/FatFs/src/ff.c **** }
8168 .loc 1 4286 8 is_stmt 0 view .LVU2764
8169 0032 0428 cmp r0, #4
8170 0034 06D0 beq .L603
4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */
8171 .loc 1 4285 11 view .LVU2765
8172 0036 0646 mov r6, r0
8173 0038 04E0 b .L603
8174 .L608:
4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8175 .loc 1 4278 4 is_stmt 1 view .LVU2766
4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8176 .loc 1 4278 10 is_stmt 0 view .LVU2767
8177 003a 0021 movs r1, #0
8178 003c 2046 mov r0, r4
8179 .LVL942:
4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8180 .loc 1 4278 10 view .LVU2768
8181 003e FFF7FEFF bl dir_sdi
8182 .LVL943:
8183 0042 0646 mov r6, r0
8184 .LVL944:
8185 .L603:
4288:Middlewares/Third_Party/FatFs/src/ff.c **** }
8186 .loc 1 4288 17 is_stmt 1 view .LVU2769
4291:Middlewares/Third_Party/FatFs/src/ff.c **** }
8187 .loc 1 4291 2 view .LVU2770
4292:Middlewares/Third_Party/FatFs/src/ff.c ****
8188 .loc 1 4292 1 is_stmt 0 view .LVU2771
8189 0044 3046 mov r0, r6
8190 0046 02B0 add sp, sp, #8
8191 .LCFI85:
8192 .cfi_remember_state
8193 .cfi_def_cfa_offset 16
8194 @ sp needed
8195 0048 70BD pop {r4, r5, r6, pc}
8196 .LVL945:
8197 .L606:
8198 .LCFI86:
8199 .cfi_restore_state
4292:Middlewares/Third_Party/FatFs/src/ff.c ****
8200 .loc 1 4292 1 view .LVU2772
8201 004a 0646 mov r6, r0
8202 004c FAE7 b .L603
8203 .cfi_endproc
ARM GAS /tmp/ccH7dUYB.s page 291
8204 .LFE1230:
8206 .section .text.f_stat,"ax",%progbits
8207 .align 1
8208 .global f_stat
8209 .syntax unified
8210 .thumb
8211 .thumb_func
8213 f_stat:
8214 .LVL946:
8215 .LFB1231:
4357:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8216 .loc 1 4357 1 is_stmt 1 view -0
8217 .cfi_startproc
8218 @ args = 0, pretend = 0, frame = 56
8219 @ frame_needed = 0, uses_anonymous_args = 0
4357:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8220 .loc 1 4357 1 is_stmt 0 view .LVU2774
8221 0000 30B5 push {r4, r5, lr}
8222 .LCFI87:
8223 .cfi_def_cfa_offset 12
8224 .cfi_offset 4, -12
8225 .cfi_offset 5, -8
8226 .cfi_offset 14, -4
8227 0002 8FB0 sub sp, sp, #60
8228 .LCFI88:
8229 .cfi_def_cfa_offset 72
8230 0004 0190 str r0, [sp, #4]
8231 0006 0C46 mov r4, r1
4358:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
8232 .loc 1 4358 2 is_stmt 1 view .LVU2775
4359:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
8233 .loc 1 4359 2 view .LVU2776
4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8234 .loc 1 4364 2 view .LVU2777
4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8235 .loc 1 4364 8 is_stmt 0 view .LVU2778
8236 0008 0022 movs r2, #0
8237 000a 02A9 add r1, sp, #8
8238 .LVL947:
4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8239 .loc 1 4364 8 view .LVU2779
8240 000c 01A8 add r0, sp, #4
8241 .LVL948:
4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8242 .loc 1 4364 8 view .LVU2780
8243 000e FFF7FEFF bl find_volume
8244 .LVL949:
4365:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(dj.obj.fs);
8245 .loc 1 4365 2 is_stmt 1 view .LVU2781
4365:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(dj.obj.fs);
8246 .loc 1 4365 5 is_stmt 0 view .LVU2782
8247 0012 0546 mov r5, r0
8248 0014 10B1 cbz r0, .L613
8249 .LVL950:
8250 .L610:
4375:Middlewares/Third_Party/FatFs/src/ff.c **** }
8251 .loc 1 4375 16 is_stmt 1 view .LVU2783
ARM GAS /tmp/ccH7dUYB.s page 292
4378:Middlewares/Third_Party/FatFs/src/ff.c **** }
8252 .loc 1 4378 2 view .LVU2784
4379:Middlewares/Third_Party/FatFs/src/ff.c ****
8253 .loc 1 4379 1 is_stmt 0 view .LVU2785
8254 0016 2846 mov r0, r5
8255 0018 0FB0 add sp, sp, #60
8256 .LCFI89:
8257 .cfi_remember_state
8258 .cfi_def_cfa_offset 12
8259 @ sp needed
8260 001a 30BD pop {r4, r5, pc}
8261 .LVL951:
8262 .L613:
8263 .LCFI90:
8264 .cfi_restore_state
4366:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
8265 .loc 1 4366 25 is_stmt 1 view .LVU2786
4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
8266 .loc 1 4367 3 view .LVU2787
4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
8267 .loc 1 4367 9 is_stmt 0 view .LVU2788
8268 001c 0199 ldr r1, [sp, #4]
8269 001e 02A8 add r0, sp, #8
8270 .LVL952:
4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */
8271 .loc 1 4367 9 view .LVU2789
8272 0020 FFF7FEFF bl follow_path
8273 .LVL953:
4368:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */
8274 .loc 1 4368 3 is_stmt 1 view .LVU2790
4368:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */
8275 .loc 1 4368 6 is_stmt 0 view .LVU2791
8276 0024 0546 mov r5, r0
8277 0026 0028 cmp r0, #0
8278 0028 F5D1 bne .L610
4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
8279 .loc 1 4369 4 is_stmt 1 view .LVU2792
4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
8280 .loc 1 4369 8 is_stmt 0 view .LVU2793
8281 002a 9DF93730 ldrsb r3, [sp, #55]
4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
8282 .loc 1 4369 7 view .LVU2794
8283 002e 002B cmp r3, #0
8284 0030 06DB blt .L611
4372:Middlewares/Third_Party/FatFs/src/ff.c **** }
8285 .loc 1 4372 5 is_stmt 1 view .LVU2795
4372:Middlewares/Third_Party/FatFs/src/ff.c **** }
8286 .loc 1 4372 8 is_stmt 0 view .LVU2796
8287 0032 002C cmp r4, #0
8288 0034 EFD0 beq .L610
4372:Middlewares/Third_Party/FatFs/src/ff.c **** }
8289 .loc 1 4372 14 is_stmt 1 discriminator 1 view .LVU2797
8290 0036 2146 mov r1, r4
8291 0038 02A8 add r0, sp, #8
8292 .LVL954:
4372:Middlewares/Third_Party/FatFs/src/ff.c **** }
8293 .loc 1 4372 14 is_stmt 0 discriminator 1 view .LVU2798
ARM GAS /tmp/ccH7dUYB.s page 293
8294 003a FFF7FEFF bl get_fileinfo
8295 .LVL955:
8296 003e EAE7 b .L610
8297 .LVL956:
8298 .L611:
4370:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Found an object */
8299 .loc 1 4370 9 view .LVU2799
8300 0040 0625 movs r5, #6
8301 0042 E8E7 b .L610
8302 .cfi_endproc
8303 .LFE1231:
8305 .section .text.f_getfree,"ax",%progbits
8306 .align 1
8307 .global f_getfree
8308 .syntax unified
8309 .thumb
8310 .thumb_func
8312 f_getfree:
8313 .LVL957:
8314 .LFB1232:
4393:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8315 .loc 1 4393 1 is_stmt 1 view -0
8316 .cfi_startproc
8317 @ args = 0, pretend = 0, frame = 32
8318 @ frame_needed = 0, uses_anonymous_args = 0
4393:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8319 .loc 1 4393 1 is_stmt 0 view .LVU2801
8320 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8321 .LCFI91:
8322 .cfi_def_cfa_offset 36
8323 .cfi_offset 4, -36
8324 .cfi_offset 5, -32
8325 .cfi_offset 6, -28
8326 .cfi_offset 7, -24
8327 .cfi_offset 8, -20
8328 .cfi_offset 9, -16
8329 .cfi_offset 10, -12
8330 .cfi_offset 11, -8
8331 .cfi_offset 14, -4
8332 0004 89B0 sub sp, sp, #36
8333 .LCFI92:
8334 .cfi_def_cfa_offset 72
8335 0006 0190 str r0, [sp, #4]
8336 0008 8846 mov r8, r1
8337 000a 1446 mov r4, r2
4394:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
8338 .loc 1 4394 2 is_stmt 1 view .LVU2802
4395:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nfree, clst, sect, stat;
8339 .loc 1 4395 2 view .LVU2803
4396:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
8340 .loc 1 4396 2 view .LVU2804
4397:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p;
8341 .loc 1 4397 2 view .LVU2805
4398:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID obj;
8342 .loc 1 4398 2 view .LVU2806
4399:Middlewares/Third_Party/FatFs/src/ff.c ****
8343 .loc 1 4399 2 view .LVU2807
ARM GAS /tmp/ccH7dUYB.s page 294
4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8344 .loc 1 4403 2 view .LVU2808
4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8345 .loc 1 4403 8 is_stmt 0 view .LVU2809
8346 000c 0022 movs r2, #0
8347 .LVL958:
4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8348 .loc 1 4403 8 view .LVU2810
8349 000e 07A9 add r1, sp, #28
8350 .LVL959:
4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8351 .loc 1 4403 8 view .LVU2811
8352 0010 01A8 add r0, sp, #4
8353 .LVL960:
4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8354 .loc 1 4403 8 view .LVU2812
8355 0012 FFF7FEFF bl find_volume
8356 .LVL961:
4404:Middlewares/Third_Party/FatFs/src/ff.c **** *fatfs = fs; /* Return ptr to the fs object */
8357 .loc 1 4404 2 is_stmt 1 view .LVU2813
4404:Middlewares/Third_Party/FatFs/src/ff.c **** *fatfs = fs; /* Return ptr to the fs object */
8358 .loc 1 4404 5 is_stmt 0 view .LVU2814
8359 0016 8146 mov r9, r0
8360 0018 0028 cmp r0, #0
8361 001a 59D1 bne .L615
4405:Middlewares/Third_Party/FatFs/src/ff.c **** /* If free_clst is valid, return it without full cluster scan */
8362 .loc 1 4405 3 is_stmt 1 view .LVU2815
4405:Middlewares/Third_Party/FatFs/src/ff.c **** /* If free_clst is valid, return it without full cluster scan */
8363 .loc 1 4405 10 is_stmt 0 view .LVU2816
8364 001c 079B ldr r3, [sp, #28]
8365 001e 2360 str r3, [r4]
4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
8366 .loc 1 4407 3 is_stmt 1 view .LVU2817
4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
8367 .loc 1 4407 9 is_stmt 0 view .LVU2818
8368 0020 5A69 ldr r2, [r3, #20]
4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
8369 .loc 1 4407 26 view .LVU2819
8370 0022 9D69 ldr r5, [r3, #24]
4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
8371 .loc 1 4407 37 view .LVU2820
8372 0024 A91E subs r1, r5, #2
4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst;
8373 .loc 1 4407 6 view .LVU2821
8374 0026 8A42 cmp r2, r1
8375 0028 02D8 bhi .L616
4408:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8376 .loc 1 4408 4 is_stmt 1 view .LVU2822
4408:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8377 .loc 1 4408 11 is_stmt 0 view .LVU2823
8378 002a C8F80020 str r2, [r8]
8379 002e 4FE0 b .L615
8380 .L616:
4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */
8381 .loc 1 4411 4 is_stmt 1 view .LVU2824
8382 .LVL962:
4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs;
ARM GAS /tmp/ccH7dUYB.s page 295
8383 .loc 1 4412 4 view .LVU2825
4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs;
8384 .loc 1 4412 10 is_stmt 0 view .LVU2826
8385 0030 1E78 ldrb r6, [r3] @ zero_extendqisi2
4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs;
8386 .loc 1 4412 7 view .LVU2827
8387 0032 012E cmp r6, #1
8388 0034 05D0 beq .L630
4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0;
8389 .loc 1 4440 6 is_stmt 1 view .LVU2828
8390 .LVL963:
4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0;
8391 .loc 1 4440 27 view .LVU2829
4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0;
8392 .loc 1 4440 32 is_stmt 0 view .LVU2830
8393 0036 D3F824A0 ldr r10, [r3, #36]
8394 .LVL964:
4441:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8395 .loc 1 4441 6 is_stmt 1 view .LVU2831
4441:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8396 .loc 1 4441 13 view .LVU2832
4441:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8397 .loc 1 4441 15 is_stmt 0 view .LVU2833
8398 003a 0024 movs r4, #0
8399 .LVL965:
4441:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8400 .loc 1 4441 8 view .LVU2834
8401 003c 2646 mov r6, r4
4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */
8402 .loc 1 4411 10 view .LVU2835
8403 003e 2746 mov r7, r4
8404 0040 2FE0 b .L626
8405 .LVL966:
8406 .L630:
4413:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8407 .loc 1 4413 5 is_stmt 1 view .LVU2836
4413:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8408 .loc 1 4413 15 view .LVU2837
4413:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8409 .loc 1 4413 22 is_stmt 0 view .LVU2838
8410 0042 0293 str r3, [sp, #8]
4413:Middlewares/Third_Party/FatFs/src/ff.c **** do {
8411 .loc 1 4413 10 view .LVU2839
8412 0044 0224 movs r4, #2
8413 .LVL967:
4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */
8414 .loc 1 4411 10 view .LVU2840
8415 0046 0027 movs r7, #0
8416 0048 04E0 b .L620
8417 .LVL968:
8418 .L619:
4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8419 .loc 1 4419 21 is_stmt 1 view .LVU2841
8420 004a 0134 adds r4, r4, #1
8421 .LVL969:
4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8422 .loc 1 4419 25 is_stmt 0 view .LVU2842
ARM GAS /tmp/ccH7dUYB.s page 296
8423 004c 079B ldr r3, [sp, #28]
8424 004e 9B69 ldr r3, [r3, #24]
4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8425 .loc 1 4419 21 view .LVU2843
8426 0050 A342 cmp r3, r4
8427 0052 35D9 bls .L618
8428 .LVL970:
8429 .L620:
4414:Middlewares/Third_Party/FatFs/src/ff.c **** stat = get_fat(&obj, clst);
8430 .loc 1 4414 5 is_stmt 1 view .LVU2844
4415:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; }
8431 .loc 1 4415 6 view .LVU2845
4415:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; }
8432 .loc 1 4415 13 is_stmt 0 view .LVU2846
8433 0054 2146 mov r1, r4
8434 0056 02A8 add r0, sp, #8
8435 0058 FFF7FEFF bl get_fat
8436 .LVL971:
4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; }
8437 .loc 1 4416 6 is_stmt 1 view .LVU2847
4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; }
8438 .loc 1 4416 9 is_stmt 0 view .LVU2848
8439 005c B0F1FF3F cmp r0, #-1
8440 0060 2DD0 beq .L627
4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++;
8441 .loc 1 4417 6 is_stmt 1 view .LVU2849
4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++;
8442 .loc 1 4417 9 is_stmt 0 view .LVU2850
8443 0062 0128 cmp r0, #1
8444 0064 38D0 beq .L628
4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
8445 .loc 1 4418 6 is_stmt 1 view .LVU2851
4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
8446 .loc 1 4418 9 is_stmt 0 view .LVU2852
8447 0066 0028 cmp r0, #0
8448 0068 EFD1 bne .L619
4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
8449 .loc 1 4418 21 is_stmt 1 discriminator 1 view .LVU2853
4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
8450 .loc 1 4418 26 is_stmt 0 discriminator 1 view .LVU2854
8451 006a 0137 adds r7, r7, #1
8452 .LVL972:
4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent);
8453 .loc 1 4418 26 discriminator 1 view .LVU2855
8454 006c EDE7 b .L619
8455 .LVL973:
8456 .L631:
4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
8457 .loc 1 4444 8 is_stmt 1 view .LVU2856
4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
8458 .loc 1 4444 14 is_stmt 0 view .LVU2857
8459 006e 0AF1010B add fp, r10, #1
8460 .LVL974:
4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
8461 .loc 1 4444 14 view .LVU2858
8462 0072 5146 mov r1, r10
8463 0074 0798 ldr r0, [sp, #28]
ARM GAS /tmp/ccH7dUYB.s page 297
8464 0076 FFF7FEFF bl move_window
8465 .LVL975:
4445:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win;
8466 .loc 1 4445 8 is_stmt 1 view .LVU2859
4445:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win;
8467 .loc 1 4445 11 is_stmt 0 view .LVU2860
8468 007a 8146 mov r9, r0
8469 007c 00BB cbnz r0, .L618
4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs);
8470 .loc 1 4446 8 is_stmt 1 view .LVU2861
4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs);
8471 .loc 1 4446 14 is_stmt 0 view .LVU2862
8472 007e 079B ldr r3, [sp, #28]
4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs);
8473 .loc 1 4446 10 view .LVU2863
8474 0080 03F13404 add r4, r3, #52
8475 .LVL976:
4447:Middlewares/Third_Party/FatFs/src/ff.c **** }
8476 .loc 1 4447 8 is_stmt 1 view .LVU2864
4447:Middlewares/Third_Party/FatFs/src/ff.c **** }
8477 .loc 1 4447 12 is_stmt 0 view .LVU2865
8478 0084 9E89 ldrh r6, [r3, #12]
8479 .LVL977:
4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
8480 .loc 1 4444 14 view .LVU2866
8481 0086 DA46 mov r10, fp
8482 0088 0DE0 b .L621
8483 .LVL978:
8484 .L632:
4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
8485 .loc 1 4450 8 is_stmt 1 view .LVU2867
4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
8486 .loc 1 4450 12 is_stmt 0 view .LVU2868
8487 008a 2046 mov r0, r4
8488 008c FFF7FEFF bl ld_word
8489 .LVL979:
4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
8490 .loc 1 4450 11 discriminator 1 view .LVU2869
8491 0090 00B9 cbnz r0, .L623
4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
8492 .loc 1 4450 29 is_stmt 1 discriminator 1 view .LVU2870
4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2;
8493 .loc 1 4450 34 is_stmt 0 discriminator 1 view .LVU2871
8494 0092 0137 adds r7, r7, #1
8495 .LVL980:
8496 .L623:
4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8497 .loc 1 4451 8 is_stmt 1 view .LVU2872
4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8498 .loc 1 4451 10 is_stmt 0 view .LVU2873
8499 0094 0234 adds r4, r4, #2
8500 .LVL981:
4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8501 .loc 1 4451 16 is_stmt 1 view .LVU2874
4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8502 .loc 1 4451 18 is_stmt 0 view .LVU2875
8503 0096 023E subs r6, r6, #2
ARM GAS /tmp/ccH7dUYB.s page 298
8504 .LVL982:
4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8505 .loc 1 4451 18 view .LVU2876
8506 0098 01E0 b .L624
8507 .L625:
4454:Middlewares/Third_Party/FatFs/src/ff.c **** }
8508 .loc 1 4454 8 is_stmt 1 view .LVU2877
4454:Middlewares/Third_Party/FatFs/src/ff.c **** }
8509 .loc 1 4454 10 is_stmt 0 view .LVU2878
8510 009a 0434 adds r4, r4, #4
8511 .LVL983:
4454:Middlewares/Third_Party/FatFs/src/ff.c **** }
8512 .loc 1 4454 16 is_stmt 1 view .LVU2879
4454:Middlewares/Third_Party/FatFs/src/ff.c **** }
8513 .loc 1 4454 18 is_stmt 0 view .LVU2880
8514 009c 043E subs r6, r6, #4
8515 .LVL984:
8516 .L624:
4456:Middlewares/Third_Party/FatFs/src/ff.c **** }
8517 .loc 1 4456 15 is_stmt 1 view .LVU2881
4456:Middlewares/Third_Party/FatFs/src/ff.c **** }
8518 .loc 1 4456 15 is_stmt 0 view .LVU2882
8519 009e 013D subs r5, r5, #1
8520 .LVL985:
4456:Middlewares/Third_Party/FatFs/src/ff.c **** }
8521 .loc 1 4456 15 view .LVU2883
8522 00a0 0ED0 beq .L618
8523 .LVL986:
8524 .L626:
4442:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) {
8525 .loc 1 4442 6 is_stmt 1 view .LVU2884
4443:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, sect++);
8526 .loc 1 4443 7 view .LVU2885
4443:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, sect++);
8527 .loc 1 4443 10 is_stmt 0 view .LVU2886
8528 00a2 002E cmp r6, #0
8529 00a4 E3D0 beq .L631
8530 .LVL987:
8531 .L621:
4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++;
8532 .loc 1 4449 7 is_stmt 1 view .LVU2887
4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++;
8533 .loc 1 4449 13 is_stmt 0 view .LVU2888
8534 00a6 079B ldr r3, [sp, #28]
8535 00a8 1B78 ldrb r3, [r3] @ zero_extendqisi2
4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++;
8536 .loc 1 4449 10 view .LVU2889
8537 00aa 022B cmp r3, #2
8538 00ac EDD0 beq .L632
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
8539 .loc 1 4453 8 is_stmt 1 view .LVU2890
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
8540 .loc 1 4453 13 is_stmt 0 view .LVU2891
8541 00ae 2046 mov r0, r4
8542 00b0 FFF7FEFF bl ld_dword
8543 .LVL988:
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
ARM GAS /tmp/ccH7dUYB.s page 299
8544 .loc 1 4453 11 discriminator 1 view .LVU2892
8545 00b4 30F07043 bics r3, r0, #-268435456
8546 00b8 EFD1 bne .L625
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
8547 .loc 1 4453 45 is_stmt 1 discriminator 1 view .LVU2893
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
8548 .loc 1 4453 50 is_stmt 0 discriminator 1 view .LVU2894
8549 00ba 0137 adds r7, r7, #1
8550 .LVL989:
4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4;
8551 .loc 1 4453 50 discriminator 1 view .LVU2895
8552 00bc EDE7 b .L625
8553 .LVL990:
8554 .L627:
4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; }
8555 .loc 1 4416 36 discriminator 1 view .LVU2896
8556 00be B146 mov r9, r6
8557 .LVL991:
8558 .L618:
4459:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = nfree; /* Now free_clst is valid */
8559 .loc 1 4459 4 is_stmt 1 view .LVU2897
4459:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = nfree; /* Now free_clst is valid */
8560 .loc 1 4459 11 is_stmt 0 view .LVU2898
8561 00c0 C8F80070 str r7, [r8]
4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */
8562 .loc 1 4460 4 is_stmt 1 view .LVU2899
4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */
8563 .loc 1 4460 6 is_stmt 0 view .LVU2900
8564 00c4 079B ldr r3, [sp, #28]
4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */
8565 .loc 1 4460 18 view .LVU2901
8566 00c6 5F61 str r7, [r3, #20]
4461:Middlewares/Third_Party/FatFs/src/ff.c **** }
8567 .loc 1 4461 4 is_stmt 1 view .LVU2902
4461:Middlewares/Third_Party/FatFs/src/ff.c **** }
8568 .loc 1 4461 6 is_stmt 0 view .LVU2903
8569 00c8 1A79 ldrb r2, [r3, #4] @ zero_extendqisi2
4461:Middlewares/Third_Party/FatFs/src/ff.c **** }
8570 .loc 1 4461 17 view .LVU2904
8571 00ca 42F00102 orr r2, r2, #1
8572 00ce 1A71 strb r2, [r3, #4]
8573 .LVL992:
8574 .L615:
4465:Middlewares/Third_Party/FatFs/src/ff.c **** }
8575 .loc 1 4465 2 is_stmt 1 view .LVU2905
4466:Middlewares/Third_Party/FatFs/src/ff.c ****
8576 .loc 1 4466 1 is_stmt 0 view .LVU2906
8577 00d0 4846 mov r0, r9
8578 00d2 09B0 add sp, sp, #36
8579 .LCFI93:
8580 .cfi_remember_state
8581 .cfi_def_cfa_offset 36
8582 @ sp needed
8583 00d4 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8584 .LVL993:
8585 .L628:
8586 .LCFI94:
ARM GAS /tmp/ccH7dUYB.s page 300
8587 .cfi_restore_state
4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++;
8588 .loc 1 4417 27 discriminator 1 view .LVU2907
8589 00d8 4FF00209 mov r9, #2
8590 .LVL994:
4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++;
8591 .loc 1 4417 27 discriminator 1 view .LVU2908
8592 00dc F0E7 b .L618
8593 .cfi_endproc
8594 .LFE1232:
8596 .section .text.f_truncate,"ax",%progbits
8597 .align 1
8598 .global f_truncate
8599 .syntax unified
8600 .thumb
8601 .thumb_func
8603 f_truncate:
8604 .LVL995:
8605 .LFB1233:
4478:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8606 .loc 1 4478 1 is_stmt 1 view -0
8607 .cfi_startproc
8608 @ args = 0, pretend = 0, frame = 8
8609 @ frame_needed = 0, uses_anonymous_args = 0
4478:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8610 .loc 1 4478 1 is_stmt 0 view .LVU2910
8611 0000 30B5 push {r4, r5, lr}
8612 .LCFI95:
8613 .cfi_def_cfa_offset 12
8614 .cfi_offset 4, -12
8615 .cfi_offset 5, -8
8616 .cfi_offset 14, -4
8617 0002 83B0 sub sp, sp, #12
8618 .LCFI96:
8619 .cfi_def_cfa_offset 24
8620 0004 0446 mov r4, r0
4479:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
8621 .loc 1 4479 2 is_stmt 1 view .LVU2911
4480:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ncl;
8622 .loc 1 4480 2 view .LVU2912
4481:Middlewares/Third_Party/FatFs/src/ff.c ****
8623 .loc 1 4481 2 view .LVU2913
4484:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res);
8624 .loc 1 4484 2 view .LVU2914
4484:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res);
8625 .loc 1 4484 8 is_stmt 0 view .LVU2915
8626 0006 01A9 add r1, sp, #4
8627 0008 FFF7FEFF bl validate
8628 .LVL996:
4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
8629 .loc 1 4485 2 is_stmt 1 view .LVU2916
4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
8630 .loc 1 4485 5 is_stmt 0 view .LVU2917
8631 000c 0546 mov r5, r0
8632 000e 0028 cmp r0, #0
8633 0010 49D1 bne .L636
4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
ARM GAS /tmp/ccH7dUYB.s page 301
8634 .loc 1 4485 27 discriminator 2 view .LVU2918
8635 0012 657D ldrb r5, [r4, #21] @ zero_extendqisi2
8636 .LVL997:
4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */
8637 .loc 1 4485 19 discriminator 2 view .LVU2919
8638 0014 002D cmp r5, #0
8639 0016 46D1 bne .L636
4486:Middlewares/Third_Party/FatFs/src/ff.c ****
8640 .loc 1 4486 2 is_stmt 1 view .LVU2920
4486:Middlewares/Third_Party/FatFs/src/ff.c ****
8641 .loc 1 4486 10 is_stmt 0 view .LVU2921
8642 0018 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4486:Middlewares/Third_Party/FatFs/src/ff.c ****
8643 .loc 1 4486 5 view .LVU2922
8644 001a 13F0020F tst r3, #2
8645 001e 41D0 beq .L641
4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
8646 .loc 1 4488 2 is_stmt 1 view .LVU2923
4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
8647 .loc 1 4488 8 is_stmt 0 view .LVU2924
8648 0020 A369 ldr r3, [r4, #24]
4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
8649 .loc 1 4488 24 view .LVU2925
8650 0022 E268 ldr r2, [r4, #12]
4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
8651 .loc 1 4488 5 view .LVU2926
8652 0024 9342 cmp r3, r2
8653 0026 3ED2 bcs .L636
4489:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0);
8654 .loc 1 4489 3 is_stmt 1 view .LVU2927
4489:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0);
8655 .loc 1 4489 6 is_stmt 0 view .LVU2928
8656 0028 FBB9 cbnz r3, .L637
4490:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = 0;
8657 .loc 1 4490 4 is_stmt 1 view .LVU2929
4490:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = 0;
8658 .loc 1 4490 10 is_stmt 0 view .LVU2930
8659 002a 0022 movs r2, #0
8660 002c A168 ldr r1, [r4, #8]
8661 002e 2046 mov r0, r4
8662 0030 FFF7FEFF bl remove_chain
8663 .LVL998:
8664 0034 0546 mov r5, r0
8665 .LVL999:
4491:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When truncate a part of the file, remove remaining clusters */
8666 .loc 1 4491 4 is_stmt 1 view .LVU2931
4491:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When truncate a part of the file, remove remaining clusters */
8667 .loc 1 4491 19 is_stmt 0 view .LVU2932
8668 0036 0023 movs r3, #0
8669 0038 A360 str r3, [r4, #8]
8670 .LVL1000:
8671 .L638:
4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
8672 .loc 1 4501 3 is_stmt 1 view .LVU2933
4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
8673 .loc 1 4501 23 is_stmt 0 view .LVU2934
8674 003a A369 ldr r3, [r4, #24]
ARM GAS /tmp/ccH7dUYB.s page 302
4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED;
8675 .loc 1 4501 19 view .LVU2935
8676 003c E360 str r3, [r4, #12]
4502:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
8677 .loc 1 4502 3 is_stmt 1 view .LVU2936
4502:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
8678 .loc 1 4502 5 is_stmt 0 view .LVU2937
8679 003e 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4502:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY
8680 .loc 1 4502 12 view .LVU2938
8681 0040 43F04003 orr r3, r3, #64
8682 0044 2375 strb r3, [r4, #20]
4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) {
8683 .loc 1 4504 3 is_stmt 1 view .LVU2939
4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) {
8684 .loc 1 4504 6 is_stmt 0 view .LVU2940
8685 0046 5DBB cbnz r5, .L640
4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) {
8686 .loc 1 4504 20 discriminator 1 view .LVU2941
8687 0048 13F0800F tst r3, #128
8688 004c 2BD0 beq .L636
4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
8689 .loc 1 4505 4 is_stmt 1 view .LVU2942
4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
8690 .loc 1 4505 8 is_stmt 0 view .LVU2943
8691 004e 0123 movs r3, #1
8692 0050 226A ldr r2, [r4, #32]
8693 0052 04F13001 add r1, r4, #48
8694 0056 0198 ldr r0, [sp, #4]
8695 0058 4078 ldrb r0, [r0, #1] @ zero_extendqisi2
8696 005a FFF7FEFF bl disk_write
8697 .LVL1001:
4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR;
8698 .loc 1 4505 7 discriminator 1 view .LVU2944
8699 005e F0B9 cbnz r0, .L644
4508:Middlewares/Third_Party/FatFs/src/ff.c **** }
8700 .loc 1 4508 5 is_stmt 1 view .LVU2945
4508:Middlewares/Third_Party/FatFs/src/ff.c **** }
8701 .loc 1 4508 7 is_stmt 0 view .LVU2946
8702 0060 237D ldrb r3, [r4, #20] @ zero_extendqisi2
4508:Middlewares/Third_Party/FatFs/src/ff.c **** }
8703 .loc 1 4508 14 view .LVU2947
8704 0062 03F07F03 and r3, r3, #127
8705 0066 2375 strb r3, [r4, #20]
8706 0068 1DE0 b .L636
8707 .L637:
4493:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
8708 .loc 1 4493 4 is_stmt 1 view .LVU2948
4493:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
8709 .loc 1 4493 10 is_stmt 0 view .LVU2949
8710 006a E169 ldr r1, [r4, #28]
8711 006c 2046 mov r0, r4
8712 006e FFF7FEFF bl get_fat
8713 .LVL1002:
4494:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR;
8714 .loc 1 4494 4 is_stmt 1 view .LVU2950
4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR;
ARM GAS /tmp/ccH7dUYB.s page 303
8715 .loc 1 4495 4 view .LVU2951
4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR;
8716 .loc 1 4495 7 is_stmt 0 view .LVU2952
8717 0072 B0F1FF3F cmp r0, #-1
8718 0076 0ED0 beq .L642
4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) {
8719 .loc 1 4496 4 is_stmt 1 view .LVU2953
4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) {
8720 .loc 1 4496 7 is_stmt 0 view .LVU2954
8721 0078 0128 cmp r0, #1
8722 007a 0ED0 beq .L646
8723 .L639:
8724 .LVL1003:
4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust);
8725 .loc 1 4497 4 is_stmt 1 view .LVU2955
4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust);
8726 .loc 1 4497 7 is_stmt 0 view .LVU2956
8727 007c 002D cmp r5, #0
8728 007e DCD1 bne .L638
4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust);
8729 .loc 1 4497 32 discriminator 1 view .LVU2957
8730 0080 019B ldr r3, [sp, #4]
8731 0082 9B69 ldr r3, [r3, #24]
4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust);
8732 .loc 1 4497 21 discriminator 1 view .LVU2958
8733 0084 8342 cmp r3, r0
8734 0086 D8D9 bls .L638
4498:Middlewares/Third_Party/FatFs/src/ff.c **** }
8735 .loc 1 4498 5 is_stmt 1 view .LVU2959
4498:Middlewares/Third_Party/FatFs/src/ff.c **** }
8736 .loc 1 4498 11 is_stmt 0 view .LVU2960
8737 0088 E269 ldr r2, [r4, #28]
8738 008a 0146 mov r1, r0
8739 008c 2046 mov r0, r4
8740 .LVL1004:
4498:Middlewares/Third_Party/FatFs/src/ff.c **** }
8741 .loc 1 4498 11 view .LVU2961
8742 008e FFF7FEFF bl remove_chain
8743 .LVL1005:
4498:Middlewares/Third_Party/FatFs/src/ff.c **** }
8744 .loc 1 4498 11 view .LVU2962
8745 0092 0546 mov r5, r0
8746 .LVL1006:
4498:Middlewares/Third_Party/FatFs/src/ff.c **** }
8747 .loc 1 4498 11 view .LVU2963
8748 0094 D1E7 b .L638
8749 .LVL1007:
8750 .L642:
4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR;
8751 .loc 1 4495 31 discriminator 1 view .LVU2964
8752 0096 0125 movs r5, #1
8753 0098 F0E7 b .L639
8754 .L646:
4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) {
8755 .loc 1 4496 22 discriminator 1 view .LVU2965
8756 009a 0225 movs r5, #2
8757 009c CDE7 b .L638
ARM GAS /tmp/ccH7dUYB.s page 304
8758 .LVL1008:
8759 .L644:
4506:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
8760 .loc 1 4506 9 view .LVU2966
8761 009e 0125 movs r5, #1
8762 .LVL1009:
8763 .L640:
4512:Middlewares/Third_Party/FatFs/src/ff.c **** }
8764 .loc 1 4512 21 is_stmt 1 discriminator 1 view .LVU2967
8765 00a0 6575 strb r5, [r4, #21]
4512:Middlewares/Third_Party/FatFs/src/ff.c **** }
8766 .loc 1 4512 21 discriminator 1 view .LVU2968
4512:Middlewares/Third_Party/FatFs/src/ff.c **** }
8767 .loc 1 4512 21 is_stmt 0 view .LVU2969
8768 00a2 00E0 b .L636
8769 .LVL1010:
8770 .L641:
4486:Middlewares/Third_Party/FatFs/src/ff.c ****
8771 .loc 1 4486 30 discriminator 1 view .LVU2970
8772 00a4 0725 movs r5, #7
8773 .LVL1011:
8774 .L636:
4516:Middlewares/Third_Party/FatFs/src/ff.c ****
8775 .loc 1 4516 1 view .LVU2971
8776 00a6 2846 mov r0, r5
8777 00a8 03B0 add sp, sp, #12
8778 .LCFI97:
8779 .cfi_def_cfa_offset 12
8780 @ sp needed
8781 00aa 30BD pop {r4, r5, pc}
4516:Middlewares/Third_Party/FatFs/src/ff.c ****
8782 .loc 1 4516 1 view .LVU2972
8783 .cfi_endproc
8784 .LFE1233:
8786 .section .text.f_unlink,"ax",%progbits
8787 .align 1
8788 .global f_unlink
8789 .syntax unified
8790 .thumb
8791 .thumb_func
8793 f_unlink:
8794 .LVL1012:
8795 .LFB1234:
4528:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8796 .loc 1 4528 1 is_stmt 1 view -0
8797 .cfi_startproc
8798 @ args = 0, pretend = 0, frame = 112
8799 @ frame_needed = 0, uses_anonymous_args = 0
4528:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
8800 .loc 1 4528 1 is_stmt 0 view .LVU2974
8801 0000 F0B5 push {r4, r5, r6, r7, lr}
8802 .LCFI98:
8803 .cfi_def_cfa_offset 20
8804 .cfi_offset 4, -20
8805 .cfi_offset 5, -16
8806 .cfi_offset 6, -12
8807 .cfi_offset 7, -8
ARM GAS /tmp/ccH7dUYB.s page 305
8808 .cfi_offset 14, -4
8809 0002 9DB0 sub sp, sp, #116
8810 .LCFI99:
8811 .cfi_def_cfa_offset 136
8812 0004 0190 str r0, [sp, #4]
4529:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj, sdj;
8813 .loc 1 4529 2 is_stmt 1 view .LVU2975
4530:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dclst = 0;
8814 .loc 1 4530 2 view .LVU2976
4531:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
8815 .loc 1 4531 2 view .LVU2977
8816 .LVL1013:
4532:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8817 .loc 1 4532 2 view .LVU2978
4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
8818 .loc 1 4540 2 view .LVU2979
4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
8819 .loc 1 4540 8 is_stmt 0 view .LVU2980
8820 0006 0222 movs r2, #2
8821 0008 03A9 add r1, sp, #12
8822 000a 01A8 add r0, sp, #4
8823 .LVL1014:
4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
8824 .loc 1 4540 8 view .LVU2981
8825 000c FFF7FEFF bl find_volume
8826 .LVL1015:
4541:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8827 .loc 1 4541 2 is_stmt 1 view .LVU2982
4541:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8828 .loc 1 4541 12 is_stmt 0 view .LVU2983
8829 0010 039B ldr r3, [sp, #12]
8830 0012 1093 str r3, [sp, #64]
4542:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
8831 .loc 1 4542 2 is_stmt 1 view .LVU2984
4542:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
8832 .loc 1 4542 5 is_stmt 0 view .LVU2985
8833 0014 0446 mov r4, r0
8834 0016 10B1 cbz r0, .L656
8835 .LVL1016:
8836 .L648:
4607:Middlewares/Third_Party/FatFs/src/ff.c **** }
8837 .loc 1 4607 16 is_stmt 1 view .LVU2986
4610:Middlewares/Third_Party/FatFs/src/ff.c **** }
8838 .loc 1 4610 2 view .LVU2987
4611:Middlewares/Third_Party/FatFs/src/ff.c ****
8839 .loc 1 4611 1 is_stmt 0 view .LVU2988
8840 0018 2046 mov r0, r4
8841 001a 1DB0 add sp, sp, #116
8842 .LCFI100:
8843 .cfi_remember_state
8844 .cfi_def_cfa_offset 20
8845 @ sp needed
8846 001c F0BD pop {r4, r5, r6, r7, pc}
8847 .LVL1017:
8848 .L656:
8849 .LCFI101:
8850 .cfi_restore_state
ARM GAS /tmp/ccH7dUYB.s page 306
4543:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
8851 .loc 1 4543 18 is_stmt 1 view .LVU2989
4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) {
8852 .loc 1 4544 3 view .LVU2990
4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) {
8853 .loc 1 4544 9 is_stmt 0 view .LVU2991
8854 001e 0199 ldr r1, [sp, #4]
8855 0020 10A8 add r0, sp, #64
8856 .LVL1018:
4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) {
8857 .loc 1 4544 9 view .LVU2992
8858 0022 FFF7FEFF bl follow_path
8859 .LVL1019:
4545:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove dot entry */
8860 .loc 1 4545 3 is_stmt 1 view .LVU2993
4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8861 .loc 1 4549 3 view .LVU2994
4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8862 .loc 1 4549 6 is_stmt 0 view .LVU2995
8863 0026 0446 mov r4, r0
8864 0028 0028 cmp r0, #0
8865 002a F5D1 bne .L648
4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8866 .loc 1 4549 21 is_stmt 1 discriminator 1 view .LVU2996
4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8867 .loc 1 4549 27 is_stmt 0 discriminator 1 view .LVU2997
8868 002c 0221 movs r1, #2
8869 002e 10A8 add r0, sp, #64
8870 .LVL1020:
4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8871 .loc 1 4549 27 discriminator 1 view .LVU2998
8872 0030 FFF7FEFF bl chk_lock
8873 .LVL1021:
4551:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) {
8874 .loc 1 4551 3 is_stmt 1 view .LVU2999
4551:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) {
8875 .loc 1 4551 6 is_stmt 0 view .LVU3000
8876 0034 0446 mov r4, r0
8877 0036 0028 cmp r0, #0
8878 0038 EED1 bne .L648
4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */
8879 .loc 1 4552 4 is_stmt 1 view .LVU3001
4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */
8880 .loc 1 4552 8 is_stmt 0 view .LVU3002
8881 003a 9DF96F30 ldrsb r3, [sp, #111]
4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */
8882 .loc 1 4552 7 view .LVU3003
8883 003e 002B cmp r3, #0
8884 0040 3CDB blt .L652
4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */
8885 .loc 1 4555 5 is_stmt 1 view .LVU3004
4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */
8886 .loc 1 4555 15 is_stmt 0 view .LVU3005
8887 0042 9DF84650 ldrb r5, [sp, #70] @ zero_extendqisi2
4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */
8888 .loc 1 4555 8 view .LVU3006
8889 0046 15F0010F tst r5, #1
ARM GAS /tmp/ccH7dUYB.s page 307
8890 004a 39D1 bne .L653
8891 .LVL1022:
4559:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8892 .loc 1 4559 4 is_stmt 1 view .LVU3007
4569:Middlewares/Third_Party/FatFs/src/ff.c **** }
8893 .loc 1 4569 6 view .LVU3008
4569:Middlewares/Third_Party/FatFs/src/ff.c **** }
8894 .loc 1 4569 14 is_stmt 0 view .LVU3009
8895 004c 039F ldr r7, [sp, #12]
8896 004e 1899 ldr r1, [sp, #96]
8897 0050 3846 mov r0, r7
8898 0052 FFF7FEFF bl ld_clust
8899 .LVL1023:
8900 0056 0646 mov r6, r0
8901 .LVL1024:
4571:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
8902 .loc 1 4571 5 is_stmt 1 view .LVU3010
4571:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0
8903 .loc 1 4571 8 is_stmt 0 view .LVU3011
8904 0058 15F0100F tst r5, #16
8905 005c 13D1 bne .L657
8906 .LVL1025:
8907 .L649:
4595:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&dj); /* Remove the directory entry */
8908 .loc 1 4595 4 is_stmt 1 view .LVU3012
4595:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&dj); /* Remove the directory entry */
8909 .loc 1 4595 7 is_stmt 0 view .LVU3013
8910 005e 002C cmp r4, #0
8911 0060 DAD1 bne .L648
8912 .LVL1026:
8913 .L650:
4596:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */
8914 .loc 1 4596 5 is_stmt 1 view .LVU3014
4596:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */
8915 .loc 1 4596 11 is_stmt 0 view .LVU3015
8916 0062 10A8 add r0, sp, #64
8917 0064 FFF7FEFF bl dir_remove
8918 .LVL1027:
4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8919 .loc 1 4597 5 is_stmt 1 view .LVU3016
4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8920 .loc 1 4597 13 is_stmt 0 view .LVU3017
8921 0068 0446 mov r4, r0
4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8922 .loc 1 4597 22 view .LVU3018
8923 006a B0FA80F0 clz r0, r0
8924 .LVL1028:
4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8925 .loc 1 4597 22 view .LVU3019
8926 006e 4009 lsrs r0, r0, #5
8927 0070 002E cmp r6, #0
8928 0072 08BF it eq
8929 0074 0020 moveq r0, #0
4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8930 .loc 1 4597 8 view .LVU3020
8931 0076 D0B9 cbnz r0, .L658
8932 .LVL1029:
ARM GAS /tmp/ccH7dUYB.s page 308
8933 .L651:
4604:Middlewares/Third_Party/FatFs/src/ff.c **** }
8934 .loc 1 4604 5 is_stmt 1 view .LVU3021
4604:Middlewares/Third_Party/FatFs/src/ff.c **** }
8935 .loc 1 4604 8 is_stmt 0 view .LVU3022
8936 0078 002C cmp r4, #0
8937 007a CDD1 bne .L648
4604:Middlewares/Third_Party/FatFs/src/ff.c **** }
8938 .loc 1 4604 23 is_stmt 1 discriminator 1 view .LVU3023
4604:Middlewares/Third_Party/FatFs/src/ff.c **** }
8939 .loc 1 4604 29 is_stmt 0 discriminator 1 view .LVU3024
8940 007c 0398 ldr r0, [sp, #12]
8941 007e FFF7FEFF bl sync_fs
8942 .LVL1030:
8943 0082 0446 mov r4, r0
8944 .LVL1031:
4604:Middlewares/Third_Party/FatFs/src/ff.c **** }
8945 .loc 1 4604 29 discriminator 1 view .LVU3025
8946 0084 C8E7 b .L648
8947 .LVL1032:
8948 .L657:
4578:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.sclust = dclst;
8949 .loc 1 4578 7 is_stmt 1 view .LVU3026
4578:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.sclust = dclst;
8950 .loc 1 4578 18 is_stmt 0 view .LVU3027
8951 0086 0497 str r7, [sp, #16]
4579:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8952 .loc 1 4579 7 is_stmt 1 view .LVU3028
4579:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
8953 .loc 1 4579 22 is_stmt 0 view .LVU3029
8954 0088 0690 str r0, [sp, #24]
4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8955 .loc 1 4586 7 is_stmt 1 view .LVU3030
4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8956 .loc 1 4586 13 is_stmt 0 view .LVU3031
8957 008a 0021 movs r1, #0
8958 008c 04A8 add r0, sp, #16
8959 .LVL1033:
4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
8960 .loc 1 4586 13 view .LVU3032
8961 008e FFF7FEFF bl dir_sdi
8962 .LVL1034:
4587:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&sdj, 0); /* Read an item */
8963 .loc 1 4587 7 is_stmt 1 view .LVU3033
4587:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&sdj, 0); /* Read an item */
8964 .loc 1 4587 10 is_stmt 0 view .LVU3034
8965 0092 0446 mov r4, r0
8966 0094 0028 cmp r0, #0
8967 0096 BFD1 bne .L648
4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */
8968 .loc 1 4588 8 is_stmt 1 view .LVU3035
4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */
8969 .loc 1 4588 14 is_stmt 0 view .LVU3036
8970 0098 0021 movs r1, #0
8971 009a 04A8 add r0, sp, #16
8972 .LVL1035:
4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */
ARM GAS /tmp/ccH7dUYB.s page 309
8973 .loc 1 4588 14 view .LVU3037
8974 009c FFF7FEFF bl dir_read
8975 .LVL1036:
4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */
8976 .loc 1 4589 8 is_stmt 1 view .LVU3038
4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */
8977 .loc 1 4589 11 is_stmt 0 view .LVU3039
8978 00a0 0446 mov r4, r0
8979 00a2 10B1 cbz r0, .L654
4590:Middlewares/Third_Party/FatFs/src/ff.c **** }
8980 .loc 1 4590 8 is_stmt 1 view .LVU3040
4590:Middlewares/Third_Party/FatFs/src/ff.c **** }
8981 .loc 1 4590 11 is_stmt 0 view .LVU3041
8982 00a4 0428 cmp r0, #4
8983 00a6 DAD1 bne .L649
8984 00a8 DBE7 b .L650
8985 .L654:
4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */
8986 .loc 1 4589 30 discriminator 1 view .LVU3042
8987 00aa 0724 movs r4, #7
8988 00ac D7E7 b .L649
8989 .LVL1037:
8990 .L658:
4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8991 .loc 1 4601 6 is_stmt 1 view .LVU3043
4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
8992 .loc 1 4601 12 is_stmt 0 view .LVU3044
8993 00ae 0022 movs r2, #0
8994 00b0 3146 mov r1, r6
8995 00b2 10A8 add r0, sp, #64
8996 00b4 FFF7FEFF bl remove_chain
8997 .LVL1038:
8998 00b8 0446 mov r4, r0
8999 .LVL1039:
4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
9000 .loc 1 4601 12 view .LVU3045
9001 00ba DDE7 b .L651
9002 .LVL1040:
9003 .L652:
4553:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
9004 .loc 1 4553 9 view .LVU3046
9005 00bc 0624 movs r4, #6
9006 00be ABE7 b .L648
9007 .L653:
4556:Middlewares/Third_Party/FatFs/src/ff.c **** }
9008 .loc 1 4556 10 view .LVU3047
9009 00c0 0724 movs r4, #7
9010 00c2 A9E7 b .L648
9011 .cfi_endproc
9012 .LFE1234:
9014 .section .text.f_mkdir,"ax",%progbits
9015 .align 1
9016 .global f_mkdir
9017 .syntax unified
9018 .thumb
9019 .thumb_func
9021 f_mkdir:
ARM GAS /tmp/ccH7dUYB.s page 310
9022 .LVL1041:
9023 .LFB1235:
4623:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
9024 .loc 1 4623 1 is_stmt 1 view -0
9025 .cfi_startproc
9026 @ args = 0, pretend = 0, frame = 64
9027 @ frame_needed = 0, uses_anonymous_args = 0
4623:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
9028 .loc 1 4623 1 is_stmt 0 view .LVU3049
9029 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9030 .LCFI102:
9031 .cfi_def_cfa_offset 36
9032 .cfi_offset 4, -36
9033 .cfi_offset 5, -32
9034 .cfi_offset 6, -28
9035 .cfi_offset 7, -24
9036 .cfi_offset 8, -20
9037 .cfi_offset 9, -16
9038 .cfi_offset 10, -12
9039 .cfi_offset 11, -8
9040 .cfi_offset 14, -4
9041 0004 91B0 sub sp, sp, #68
9042 .LCFI103:
9043 .cfi_def_cfa_offset 104
9044 0006 0190 str r0, [sp, #4]
4624:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj;
9045 .loc 1 4624 2 is_stmt 1 view .LVU3050
4625:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
9046 .loc 1 4625 2 view .LVU3051
4626:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir;
9047 .loc 1 4626 2 view .LVU3052
4627:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n;
9048 .loc 1 4627 2 view .LVU3053
4628:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dsc, dcl, pcl, tm;
9049 .loc 1 4628 2 view .LVU3054
4629:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
9050 .loc 1 4629 2 view .LVU3055
4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
9051 .loc 1 4634 2 view .LVU3056
4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
9052 .loc 1 4634 8 is_stmt 0 view .LVU3057
9053 0008 0222 movs r2, #2
9054 000a 03A9 add r1, sp, #12
9055 000c 01A8 add r0, sp, #4
9056 .LVL1042:
4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs;
9057 .loc 1 4634 8 view .LVU3058
9058 000e FFF7FEFF bl find_volume
9059 .LVL1043:
4635:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9060 .loc 1 4635 2 is_stmt 1 view .LVU3059
4635:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9061 .loc 1 4635 12 is_stmt 0 view .LVU3060
9062 0012 039B ldr r3, [sp, #12]
9063 0014 0493 str r3, [sp, #16]
4636:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
9064 .loc 1 4636 2 is_stmt 1 view .LVU3061
ARM GAS /tmp/ccH7dUYB.s page 311
4636:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
9065 .loc 1 4636 5 is_stmt 0 view .LVU3062
9066 0016 0446 mov r4, r0
9067 0018 18B1 cbz r0, .L676
9068 .LVL1044:
9069 .L660:
4704:Middlewares/Third_Party/FatFs/src/ff.c **** }
9070 .loc 1 4704 16 is_stmt 1 view .LVU3063
4707:Middlewares/Third_Party/FatFs/src/ff.c **** }
9071 .loc 1 4707 2 view .LVU3064
4708:Middlewares/Third_Party/FatFs/src/ff.c ****
9072 .loc 1 4708 1 is_stmt 0 view .LVU3065
9073 001a 2046 mov r0, r4
9074 001c 11B0 add sp, sp, #68
9075 .LCFI104:
9076 .cfi_remember_state
9077 .cfi_def_cfa_offset 36
9078 @ sp needed
9079 001e BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9080 .LVL1045:
9081 .L676:
9082 .LCFI105:
9083 .cfi_restore_state
4637:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */
9084 .loc 1 4637 18 is_stmt 1 view .LVU3066
4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */
9085 .loc 1 4638 3 view .LVU3067
4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */
9086 .loc 1 4638 9 is_stmt 0 view .LVU3068
9087 0022 0199 ldr r1, [sp, #4]
9088 0024 04A8 add r0, sp, #16
9089 .LVL1046:
4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */
9090 .loc 1 4638 9 view .LVU3069
9091 0026 FFF7FEFF bl follow_path
9092 .LVL1047:
4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) {
9093 .loc 1 4639 3 is_stmt 1 view .LVU3070
4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) {
9094 .loc 1 4639 6 is_stmt 0 view .LVU3071
9095 002a 0028 cmp r0, #0
9096 002c 00F09780 beq .L669
4640:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME;
9097 .loc 1 4640 3 is_stmt 1 view .LVU3072
4643:Middlewares/Third_Party/FatFs/src/ff.c **** dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */
9098 .loc 1 4643 3 view .LVU3073
4643:Middlewares/Third_Party/FatFs/src/ff.c **** dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */
9099 .loc 1 4643 6 is_stmt 0 view .LVU3074
9100 0030 0428 cmp r0, #4
9101 0032 01D0 beq .L677
9102 0034 0446 mov r4, r0
9103 0036 F0E7 b .L660
9104 .L677:
4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs);
9105 .loc 1 4644 4 is_stmt 1 view .LVU3075
4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs);
9106 .loc 1 4644 10 is_stmt 0 view .LVU3076
ARM GAS /tmp/ccH7dUYB.s page 312
9107 0038 0021 movs r1, #0
9108 003a 04A8 add r0, sp, #16
9109 .LVL1048:
4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs);
9110 .loc 1 4644 10 view .LVU3077
9111 003c FFF7FEFF bl create_chain
9112 .LVL1049:
4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
9113 .loc 1 4645 4 is_stmt 1 view .LVU3078
4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
9114 .loc 1 4645 30 is_stmt 0 view .LVU3079
9115 0040 039A ldr r2, [sp, #12]
9116 0042 5389 ldrh r3, [r2, #10]
4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
9117 .loc 1 4645 40 view .LVU3080
9118 0044 9189 ldrh r1, [r2, #12]
4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
9119 .loc 1 4645 38 view .LVU3081
9120 0046 01FB03F3 mul r3, r1, r3
4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK;
9121 .loc 1 4645 19 view .LVU3082
9122 004a 0793 str r3, [sp, #28]
4646:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0) res = FR_DENIED; /* No space to allocate a new cluster */
9123 .loc 1 4646 4 is_stmt 1 view .LVU3083
9124 .LVL1050:
4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR;
9125 .loc 1 4647 4 view .LVU3084
4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR;
9126 .loc 1 4647 7 is_stmt 0 view .LVU3085
9127 004c 8146 mov r9, r0
9128 004e 18B1 cbz r0, .L671
4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR;
9129 .loc 1 4648 4 is_stmt 1 view .LVU3086
4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR;
9130 .loc 1 4648 7 is_stmt 0 view .LVU3087
9131 0050 0128 cmp r0, #1
9132 0052 02D1 bne .L661
4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR;
9133 .loc 1 4648 22 discriminator 1 view .LVU3088
9134 0054 0224 movs r4, #2
9135 0056 03E0 b .L662
9136 .L671:
4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR;
9137 .loc 1 4647 22 discriminator 1 view .LVU3089
9138 0058 0724 movs r4, #7
9139 .L661:
9140 .LVL1051:
4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */
9141 .loc 1 4649 4 is_stmt 1 view .LVU3090
4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */
9142 .loc 1 4649 7 is_stmt 0 view .LVU3091
9143 005a B9F1FF3F cmp r9, #-1
9144 005e 55D0 beq .L678
9145 .LVL1052:
9146 .L662:
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9147 .loc 1 4650 4 is_stmt 1 view .LVU3092
ARM GAS /tmp/ccH7dUYB.s page 313
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9148 .loc 1 4650 7 is_stmt 0 view .LVU3093
9149 0060 002C cmp r4, #0
9150 0062 4ED0 beq .L679
9151 .LVL1053:
9152 .L663:
4651:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Initialize the new directory table */
9153 .loc 1 4651 4 is_stmt 1 view .LVU3094
4651:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Initialize the new directory table */
9154 .loc 1 4651 9 is_stmt 0 view .LVU3095
9155 0064 FFF7FEFF bl get_fattime
9156 .LVL1054:
9157 0068 8246 mov r10, r0
9158 .LVL1055:
4652:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, dcl);
9159 .loc 1 4652 4 is_stmt 1 view .LVU3096
4652:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, dcl);
9160 .loc 1 4652 7 is_stmt 0 view .LVU3097
9161 006a 002C cmp r4, #0
9162 006c 56D1 bne .L664
4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win;
9163 .loc 1 4653 5 is_stmt 1 view .LVU3098
4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win;
9164 .loc 1 4653 11 is_stmt 0 view .LVU3099
9165 006e 039E ldr r6, [sp, #12]
9166 0070 4946 mov r1, r9
9167 0072 3046 mov r0, r6
9168 .LVL1056:
4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win;
9169 .loc 1 4653 11 view .LVU3100
9170 0074 FFF7FEFF bl clust2sect
9171 .LVL1057:
9172 0078 0546 mov r5, r0
9173 .LVL1058:
4654:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
9174 .loc 1 4654 5 is_stmt 1 view .LVU3101
4654:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
9175 .loc 1 4654 9 is_stmt 0 view .LVU3102
9176 007a 06F13408 add r8, r6, #52
9177 .LVL1059:
4655:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
9178 .loc 1 4655 5 is_stmt 1 view .LVU3103
9179 007e B289 ldrh r2, [r6, #12]
9180 0080 0021 movs r1, #0
9181 0082 4046 mov r0, r8
9182 .LVL1060:
4655:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) {
9183 .loc 1 4655 5 is_stmt 0 view .LVU3104
9184 0084 FFF7FEFF bl mem_set
9185 .LVL1061:
4656:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir + DIR_Name, ' ', 11); /* Create "." entry */
9186 .loc 1 4656 5 is_stmt 1 view .LVU3105
4657:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Name] = '.';
9187 .loc 1 4657 6 view .LVU3106
9188 0088 0B22 movs r2, #11
9189 008a 2021 movs r1, #32
9190 008c 4046 mov r0, r8
ARM GAS /tmp/ccH7dUYB.s page 314
9191 008e FFF7FEFF bl mem_set
9192 .LVL1062:
4658:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR;
9193 .loc 1 4658 6 view .LVU3107
4658:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR;
9194 .loc 1 4658 20 is_stmt 0 view .LVU3108
9195 0092 4FF02E0B mov fp, #46
9196 0096 86F834B0 strb fp, [r6, #52]
4659:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm);
9197 .loc 1 4659 6 is_stmt 1 view .LVU3109
4659:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm);
9198 .loc 1 4659 20 is_stmt 0 view .LVU3110
9199 009a 1023 movs r3, #16
9200 009c 86F83F30 strb r3, [r6, #63]
4660:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl);
9201 .loc 1 4660 6 is_stmt 1 view .LVU3111
9202 00a0 5146 mov r1, r10
9203 00a2 06F14A00 add r0, r6, #74
9204 00a6 FFF7FEFF bl st_dword
9205 .LVL1063:
4661:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */
9206 .loc 1 4661 6 view .LVU3112
9207 00aa 4A46 mov r2, r9
9208 00ac 4146 mov r1, r8
9209 00ae 0398 ldr r0, [sp, #12]
9210 00b0 FFF7FEFF bl st_clust
9211 .LVL1064:
4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust;
9212 .loc 1 4662 6 view .LVU3113
4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust;
9213 .loc 1 4662 18 is_stmt 0 view .LVU3114
9214 00b4 06F15407 add r7, r6, #84
4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust;
9215 .loc 1 4662 6 view .LVU3115
9216 00b8 2022 movs r2, #32
9217 00ba 4146 mov r1, r8
9218 00bc 3846 mov r0, r7
9219 00be FFF7FEFF bl mem_cpy
9220 .LVL1065:
4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0;
9221 .loc 1 4663 6 is_stmt 1 view .LVU3116
4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0;
9222 .loc 1 4663 22 is_stmt 0 view .LVU3117
9223 00c2 86F855B0 strb fp, [r6, #85]
4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0;
9224 .loc 1 4663 29 is_stmt 1 view .LVU3118
4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0;
9225 .loc 1 4663 33 is_stmt 0 view .LVU3119
9226 00c6 069A ldr r2, [sp, #24]
9227 .LVL1066:
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9228 .loc 1 4664 6 is_stmt 1 view .LVU3120
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9229 .loc 1 4664 12 is_stmt 0 view .LVU3121
9230 00c8 0398 ldr r0, [sp, #12]
9231 00ca 0378 ldrb r3, [r0] @ zero_extendqisi2
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
ARM GAS /tmp/ccH7dUYB.s page 315
9232 .loc 1 4664 9 view .LVU3122
9233 00cc 032B cmp r3, #3
9234 00ce 1FD0 beq .L680
9235 .LVL1067:
9236 .L665:
4665:Middlewares/Third_Party/FatFs/src/ff.c **** }
9237 .loc 1 4665 6 is_stmt 1 view .LVU3123
9238 00d0 3946 mov r1, r7
9239 00d2 FFF7FEFF bl st_clust
9240 .LVL1068:
4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++;
9241 .loc 1 4667 5 view .LVU3124
4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++;
9242 .loc 1 4667 16 is_stmt 0 view .LVU3125
9243 00d6 039B ldr r3, [sp, #12]
9244 00d8 5E89 ldrh r6, [r3, #10]
9245 .LVL1069:
9246 .L666:
4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++;
9247 .loc 1 4667 25 is_stmt 1 discriminator 1 view .LVU3126
9248 00da F6B1 cbz r6, .L667
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9249 .loc 1 4668 6 view .LVU3127
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9250 .loc 1 4668 23 is_stmt 0 view .LVU3128
9251 00dc 6F1C adds r7, r5, #1
9252 .LVL1070:
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9253 .loc 1 4668 8 view .LVU3129
9254 00de 039B ldr r3, [sp, #12]
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9255 .loc 1 4668 18 view .LVU3130
9256 00e0 1D63 str r5, [r3, #48]
4669:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs);
9257 .loc 1 4669 6 is_stmt 1 view .LVU3131
4669:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs);
9258 .loc 1 4669 16 is_stmt 0 view .LVU3132
9259 00e2 0122 movs r2, #1
9260 00e4 DA70 strb r2, [r3, #3]
4670:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
9261 .loc 1 4670 6 is_stmt 1 view .LVU3133
4670:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break;
9262 .loc 1 4670 12 is_stmt 0 view .LVU3134
9263 00e6 0398 ldr r0, [sp, #12]
9264 00e8 FFF7FEFF bl sync_window
9265 .LVL1071:
4671:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
9266 .loc 1 4671 6 is_stmt 1 view .LVU3135
4671:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs));
9267 .loc 1 4671 9 is_stmt 0 view .LVU3136
9268 00ec 0446 mov r4, r0
9269 00ee A0B9 cbnz r0, .L667
4672:Middlewares/Third_Party/FatFs/src/ff.c **** }
9270 .loc 1 4672 6 is_stmt 1 view .LVU3137
9271 00f0 039B ldr r3, [sp, #12]
9272 00f2 9A89 ldrh r2, [r3, #12]
9273 00f4 0021 movs r1, #0
ARM GAS /tmp/ccH7dUYB.s page 316
9274 00f6 4046 mov r0, r8
9275 .LVL1072:
4672:Middlewares/Third_Party/FatFs/src/ff.c **** }
9276 .loc 1 4672 6 is_stmt 0 view .LVU3138
9277 00f8 FFF7FEFF bl mem_set
9278 .LVL1073:
4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++;
9279 .loc 1 4667 29 is_stmt 1 discriminator 2 view .LVU3139
9280 00fc 013E subs r6, r6, #1
9281 .LVL1074:
4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9282 .loc 1 4668 23 is_stmt 0 view .LVU3140
9283 00fe 3D46 mov r5, r7
9284 0100 EBE7 b .L666
9285 .LVL1075:
9286 .L679:
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9287 .loc 1 4650 22 is_stmt 1 discriminator 1 view .LVU3141
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9288 .loc 1 4650 28 is_stmt 0 discriminator 1 view .LVU3142
9289 0102 1046 mov r0, r2
9290 .LVL1076:
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9291 .loc 1 4650 28 discriminator 1 view .LVU3143
9292 0104 FFF7FEFF bl sync_window
9293 .LVL1077:
9294 0108 0446 mov r4, r0
9295 .LVL1078:
4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME();
9296 .loc 1 4650 28 discriminator 1 view .LVU3144
9297 010a ABE7 b .L663
9298 .LVL1079:
9299 .L678:
4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */
9300 .loc 1 4649 31 discriminator 1 view .LVU3145
9301 010c 0124 movs r4, #1
9302 .LVL1080:
4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */
9303 .loc 1 4649 31 discriminator 1 view .LVU3146
9304 010e A9E7 b .L663
9305 .LVL1081:
9306 .L680:
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9307 .loc 1 4664 46 discriminator 1 view .LVU3147
9308 0110 836A ldr r3, [r0, #40]
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9309 .loc 1 4664 34 discriminator 1 view .LVU3148
9310 0112 9342 cmp r3, r2
9311 0114 DCD1 bne .L665
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9312 .loc 1 4664 61 discriminator 2 view .LVU3149
9313 0116 0022 movs r2, #0
9314 .LVL1082:
4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl);
9315 .loc 1 4664 61 discriminator 2 view .LVU3150
9316 0118 DAE7 b .L665
9317 .LVL1083:
ARM GAS /tmp/ccH7dUYB.s page 317
9318 .L667:
4675:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj); /* Register the object to the directoy */
9319 .loc 1 4675 4 is_stmt 1 view .LVU3151
4675:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj); /* Register the object to the directoy */
9320 .loc 1 4675 7 is_stmt 0 view .LVU3152
9321 011a 2CB1 cbz r4, .L681
9322 .LVL1084:
9323 .L664:
4701:Middlewares/Third_Party/FatFs/src/ff.c **** }
9324 .loc 1 4701 5 is_stmt 1 view .LVU3153
9325 011c 0022 movs r2, #0
9326 011e 4946 mov r1, r9
9327 0120 04A8 add r0, sp, #16
9328 0122 FFF7FEFF bl remove_chain
9329 .LVL1085:
9330 0126 78E7 b .L660
9331 .LVL1086:
9332 .L681:
4676:Middlewares/Third_Party/FatFs/src/ff.c **** }
9333 .loc 1 4676 5 view .LVU3154
4676:Middlewares/Third_Party/FatFs/src/ff.c **** }
9334 .loc 1 4676 11 is_stmt 0 view .LVU3155
9335 0128 04A8 add r0, sp, #16
9336 012a FFF7FEFF bl dir_register
9337 .LVL1087:
4678:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
9338 .loc 1 4678 4 is_stmt 1 view .LVU3156
4678:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
9339 .loc 1 4678 7 is_stmt 0 view .LVU3157
9340 012e 0446 mov r4, r0
9341 0130 0028 cmp r0, #0
9342 0132 F3D1 bne .L664
4691:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Created time */
9343 .loc 1 4691 6 is_stmt 1 view .LVU3158
4691:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Created time */
9344 .loc 1 4691 10 is_stmt 0 view .LVU3159
9345 0134 0C9C ldr r4, [sp, #48]
9346 .LVL1088:
4692:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl); /* Table start cluster */
9347 .loc 1 4692 6 is_stmt 1 view .LVU3160
9348 0136 5146 mov r1, r10
9349 0138 04F11600 add r0, r4, #22
9350 .LVL1089:
4692:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl); /* Table start cluster */
9351 .loc 1 4692 6 is_stmt 0 view .LVU3161
9352 013c FFF7FEFF bl st_dword
9353 .LVL1090:
4693:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR; /* Attribute */
9354 .loc 1 4693 6 is_stmt 1 view .LVU3162
9355 0140 4A46 mov r2, r9
9356 0142 2146 mov r1, r4
9357 0144 0398 ldr r0, [sp, #12]
9358 0146 FFF7FEFF bl st_clust
9359 .LVL1091:
4694:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9360 .loc 1 4694 6 view .LVU3163
4694:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
ARM GAS /tmp/ccH7dUYB.s page 318
9361 .loc 1 4694 20 is_stmt 0 view .LVU3164
9362 014a 1023 movs r3, #16
9363 014c E372 strb r3, [r4, #11]
4695:Middlewares/Third_Party/FatFs/src/ff.c **** }
9364 .loc 1 4695 6 is_stmt 1 view .LVU3165
4695:Middlewares/Third_Party/FatFs/src/ff.c **** }
9365 .loc 1 4695 16 is_stmt 0 view .LVU3166
9366 014e 039B ldr r3, [sp, #12]
9367 0150 0122 movs r2, #1
9368 0152 DA70 strb r2, [r3, #3]
4697:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
9369 .loc 1 4697 5 is_stmt 1 view .LVU3167
4698:Middlewares/Third_Party/FatFs/src/ff.c **** }
9370 .loc 1 4698 6 view .LVU3168
4698:Middlewares/Third_Party/FatFs/src/ff.c **** }
9371 .loc 1 4698 12 is_stmt 0 view .LVU3169
9372 0154 0398 ldr r0, [sp, #12]
9373 0156 FFF7FEFF bl sync_fs
9374 .LVL1092:
9375 015a 0446 mov r4, r0
9376 .LVL1093:
4698:Middlewares/Third_Party/FatFs/src/ff.c **** }
9377 .loc 1 4698 12 view .LVU3170
9378 015c 5DE7 b .L660
9379 .LVL1094:
9380 .L669:
4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) {
9381 .loc 1 4639 25 discriminator 1 view .LVU3171
9382 015e 0824 movs r4, #8
9383 0160 5BE7 b .L660
9384 .cfi_endproc
9385 .LFE1235:
9387 .section .text.f_rename,"ax",%progbits
9388 .align 1
9389 .global f_rename
9390 .syntax unified
9391 .thumb
9392 .thumb_func
9394 f_rename:
9395 .LVL1095:
9396 .LFB1236:
4721:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
9397 .loc 1 4721 1 is_stmt 1 view -0
9398 .cfi_startproc
9399 @ args = 0, pretend = 0, frame = 136
9400 @ frame_needed = 0, uses_anonymous_args = 0
4721:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res;
9401 .loc 1 4721 1 is_stmt 0 view .LVU3173
9402 0000 30B5 push {r4, r5, lr}
9403 .LCFI106:
9404 .cfi_def_cfa_offset 12
9405 .cfi_offset 4, -12
9406 .cfi_offset 5, -8
9407 .cfi_offset 14, -4
9408 0002 A3B0 sub sp, sp, #140
9409 .LCFI107:
9410 .cfi_def_cfa_offset 152
ARM GAS /tmp/ccH7dUYB.s page 319
9411 0004 0190 str r0, [sp, #4]
9412 0006 0091 str r1, [sp]
4722:Middlewares/Third_Party/FatFs/src/ff.c **** DIR djo, djn;
9413 .loc 1 4722 2 is_stmt 1 view .LVU3174
4723:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs;
9414 .loc 1 4723 2 view .LVU3175
4724:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE buf[_FS_EXFAT ? SZDIRE * 2 : 24], *dir;
9415 .loc 1 4724 2 view .LVU3176
4725:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dw;
9416 .loc 1 4725 2 view .LVU3177
4726:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF
9417 .loc 1 4726 2 view .LVU3178
4730:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */
9418 .loc 1 4730 2 view .LVU3179
9419 0008 6846 mov r0, sp
9420 .LVL1096:
4730:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */
9421 .loc 1 4730 2 is_stmt 0 view .LVU3180
9422 000a FFF7FEFF bl get_ldnumber
9423 .LVL1097:
4731:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9424 .loc 1 4731 2 is_stmt 1 view .LVU3181
4731:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9425 .loc 1 4731 8 is_stmt 0 view .LVU3182
9426 000e 0222 movs r2, #2
9427 0010 09A9 add r1, sp, #36
9428 0012 01A8 add r0, sp, #4
9429 0014 FFF7FEFF bl find_volume
9430 .LVL1098:
4732:Middlewares/Third_Party/FatFs/src/ff.c **** djo.obj.fs = fs;
9431 .loc 1 4732 2 is_stmt 1 view .LVU3183
4732:Middlewares/Third_Party/FatFs/src/ff.c **** djo.obj.fs = fs;
9432 .loc 1 4732 5 is_stmt 0 view .LVU3184
9433 0018 0446 mov r4, r0
9434 001a 10B1 cbz r0, .L692
9435 .LVL1099:
9436 .L683:
4807:Middlewares/Third_Party/FatFs/src/ff.c **** }
9437 .loc 1 4807 16 is_stmt 1 view .LVU3185
4810:Middlewares/Third_Party/FatFs/src/ff.c **** }
9438 .loc 1 4810 2 view .LVU3186
4811:Middlewares/Third_Party/FatFs/src/ff.c ****
9439 .loc 1 4811 1 is_stmt 0 view .LVU3187
9440 001c 2046 mov r0, r4
9441 001e 23B0 add sp, sp, #140
9442 .LCFI108:
9443 .cfi_remember_state
9444 .cfi_def_cfa_offset 12
9445 @ sp needed
9446 0020 30BD pop {r4, r5, pc}
9447 .LVL1100:
9448 .L692:
9449 .LCFI109:
9450 .cfi_restore_state
4733:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
9451 .loc 1 4733 3 is_stmt 1 view .LVU3188
4733:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs);
ARM GAS /tmp/ccH7dUYB.s page 320
9452 .loc 1 4733 14 is_stmt 0 view .LVU3189
9453 0022 099B ldr r3, [sp, #36]
9454 0024 1693 str r3, [sp, #88]
4734:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djo, path_old); /* Check old object */
9455 .loc 1 4734 18 is_stmt 1 view .LVU3190
4735:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check vali
9456 .loc 1 4735 3 view .LVU3191
4735:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check vali
9457 .loc 1 4735 9 is_stmt 0 view .LVU3192
9458 0026 0199 ldr r1, [sp, #4]
9459 0028 16A8 add r0, sp, #88
9460 .LVL1101:
4735:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check vali
9461 .loc 1 4735 9 view .LVU3193
9462 002a FFF7FEFF bl follow_path
9463 .LVL1102:
4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
9464 .loc 1 4736 3 is_stmt 1 view .LVU3194
4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
9465 .loc 1 4736 6 is_stmt 0 view .LVU3195
9466 002e 0446 mov r4, r0
9467 0030 48B9 cbnz r0, .L684
4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
9468 .loc 1 4736 30 discriminator 1 view .LVU3196
9469 0032 9DF88730 ldrb r3, [sp, #135] @ zero_extendqisi2
4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0
9470 .loc 1 4736 20 discriminator 1 view .LVU3197
9471 0036 13F0A00F tst r3, #160
9472 003a 72D1 bne .L688
4738:Middlewares/Third_Party/FatFs/src/ff.c **** res = chk_lock(&djo, 2);
9473 .loc 1 4738 3 is_stmt 1 view .LVU3198
4739:Middlewares/Third_Party/FatFs/src/ff.c **** }
9474 .loc 1 4739 4 view .LVU3199
4739:Middlewares/Third_Party/FatFs/src/ff.c **** }
9475 .loc 1 4739 10 is_stmt 0 view .LVU3200
9476 003c 0221 movs r1, #2
9477 003e 16A8 add r0, sp, #88
9478 .LVL1103:
4739:Middlewares/Third_Party/FatFs/src/ff.c **** }
9479 .loc 1 4739 10 view .LVU3201
9480 0040 FFF7FEFF bl chk_lock
9481 .LVL1104:
9482 0044 0446 mov r4, r0
9483 .LVL1105:
9484 .L684:
4742:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
9485 .loc 1 4742 3 is_stmt 1 view .LVU3202
4742:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT
9486 .loc 1 4742 6 is_stmt 0 view .LVU3203
9487 0046 002C cmp r4, #0
9488 0048 E8D1 bne .L683
4769:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */
9489 .loc 1 4769 5 is_stmt 1 view .LVU3204
9490 004a 1522 movs r2, #21
9491 004c 1E99 ldr r1, [sp, #120]
9492 004e 0B31 adds r1, r1, #11
9493 0050 03A8 add r0, sp, #12
ARM GAS /tmp/ccH7dUYB.s page 321
9494 0052 FFF7FEFF bl mem_cpy
9495 .LVL1106:
4770:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */
9496 .loc 1 4770 5 view .LVU3205
9497 0056 3022 movs r2, #48
9498 0058 16A9 add r1, sp, #88
9499 005a 0AA8 add r0, sp, #40
9500 005c FFF7FEFF bl mem_cpy
9501 .LVL1107:
4771:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */
9502 .loc 1 4771 5 view .LVU3206
4771:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */
9503 .loc 1 4771 11 is_stmt 0 view .LVU3207
9504 0060 0099 ldr r1, [sp]
9505 0062 0AA8 add r0, sp, #40
9506 0064 FFF7FEFF bl follow_path
9507 .LVL1108:
4772:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST;
9508 .loc 1 4772 5 is_stmt 1 view .LVU3208
4772:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST;
9509 .loc 1 4772 8 is_stmt 0 view .LVU3209
9510 0068 0446 mov r4, r0
9511 006a 58B9 cbnz r0, .L685
4773:Middlewares/Third_Party/FatFs/src/ff.c **** }
9512 .loc 1 4773 6 is_stmt 1 view .LVU3210
4773:Middlewares/Third_Party/FatFs/src/ff.c **** }
9513 .loc 1 4773 84 is_stmt 0 view .LVU3211
9514 006c 0C9A ldr r2, [sp, #48]
9515 006e 189B ldr r3, [sp, #96]
9516 0070 9A42 cmp r2, r3
9517 0072 01D0 beq .L693
9518 .LVL1109:
4773:Middlewares/Third_Party/FatFs/src/ff.c **** }
9519 .loc 1 4773 10 discriminator 6 view .LVU3212
9520 0074 0824 movs r4, #8
9521 0076 07E0 b .L686
9522 .LVL1110:
9523 .L693:
4773:Middlewares/Third_Party/FatFs/src/ff.c **** }
9524 .loc 1 4773 46 discriminator 1 view .LVU3213
9525 0078 0F9A ldr r2, [sp, #60]
9526 007a 1B9B ldr r3, [sp, #108]
9527 007c 9A42 cmp r2, r3
9528 007e 10D0 beq .L687
9529 .LVL1111:
4773:Middlewares/Third_Party/FatFs/src/ff.c **** }
9530 .loc 1 4773 10 discriminator 6 view .LVU3214
9531 0080 0824 movs r4, #8
9532 0082 01E0 b .L686
9533 .LVL1112:
9534 .L685:
4775:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */
9535 .loc 1 4775 5 is_stmt 1 view .LVU3215
4775:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */
9536 .loc 1 4775 8 is_stmt 0 view .LVU3216
9537 0084 0428 cmp r0, #4
9538 0086 0CD0 beq .L687
ARM GAS /tmp/ccH7dUYB.s page 322
9539 .LVL1113:
9540 .L686:
4799:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&djo); /* Remove old entry */
9541 .loc 1 4799 4 is_stmt 1 view .LVU3217
4799:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&djo); /* Remove old entry */
9542 .loc 1 4799 7 is_stmt 0 view .LVU3218
9543 0088 002C cmp r4, #0
9544 008a C7D1 bne .L683
4800:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9545 .loc 1 4800 5 is_stmt 1 view .LVU3219
4800:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9546 .loc 1 4800 11 is_stmt 0 view .LVU3220
9547 008c 16A8 add r0, sp, #88
9548 008e FFF7FEFF bl dir_remove
9549 .LVL1114:
4801:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
9550 .loc 1 4801 5 is_stmt 1 view .LVU3221
4801:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs);
9551 .loc 1 4801 8 is_stmt 0 view .LVU3222
9552 0092 0446 mov r4, r0
9553 0094 0028 cmp r0, #0
9554 0096 C1D1 bne .L683
4802:Middlewares/Third_Party/FatFs/src/ff.c **** }
9555 .loc 1 4802 6 is_stmt 1 view .LVU3223
4802:Middlewares/Third_Party/FatFs/src/ff.c **** }
9556 .loc 1 4802 12 is_stmt 0 view .LVU3224
9557 0098 0998 ldr r0, [sp, #36]
9558 .LVL1115:
4802:Middlewares/Third_Party/FatFs/src/ff.c **** }
9559 .loc 1 4802 12 view .LVU3225
9560 009a FFF7FEFF bl sync_fs
9561 .LVL1116:
9562 009e 0446 mov r4, r0
9563 .LVL1117:
4802:Middlewares/Third_Party/FatFs/src/ff.c **** }
9564 .loc 1 4802 12 view .LVU3226
9565 00a0 BCE7 b .L683
9566 .LVL1118:
9567 .L687:
4776:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9568 .loc 1 4776 6 is_stmt 1 view .LVU3227
4776:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) {
9569 .loc 1 4776 12 is_stmt 0 view .LVU3228
9570 00a2 0AA8 add r0, sp, #40
9571 00a4 FFF7FEFF bl dir_register
9572 .LVL1119:
4777:Middlewares/Third_Party/FatFs/src/ff.c **** dir = djn.dir; /* Copy information about object except name */
9573 .loc 1 4777 6 is_stmt 1 view .LVU3229
4777:Middlewares/Third_Party/FatFs/src/ff.c **** dir = djn.dir; /* Copy information about object except name */
9574 .loc 1 4777 9 is_stmt 0 view .LVU3230
9575 00a8 0446 mov r4, r0
9576 00aa 0028 cmp r0, #0
9577 00ac B6D1 bne .L683
4778:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + 13, buf + 2, 19);
9578 .loc 1 4778 7 is_stmt 1 view .LVU3231
4778:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + 13, buf + 2, 19);
9579 .loc 1 4778 11 is_stmt 0 view .LVU3232
ARM GAS /tmp/ccH7dUYB.s page 323
9580 00ae 129D ldr r5, [sp, #72]
9581 .LVL1120:
4779:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = buf[0] | AM_ARC;
9582 .loc 1 4779 7 is_stmt 1 view .LVU3233
9583 00b0 1322 movs r2, #19
9584 00b2 0DF10E01 add r1, sp, #14
9585 00b6 05F10D00 add r0, r5, #13
9586 .LVL1121:
4779:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = buf[0] | AM_ARC;
9587 .loc 1 4779 7 is_stmt 0 view .LVU3234
9588 00ba FFF7FEFF bl mem_cpy
9589 .LVL1122:
4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9590 .loc 1 4780 7 is_stmt 1 view .LVU3235
4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9591 .loc 1 4780 26 is_stmt 0 view .LVU3236
9592 00be 9DF80C30 ldrb r3, [sp, #12] @ zero_extendqisi2
4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9593 .loc 1 4780 21 view .LVU3237
9594 00c2 43F02003 orr r3, r3, #32
9595 00c6 EB72 strb r3, [r5, #11]
4781:Middlewares/Third_Party/FatFs/src/ff.c **** if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the
9596 .loc 1 4781 7 is_stmt 1 view .LVU3238
4781:Middlewares/Third_Party/FatFs/src/ff.c **** if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the
9597 .loc 1 4781 17 is_stmt 0 view .LVU3239
9598 00c8 099B ldr r3, [sp, #36]
9599 00ca 0122 movs r2, #1
9600 00cc DA70 strb r2, [r3, #3]
4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir));
9601 .loc 1 4782 7 is_stmt 1 view .LVU3240
4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir));
9602 .loc 1 4782 15 is_stmt 0 view .LVU3241
9603 00ce EB7A ldrb r3, [r5, #11] @ zero_extendqisi2
4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir));
9604 .loc 1 4782 10 view .LVU3242
9605 00d0 13F0100F tst r3, #16
9606 00d4 D8D0 beq .L686
4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir));
9607 .loc 1 4782 36 discriminator 1 view .LVU3243
9608 00d6 189A ldr r2, [sp, #96]
9609 00d8 0C9B ldr r3, [sp, #48]
9610 00da 9A42 cmp r2, r3
9611 00dc D4D0 beq .L686
4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) {
9612 .loc 1 4783 8 is_stmt 1 view .LVU3244
4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) {
9613 .loc 1 4783 13 is_stmt 0 view .LVU3245
9614 00de 099C ldr r4, [sp, #36]
9615 .LVL1123:
4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) {
9616 .loc 1 4783 13 view .LVU3246
9617 00e0 2946 mov r1, r5
9618 00e2 2046 mov r0, r4
9619 00e4 FFF7FEFF bl ld_clust
9620 .LVL1124:
9621 00e8 0146 mov r1, r0
4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) {
ARM GAS /tmp/ccH7dUYB.s page 324
9622 .loc 1 4783 13 discriminator 1 view .LVU3247
9623 00ea 2046 mov r0, r4
9624 00ec FFF7FEFF bl clust2sect
9625 .LVL1125:
4784:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
9626 .loc 1 4784 8 is_stmt 1 view .LVU3248
4784:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR;
9627 .loc 1 4784 11 is_stmt 0 view .LVU3249
9628 00f0 0146 mov r1, r0
9629 00f2 08B9 cbnz r0, .L694
9630 .LVL1126:
4785:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
9631 .loc 1 4785 13 view .LVU3250
9632 00f4 0224 movs r4, #2
9633 00f6 91E7 b .L683
9634 .LVL1127:
9635 .L694:
4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */
9636 .loc 1 4788 9 is_stmt 1 view .LVU3251
4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */
9637 .loc 1 4788 15 is_stmt 0 view .LVU3252
9638 00f8 2046 mov r0, r4
9639 .LVL1128:
4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */
9640 .loc 1 4788 15 view .LVU3253
9641 00fa FFF7FEFF bl move_window
9642 .LVL1129:
4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') {
9643 .loc 1 4789 9 is_stmt 1 view .LVU3254
4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') {
9644 .loc 1 4789 17 is_stmt 0 view .LVU3255
9645 00fe 099B ldr r3, [sp, #36]
4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') {
9646 .loc 1 4789 13 view .LVU3256
9647 0100 03F15401 add r1, r3, #84
9648 .LVL1130:
4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust);
9649 .loc 1 4790 9 is_stmt 1 view .LVU3257
4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust);
9650 .loc 1 4790 12 is_stmt 0 view .LVU3258
9651 0104 0446 mov r4, r0
9652 0106 0028 cmp r0, #0
9653 0108 88D1 bne .L683
4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust);
9654 .loc 1 4790 32 discriminator 1 view .LVU3259
9655 010a 93F85520 ldrb r2, [r3, #85] @ zero_extendqisi2
4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust);
9656 .loc 1 4790 26 discriminator 1 view .LVU3260
9657 010e 2E2A cmp r2, #46
9658 0110 BAD1 bne .L686
4791:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9659 .loc 1 4791 10 is_stmt 1 view .LVU3261
9660 0112 0C9A ldr r2, [sp, #48]
9661 0114 1846 mov r0, r3
9662 .LVL1131:
4791:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1;
9663 .loc 1 4791 10 is_stmt 0 view .LVU3262
ARM GAS /tmp/ccH7dUYB.s page 325
9664 0116 FFF7FEFF bl st_clust
9665 .LVL1132:
4792:Middlewares/Third_Party/FatFs/src/ff.c **** }
9666 .loc 1 4792 10 is_stmt 1 view .LVU3263
4792:Middlewares/Third_Party/FatFs/src/ff.c **** }
9667 .loc 1 4792 20 is_stmt 0 view .LVU3264
9668 011a 099B ldr r3, [sp, #36]
9669 011c 0122 movs r2, #1
9670 011e DA70 strb r2, [r3, #3]
9671 0120 B2E7 b .L686
9672 .LVL1133:
9673 .L688:
4792:Middlewares/Third_Party/FatFs/src/ff.c **** }
9674 .loc 1 4792 20 view .LVU3265
9675 0122 0624 movs r4, #6
9676 0124 7AE7 b .L683
9677 .cfi_endproc
9678 .LFE1236:
9680 .section .rodata.f_mkfs.str1.4,"aMS",%progbits,1
9681 .align 2
9682 .LC1:
9683 0000 EBFE904D .ascii "\353\376\220MSDOS5.0\000"
9683 53444F53
9683 352E3000
9684 .align 2
9685 .LC2:
9686 000c 4E4F204E .ascii "NO NAME FAT32 \000"
9686 414D4520
9686 20202046
9686 41543332
9686 20202000
9687 .align 2
9688 .LC3:
9689 0020 4E4F204E .ascii "NO NAME FAT \000"
9689 414D4520
9689 20202046
9689 41542020
9689 20202000
9690 .section .text.f_mkfs,"ax",%progbits
9691 .align 1
9692 .global f_mkfs
9693 .syntax unified
9694 .thumb
9695 .thumb_func
9697 f_mkfs:
9698 .LVL1134:
9699 .LFB1237:
5308:Middlewares/Third_Party/FatFs/src/ff.c **** const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */
9700 .loc 1 5308 1 is_stmt 1 view -0
9701 .cfi_startproc
9702 @ args = 4, pretend = 0, frame = 56
9703 @ frame_needed = 0, uses_anonymous_args = 0
5308:Middlewares/Third_Party/FatFs/src/ff.c **** const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */
9704 .loc 1 5308 1 is_stmt 0 view .LVU3267
9705 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9706 .LCFI110:
9707 .cfi_def_cfa_offset 36
ARM GAS /tmp/ccH7dUYB.s page 326
9708 .cfi_offset 4, -36
9709 .cfi_offset 5, -32
9710 .cfi_offset 6, -28
9711 .cfi_offset 7, -24
9712 .cfi_offset 8, -20
9713 .cfi_offset 9, -16
9714 .cfi_offset 10, -12
9715 .cfi_offset 11, -8
9716 .cfi_offset 14, -4
9717 0004 8FB0 sub sp, sp, #60
9718 .LCFI111:
9719 .cfi_def_cfa_offset 96
9720 0006 0990 str r0, [sp, #36]
9721 0008 0F46 mov r7, r1
9722 000a 1546 mov r5, r2
9723 000c 1E46 mov r6, r3
5309:Middlewares/Third_Party/FatFs/src/ff.c **** const UINT n_rootdir = 512; /* Number of root directory entries for FAT12/16 volume */
9724 .loc 1 5309 2 is_stmt 1 view .LVU3268
9725 .LVL1135:
5310:Middlewares/Third_Party/FatFs/src/ff.c **** static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volum
9726 .loc 1 5310 2 view .LVU3269
5311:Middlewares/Third_Party/FatFs/src/ff.c **** static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (12
9727 .loc 1 5311 2 view .LVU3270
5312:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, sys, *buf, *pte, pdrv, part;
9728 .loc 1 5312 2 view .LVU3271
5313:Middlewares/Third_Party/FatFs/src/ff.c **** WORD ss;
9729 .loc 1 5313 2 view .LVU3272
5314:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n;
9730 .loc 1 5314 2 view .LVU3273
5315:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */
9731 .loc 1 5315 2 view .LVU3274
5316:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */
9732 .loc 1 5316 2 view .LVU3275
5317:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i;
9733 .loc 1 5317 2 view .LVU3276
5318:Middlewares/Third_Party/FatFs/src/ff.c **** int vol;
9734 .loc 1 5318 2 view .LVU3277
5319:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat;
9735 .loc 1 5319 2 view .LVU3278
5320:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM || _FS_EXFAT
9736 .loc 1 5320 2 view .LVU3279
5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
9737 .loc 1 5327 2 view .LVU3280
5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
9738 .loc 1 5327 8 is_stmt 0 view .LVU3281
9739 000e 09A8 add r0, sp, #36
9740 .LVL1136:
5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE;
9741 .loc 1 5327 8 view .LVU3282
9742 0010 FFF7FEFF bl get_ldnumber
9743 .LVL1137:
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
9744 .loc 1 5328 2 is_stmt 1 view .LVU3283
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
9745 .loc 1 5328 5 is_stmt 0 view .LVU3284
9746 0014 0028 cmp r0, #0
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
ARM GAS /tmp/ccH7dUYB.s page 327
9747 .loc 1 5328 5 view .LVU3285
9748 0016 C0F2FA82 blt .L738
5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
9749 .loc 1 5329 2 is_stmt 1 view .LVU3286
5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
9750 .loc 1 5329 11 is_stmt 0 view .LVU3287
9751 001a A14B ldr r3, .L793
9752 001c 53F82030 ldr r3, [r3, r0, lsl #2]
5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
9753 .loc 1 5329 5 view .LVU3288
9754 0020 0BB1 cbz r3, .L697
5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
9755 .loc 1 5329 18 is_stmt 1 discriminator 1 view .LVU3289
5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */
9756 .loc 1 5329 38 is_stmt 0 discriminator 1 view .LVU3290
9757 0022 0022 movs r2, #0
9758 0024 1A70 strb r2, [r3]
9759 .L697:
5330:Middlewares/Third_Party/FatFs/src/ff.c **** part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */
9760 .loc 1 5330 2 is_stmt 1 view .LVU3291
5330:Middlewares/Third_Party/FatFs/src/ff.c **** part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */
9761 .loc 1 5330 7 is_stmt 0 view .LVU3292
9762 0026 C4B2 uxtb r4, r0
9763 .LVL1138:
5331:Middlewares/Third_Party/FatFs/src/ff.c ****
9764 .loc 1 5331 2 is_stmt 1 view .LVU3293
5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY;
9765 .loc 1 5334 2 view .LVU3294
5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY;
9766 .loc 1 5334 9 is_stmt 0 view .LVU3295
9767 0028 2046 mov r0, r4
9768 .LVL1139:
5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY;
9769 .loc 1 5334 9 view .LVU3296
9770 002a FFF7FEFF bl disk_initialize
9771 .LVL1140:
5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
9772 .loc 1 5335 2 is_stmt 1 view .LVU3297
5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
9773 .loc 1 5335 5 is_stmt 0 view .LVU3298
9774 002e 10F0010F tst r0, #1
9775 0032 40F0EE82 bne .L739
5336:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk &
9776 .loc 1 5336 2 is_stmt 1 view .LVU3299
5336:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk &
9777 .loc 1 5336 5 is_stmt 0 view .LVU3300
9778 0036 10F0040F tst r0, #4
9779 003a 40F0EC82 bne .L740
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9780 .loc 1 5337 2 is_stmt 1 view .LVU3301
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9781 .loc 1 5337 6 is_stmt 0 view .LVU3302
9782 003e 0CAA add r2, sp, #48
9783 0040 0321 movs r1, #3
9784 0042 2046 mov r0, r4
9785 .LVL1141:
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
ARM GAS /tmp/ccH7dUYB.s page 328
9786 .loc 1 5337 6 view .LVU3303
9787 0044 FFF7FEFF bl disk_ioctl
9788 .LVL1142:
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9789 .loc 1 5337 5 discriminator 1 view .LVU3304
9790 0048 38B9 cbnz r0, .L698
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9791 .loc 1 5337 61 discriminator 2 view .LVU3305
9792 004a 0C9B ldr r3, [sp, #48]
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9793 .loc 1 5337 58 discriminator 2 view .LVU3306
9794 004c 2BB1 cbz r3, .L698
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9795 .loc 1 5337 69 discriminator 4 view .LVU3307
9796 004e B3F5004F cmp r3, #32768
9797 0052 02D8 bhi .L698
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9798 .loc 1 5337 108 discriminator 6 view .LVU3308
9799 0054 5A1E subs r2, r3, #1
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9800 .loc 1 5337 87 discriminator 6 view .LVU3309
9801 0056 1342 tst r3, r2
9802 0058 01D0 beq .L699
9803 .L698:
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9804 .loc 1 5337 115 is_stmt 1 discriminator 7 view .LVU3310
5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */
9805 .loc 1 5337 122 is_stmt 0 discriminator 7 view .LVU3311
9806 005a 0123 movs r3, #1
9807 005c 0C93 str r3, [sp, #48]
9808 .L699:
5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR;
9809 .loc 1 5339 2 is_stmt 1 view .LVU3312
5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR;
9810 .loc 1 5339 6 is_stmt 0 view .LVU3313
9811 005e 0DF13602 add r2, sp, #54
9812 0062 0221 movs r1, #2
9813 0064 2046 mov r0, r4
9814 0066 FFF7FEFF bl disk_ioctl
9815 .LVL1143:
5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR;
9816 .loc 1 5339 5 discriminator 1 view .LVU3314
9817 006a 0028 cmp r0, #0
9818 006c 40F0D782 bne .L741
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
9819 .loc 1 5340 2 is_stmt 1 view .LVU3315
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
9820 .loc 1 5340 19 is_stmt 0 view .LVU3316
9821 0070 BDF83630 ldrh r3, [sp, #54]
9822 0074 A3F50072 sub r2, r3, #512
9823 0078 92B2 uxth r2, r2
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
9824 .loc 1 5340 5 view .LVU3317
9825 007a B2F5606F cmp r2, #3584
9826 007e 00F2D082 bhi .L742
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
9827 .loc 1 5340 48 discriminator 2 view .LVU3318
ARM GAS /tmp/ccH7dUYB.s page 329
9828 0082 5A1E subs r2, r3, #1
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
9829 .loc 1 5340 35 discriminator 2 view .LVU3319
9830 0084 1342 tst r3, r2
9831 0086 40F0CE82 bne .L743
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9832 .loc 1 5344 2 is_stmt 1 view .LVU3320
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9833 .loc 1 5344 5 is_stmt 0 view .LVU3321
9834 008a 35B1 cbz r5, .L700
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9835 .loc 1 5344 15 discriminator 1 view .LVU3322
9836 008c AB42 cmp r3, r5
9837 008e 00F2CC82 bhi .L744
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9838 .loc 1 5344 27 discriminator 4 view .LVU3323
9839 0092 B5F1807F cmp r5, #16777216
9840 0096 00F2CA82 bhi .L745
9841 .L700:
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9842 .loc 1 5344 58 discriminator 6 view .LVU3324
9843 009a 6A1E subs r2, r5, #1
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
9844 .loc 1 5344 45 discriminator 6 view .LVU3325
9845 009c 2A40 ands r2, r2, r5
9846 009e 0192 str r2, [sp, #4]
9847 00a0 40F0C782 bne .L746
5345:Middlewares/Third_Party/FatFs/src/ff.c ****
9848 .loc 1 5345 2 is_stmt 1 view .LVU3326
5345:Middlewares/Third_Party/FatFs/src/ff.c ****
9849 .loc 1 5345 5 is_stmt 0 view .LVU3327
9850 00a4 B5FBF3F5 udiv r5, r5, r3
9851 .LVL1144:
5348:Middlewares/Third_Party/FatFs/src/ff.c **** sz_buf = len / ss; /* Size of working buffer (sector) */
9852 .loc 1 5348 2 is_stmt 1 view .LVU3328
5349:Middlewares/Third_Party/FatFs/src/ff.c **** szb_buf = sz_buf * ss; /* Size of working buffer (byte) */
9853 .loc 1 5349 2 view .LVU3329
5349:Middlewares/Third_Party/FatFs/src/ff.c **** szb_buf = sz_buf * ss; /* Size of working buffer (byte) */
9854 .loc 1 5349 9 is_stmt 0 view .LVU3330
9855 00a8 189A ldr r2, [sp, #96]
9856 00aa B2FBF3F9 udiv r9, r2, r3
9857 .LVL1145:
5350:Middlewares/Third_Party/FatFs/src/ff.c **** if (!szb_buf) return FR_MKFS_ABORTED;
9858 .loc 1 5350 2 is_stmt 1 view .LVU3331
5350:Middlewares/Third_Party/FatFs/src/ff.c **** if (!szb_buf) return FR_MKFS_ABORTED;
9859 .loc 1 5350 10 is_stmt 0 view .LVU3332
9860 00ae 09FB03F3 mul r3, r9, r3
9861 00b2 0293 str r3, [sp, #8]
9862 .LVL1146:
5351:Middlewares/Third_Party/FatFs/src/ff.c ****
9863 .loc 1 5351 2 is_stmt 1 view .LVU3333
5351:Middlewares/Third_Party/FatFs/src/ff.c ****
9864 .loc 1 5351 5 is_stmt 0 view .LVU3334
9865 00b4 002B cmp r3, #0
9866 00b6 00F0BE82 beq .L747
5354:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get partition information from partition table in the MBR */
9867 .loc 1 5354 2 is_stmt 1 view .LVU3335
ARM GAS /tmp/ccH7dUYB.s page 330
5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */
9868 .loc 1 5364 3 view .LVU3336
5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */
9869 .loc 1 5364 7 is_stmt 0 view .LVU3337
9870 00ba 0BAA add r2, sp, #44
9871 00bc 0121 movs r1, #1
9872 00be 2046 mov r0, r4
9873 00c0 FFF7FEFF bl disk_ioctl
9874 .LVL1147:
5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */
9875 .loc 1 5364 6 discriminator 1 view .LVU3338
9876 00c4 0028 cmp r0, #0
9877 00c6 40F0B882 bne .L748
5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED;
9878 .loc 1 5365 3 is_stmt 1 view .LVU3339
5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED;
9879 .loc 1 5365 30 is_stmt 0 view .LVU3340
9880 00ca 17F00803 ands r3, r7, #8
9881 00ce 0393 str r3, [sp, #12]
9882 00d0 22D0 beq .L749
5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED;
9883 .loc 1 5365 30 discriminator 1 view .LVU3341
9884 00d2 DDF804B0 ldr fp, [sp, #4]
9885 .L701:
9886 .LVL1148:
5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */
9887 .loc 1 5366 3 is_stmt 1 view .LVU3342
5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */
9888 .loc 1 5366 14 is_stmt 0 view .LVU3343
9889 00d6 0B9A ldr r2, [sp, #44]
5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */
9890 .loc 1 5366 6 view .LVU3344
9891 00d8 5A45 cmp r2, fp
9892 00da C0F0B082 bcc .L750
5367:Middlewares/Third_Party/FatFs/src/ff.c **** }
9893 .loc 1 5367 3 is_stmt 1 view .LVU3345
5367:Middlewares/Third_Party/FatFs/src/ff.c **** }
9894 .loc 1 5367 10 is_stmt 0 view .LVU3346
9895 00de A2EB0B02 sub r2, r2, fp
9896 00e2 0B92 str r2, [sp, #44]
5369:Middlewares/Third_Party/FatFs/src/ff.c ****
9897 .loc 1 5369 2 is_stmt 1 view .LVU3347
5369:Middlewares/Third_Party/FatFs/src/ff.c ****
9898 .loc 1 5369 5 is_stmt 0 view .LVU3348
9899 00e4 7F2A cmp r2, #127
9900 00e6 40F2B982 bls .L751
5372:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */
9901 .loc 1 5372 2 is_stmt 1 view .LVU3349
5373:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms
9902 .loc 1 5373 3 view .LVU3350
5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */
9903 .loc 1 5378 3 view .LVU3351
5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */
9904 .loc 1 5378 6 is_stmt 0 view .LVU3352
9905 00ea 802D cmp r5, #128
9906 00ec 00F2B882 bhi .L752
5379:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */
ARM GAS /tmp/ccH7dUYB.s page 331
9907 .loc 1 5379 3 is_stmt 1 view .LVU3353
5379:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */
9908 .loc 1 5379 6 is_stmt 0 view .LVU3354
9909 00f0 17F00201 ands r1, r7, #2
9910 00f4 06D0 beq .L702
5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break;
9911 .loc 1 5380 4 is_stmt 1 view .LVU3355
5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break;
9912 .loc 1 5380 7 is_stmt 0 view .LVU3356
9913 00f6 07F00703 and r3, r7, #7
9914 00fa 022B cmp r3, #2
9915 00fc 0FD0 beq .L753
5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break;
9916 .loc 1 5380 35 discriminator 1 view .LVU3357
9917 00fe 17F0010F tst r7, #1
9918 0102 12D0 beq .L754
9919 .L702:
5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16;
9920 .loc 1 5384 3 is_stmt 1 view .LVU3358
5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16;
9921 .loc 1 5384 6 is_stmt 0 view .LVU3359
9922 0104 17F0010F tst r7, #1
9923 0108 00F0AC82 beq .L755
5385:Middlewares/Third_Party/FatFs/src/ff.c **** } while (0);
9924 .loc 1 5385 7 view .LVU3360
9925 010c 4FF0020A mov r10, #2
9926 0110 0494 str r4, [sp, #16]
9927 0112 CDF81490 str r9, [sp, #20]
9928 0116 6DE0 b .L704
9929 .LVL1149:
9930 .L749:
5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED;
9931 .loc 1 5365 30 discriminator 2 view .LVU3361
9932 0118 4FF03F0B mov fp, #63
9933 011c DBE7 b .L701
9934 .LVL1150:
9935 .L753:
5381:Middlewares/Third_Party/FatFs/src/ff.c **** }
9936 .loc 1 5381 9 view .LVU3362
9937 011e 4FF0030A mov r10, #3
9938 0122 0494 str r4, [sp, #16]
9939 0124 CDF81490 str r9, [sp, #20]
9940 0128 64E0 b .L704
9941 .L754:
5381:Middlewares/Third_Party/FatFs/src/ff.c **** }
9942 .loc 1 5381 9 view .LVU3363
9943 012a 4FF0030A mov r10, #3
9944 012e 0494 str r4, [sp, #16]
9945 0130 CDF81490 str r9, [sp, #20]
9946 0134 5EE0 b .L704
9947 .LVL1151:
9948 .L761:
5604:Middlewares/Third_Party/FatFs/src/ff.c **** }
9949 .loc 1 5604 10 view .LVU3364
9950 0136 1D46 mov r5, r3
9951 .LVL1152:
5604:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 332
9952 .loc 1 5604 10 view .LVU3365
9953 0138 5CE0 b .L704
9954 .LVL1153:
9955 .L762:
5607:Middlewares/Third_Party/FatFs/src/ff.c **** }
9956 .loc 1 5607 11 view .LVU3366
9957 013a 4FF0030A mov r10, #3
9958 .LVL1154:
5607:Middlewares/Third_Party/FatFs/src/ff.c **** }
9959 .loc 1 5607 11 view .LVU3367
9960 013e 59E0 b .L704
9961 .LVL1155:
9962 .L782:
5556:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x20000; /* Volume size in unit of 128KS */
9963 .loc 1 5556 5 is_stmt 1 view .LVU3368
5556:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x20000; /* Volume size in unit of 128KS */
9964 .loc 1 5556 8 is_stmt 0 view .LVU3369
9965 0140 ADB1 cbz r5, .L780
5553:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine number of clusters and FAT sub-type */
9966 .loc 1 5553 8 view .LVU3370
9967 0142 A846 mov r8, r5
9968 .LVL1156:
9969 .L706:
5560:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */
9970 .loc 1 5560 5 is_stmt 1 view .LVU3371
5560:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */
9971 .loc 1 5560 12 is_stmt 0 view .LVU3372
9972 0144 B2FBF8F0 udiv r0, r2, r8
9973 .LVL1157:
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
9974 .loc 1 5561 5 is_stmt 1 view .LVU3373
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
9975 .loc 1 5561 26 is_stmt 0 view .LVU3374
9976 0148 831C adds r3, r0, #2
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
9977 .loc 1 5561 30 view .LVU3375
9978 014a BDF83640 ldrh r4, [sp, #54]
9979 014e 04EB8303 add r3, r4, r3, lsl #2
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
9980 .loc 1 5561 35 view .LVU3376
9981 0152 013B subs r3, r3, #1
5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */
9982 .loc 1 5561 12 view .LVU3377
9983 0154 B3FBF4F3 udiv r3, r3, r4
9984 .LVL1158:
5562:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = 0; /* No static directory */
9985 .loc 1 5562 5 is_stmt 1 view .LVU3378
5563:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED;
9986 .loc 1 5563 5 view .LVU3379
5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
9987 .loc 1 5564 5 view .LVU3380
5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
9988 .loc 1 5564 29 is_stmt 0 view .LVU3381
9989 0158 524C ldr r4, .L793+4
9990 015a 0444 add r4, r4, r0
5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
9991 .loc 1 5564 8 view .LVU3382
ARM GAS /tmp/ccH7dUYB.s page 333
9992 015c 5248 ldr r0, .L793+8
9993 .LVL1159:
5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
9994 .loc 1 5564 8 view .LVU3383
9995 015e 8442 cmp r4, r0
9996 0160 00F28282 bhi .L757
5563:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED;
9997 .loc 1 5563 12 view .LVU3384
9998 0164 DDF804C0 ldr ip, [sp, #4]
5562:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = 0; /* No static directory */
9999 .loc 1 5562 12 view .LVU3385
10000 0168 4FF0200E mov lr, #32
10001 016c 5CE0 b .L709
10002 .LVL1160:
10003 .L780:
5557:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */
10004 .loc 1 5557 6 is_stmt 1 view .LVU3386
5557:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */
10005 .loc 1 5557 8 is_stmt 0 view .LVU3387
10006 016e 540C lsrs r4, r2, #17
10007 .LVL1161:
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10008 .loc 1 5558 6 is_stmt 1 view .LVU3388
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10009 .loc 1 5558 13 is_stmt 0 view .LVU3389
10010 0170 2846 mov r0, r5
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10011 .loc 1 5558 22 view .LVU3390
10012 0172 4FF00108 mov r8, #1
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10013 .loc 1 5558 6 view .LVU3391
10014 0176 02E0 b .L707
10015 .LVL1162:
10016 .L708:
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10017 .loc 1 5558 57 is_stmt 1 discriminator 4 view .LVU3392
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10018 .loc 1 5558 55 is_stmt 0 discriminator 4 view .LVU3393
10019 0178 0130 adds r0, r0, #1
10020 .LVL1163:
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10021 .loc 1 5558 63 discriminator 4 view .LVU3394
10022 017a 4FEA4808 lsl r8, r8, #1
10023 .LVL1164:
10024 .L707:
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10025 .loc 1 5558 36 is_stmt 1 discriminator 1 view .LVU3395
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10026 .loc 1 5558 32 is_stmt 0 discriminator 1 view .LVU3396
10027 017e 4B4B ldr r3, .L793+12
10028 0180 33F81030 ldrh r3, [r3, r0, lsl #1]
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10029 .loc 1 5558 36 discriminator 1 view .LVU3397
10030 0184 002B cmp r3, #0
10031 0186 DDD0 beq .L706
5558:Middlewares/Third_Party/FatFs/src/ff.c **** }
10032 .loc 1 5558 36 discriminator 3 view .LVU3398
ARM GAS /tmp/ccH7dUYB.s page 334
10033 0188 A342 cmp r3, r4
10034 018a F5D9 bls .L708
10035 018c DAE7 b .L706
10036 .LVL1165:
10037 .L783:
5567:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */
10038 .loc 1 5567 6 is_stmt 1 view .LVU3399
5567:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */
10039 .loc 1 5567 8 is_stmt 0 view .LVU3400
10040 018e 140B lsrs r4, r2, #12
10041 .LVL1166:
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10042 .loc 1 5568 6 is_stmt 1 view .LVU3401
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10043 .loc 1 5568 13 is_stmt 0 view .LVU3402
10044 0190 2846 mov r0, r5
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10045 .loc 1 5568 22 view .LVU3403
10046 0192 4FF00108 mov r8, #1
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10047 .loc 1 5568 6 view .LVU3404
10048 0196 02E0 b .L711
10049 .LVL1167:
10050 .L712:
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10051 .loc 1 5568 53 is_stmt 1 discriminator 4 view .LVU3405
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10052 .loc 1 5568 51 is_stmt 0 discriminator 4 view .LVU3406
10053 0198 0130 adds r0, r0, #1
10054 .LVL1168:
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10055 .loc 1 5568 59 discriminator 4 view .LVU3407
10056 019a 4FEA4808 lsl r8, r8, #1
10057 .LVL1169:
10058 .L711:
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10059 .loc 1 5568 34 is_stmt 1 discriminator 1 view .LVU3408
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10060 .loc 1 5568 30 is_stmt 0 discriminator 1 view .LVU3409
10061 019e 444B ldr r3, .L793+16
10062 01a0 33F81030 ldrh r3, [r3, r0, lsl #1]
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10063 .loc 1 5568 34 discriminator 1 view .LVU3410
10064 01a4 63B3 cbz r3, .L710
5568:Middlewares/Third_Party/FatFs/src/ff.c **** }
10065 .loc 1 5568 34 discriminator 3 view .LVU3411
10066 01a6 A342 cmp r3, r4
10067 01a8 F6D9 bls .L712
10068 01aa 29E0 b .L710
10069 .LVL1170:
10070 .L713:
5574:Middlewares/Third_Party/FatFs/src/ff.c **** n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */
10071 .loc 1 5574 6 is_stmt 1 view .LVU3412
5575:Middlewares/Third_Party/FatFs/src/ff.c **** }
10072 .loc 1 5575 6 view .LVU3413
5575:Middlewares/Third_Party/FatFs/src/ff.c **** }
10073 .loc 1 5575 18 is_stmt 0 view .LVU3414
ARM GAS /tmp/ccH7dUYB.s page 335
10074 01ac 03EB4303 add r3, r3, r3, lsl #1
10075 .LVL1171:
5575:Middlewares/Third_Party/FatFs/src/ff.c **** }
10076 .loc 1 5575 22 view .LVU3415
10077 01b0 0133 adds r3, r3, #1
5575:Middlewares/Third_Party/FatFs/src/ff.c **** }
10078 .loc 1 5575 27 view .LVU3416
10079 01b2 5B08 lsrs r3, r3, #1
5575:Middlewares/Third_Party/FatFs/src/ff.c **** }
10080 .loc 1 5575 8 view .LVU3417
10081 01b4 0333 adds r3, r3, #3
10082 .LVL1172:
5574:Middlewares/Third_Party/FatFs/src/ff.c **** n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */
10083 .loc 1 5574 10 view .LVU3418
10084 01b6 4FF0010A mov r10, #1
10085 01ba 29E0 b .L714
10086 .LVL1173:
10087 .L784:
5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
10088 .loc 1 5587 5 is_stmt 1 view .LVU3419
5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
10089 .loc 1 5587 12 is_stmt 0 view .LVU3420
10090 01bc A644 add lr, lr, r4
10091 .LVL1174:
5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
10092 .loc 1 5587 18 is_stmt 1 view .LVU3421
5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
10093 .loc 1 5587 24 is_stmt 0 view .LVU3422
10094 01be A144 add r9, r9, r4
10095 .LVL1175:
5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */
10096 .loc 1 5587 24 view .LVU3423
10097 01c0 41E0 b .L716
10098 .LVL1176:
10099 .L785:
5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */
10100 .loc 1 5596 5 is_stmt 1 view .LVU3424
5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */
10101 .loc 1 5596 8 is_stmt 0 view .LVU3425
10102 01c2 4FF6F574 movw r4, #65525
10103 .LVL1177:
5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */
10104 .loc 1 5596 8 view .LVU3426
10105 01c6 A042 cmp r0, r4
10106 01c8 4ED8 bhi .L717
5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10107 .loc 1 5597 6 is_stmt 1 view .LVU3427
5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10108 .loc 1 5597 9 is_stmt 0 view .LVU3428
10109 01ca 002D cmp r5, #0
10110 01cc 40F05082 bne .L760
5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10111 .loc 1 5597 21 discriminator 1 view .LVU3429
10112 01d0 4FEA5805 lsr r5, r8, #1
10113 .LVL1178:
5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10114 .loc 1 5597 14 discriminator 1 view .LVU3430
ARM GAS /tmp/ccH7dUYB.s page 336
10115 01d4 B8F1010F cmp r8, #1
10116 01d8 0CD8 bhi .L704
5598:Middlewares/Third_Party/FatFs/src/ff.c **** }
10117 .loc 1 5598 13 view .LVU3431
10118 01da 0E20 movs r0, #14
10119 .LVL1179:
5598:Middlewares/Third_Party/FatFs/src/ff.c **** }
10120 .loc 1 5598 13 view .LVU3432
10121 01dc 1CE2 b .L696
10122 .LVL1180:
10123 .L720:
5612:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */
10124 .loc 1 5612 5 is_stmt 1 view .LVU3433
5612:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */
10125 .loc 1 5612 9 is_stmt 0 view .LVU3434
10126 01de 40F6F574 movw r4, #4085
10127 01e2 A042 cmp r0, r4
10128 01e4 66D8 bhi .L719
5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10129 .loc 1 5613 6 is_stmt 1 view .LVU3435
5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10130 .loc 1 5613 9 is_stmt 0 view .LVU3436
10131 01e6 002D cmp r5, #0
10132 01e8 40F04682 bne .L764
5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10133 .loc 1 5613 21 discriminator 1 view .LVU3437
10134 01ec 4FEA4805 lsl r5, r8, #1
10135 .LVL1181:
5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10136 .loc 1 5613 14 discriminator 1 view .LVU3438
10137 01f0 802D cmp r5, #128
10138 01f2 52D8 bhi .L781
10139 .LVL1182:
10140 .L704:
5372:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */
10141 .loc 1 5372 5 is_stmt 1 view .LVU3439
5552:Middlewares/Third_Party/FatFs/src/ff.c **** pau = au;
10142 .loc 1 5552 3 view .LVU3440
5553:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine number of clusters and FAT sub-type */
10143 .loc 1 5553 4 view .LVU3441
5555:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */
10144 .loc 1 5555 4 view .LVU3442
5555:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */
10145 .loc 1 5555 7 is_stmt 0 view .LVU3443
10146 01f4 BAF1030F cmp r10, #3
10147 01f8 A2D0 beq .L782
5566:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x1000; /* Volume size in unit of 4KS */
10148 .loc 1 5566 5 is_stmt 1 view .LVU3444
5566:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x1000; /* Volume size in unit of 4KS */
10149 .loc 1 5566 8 is_stmt 0 view .LVU3445
10150 01fa 002D cmp r5, #0
10151 01fc C7D0 beq .L783
5553:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine number of clusters and FAT sub-type */
10152 .loc 1 5553 8 view .LVU3446
10153 01fe A846 mov r8, r5
10154 .LVL1183:
10155 .L710:
ARM GAS /tmp/ccH7dUYB.s page 337
5570:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT12) {
10156 .loc 1 5570 5 is_stmt 1 view .LVU3447
5570:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT12) {
10157 .loc 1 5570 12 is_stmt 0 view .LVU3448
10158 0200 B2FBF8F3 udiv r3, r2, r8
10159 .LVL1184:
5571:Middlewares/Third_Party/FatFs/src/ff.c **** n = n_clst * 2 + 4; /* FAT size [byte] */
10160 .loc 1 5571 5 is_stmt 1 view .LVU3449
5571:Middlewares/Third_Party/FatFs/src/ff.c **** n = n_clst * 2 + 4; /* FAT size [byte] */
10161 .loc 1 5571 8 is_stmt 0 view .LVU3450
10162 0204 40F6F570 movw r0, #4085
10163 0208 8342 cmp r3, r0
10164 020a CFD9 bls .L713
5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10165 .loc 1 5572 6 is_stmt 1 view .LVU3451
5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10166 .loc 1 5572 21 is_stmt 0 view .LVU3452
10167 020c 0233 adds r3, r3, #2
10168 .LVL1185:
5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10169 .loc 1 5572 8 view .LVU3453
10170 020e 5B00 lsls r3, r3, #1
10171 .LVL1186:
10172 .L714:
5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */
10173 .loc 1 5577 5 is_stmt 1 view .LVU3454
5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */
10174 .loc 1 5577 17 is_stmt 0 view .LVU3455
10175 0210 BDF83600 ldrh r0, [sp, #54]
10176 0214 0344 add r3, r3, r0
10177 .LVL1187:
5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */
10178 .loc 1 5577 22 view .LVU3456
10179 0216 013B subs r3, r3, #1
5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */
10180 .loc 1 5577 12 view .LVU3457
10181 0218 B3FBF0F3 udiv r3, r3, r0
10182 .LVL1188:
5578:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */
10183 .loc 1 5578 5 is_stmt 1 view .LVU3458
5579:Middlewares/Third_Party/FatFs/src/ff.c **** }
10184 .loc 1 5579 5 view .LVU3459
5579:Middlewares/Third_Party/FatFs/src/ff.c **** }
10185 .loc 1 5579 12 is_stmt 0 view .LVU3460
10186 021c 4FF4804C mov ip, #16384
10187 0220 BCFBF0FC udiv ip, ip, r0
10188 .LVL1189:
5578:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */
10189 .loc 1 5578 12 view .LVU3461
10190 0224 4FF0010E mov lr, #1
10191 .LVL1190:
10192 .L709:
5581:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */
10193 .loc 1 5581 4 is_stmt 1 view .LVU3462
5581:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */
10194 .loc 1 5581 10 is_stmt 0 view .LVU3463
10195 0228 0EEB0B09 add r9, lr, fp
ARM GAS /tmp/ccH7dUYB.s page 338
10196 .LVL1191:
5582:Middlewares/Third_Party/FatFs/src/ff.c ****
10197 .loc 1 5582 4 is_stmt 1 view .LVU3464
5582:Middlewares/Third_Party/FatFs/src/ff.c ****
10198 .loc 1 5582 19 is_stmt 0 view .LVU3465
10199 022c 03EB0900 add r0, r3, r9
5582:Middlewares/Third_Party/FatFs/src/ff.c ****
10200 .loc 1 5582 11 view .LVU3466
10201 0230 6044 add r0, r0, ip
10202 .LVL1192:
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10203 .loc 1 5585 4 is_stmt 1 view .LVU3467
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10204 .loc 1 5585 17 is_stmt 0 view .LVU3468
10205 0232 0C9F ldr r7, [sp, #48]
10206 0234 3C18 adds r4, r7, r0
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10207 .loc 1 5585 26 view .LVU3469
10208 0236 013C subs r4, r4, #1
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10209 .loc 1 5585 33 view .LVU3470
10210 0238 7F42 rsbs r7, r7, #0
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10211 .loc 1 5585 31 view .LVU3471
10212 023a 3C40 ands r4, r4, r7
5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */
10213 .loc 1 5585 6 view .LVU3472
10214 023c 241A subs r4, r4, r0
10215 .LVL1193:
5586:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv += n; b_fat += n;
10216 .loc 1 5586 4 is_stmt 1 view .LVU3473
5586:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv += n; b_fat += n;
10217 .loc 1 5586 7 is_stmt 0 view .LVU3474
10218 023e BAF1030F cmp r10, #3
10219 0242 BBD0 beq .L784
5589:Middlewares/Third_Party/FatFs/src/ff.c **** }
10220 .loc 1 5589 5 is_stmt 1 view .LVU3475
5589:Middlewares/Third_Party/FatFs/src/ff.c **** }
10221 .loc 1 5589 12 is_stmt 0 view .LVU3476
10222 0244 2344 add r3, r3, r4
10223 .LVL1194:
10224 .L716:
5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
10225 .loc 1 5593 4 is_stmt 1 view .LVU3477
5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
10226 .loc 1 5593 24 is_stmt 0 view .LVU3478
10227 0246 00EB0810 add r0, r0, r8, lsl #4
10228 .LVL1195:
5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
10229 .loc 1 5593 35 view .LVU3479
10230 024a A0EB0B00 sub r0, r0, fp
5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
10231 .loc 1 5593 7 view .LVU3480
10232 024e 8242 cmp r2, r0
10233 0250 C0F00C82 bcc .L759
5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10234 .loc 1 5594 4 is_stmt 1 view .LVU3481
ARM GAS /tmp/ccH7dUYB.s page 339
5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10235 .loc 1 5594 21 is_stmt 0 view .LVU3482
10236 0254 A2EB0E00 sub r0, r2, lr
5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10237 .loc 1 5594 30 view .LVU3483
10238 0258 C01A subs r0, r0, r3
5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10239 .loc 1 5594 48 view .LVU3484
10240 025a A0EB0C00 sub r0, r0, ip
5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10241 .loc 1 5594 11 view .LVU3485
10242 025e B0FBF8F0 udiv r0, r0, r8
10243 .LVL1196:
5595:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */
10244 .loc 1 5595 4 is_stmt 1 view .LVU3486
5595:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */
10245 .loc 1 5595 7 is_stmt 0 view .LVU3487
10246 0262 BAF1030F cmp r10, #3
10247 0266 ACD0 beq .L785
10248 .LVL1197:
10249 .L717:
5601:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */
10250 .loc 1 5601 4 is_stmt 1 view .LVU3488
5601:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */
10251 .loc 1 5601 7 is_stmt 0 view .LVU3489
10252 0268 BAF1020F cmp r10, #2
10253 026c 22D1 bne .L719
5602:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (pau * 2) <= 64) {
10254 .loc 1 5602 5 is_stmt 1 view .LVU3490
5602:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (pau * 2) <= 64) {
10255 .loc 1 5602 8 is_stmt 0 view .LVU3491
10256 026e 4FF6F574 movw r4, #65525
10257 0272 A042 cmp r0, r4
10258 0274 B3D9 bls .L720
5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */
10259 .loc 1 5603 6 is_stmt 1 view .LVU3492
5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */
10260 .loc 1 5603 9 is_stmt 0 view .LVU3493
10261 0276 25B9 cbnz r5, .L721
5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */
10262 .loc 1 5603 22 discriminator 1 view .LVU3494
10263 0278 4FEA4803 lsl r3, r8, #1
10264 .LVL1198:
5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */
10265 .loc 1 5603 14 discriminator 1 view .LVU3495
10266 027c 402B cmp r3, #64
10267 027e 7FF65AAF bls .L761
10268 .L721:
5606:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */
10269 .loc 1 5606 6 is_stmt 1 view .LVU3496
5606:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */
10270 .loc 1 5606 9 is_stmt 0 view .LVU3497
10271 0282 0029 cmp r1, #0
10272 0284 7FF459AF bne .L762
5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10273 .loc 1 5609 6 is_stmt 1 view .LVU3498
5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
ARM GAS /tmp/ccH7dUYB.s page 340
10274 .loc 1 5609 9 is_stmt 0 view .LVU3499
10275 0288 002D cmp r5, #0
10276 028a 40F0F381 bne .L763
5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10277 .loc 1 5609 21 discriminator 1 view .LVU3500
10278 028e 4FEA4805 lsl r5, r8, #1
10279 .LVL1199:
5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED;
10280 .loc 1 5609 14 discriminator 1 view .LVU3501
10281 0292 802D cmp r5, #128
10282 0294 AED9 bls .L704
5610:Middlewares/Third_Party/FatFs/src/ff.c **** }
10283 .loc 1 5610 13 view .LVU3502
10284 0296 0E20 movs r0, #14
10285 .LVL1200:
5610:Middlewares/Third_Party/FatFs/src/ff.c **** }
10286 .loc 1 5610 13 view .LVU3503
10287 0298 BEE1 b .L696
10288 .LVL1201:
10289 .L781:
5614:Middlewares/Third_Party/FatFs/src/ff.c **** }
10290 .loc 1 5614 13 view .LVU3504
10291 029a 0E20 movs r0, #14
10292 .LVL1202:
5614:Middlewares/Third_Party/FatFs/src/ff.c **** }
10293 .loc 1 5614 13 view .LVU3505
10294 029c BCE1 b .L696
10295 .L794:
10296 029e 00BF .align 2
10297 .L793:
10298 02a0 00000000 .word FatFs
10299 02a4 0A00FFFF .word -65526
10300 02a8 FFFFFE0F .word 268369919
10301 02ac 00000000 .word cst32.1
10302 02b0 00000000 .word cst.0
10303 .LVL1203:
10304 .L719:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10305 .loc 1 5617 24 view .LVU3506
10306 02b4 CDF820C0 str ip, [sp, #32]
10307 02b8 7746 mov r7, lr
10308 02ba 0793 str r3, [sp, #28]
10309 02bc CDF81890 str r9, [sp, #24]
10310 02c0 049C ldr r4, [sp, #16]
10311 02c2 DDF81490 ldr r9, [sp, #20]
10312 .LVL1204:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10313 .loc 1 5617 24 view .LVU3507
10314 02c6 0546 mov r5, r0
10315 .LVL1205:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10316 .loc 1 5617 4 is_stmt 1 view .LVU3508
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10317 .loc 1 5617 24 is_stmt 0 view .LVU3509
10318 02c8 40F6F572 movw r2, #4085
10319 02cc BAF1010F cmp r10, #1
10320 02d0 14BF ite ne
ARM GAS /tmp/ccH7dUYB.s page 341
10321 02d2 0023 movne r3, #0
10322 .LVL1206:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10323 .loc 1 5617 24 view .LVU3510
10324 02d4 0123 moveq r3, #1
10325 02d6 9042 cmp r0, r2
10326 02d8 98BF it ls
10327 02da 0023 movls r3, #0
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10328 .loc 1 5617 7 view .LVU3511
10329 02dc 002B cmp r3, #0
10330 02de 40F0CD81 bne .L765
10331 .LVL1207:
5620:Middlewares/Third_Party/FatFs/src/ff.c **** } while (1);
10332 .loc 1 5620 4 is_stmt 1 view .LVU3512
5628:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_JmpBoot, "\xEB\xFE\x90" "MSDOS5.0", 11);/* Boot jump code (x86), OEM name */
10333 .loc 1 5628 3 view .LVU3513
10334 02e2 BDF83620 ldrh r2, [sp, #54]
10335 02e6 0021 movs r1, #0
10336 02e8 3046 mov r0, r6
10337 .LVL1208:
5628:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_JmpBoot, "\xEB\xFE\x90" "MSDOS5.0", 11);/* Boot jump code (x86), OEM name */
10338 .loc 1 5628 3 is_stmt 0 view .LVU3514
10339 02ea FFF7FEFF bl mem_set
10340 .LVL1209:
5629:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */
10341 .loc 1 5629 3 is_stmt 1 view .LVU3515
10342 02ee 0B22 movs r2, #11
10343 02f0 D449 ldr r1, .L795
10344 02f2 3046 mov r0, r6
10345 02f4 FFF7FEFF bl mem_cpy
10346 .LVL1210:
5630:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */
10347 .loc 1 5630 3 view .LVU3516
10348 02f8 BDF83610 ldrh r1, [sp, #54]
10349 02fc 06F10B00 add r0, r6, #11
10350 0300 FFF7FEFF bl st_word
10351 .LVL1211:
5631:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */
10352 .loc 1 5631 3 view .LVU3517
5631:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */
10353 .loc 1 5631 23 is_stmt 0 view .LVU3518
10354 0304 86F80D80 strb r8, [r6, #13]
5632:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_NumFATs] = (BYTE)n_fats; /* Number of FATs */
10355 .loc 1 5632 3 is_stmt 1 view .LVU3519
10356 0308 B9B2 uxth r1, r7
10357 030a 06F10E00 add r0, r6, #14
10358 030e FFF7FEFF bl st_word
10359 .LVL1212:
5633:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root direc
10360 .loc 1 5633 3 view .LVU3520
5633:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root direc
10361 .loc 1 5633 20 is_stmt 0 view .LVU3521
10362 0312 0123 movs r3, #1
10363 0314 3374 strb r3, [r6, #16]
5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) {
10364 .loc 1 5634 3 is_stmt 1 view .LVU3522
ARM GAS /tmp/ccH7dUYB.s page 342
10365 0316 06F11100 add r0, r6, #17
10366 031a BAF1030F cmp r10, #3
10367 031e 00F08680 beq .L786
5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) {
10368 .loc 1 5634 3 is_stmt 0 discriminator 2 view .LVU3523
10369 0322 4FF40071 mov r1, #512
10370 .L722:
5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) {
10371 .loc 1 5634 3 discriminator 4 view .LVU3524
10372 0326 FFF7FEFF bl st_word
10373 .LVL1213:
5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */
10374 .loc 1 5635 3 is_stmt 1 view .LVU3525
5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */
10375 .loc 1 5635 14 is_stmt 0 view .LVU3526
10376 032a 0B99 ldr r1, [sp, #44]
5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */
10377 .loc 1 5635 6 view .LVU3527
10378 032c B1F5803F cmp r1, #65536
10379 0330 7FD2 bcs .L723
5636:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10380 .loc 1 5636 4 is_stmt 1 view .LVU3528
10381 0332 89B2 uxth r1, r1
10382 0334 06F11300 add r0, r6, #19
10383 0338 FFF7FEFF bl st_word
10384 .LVL1214:
10385 .L724:
5640:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */
10386 .loc 1 5640 3 view .LVU3529
5640:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */
10387 .loc 1 5640 18 is_stmt 0 view .LVU3530
10388 033c F823 movs r3, #248
10389 033e 7375 strb r3, [r6, #21]
5641:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */
10390 .loc 1 5641 3 is_stmt 1 view .LVU3531
10391 0340 3F21 movs r1, #63
10392 0342 06F11800 add r0, r6, #24
10393 0346 FFF7FEFF bl st_word
10394 .LVL1215:
5642:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_HiddSec, b_vol); /* Volume offset in the physical drive [sector] */
10395 .loc 1 5642 3 view .LVU3532
10396 034a FF21 movs r1, #255
10397 034c 06F11A00 add r0, r6, #26
10398 0350 FFF7FEFF bl st_word
10399 .LVL1216:
5643:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10400 .loc 1 5643 3 view .LVU3533
10401 0354 5946 mov r1, fp
10402 0356 06F11C00 add r0, r6, #28
10403 035a FFF7FEFF bl st_dword
10404 .LVL1217:
5644:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */
10405 .loc 1 5644 3 view .LVU3534
5644:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */
10406 .loc 1 5644 6 is_stmt 0 view .LVU3535
10407 035e BAF1030F cmp r10, #3
10408 0362 6BD0 beq .L787
ARM GAS /tmp/ccH7dUYB.s page 343
5654:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */
10409 .loc 1 5654 4 is_stmt 1 view .LVU3536
10410 0364 FFF7FEFF bl get_fattime
10411 .LVL1218:
10412 0368 0146 mov r1, r0
5654:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */
10413 .loc 1 5654 4 is_stmt 0 discriminator 1 view .LVU3537
10414 036a 06F12700 add r0, r6, #39
10415 036e FFF7FEFF bl st_dword
10416 .LVL1219:
5655:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum] = 0x80; /* Drive number (for int13) */
10417 .loc 1 5655 4 is_stmt 1 view .LVU3538
10418 0372 BDF81C10 ldrh r1, [sp, #28]
10419 0376 06F11600 add r0, r6, #22
10420 037a FFF7FEFF bl st_word
10421 .LVL1220:
5656:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig] = 0x29; /* Extended boot signature */
10422 .loc 1 5656 4 view .LVU3539
5656:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig] = 0x29; /* Extended boot signature */
10423 .loc 1 5656 19 is_stmt 0 view .LVU3540
10424 037e 8023 movs r3, #128
10425 0380 86F82430 strb r3, [r6, #36]
5657:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */
10426 .loc 1 5657 4 is_stmt 1 view .LVU3541
5657:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */
10427 .loc 1 5657 20 is_stmt 0 view .LVU3542
10428 0384 2923 movs r3, #41
10429 0386 86F82630 strb r3, [r6, #38]
5658:Middlewares/Third_Party/FatFs/src/ff.c **** }
10430 .loc 1 5658 4 is_stmt 1 view .LVU3543
10431 038a 1322 movs r2, #19
10432 038c AE49 ldr r1, .L795+4
10433 038e 06F12B00 add r0, r6, #43
10434 0392 FFF7FEFF bl mem_cpy
10435 .LVL1221:
10436 .L726:
5660:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the VBR sector
10437 .loc 1 5660 3 view .LVU3544
10438 0396 06F5FF77 add r7, r6, #510
10439 .LVL1222:
5660:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the VBR sector
10440 .loc 1 5660 3 is_stmt 0 view .LVU3545
10441 039a 4AF65521 movw r1, #43605
10442 039e 3846 mov r0, r7
10443 03a0 FFF7FEFF bl st_word
10444 .LVL1223:
5661:Middlewares/Third_Party/FatFs/src/ff.c ****
10445 .loc 1 5661 3 is_stmt 1 view .LVU3546
5661:Middlewares/Third_Party/FatFs/src/ff.c ****
10446 .loc 1 5661 7 is_stmt 0 view .LVU3547
10447 03a4 0123 movs r3, #1
10448 03a6 5A46 mov r2, fp
10449 03a8 3146 mov r1, r6
10450 03aa 2046 mov r0, r4
10451 03ac FFF7FEFF bl disk_write
10452 .LVL1224:
5661:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 344
10453 .loc 1 5661 6 discriminator 1 view .LVU3548
10454 03b0 0028 cmp r0, #0
10455 03b2 40F06581 bne .L767
5664:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */
10456 .loc 1 5664 3 is_stmt 1 view .LVU3549
5664:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */
10457 .loc 1 5664 6 is_stmt 0 view .LVU3550
10458 03b6 BAF1030F cmp r10, #3
10459 03ba 67D0 beq .L788
10460 .L727:
5677:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_fat; /* FAT start sector */
10461 .loc 1 5677 3 is_stmt 1 view .LVU3551
10462 03bc 029A ldr r2, [sp, #8]
10463 03be 0021 movs r1, #0
10464 03c0 3046 mov r0, r6
10465 03c2 FFF7FEFF bl mem_set
10466 .LVL1225:
5678:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < n_fats; i++) { /* Initialize FATs each */
10467 .loc 1 5678 3 view .LVU3552
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10468 .loc 1 5679 3 view .LVU3553
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10469 .loc 1 5679 3 is_stmt 0 view .LVU3554
10470 03c6 4546 mov r5, r8
10471 .LVL1226:
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10472 .loc 1 5679 3 view .LVU3555
10473 03c8 0297 str r7, [sp, #8]
10474 .LVL1227:
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10475 .loc 1 5679 3 view .LVU3556
10476 03ca 069F ldr r7, [sp, #24]
10477 .LVL1228:
10478 .L728:
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10479 .loc 1 5679 17 is_stmt 1 discriminator 1 view .LVU3557
10480 03cc 019B ldr r3, [sp, #4]
10481 03ce 002B cmp r3, #0
10482 03d0 00F09080 beq .L733
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10483 .loc 1 5697 35 is_stmt 0 view .LVU3558
10484 03d4 A846 mov r8, r5
10485 03d6 0697 str r7, [sp, #24]
10486 .LVL1229:
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10487 .loc 1 5697 35 view .LVU3559
10488 03d8 029F ldr r7, [sp, #8]
10489 .LVL1230:
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10490 .loc 1 5697 3 is_stmt 1 view .LVU3560
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10491 .loc 1 5697 35 is_stmt 0 view .LVU3561
10492 03da BAF1030F cmp r10, #3
10493 03de 00F0C880 beq .L789
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10494 .loc 1 5697 35 view .LVU3562
10495 03e2 DDF82080 ldr r8, [sp, #32]
ARM GAS /tmp/ccH7dUYB.s page 345
10496 03e6 0197 str r7, [sp, #4]
10497 .LVL1231:
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10498 .loc 1 5697 35 view .LVU3563
10499 03e8 069F ldr r7, [sp, #24]
10500 .LVL1232:
10501 .L735:
5698:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect;
10502 .loc 1 5698 3 is_stmt 1 view .LVU3564
5699:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
10503 .loc 1 5699 4 view .LVU3565
5699:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
10504 .loc 1 5699 6 is_stmt 0 view .LVU3566
10505 03ea 4546 mov r5, r8
10506 03ec C845 cmp r8, r9
10507 03ee 28BF it cs
10508 03f0 4D46 movcs r5, r9
10509 .LVL1233:
5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
10510 .loc 1 5700 4 is_stmt 1 view .LVU3567
5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
10511 .loc 1 5700 8 is_stmt 0 view .LVU3568
10512 03f2 2B46 mov r3, r5
10513 03f4 3A46 mov r2, r7
10514 03f6 3146 mov r1, r6
10515 03f8 2046 mov r0, r4
10516 03fa FFF7FEFF bl disk_write
10517 .LVL1234:
5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
10518 .loc 1 5700 7 discriminator 1 view .LVU3569
10519 03fe 0028 cmp r0, #0
10520 0400 40F04281 bne .L770
5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10521 .loc 1 5701 4 is_stmt 1 view .LVU3570
5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10522 .loc 1 5701 9 is_stmt 0 view .LVU3571
10523 0404 2F44 add r7, r7, r5
10524 .LVL1235:
5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10525 .loc 1 5701 15 is_stmt 1 view .LVU3572
5702:Middlewares/Third_Party/FatFs/src/ff.c **** }
10526 .loc 1 5702 12 view .LVU3573
10527 0406 B8EB0508 subs r8, r8, r5
10528 .LVL1236:
5702:Middlewares/Third_Party/FatFs/src/ff.c **** }
10529 .loc 1 5702 12 is_stmt 0 view .LVU3574
10530 040a EED1 bne .L735
5709:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */
10531 .loc 1 5709 6 view .LVU3575
10532 040c 019F ldr r7, [sp, #4]
10533 .LVL1237:
5706:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x07; /* HPFS/NTFS/exFAT */
10534 .loc 1 5706 2 is_stmt 1 view .LVU3576
5709:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */
10535 .loc 1 5709 3 view .LVU3577
5709:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */
10536 .loc 1 5709 6 is_stmt 0 view .LVU3578
ARM GAS /tmp/ccH7dUYB.s page 346
10537 040e BAF1030F cmp r10, #3
10538 0412 00F0B480 beq .L771
5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */
10539 .loc 1 5712 4 is_stmt 1 view .LVU3579
5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */
10540 .loc 1 5712 15 is_stmt 0 view .LVU3580
10541 0416 0B9B ldr r3, [sp, #44]
5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */
10542 .loc 1 5712 7 view .LVU3581
10543 0418 B3F5803F cmp r3, #65536
10544 041c 80F0F480 bcs .L772
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
10545 .loc 1 5715 5 is_stmt 1 view .LVU3582
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
10546 .loc 1 5715 9 is_stmt 0 view .LVU3583
10547 0420 BAF1020F cmp r10, #2
10548 0424 00F0A880 beq .L790
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
10549 .loc 1 5715 9 discriminator 2 view .LVU3584
10550 0428 4FF00108 mov r8, #1
10551 .LVL1238:
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
10552 .loc 1 5715 9 discriminator 2 view .LVU3585
10553 042c A9E0 b .L736
10554 .LVL1239:
10555 .L786:
5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) {
10556 .loc 1 5634 3 discriminator 1 view .LVU3586
10557 042e 0021 movs r1, #0
10558 0430 79E7 b .L722
10559 .L723:
5638:Middlewares/Third_Party/FatFs/src/ff.c **** }
10560 .loc 1 5638 4 is_stmt 1 view .LVU3587
10561 0432 06F12000 add r0, r6, #32
10562 0436 FFF7FEFF bl st_dword
10563 .LVL1240:
10564 043a 7FE7 b .L724
10565 .L787:
5645:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */
10566 .loc 1 5645 4 view .LVU3588
10567 043c FFF7FEFF bl get_fattime
10568 .LVL1241:
10569 0440 0146 mov r1, r0
5645:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */
10570 .loc 1 5645 4 is_stmt 0 discriminator 1 view .LVU3589
10571 0442 06F14300 add r0, r6, #67
10572 0446 FFF7FEFF bl st_dword
10573 .LVL1242:
5646:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_RootClus32, 2); /* Root directory cluster # (2) */
10574 .loc 1 5646 4 is_stmt 1 view .LVU3590
10575 044a 0799 ldr r1, [sp, #28]
10576 044c 06F12400 add r0, r6, #36
10577 0450 FFF7FEFF bl st_dword
10578 .LVL1243:
5647:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FSInfo32, 1); /* Offset of FSINFO sector (VBR + 1) */
10579 .loc 1 5647 4 view .LVU3591
10580 0454 0221 movs r1, #2
ARM GAS /tmp/ccH7dUYB.s page 347
10581 0456 06F12C00 add r0, r6, #44
10582 045a FFF7FEFF bl st_dword
10583 .LVL1244:
5648:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BkBootSec32, 6); /* Offset of backup VBR (VBR + 6) */
10584 .loc 1 5648 4 view .LVU3592
10585 045e 0121 movs r1, #1
10586 0460 06F13000 add r0, r6, #48
10587 0464 FFF7FEFF bl st_word
10588 .LVL1245:
5649:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum32] = 0x80; /* Drive number (for int13) */
10589 .loc 1 5649 4 view .LVU3593
10590 0468 0621 movs r1, #6
10591 046a 06F13200 add r0, r6, #50
10592 046e FFF7FEFF bl st_word
10593 .LVL1246:
5650:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig32] = 0x29; /* Extended boot signature */
10594 .loc 1 5650 4 view .LVU3594
5650:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig32] = 0x29; /* Extended boot signature */
10595 .loc 1 5650 21 is_stmt 0 view .LVU3595
10596 0472 8023 movs r3, #128
10597 0474 86F84030 strb r3, [r6, #64]
5651:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */
10598 .loc 1 5651 4 is_stmt 1 view .LVU3596
5651:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */
10599 .loc 1 5651 22 is_stmt 0 view .LVU3597
10600 0478 2923 movs r3, #41
10601 047a 86F84230 strb r3, [r6, #66]
5652:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10602 .loc 1 5652 4 is_stmt 1 view .LVU3598
10603 047e 1322 movs r2, #19
10604 0480 7249 ldr r1, .L795+8
10605 0482 06F14700 add r0, r6, #71
10606 0486 FFF7FEFF bl mem_cpy
10607 .LVL1247:
10608 048a 84E7 b .L726
10609 .LVL1248:
10610 .L788:
5665:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10611 .loc 1 5665 4 view .LVU3599
10612 048c 0123 movs r3, #1
10613 048e 0BF10602 add r2, fp, #6
10614 0492 3146 mov r1, r6
10615 0494 2046 mov r0, r4
10616 0496 FFF7FEFF bl disk_write
10617 .LVL1249:
5666:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_LeadSig, 0x41615252);
10618 .loc 1 5666 4 view .LVU3600
10619 049a BDF83620 ldrh r2, [sp, #54]
10620 049e 0021 movs r1, #0
10621 04a0 3046 mov r0, r6
10622 04a2 FFF7FEFF bl mem_set
10623 .LVL1250:
5667:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_StrucSig, 0x61417272);
10624 .loc 1 5667 4 view .LVU3601
10625 04a6 6A49 ldr r1, .L795+12
10626 04a8 3046 mov r0, r6
10627 04aa FFF7FEFF bl st_dword
ARM GAS /tmp/ccH7dUYB.s page 348
10628 .LVL1251:
5668:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Free_Count, n_clst - 1); /* Number of free clusters */
10629 .loc 1 5668 4 view .LVU3602
10630 04ae 6949 ldr r1, .L795+16
10631 04b0 06F5F270 add r0, r6, #484
10632 04b4 FFF7FEFF bl st_dword
10633 .LVL1252:
5669:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Nxt_Free, 2); /* Last allocated cluster# */
10634 .loc 1 5669 4 view .LVU3603
10635 04b8 691E subs r1, r5, #1
10636 04ba 06F5F470 add r0, r6, #488
10637 04be FFF7FEFF bl st_dword
10638 .LVL1253:
5670:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55);
10639 .loc 1 5670 4 view .LVU3604
10640 04c2 0221 movs r1, #2
10641 04c4 06F5F670 add r0, r6, #492
10642 04c8 FFF7FEFF bl st_dword
10643 .LVL1254:
5671:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 7, 1); /* Write backup FSINFO (VBR + 7) */
10644 .loc 1 5671 4 view .LVU3605
10645 04cc 4AF65521 movw r1, #43605
10646 04d0 3846 mov r0, r7
10647 04d2 FFF7FEFF bl st_word
10648 .LVL1255:
5672:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 1, 1); /* Write original FSINFO (VBR + 1) */
10649 .loc 1 5672 4 view .LVU3606
10650 04d6 0123 movs r3, #1
10651 04d8 0BF10702 add r2, fp, #7
10652 04dc 3146 mov r1, r6
10653 04de 2046 mov r0, r4
10654 04e0 FFF7FEFF bl disk_write
10655 .LVL1256:
5673:Middlewares/Third_Party/FatFs/src/ff.c **** }
10656 .loc 1 5673 4 view .LVU3607
10657 04e4 0123 movs r3, #1
10658 04e6 0BEB0302 add r2, fp, r3
10659 04ea 3146 mov r1, r6
10660 04ec 2046 mov r0, r4
10661 04ee FFF7FEFF bl disk_write
10662 .LVL1257:
10663 04f2 63E7 b .L727
10664 .LVL1258:
10665 .L733:
5680:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */
10666 .loc 1 5680 4 view .LVU3608
5680:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */
10667 .loc 1 5680 7 is_stmt 0 view .LVU3609
10668 04f4 BAF1030F cmp r10, #3
10669 04f8 28D0 beq .L791
5685:Middlewares/Third_Party/FatFs/src/ff.c **** }
10670 .loc 1 5685 5 is_stmt 1 view .LVU3610
10671 04fa BAF1010F cmp r10, #1
10672 04fe 36D0 beq .L792
5685:Middlewares/Third_Party/FatFs/src/ff.c **** }
10673 .loc 1 5685 5 is_stmt 0 discriminator 2 view .LVU3611
10674 0500 6FF00701 mvn r1, #7
ARM GAS /tmp/ccH7dUYB.s page 349
10675 .L731:
5685:Middlewares/Third_Party/FatFs/src/ff.c **** }
10676 .loc 1 5685 5 discriminator 4 view .LVU3612
10677 0504 3046 mov r0, r6
10678 0506 FFF7FEFF bl st_dword
10679 .LVL1259:
10680 .L730:
5685:Middlewares/Third_Party/FatFs/src/ff.c **** }
10681 .loc 1 5685 5 discriminator 2 view .LVU3613
10682 050a DDF81C80 ldr r8, [sp, #28]
10683 050e CDF810A0 str r10, [sp, #16]
10684 .L732:
10685 .LVL1260:
5688:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect;
10686 .loc 1 5688 4 is_stmt 1 view .LVU3614
5689:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
10687 .loc 1 5689 5 view .LVU3615
5689:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR;
10688 .loc 1 5689 7 is_stmt 0 view .LVU3616
10689 0512 C246 mov r10, r8
10690 0514 C845 cmp r8, r9
10691 0516 28BF it cs
10692 0518 CA46 movcs r10, r9
10693 .LVL1261:
5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10694 .loc 1 5690 5 is_stmt 1 view .LVU3617
5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10695 .loc 1 5690 9 is_stmt 0 view .LVU3618
10696 051a 5346 mov r3, r10
10697 051c 3A46 mov r2, r7
10698 051e 3146 mov r1, r6
10699 0520 2046 mov r0, r4
10700 0522 FFF7FEFF bl disk_write
10701 .LVL1262:
5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10702 .loc 1 5690 8 discriminator 1 view .LVU3619
10703 0526 0028 cmp r0, #0
10704 0528 40F0AC80 bne .L769
5691:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
10705 .loc 1 5691 5 is_stmt 1 view .LVU3620
10706 052c BDF83620 ldrh r2, [sp, #54]
10707 0530 0021 movs r1, #0
10708 0532 3046 mov r0, r6
10709 0534 FFF7FEFF bl mem_set
10710 .LVL1263:
5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10711 .loc 1 5692 5 view .LVU3621
5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10712 .loc 1 5692 10 is_stmt 0 view .LVU3622
10713 0538 5744 add r7, r7, r10
10714 .LVL1264:
5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect);
10715 .loc 1 5692 16 is_stmt 1 view .LVU3623
5693:Middlewares/Third_Party/FatFs/src/ff.c **** }
10716 .loc 1 5693 13 view .LVU3624
10717 053a B8EB0A08 subs r8, r8, r10
10718 .LVL1265:
ARM GAS /tmp/ccH7dUYB.s page 350
5693:Middlewares/Third_Party/FatFs/src/ff.c **** }
10719 .loc 1 5693 13 is_stmt 0 view .LVU3625
10720 053e E8D1 bne .L732
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10721 .loc 1 5679 28 discriminator 2 view .LVU3626
10722 0540 DDF810A0 ldr r10, [sp, #16]
10723 .LVL1266:
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10724 .loc 1 5679 28 is_stmt 1 discriminator 2 view .LVU3627
10725 0544 019B ldr r3, [sp, #4]
10726 0546 0133 adds r3, r3, #1
10727 0548 0193 str r3, [sp, #4]
10728 .LVL1267:
5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) {
10729 .loc 1 5679 28 is_stmt 0 discriminator 2 view .LVU3628
10730 054a 3FE7 b .L728
10731 .LVL1268:
10732 .L791:
5681:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 4, 0xFFFFFFFF); /* Entry 1 */
10733 .loc 1 5681 5 is_stmt 1 view .LVU3629
10734 054c 6FF00701 mvn r1, #7
10735 0550 3046 mov r0, r6
10736 0552 FFF7FEFF bl st_dword
10737 .LVL1269:
5682:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 8, 0x0FFFFFFF); /* Entry 2 (root directory) */
10738 .loc 1 5682 5 view .LVU3630
10739 0556 4FF0FF31 mov r1, #-1
10740 055a 301D adds r0, r6, #4
10741 055c FFF7FEFF bl st_dword
10742 .LVL1270:
5683:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10743 .loc 1 5683 5 view .LVU3631
10744 0560 6FF07041 mvn r1, #-268435456
10745 0564 06F10800 add r0, r6, #8
10746 0568 FFF7FEFF bl st_dword
10747 .LVL1271:
10748 056c CDE7 b .L730
10749 .LVL1272:
10750 .L792:
5685:Middlewares/Third_Party/FatFs/src/ff.c **** }
10751 .loc 1 5685 5 is_stmt 0 discriminator 1 view .LVU3632
10752 056e 3A49 ldr r1, .L795+20
10753 0570 C8E7 b .L731
10754 .LVL1273:
10755 .L789:
5697:Middlewares/Third_Party/FatFs/src/ff.c **** do {
10756 .loc 1 5697 35 discriminator 1 view .LVU3633
10757 0572 0197 str r7, [sp, #4]
10758 0574 069F ldr r7, [sp, #24]
10759 0576 38E7 b .L735
10760 .LVL1274:
10761 .L790:
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
10762 .loc 1 5715 9 discriminator 1 view .LVU3634
10763 0578 4FF00408 mov r8, #4
10764 .LVL1275:
5715:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 351
10765 .loc 1 5715 9 discriminator 1 view .LVU3635
10766 057c 01E0 b .L736
10767 .LVL1276:
10768 .L771:
5710:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10769 .loc 1 5710 8 view .LVU3636
10770 057e 4FF00C08 mov r8, #12
10771 .LVL1277:
10772 .L736:
5721:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update system ID in the partition table */
10773 .loc 1 5721 2 is_stmt 1 view .LVU3637
5727:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10774 .loc 1 5727 3 view .LVU3638
5727:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
10775 .loc 1 5727 6 is_stmt 0 view .LVU3639
10776 0582 039B ldr r3, [sp, #12]
10777 0584 C3BB cbnz r3, .L737
5728:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); /* MBR signature */
10778 .loc 1 5728 4 is_stmt 1 view .LVU3640
10779 0586 BDF83620 ldrh r2, [sp, #54]
10780 058a 0021 movs r1, #0
10781 058c 3046 mov r0, r6
10782 058e FFF7FEFF bl mem_set
10783 .LVL1278:
5729:Middlewares/Third_Party/FatFs/src/ff.c **** pte = buf + MBR_Table; /* Create partition table for single partition in the drive */
10784 .loc 1 5729 4 view .LVU3641
10785 0592 4AF65521 movw r1, #43605
10786 0596 3846 mov r0, r7
10787 0598 FFF7FEFF bl st_word
10788 .LVL1279:
5730:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_Boot] = 0; /* Boot indicator */
10789 .loc 1 5730 4 view .LVU3642
5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */
10790 .loc 1 5731 4 view .LVU3643
5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */
10791 .loc 1 5731 18 is_stmt 0 view .LVU3644
10792 059c 0025 movs r5, #0
10793 .LVL1280:
5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */
10794 .loc 1 5731 18 view .LVU3645
10795 059e 86F8BE51 strb r5, [r6, #446]
5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */
10796 .loc 1 5732 4 is_stmt 1 view .LVU3646
5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */
10797 .loc 1 5732 20 is_stmt 0 view .LVU3647
10798 05a2 0127 movs r7, #1
10799 05a4 86F8BF71 strb r7, [r6, #447]
5733:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StCyl] = 0; /* Start cylinder */
10800 .loc 1 5733 4 is_stmt 1 view .LVU3648
5733:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StCyl] = 0; /* Start cylinder */
10801 .loc 1 5733 19 is_stmt 0 view .LVU3649
10802 05a8 86F8C071 strb r7, [r6, #448]
5734:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_System] = sys; /* System type */
10803 .loc 1 5734 4 is_stmt 1 view .LVU3650
5734:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_System] = sys; /* System type */
10804 .loc 1 5734 19 is_stmt 0 view .LVU3651
10805 05ac 86F8C151 strb r5, [r6, #449]
ARM GAS /tmp/ccH7dUYB.s page 352
5735:Middlewares/Third_Party/FatFs/src/ff.c **** n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */
10806 .loc 1 5735 4 is_stmt 1 view .LVU3652
5735:Middlewares/Third_Party/FatFs/src/ff.c **** n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */
10807 .loc 1 5735 20 is_stmt 0 view .LVU3653
10808 05b0 86F8C281 strb r8, [r6, #450]
5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */
10809 .loc 1 5736 4 is_stmt 1 view .LVU3654
5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */
10810 .loc 1 5736 15 is_stmt 0 view .LVU3655
10811 05b4 0B9B ldr r3, [sp, #44]
10812 05b6 5B44 add r3, r3, fp
5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */
10813 .loc 1 5736 6 view .LVU3656
10814 05b8 43F6C162 movw r2, #16065
10815 05bc B3FBF2F3 udiv r3, r3, r2
10816 .LVL1281:
5737:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */
10817 .loc 1 5737 4 is_stmt 1 view .LVU3657
5737:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */
10818 .loc 1 5737 20 is_stmt 0 view .LVU3658
10819 05c0 FE22 movs r2, #254
10820 05c2 86F8C321 strb r2, [r6, #451]
5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */
10821 .loc 1 5738 4 is_stmt 1 view .LVU3659
5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */
10822 .loc 1 5738 30 is_stmt 0 view .LVU3660
10823 05c6 9A08 lsrs r2, r3, #2
5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */
10824 .loc 1 5738 21 view .LVU3661
10825 05c8 42F03F02 orr r2, r2, #63
5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */
10826 .loc 1 5738 19 view .LVU3662
10827 05cc 86F8C421 strb r2, [r6, #452]
5739:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */
10828 .loc 1 5739 4 is_stmt 1 view .LVU3663
5739:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */
10829 .loc 1 5739 19 is_stmt 0 view .LVU3664
10830 05d0 86F8C531 strb r3, [r6, #453]
5740:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_SizLba, sz_vol); /* Size in sectors */
10831 .loc 1 5740 4 is_stmt 1 view .LVU3665
10832 05d4 5946 mov r1, fp
10833 05d6 06F5E370 add r0, r6, #454
10834 05da FFF7FEFF bl st_dword
10835 .LVL1282:
5741:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the MBR */
10836 .loc 1 5741 4 view .LVU3666
10837 05de 0B99 ldr r1, [sp, #44]
10838 05e0 06F5E570 add r0, r6, #458
10839 05e4 FFF7FEFF bl st_dword
10840 .LVL1283:
5742:Middlewares/Third_Party/FatFs/src/ff.c **** }
10841 .loc 1 5742 4 view .LVU3667
5742:Middlewares/Third_Party/FatFs/src/ff.c **** }
10842 .loc 1 5742 8 is_stmt 0 view .LVU3668
10843 05e8 3B46 mov r3, r7
10844 05ea 2A46 mov r2, r5
10845 05ec 3146 mov r1, r6
ARM GAS /tmp/ccH7dUYB.s page 353
10846 05ee 2046 mov r0, r4
10847 05f0 FFF7FEFF bl disk_write
10848 .LVL1284:
5742:Middlewares/Third_Party/FatFs/src/ff.c **** }
10849 .loc 1 5742 7 discriminator 1 view .LVU3669
10850 05f4 0028 cmp r0, #0
10851 05f6 49D1 bne .L774
10852 .LVL1285:
10853 .L737:
5746:Middlewares/Third_Party/FatFs/src/ff.c ****
10854 .loc 1 5746 2 is_stmt 1 view .LVU3670
5746:Middlewares/Third_Party/FatFs/src/ff.c ****
10855 .loc 1 5746 6 is_stmt 0 view .LVU3671
10856 05f8 0022 movs r2, #0
10857 05fa 1146 mov r1, r2
10858 05fc 2046 mov r0, r4
10859 05fe FFF7FEFF bl disk_ioctl
10860 .LVL1286:
5746:Middlewares/Third_Party/FatFs/src/ff.c ****
10861 .loc 1 5746 5 discriminator 1 view .LVU3672
10862 0602 48B1 cbz r0, .L696
5746:Middlewares/Third_Party/FatFs/src/ff.c ****
10863 .loc 1 5746 55 discriminator 1 view .LVU3673
10864 0604 0120 movs r0, #1
10865 0606 07E0 b .L696
10866 .LVL1287:
10867 .L772:
5713:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10868 .loc 1 5713 9 view .LVU3674
10869 0608 4FF00608 mov r8, #6
10870 .LVL1288:
5713:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
10871 .loc 1 5713 9 view .LVU3675
10872 060c B9E7 b .L736
10873 .LVL1289:
10874 .L738:
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
10875 .loc 1 5328 22 discriminator 1 view .LVU3676
10876 060e 0B20 movs r0, #11
10877 .LVL1290:
5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */
10878 .loc 1 5328 22 discriminator 1 view .LVU3677
10879 0610 02E0 b .L696
10880 .LVL1291:
10881 .L739:
5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
10882 .loc 1 5335 32 discriminator 1 view .LVU3678
10883 0612 0320 movs r0, #3
10884 .LVL1292:
5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
10885 .loc 1 5335 32 discriminator 1 view .LVU3679
10886 0614 00E0 b .L696
10887 .LVL1293:
10888 .L740:
5336:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk &
10889 .loc 1 5336 33 discriminator 1 view .LVU3680
10890 0616 0A20 movs r0, #10
ARM GAS /tmp/ccH7dUYB.s page 354
10891 .LVL1294:
10892 .L696:
5749:Middlewares/Third_Party/FatFs/src/ff.c ****
10893 .loc 1 5749 1 view .LVU3681
10894 0618 0FB0 add sp, sp, #60
10895 .LCFI112:
10896 .cfi_remember_state
10897 .cfi_def_cfa_offset 36
10898 @ sp needed
10899 061a BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10900 .LVL1295:
10901 .L741:
10902 .LCFI113:
10903 .cfi_restore_state
5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR;
10904 .loc 1 5339 63 discriminator 1 view .LVU3682
10905 061e 0120 movs r0, #1
10906 0620 FAE7 b .L696
10907 .L742:
5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else
10908 .loc 1 5340 62 discriminator 3 view .LVU3683
10909 0622 0120 movs r0, #1
10910 0624 F8E7 b .L696
10911 .L743:
10912 0626 0120 movs r0, #1
10913 0628 F6E7 b .L696
10914 .L744:
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
10915 .loc 1 5344 72 discriminator 7 view .LVU3684
10916 062a 1320 movs r0, #19
10917 062c F4E7 b .L696
10918 .L745:
10919 062e 1320 movs r0, #19
10920 0630 F2E7 b .L696
10921 .L746:
5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */
10922 .loc 1 5344 72 discriminator 7 view .LVU3685
10923 0632 1320 movs r0, #19
10924 0634 F0E7 b .L696
10925 .LVL1296:
10926 .L747:
5351:Middlewares/Third_Party/FatFs/src/ff.c ****
10927 .loc 1 5351 23 discriminator 1 view .LVU3686
10928 0636 0E20 movs r0, #14
10929 0638 EEE7 b .L696
10930 .LVL1297:
10931 .L748:
5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */
10932 .loc 1 5364 69 discriminator 1 view .LVU3687
10933 063a 0120 movs r0, #1
10934 063c ECE7 b .L696
10935 .LVL1298:
10936 .L750:
5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */
10937 .loc 1 5366 30 discriminator 1 view .LVU3688
10938 063e 0E20 movs r0, #14
10939 0640 EAE7 b .L696
ARM GAS /tmp/ccH7dUYB.s page 355
10940 .L796:
10941 0642 00BF .align 2
10942 .L795:
10943 0644 00000000 .word .LC1
10944 0648 20000000 .word .LC3
10945 064c 0C000000 .word .LC2
10946 0650 52526141 .word 1096897106
10947 0654 72724161 .word 1631679090
10948 0658 F8FFFF00 .word 16777208
10949 .L751:
5369:Middlewares/Third_Party/FatFs/src/ff.c ****
10950 .loc 1 5369 27 discriminator 1 view .LVU3689
10951 065c 0E20 movs r0, #14
10952 065e DBE7 b .L696
10953 .L752:
5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */
10954 .loc 1 5378 24 discriminator 1 view .LVU3690
10955 0660 1320 movs r0, #19
10956 0662 D9E7 b .L696
10957 .L755:
5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16;
10958 .loc 1 5384 31 discriminator 1 view .LVU3691
10959 0664 1320 movs r0, #19
10960 0666 D7E7 b .L696
10961 .LVL1299:
10962 .L757:
5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */
10963 .loc 1 5564 59 discriminator 1 view .LVU3692
10964 0668 0E20 movs r0, #14
10965 066a D5E7 b .L696
10966 .LVL1300:
10967 .L759:
5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau;
10968 .loc 1 5593 51 discriminator 1 view .LVU3693
10969 066c 0E20 movs r0, #14
10970 066e D3E7 b .L696
10971 .LVL1301:
10972 .L760:
5598:Middlewares/Third_Party/FatFs/src/ff.c **** }
10973 .loc 1 5598 13 view .LVU3694
10974 0670 0E20 movs r0, #14
10975 .LVL1302:
5598:Middlewares/Third_Party/FatFs/src/ff.c **** }
10976 .loc 1 5598 13 view .LVU3695
10977 0672 D1E7 b .L696
10978 .LVL1303:
10979 .L763:
5610:Middlewares/Third_Party/FatFs/src/ff.c **** }
10980 .loc 1 5610 13 view .LVU3696
10981 0674 0E20 movs r0, #14
10982 .LVL1304:
5610:Middlewares/Third_Party/FatFs/src/ff.c **** }
10983 .loc 1 5610 13 view .LVU3697
10984 0676 CFE7 b .L696
10985 .LVL1305:
10986 .L764:
5614:Middlewares/Third_Party/FatFs/src/ff.c **** }
ARM GAS /tmp/ccH7dUYB.s page 356
10987 .loc 1 5614 13 view .LVU3698
10988 0678 0E20 movs r0, #14
10989 .LVL1306:
5614:Middlewares/Third_Party/FatFs/src/ff.c **** }
10990 .loc 1 5614 13 view .LVU3699
10991 067a CDE7 b .L696
10992 .LVL1307:
10993 .L765:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10994 .loc 1 5617 54 discriminator 1 view .LVU3700
10995 067c 0E20 movs r0, #14
10996 .LVL1308:
5617:Middlewares/Third_Party/FatFs/src/ff.c ****
10997 .loc 1 5617 54 discriminator 1 view .LVU3701
10998 067e CBE7 b .L696
10999 .LVL1309:
11000 .L767:
5661:Middlewares/Third_Party/FatFs/src/ff.c ****
11001 .loc 1 5661 57 discriminator 1 view .LVU3702
11002 0680 0120 movs r0, #1
11003 0682 C9E7 b .L696
11004 .LVL1310:
11005 .L769:
5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss);
11006 .loc 1 5690 64 discriminator 1 view .LVU3703
11007 0684 0120 movs r0, #1
11008 0686 C7E7 b .L696
11009 .LVL1311:
11010 .L770:
5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n;
11011 .loc 1 5700 63 discriminator 1 view .LVU3704
11012 0688 0120 movs r0, #1
11013 068a C5E7 b .L696
11014 .LVL1312:
11015 .L774:
5742:Middlewares/Third_Party/FatFs/src/ff.c **** }
11016 .loc 1 5742 54 discriminator 1 view .LVU3705
11017 068c 0120 movs r0, #1
11018 068e C3E7 b .L696
11019 .cfi_endproc
11020 .LFE1237:
11022 .section .text.f_gets,"ax",%progbits
11023 .align 1
11024 .global f_gets
11025 .syntax unified
11026 .thumb
11027 .thumb_func
11029 f_gets:
11030 .LVL1313:
11031 .LFB1238:
5835:Middlewares/Third_Party/FatFs/src/ff.c **** int n = 0;
11032 .loc 1 5835 1 is_stmt 1 view -0
11033 .cfi_startproc
11034 @ args = 0, pretend = 0, frame = 8
11035 @ frame_needed = 0, uses_anonymous_args = 0
5835:Middlewares/Third_Party/FatFs/src/ff.c **** int n = 0;
11036 .loc 1 5835 1 is_stmt 0 view .LVU3707
ARM GAS /tmp/ccH7dUYB.s page 357
11037 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
11038 .LCFI114:
11039 .cfi_def_cfa_offset 24
11040 .cfi_offset 4, -24
11041 .cfi_offset 5, -20
11042 .cfi_offset 6, -16
11043 .cfi_offset 7, -12
11044 .cfi_offset 8, -8
11045 .cfi_offset 14, -4
11046 0004 82B0 sub sp, sp, #8
11047 .LCFI115:
11048 .cfi_def_cfa_offset 32
11049 0006 8046 mov r8, r0
11050 0008 0E46 mov r6, r1
11051 000a 1746 mov r7, r2
5836:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, *p = buff;
11052 .loc 1 5836 2 is_stmt 1 view .LVU3708
11053 .LVL1314:
5837:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s[2];
11054 .loc 1 5837 2 view .LVU3709
5838:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rc;
11055 .loc 1 5838 2 view .LVU3710
5839:Middlewares/Third_Party/FatFs/src/ff.c ****
11056 .loc 1 5839 2 view .LVU3711
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11057 .loc 1 5842 2 view .LVU3712
5837:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s[2];
11058 .loc 1 5837 12 is_stmt 0 view .LVU3713
11059 000c 0446 mov r4, r0
5836:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, *p = buff;
11060 .loc 1 5836 6 view .LVU3714
11061 000e 0025 movs r5, #0
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11062 .loc 1 5842 8 view .LVU3715
11063 0010 01E0 b .L798
11064 .LVL1315:
11065 .L803:
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11066 .loc 1 5842 8 view .LVU3716
11067 0012 A446 mov ip, r4
11068 .LVL1316:
11069 .L800:
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11070 .loc 1 5842 8 view .LVU3717
11071 0014 6446 mov r4, ip
11072 .LVL1317:
11073 .L798:
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11074 .loc 1 5842 11 is_stmt 1 view .LVU3718
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11075 .loc 1 5842 17 is_stmt 0 view .LVU3719
11076 0016 731E subs r3, r6, #1
5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE
11077 .loc 1 5842 11 view .LVU3720
11078 0018 AB42 cmp r3, r5
11079 001a 13DD ble .L799
5887:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break;
ARM GAS /tmp/ccH7dUYB.s page 358
11080 .loc 1 5887 3 is_stmt 1 view .LVU3721
11081 001c 6B46 mov r3, sp
11082 001e 0122 movs r2, #1
11083 0020 01A9 add r1, sp, #4
11084 0022 3846 mov r0, r7
11085 0024 FFF7FEFF bl f_read
11086 .LVL1318:
5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
11087 .loc 1 5888 3 view .LVU3722
5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
11088 .loc 1 5888 10 is_stmt 0 view .LVU3723
11089 0028 009B ldr r3, [sp]
5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0];
11090 .loc 1 5888 6 view .LVU3724
11091 002a 012B cmp r3, #1
11092 002c 0AD1 bne .L799
5889:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
11093 .loc 1 5889 3 is_stmt 1 view .LVU3725
5889:Middlewares/Third_Party/FatFs/src/ff.c **** #endif
11094 .loc 1 5889 5 is_stmt 0 view .LVU3726
11095 002e 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2
11096 .LVL1319:
5891:Middlewares/Third_Party/FatFs/src/ff.c **** *p++ = c;
11097 .loc 1 5891 3 is_stmt 1 view .LVU3727
5891:Middlewares/Third_Party/FatFs/src/ff.c **** *p++ = c;
11098 .loc 1 5891 6 is_stmt 0 view .LVU3728
11099 0032 0D2B cmp r3, #13
11100 0034 EDD0 beq .L803
5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++;
11101 .loc 1 5892 3 is_stmt 1 view .LVU3729
5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++;
11102 .loc 1 5892 5 is_stmt 0 view .LVU3730
11103 0036 A446 mov ip, r4
11104 .LVL1320:
5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++;
11105 .loc 1 5892 8 view .LVU3731
11106 0038 0CF8013B strb r3, [ip], #1
11107 .LVL1321:
5893:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '\n') break; /* Break on EOL */
11108 .loc 1 5893 3 is_stmt 1 view .LVU3732
5893:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '\n') break; /* Break on EOL */
11109 .loc 1 5893 4 is_stmt 0 view .LVU3733
11110 003c 0135 adds r5, r5, #1
11111 .LVL1322:
5894:Middlewares/Third_Party/FatFs/src/ff.c **** }
11112 .loc 1 5894 3 is_stmt 1 view .LVU3734
5894:Middlewares/Third_Party/FatFs/src/ff.c **** }
11113 .loc 1 5894 6 is_stmt 0 view .LVU3735
11114 003e 0A2B cmp r3, #10
11115 0040 E8D1 bne .L800
5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++;
11116 .loc 1 5892 5 view .LVU3736
11117 0042 6446 mov r4, ip
11118 .LVL1323:
11119 .L799:
5896:Middlewares/Third_Party/FatFs/src/ff.c **** return n ? buff : 0; /* When no data read (eof or error), return with error. */
11120 .loc 1 5896 2 is_stmt 1 view .LVU3737
ARM GAS /tmp/ccH7dUYB.s page 359
5896:Middlewares/Third_Party/FatFs/src/ff.c **** return n ? buff : 0; /* When no data read (eof or error), return with error. */
11121 .loc 1 5896 5 is_stmt 0 view .LVU3738
11122 0044 0023 movs r3, #0
11123 0046 2370 strb r3, [r4]
5897:Middlewares/Third_Party/FatFs/src/ff.c **** }
11124 .loc 1 5897 2 is_stmt 1 view .LVU3739
5897:Middlewares/Third_Party/FatFs/src/ff.c **** }
11125 .loc 1 5897 18 is_stmt 0 view .LVU3740
11126 0048 1DB1 cbz r5, .L805
5897:Middlewares/Third_Party/FatFs/src/ff.c **** }
11127 .loc 1 5897 18 discriminator 1 view .LVU3741
11128 004a 4046 mov r0, r8
11129 .L797:
5898:Middlewares/Third_Party/FatFs/src/ff.c ****
11130 .loc 1 5898 1 view .LVU3742
11131 004c 02B0 add sp, sp, #8
11132 .LCFI116:
11133 .cfi_remember_state
11134 .cfi_def_cfa_offset 24
11135 @ sp needed
11136 004e BDE8F081 pop {r4, r5, r6, r7, r8, pc}
11137 .LVL1324:
11138 .L805:
11139 .LCFI117:
11140 .cfi_restore_state
5897:Middlewares/Third_Party/FatFs/src/ff.c **** }
11141 .loc 1 5897 18 discriminator 2 view .LVU3743
11142 0052 0020 movs r0, #0
5897:Middlewares/Third_Party/FatFs/src/ff.c **** }
11143 .loc 1 5897 18 view .LVU3744
11144 0054 FAE7 b .L797
11145 .cfi_endproc
11146 .LFE1238:
11148 .section .text.f_putc,"ax",%progbits
11149 .align 1
11150 .global f_putc
11151 .syntax unified
11152 .thumb
11153 .thumb_func
11155 f_putc:
11156 .LVL1325:
11157 .LFB1242:
5995:Middlewares/Third_Party/FatFs/src/ff.c ****
5996:Middlewares/Third_Party/FatFs/src/ff.c ****
5997:Middlewares/Third_Party/FatFs/src/ff.c ****
5998:Middlewares/Third_Party/FatFs/src/ff.c **** int f_putc (
5999:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, /* A character to be output */
6000:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object */
6001:Middlewares/Third_Party/FatFs/src/ff.c **** )
6002:Middlewares/Third_Party/FatFs/src/ff.c **** {
11158 .loc 1 6002 1 is_stmt 1 view -0
11159 .cfi_startproc
11160 @ args = 0, pretend = 0, frame = 80
11161 @ frame_needed = 0, uses_anonymous_args = 0
11162 .loc 1 6002 1 is_stmt 0 view .LVU3746
11163 0000 10B5 push {r4, lr}
11164 .LCFI118:
ARM GAS /tmp/ccH7dUYB.s page 360
11165 .cfi_def_cfa_offset 8
11166 .cfi_offset 4, -8
11167 .cfi_offset 14, -4
11168 0002 94B0 sub sp, sp, #80
11169 .LCFI119:
11170 .cfi_def_cfa_offset 88
11171 0004 0446 mov r4, r0
6003:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb;
11172 .loc 1 6003 2 is_stmt 1 view .LVU3747
6004:Middlewares/Third_Party/FatFs/src/ff.c ****
6005:Middlewares/Third_Party/FatFs/src/ff.c ****
6006:Middlewares/Third_Party/FatFs/src/ff.c **** putc_init(&pb, fp);
11173 .loc 1 6006 2 view .LVU3748
11174 0006 01A8 add r0, sp, #4
11175 .LVL1326:
11176 .loc 1 6006 2 is_stmt 0 view .LVU3749
11177 0008 FFF7FEFF bl putc_init
11178 .LVL1327:
6007:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, c); /* Put the character */
11179 .loc 1 6007 2 is_stmt 1 view .LVU3750
11180 000c 2146 mov r1, r4
11181 000e 01A8 add r0, sp, #4
11182 0010 FFF7FEFF bl putc_bfd
11183 .LVL1328:
6008:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb);
11184 .loc 1 6008 2 view .LVU3751
11185 .loc 1 6008 9 is_stmt 0 view .LVU3752
11186 0014 01A8 add r0, sp, #4
11187 0016 FFF7FEFF bl putc_flush
11188 .LVL1329:
6009:Middlewares/Third_Party/FatFs/src/ff.c **** }
11189 .loc 1 6009 1 view .LVU3753
11190 001a 14B0 add sp, sp, #80
11191 .LCFI120:
11192 .cfi_def_cfa_offset 8
11193 @ sp needed
11194 001c 10BD pop {r4, pc}
11195 .loc 1 6009 1 view .LVU3754
11196 .cfi_endproc
11197 .LFE1242:
11199 .section .text.f_puts,"ax",%progbits
11200 .align 1
11201 .global f_puts
11202 .syntax unified
11203 .thumb
11204 .thumb_func
11206 f_puts:
11207 .LVL1330:
11208 .LFB1243:
6010:Middlewares/Third_Party/FatFs/src/ff.c ****
6011:Middlewares/Third_Party/FatFs/src/ff.c ****
6012:Middlewares/Third_Party/FatFs/src/ff.c ****
6013:Middlewares/Third_Party/FatFs/src/ff.c ****
6014:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
6015:Middlewares/Third_Party/FatFs/src/ff.c **** /* Put a string to the file */
6016:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
6017:Middlewares/Third_Party/FatFs/src/ff.c ****
ARM GAS /tmp/ccH7dUYB.s page 361
6018:Middlewares/Third_Party/FatFs/src/ff.c **** int f_puts (
6019:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* str, /* Pointer to the string to be output */
6020:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp /* Pointer to the file object */
6021:Middlewares/Third_Party/FatFs/src/ff.c **** )
6022:Middlewares/Third_Party/FatFs/src/ff.c **** {
11209 .loc 1 6022 1 is_stmt 1 view -0
11210 .cfi_startproc
11211 @ args = 0, pretend = 0, frame = 80
11212 @ frame_needed = 0, uses_anonymous_args = 0
11213 .loc 1 6022 1 is_stmt 0 view .LVU3756
11214 0000 10B5 push {r4, lr}
11215 .LCFI121:
11216 .cfi_def_cfa_offset 8
11217 .cfi_offset 4, -8
11218 .cfi_offset 14, -4
11219 0002 94B0 sub sp, sp, #80
11220 .LCFI122:
11221 .cfi_def_cfa_offset 88
11222 0004 0446 mov r4, r0
6023:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb;
11223 .loc 1 6023 2 is_stmt 1 view .LVU3757
6024:Middlewares/Third_Party/FatFs/src/ff.c ****
6025:Middlewares/Third_Party/FatFs/src/ff.c ****
6026:Middlewares/Third_Party/FatFs/src/ff.c **** putc_init(&pb, fp);
11224 .loc 1 6026 2 view .LVU3758
11225 0006 01A8 add r0, sp, #4
11226 .LVL1331:
11227 .loc 1 6026 2 is_stmt 0 view .LVU3759
11228 0008 FFF7FEFF bl putc_init
11229 .LVL1332:
6027:Middlewares/Third_Party/FatFs/src/ff.c **** while (*str) putc_bfd(&pb, *str++); /* Put the string */
11230 .loc 1 6027 2 is_stmt 1 view .LVU3760
11231 .loc 1 6027 8 is_stmt 0 view .LVU3761
11232 000c 03E0 b .L810
11233 .L811:
11234 .loc 1 6027 15 is_stmt 1 discriminator 2 view .LVU3762
11235 .loc 1 6027 33 is_stmt 0 discriminator 2 view .LVU3763
11236 000e 0134 adds r4, r4, #1
11237 .LVL1333:
11238 .loc 1 6027 15 discriminator 2 view .LVU3764
11239 0010 01A8 add r0, sp, #4
11240 0012 FFF7FEFF bl putc_bfd
11241 .LVL1334:
11242 .L810:
11243 .loc 1 6027 9 is_stmt 1 discriminator 1 view .LVU3765
11244 0016 2178 ldrb r1, [r4] @ zero_extendqisi2
11245 0018 0029 cmp r1, #0
11246 001a F8D1 bne .L811
6028:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb);
11247 .loc 1 6028 2 view .LVU3766
11248 .loc 1 6028 9 is_stmt 0 view .LVU3767
11249 001c 01A8 add r0, sp, #4
11250 001e FFF7FEFF bl putc_flush
11251 .LVL1335:
6029:Middlewares/Third_Party/FatFs/src/ff.c **** }
11252 .loc 1 6029 1 view .LVU3768
11253 0022 14B0 add sp, sp, #80
ARM GAS /tmp/ccH7dUYB.s page 362
11254 .LCFI123:
11255 .cfi_def_cfa_offset 8
11256 @ sp needed
11257 0024 10BD pop {r4, pc}
11258 .loc 1 6029 1 view .LVU3769
11259 .cfi_endproc
11260 .LFE1243:
11262 .section .text.f_printf,"ax",%progbits
11263 .align 1
11264 .global f_printf
11265 .syntax unified
11266 .thumb
11267 .thumb_func
11269 f_printf:
11270 .LVL1336:
11271 .LFB1244:
6030:Middlewares/Third_Party/FatFs/src/ff.c ****
6031:Middlewares/Third_Party/FatFs/src/ff.c ****
6032:Middlewares/Third_Party/FatFs/src/ff.c ****
6033:Middlewares/Third_Party/FatFs/src/ff.c ****
6034:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
6035:Middlewares/Third_Party/FatFs/src/ff.c **** /* Put a formatted string to the file */
6036:Middlewares/Third_Party/FatFs/src/ff.c **** /*-----------------------------------------------------------------------*/
6037:Middlewares/Third_Party/FatFs/src/ff.c ****
6038:Middlewares/Third_Party/FatFs/src/ff.c **** int f_printf (
6039:Middlewares/Third_Party/FatFs/src/ff.c **** FIL* fp, /* Pointer to the file object */
6040:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR* fmt, /* Pointer to the format string */
6041:Middlewares/Third_Party/FatFs/src/ff.c **** ... /* Optional arguments... */
6042:Middlewares/Third_Party/FatFs/src/ff.c **** )
6043:Middlewares/Third_Party/FatFs/src/ff.c **** {
11272 .loc 1 6043 1 is_stmt 1 view -0
11273 .cfi_startproc
11274 @ args = 4, pretend = 12, frame = 112
11275 @ frame_needed = 0, uses_anonymous_args = 1
11276 .loc 1 6043 1 is_stmt 0 view .LVU3771
11277 0000 0EB4 push {r1, r2, r3}
11278 .LCFI124:
11279 .cfi_def_cfa_offset 12
11280 .cfi_offset 1, -12
11281 .cfi_offset 2, -8
11282 .cfi_offset 3, -4
11283 0002 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
11284 .LCFI125:
11285 .cfi_def_cfa_offset 44
11286 .cfi_offset 4, -44
11287 .cfi_offset 5, -40
11288 .cfi_offset 6, -36
11289 .cfi_offset 7, -32
11290 .cfi_offset 8, -28
11291 .cfi_offset 9, -24
11292 .cfi_offset 10, -20
11293 .cfi_offset 14, -16
11294 0006 9DB0 sub sp, sp, #116
11295 .LCFI126:
11296 .cfi_def_cfa_offset 160
11297 0008 0146 mov r1, r0
11298 000a 25AC add r4, sp, #148
ARM GAS /tmp/ccH7dUYB.s page 363
11299 000c 54F8045B ldr r5, [r4], #4
6044:Middlewares/Third_Party/FatFs/src/ff.c **** va_list arp;
11300 .loc 1 6044 2 is_stmt 1 view .LVU3772
6045:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb;
11301 .loc 1 6045 2 view .LVU3773
6046:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE f, r;
11302 .loc 1 6046 2 view .LVU3774
6047:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j, w;
11303 .loc 1 6047 2 view .LVU3775
6048:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD v;
11304 .loc 1 6048 2 view .LVU3776
6049:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, d, str[32], *p;
11305 .loc 1 6049 2 view .LVU3777
6050:Middlewares/Third_Party/FatFs/src/ff.c ****
6051:Middlewares/Third_Party/FatFs/src/ff.c ****
6052:Middlewares/Third_Party/FatFs/src/ff.c **** putc_init(&pb, fp);
11306 .loc 1 6052 2 view .LVU3778
11307 0010 08A8 add r0, sp, #32
11308 .LVL1337:
11309 .loc 1 6052 2 is_stmt 0 view .LVU3779
11310 0012 FFF7FEFF bl putc_init
11311 .LVL1338:
6053:Middlewares/Third_Party/FatFs/src/ff.c ****
6054:Middlewares/Third_Party/FatFs/src/ff.c **** va_start(arp, fmt);
11312 .loc 1 6054 2 is_stmt 1 view .LVU3780
11313 0016 1B94 str r4, [sp, #108]
11314 .LVL1339:
11315 .L814:
6055:Middlewares/Third_Party/FatFs/src/ff.c ****
6056:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) {
11316 .loc 1 6056 2 view .LVU3781
6057:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++;
11317 .loc 1 6057 3 view .LVU3782
11318 .loc 1 6057 11 is_stmt 0 view .LVU3783
11319 0018 2C46 mov r4, r5
11320 .LVL1340:
11321 .loc 1 6057 5 view .LVU3784
11322 001a 14F8011B ldrb r1, [r4], #1 @ zero_extendqisi2
11323 .LVL1341:
6058:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) break; /* End of string */
11324 .loc 1 6058 3 is_stmt 1 view .LVU3785
11325 .loc 1 6058 6 is_stmt 0 view .LVU3786
11326 001e 0029 cmp r1, #0
11327 0020 00F00881 beq .L815
6059:Middlewares/Third_Party/FatFs/src/ff.c **** if (c != '%') { /* Non escape character */
11328 .loc 1 6059 3 is_stmt 1 view .LVU3787
11329 .loc 1 6059 6 is_stmt 0 view .LVU3788
11330 0024 2529 cmp r1, #37
11331 0026 04D0 beq .L816
6060:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, c);
11332 .loc 1 6060 4 is_stmt 1 view .LVU3789
11333 0028 08A8 add r0, sp, #32
11334 002a FFF7FEFF bl putc_bfd
11335 .LVL1342:
6061:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
11336 .loc 1 6061 4 view .LVU3790
6057:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) break; /* End of string */
ARM GAS /tmp/ccH7dUYB.s page 364
11337 .loc 1 6057 11 is_stmt 0 view .LVU3791
11338 002e 2546 mov r5, r4
11339 .loc 1 6061 4 view .LVU3792
11340 0030 F2E7 b .L814
11341 .LVL1343:
11342 .L816:
6062:Middlewares/Third_Party/FatFs/src/ff.c **** }
6063:Middlewares/Third_Party/FatFs/src/ff.c **** w = f = 0;
11343 .loc 1 6063 3 is_stmt 1 view .LVU3793
6064:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++;
11344 .loc 1 6064 3 view .LVU3794
11345 .loc 1 6064 11 is_stmt 0 view .LVU3795
11346 0032 AB1C adds r3, r5, #2
11347 .LVL1344:
11348 .loc 1 6064 5 view .LVU3796
11349 0034 2178 ldrb r1, [r4] @ zero_extendqisi2
11350 .LVL1345:
6065:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '0') { /* Flag: '0' padding */
11351 .loc 1 6065 3 is_stmt 1 view .LVU3797
11352 .loc 1 6065 6 is_stmt 0 view .LVU3798
11353 0036 3029 cmp r1, #48
11354 0038 05D0 beq .L865
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
6067:Middlewares/Third_Party/FatFs/src/ff.c **** } else {
6068:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '-') { /* Flag: left justified */
11355 .loc 1 6068 4 is_stmt 1 view .LVU3799
11356 .loc 1 6068 7 is_stmt 0 view .LVU3800
11357 003a 2D29 cmp r1, #45
11358 003c 07D0 beq .L866
6064:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '0') { /* Flag: '0' padding */
11359 .loc 1 6064 11 view .LVU3801
11360 003e 1D46 mov r5, r3
6063:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++;
11361 .loc 1 6063 9 view .LVU3802
11362 0040 0026 movs r6, #0
11363 .LVL1346:
11364 .L819:
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11365 .loc 1 6066 6 view .LVU3803
11366 0042 0024 movs r4, #0
11367 0044 0EE0 b .L820
11368 .LVL1347:
11369 .L865:
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11370 .loc 1 6066 4 is_stmt 1 view .LVU3804
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11371 .loc 1 6066 11 view .LVU3805
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11372 .loc 1 6066 19 is_stmt 0 view .LVU3806
11373 0046 0335 adds r5, r5, #3
11374 .LVL1348:
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11375 .loc 1 6066 13 view .LVU3807
11376 0048 6178 ldrb r1, [r4, #1] @ zero_extendqisi2
11377 .LVL1349:
6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++;
11378 .loc 1 6066 6 view .LVU3808
ARM GAS /tmp/ccH7dUYB.s page 365
11379 004a 0126 movs r6, #1
11380 004c F9E7 b .L819
11381 .LVL1350:
11382 .L866:
6069:Middlewares/Third_Party/FatFs/src/ff.c **** f = 2; c = *fmt++;
11383 .loc 1 6069 5 is_stmt 1 view .LVU3809
11384 .loc 1 6069 12 view .LVU3810
11385 .loc 1 6069 20 is_stmt 0 view .LVU3811
11386 004e 0335 adds r5, r5, #3
11387 .LVL1351:
11388 .loc 1 6069 14 view .LVU3812
11389 0050 6178 ldrb r1, [r4, #1] @ zero_extendqisi2
11390 .LVL1352:
11391 .loc 1 6069 7 view .LVU3813
11392 0052 0226 movs r6, #2
11393 0054 F5E7 b .L819
11394 .LVL1353:
11395 .L821:
6070:Middlewares/Third_Party/FatFs/src/ff.c **** }
6071:Middlewares/Third_Party/FatFs/src/ff.c **** }
6072:Middlewares/Third_Party/FatFs/src/ff.c **** while (IsDigit(c)) { /* Precision */
6073:Middlewares/Third_Party/FatFs/src/ff.c **** w = w * 10 + c - '0';
11396 .loc 1 6073 4 is_stmt 1 view .LVU3814
11397 .loc 1 6073 10 is_stmt 0 view .LVU3815
11398 0056 04EB8404 add r4, r4, r4, lsl #2
11399 .LVL1354:
11400 .loc 1 6073 15 view .LVU3816
11401 005a 01EB4404 add r4, r1, r4, lsl #1
11402 .loc 1 6073 6 view .LVU3817
11403 005e 303C subs r4, r4, #48
11404 .LVL1355:
6074:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++;
11405 .loc 1 6074 4 is_stmt 1 view .LVU3818
11406 .loc 1 6074 6 is_stmt 0 view .LVU3819
11407 0060 15F8011B ldrb r1, [r5], #1 @ zero_extendqisi2
11408 .LVL1356:
11409 .L820:
6072:Middlewares/Third_Party/FatFs/src/ff.c **** w = w * 10 + c - '0';
11410 .loc 1 6072 10 is_stmt 1 view .LVU3820
11411 0064 A1F13003 sub r3, r1, #48
11412 0068 DBB2 uxtb r3, r3
11413 006a 092B cmp r3, #9
11414 006c F3D9 bls .L821
6075:Middlewares/Third_Party/FatFs/src/ff.c **** }
6076:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 'l' || c == 'L') { /* Prefix: Size is long int */
11415 .loc 1 6076 3 view .LVU3821
11416 .loc 1 6076 6 is_stmt 0 view .LVU3822
11417 006e 4C29 cmp r1, #76
11418 0070 18BF it ne
11419 0072 6C29 cmpne r1, #108
11420 0074 03D1 bne .L822
6077:Middlewares/Third_Party/FatFs/src/ff.c **** f |= 4; c = *fmt++;
11421 .loc 1 6077 4 is_stmt 1 view .LVU3823
11422 .loc 1 6077 6 is_stmt 0 view .LVU3824
11423 0076 46F00406 orr r6, r6, #4
11424 .LVL1357:
11425 .loc 1 6077 12 is_stmt 1 view .LVU3825
ARM GAS /tmp/ccH7dUYB.s page 366
11426 .loc 1 6077 14 is_stmt 0 view .LVU3826
11427 007a 15F8011B ldrb r1, [r5], #1 @ zero_extendqisi2
11428 .LVL1358:
11429 .L822:
6078:Middlewares/Third_Party/FatFs/src/ff.c **** }
6079:Middlewares/Third_Party/FatFs/src/ff.c **** if (!c) break;
11430 .loc 1 6079 3 is_stmt 1 view .LVU3827
11431 .loc 1 6079 6 is_stmt 0 view .LVU3828
11432 007e 0029 cmp r1, #0
11433 0080 00F0D880 beq .L815
6080:Middlewares/Third_Party/FatFs/src/ff.c **** d = c;
11434 .loc 1 6080 3 is_stmt 1 view .LVU3829
11435 .LVL1359:
6081:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(d)) d -= 0x20;
11436 .loc 1 6081 3 view .LVU3830
11437 .loc 1 6081 7 is_stmt 0 view .LVU3831
11438 0084 A1F16103 sub r3, r1, #97
11439 0088 DBB2 uxtb r3, r3
11440 .loc 1 6081 6 view .LVU3832
11441 008a 192B cmp r3, #25
11442 008c 14D8 bhi .L858
11443 .loc 1 6081 19 is_stmt 1 discriminator 1 view .LVU3833
11444 .loc 1 6081 21 is_stmt 0 discriminator 1 view .LVU3834
11445 008e A1F12003 sub r3, r1, #32
11446 0092 DBB2 uxtb r3, r3
11447 .LVL1360:
11448 .L823:
6082:Middlewares/Third_Party/FatFs/src/ff.c **** switch (d) { /* Type is... */
11449 .loc 1 6082 3 is_stmt 1 view .LVU3835
11450 0094 A3F14202 sub r2, r3, #66
11451 0098 162A cmp r2, #22
11452 009a 5DD8 bhi .L824
11453 009c DFE802F0 tbb [pc, r2]
11454 .L826:
11455 00a0 60 .byte (.L831-.L826)/2
11456 00a1 3D .byte (.L830-.L826)/2
11457 00a2 45 .byte (.L827-.L826)/2
11458 00a3 5C .byte (.L824-.L826)/2
11459 00a4 5C .byte (.L824-.L826)/2
11460 00a5 5C .byte (.L824-.L826)/2
11461 00a6 5C .byte (.L824-.L826)/2
11462 00a7 5C .byte (.L824-.L826)/2
11463 00a8 5C .byte (.L824-.L826)/2
11464 00a9 5C .byte (.L824-.L826)/2
11465 00aa 5C .byte (.L824-.L826)/2
11466 00ab 5C .byte (.L824-.L826)/2
11467 00ac 5C .byte (.L824-.L826)/2
11468 00ad 62 .byte (.L859-.L826)/2
11469 00ae 5C .byte (.L824-.L826)/2
11470 00af 5C .byte (.L824-.L826)/2
11471 00b0 5C .byte (.L824-.L826)/2
11472 00b1 0E .byte (.L828-.L826)/2
11473 00b2 5C .byte (.L824-.L826)/2
11474 00b3 45 .byte (.L827-.L826)/2
11475 00b4 5C .byte (.L824-.L826)/2
11476 00b5 5C .byte (.L824-.L826)/2
11477 00b6 5A .byte (.L825-.L826)/2
ARM GAS /tmp/ccH7dUYB.s page 367
11478 .LVL1361:
11479 00b7 00 .p2align 1
11480 .L858:
6080:Middlewares/Third_Party/FatFs/src/ff.c **** d = c;
11481 .loc 1 6080 5 is_stmt 0 view .LVU3836
11482 00b8 0B46 mov r3, r1
11483 00ba EBE7 b .L823
11484 .LVL1362:
11485 .L828:
6083:Middlewares/Third_Party/FatFs/src/ff.c **** case 'S' : /* String */
6084:Middlewares/Third_Party/FatFs/src/ff.c **** p = va_arg(arp, TCHAR*);
11486 .loc 1 6084 4 is_stmt 1 view .LVU3837
11487 .loc 1 6084 6 is_stmt 0 view .LVU3838
11488 00bc 1B9B ldr r3, [sp, #108]
11489 .LVL1363:
11490 .loc 1 6084 6 view .LVU3839
11491 00be 1A1D adds r2, r3, #4
11492 .LVL1364:
11493 .loc 1 6084 6 view .LVU3840
11494 00c0 1B92 str r2, [sp, #108]
11495 00c2 D3F80080 ldr r8, [r3]
6085:Middlewares/Third_Party/FatFs/src/ff.c **** for (j = 0; p[j]; j++) ;
11496 .loc 1 6085 4 is_stmt 1 view .LVU3841
11497 .LVL1365:
11498 .loc 1 6085 11 is_stmt 0 view .LVU3842
11499 00c6 0027 movs r7, #0
11500 .loc 1 6085 4 view .LVU3843
11501 00c8 00E0 b .L832
11502 .LVL1366:
11503 .L833:
11504 .loc 1 6085 23 is_stmt 1 discriminator 3 view .LVU3844
11505 00ca 0137 adds r7, r7, #1
11506 .LVL1367:
11507 .L832:
11508 .loc 1 6085 16 discriminator 1 view .LVU3845
11509 .loc 1 6085 17 is_stmt 0 discriminator 1 view .LVU3846
11510 00cc 18F80730 ldrb r3, [r8, r7] @ zero_extendqisi2
11511 .loc 1 6085 16 discriminator 1 view .LVU3847
11512 00d0 002B cmp r3, #0
11513 00d2 FAD1 bne .L833
6086:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(f & 2)) {
11514 .loc 1 6086 4 is_stmt 1 view .LVU3848
11515 .loc 1 6086 7 is_stmt 0 view .LVU3849
11516 00d4 16F0020F tst r6, #2
11517 00d8 10D1 bne .L837
11518 00da 05E0 b .L834
11519 .LVL1368:
11520 .L836:
6087:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, ' ');
11521 .loc 1 6087 21 is_stmt 1 discriminator 2 view .LVU3850
11522 00dc 2021 movs r1, #32
11523 00de 0DEB0100 add r0, sp, r1
11524 00e2 FFF7FEFF bl putc_bfd
11525 .LVL1369:
11526 .loc 1 6087 13 is_stmt 0 discriminator 1 view .LVU3851
11527 00e6 3746 mov r7, r6
11528 .LVL1370:
ARM GAS /tmp/ccH7dUYB.s page 368
11529 .L834:
11530 .loc 1 6087 16 is_stmt 1 discriminator 1 view .LVU3852
11531 .loc 1 6087 13 is_stmt 0 discriminator 1 view .LVU3853
11532 00e8 7E1C adds r6, r7, #1
11533 .LVL1371:
11534 .loc 1 6087 16 discriminator 1 view .LVU3854
11535 00ea A742 cmp r7, r4
11536 00ec F6D3 bcc .L836
11537 .loc 1 6087 13 discriminator 1 view .LVU3855
11538 00ee 3746 mov r7, r6
11539 00f0 04E0 b .L837
11540 .LVL1372:
11541 .L838:
6088:Middlewares/Third_Party/FatFs/src/ff.c **** }
6089:Middlewares/Third_Party/FatFs/src/ff.c **** while (*p) putc_bfd(&pb, *p++);
11542 .loc 1 6089 15 is_stmt 1 discriminator 2 view .LVU3856
11543 .loc 1 6089 31 is_stmt 0 discriminator 2 view .LVU3857
11544 00f2 08F10108 add r8, r8, #1
11545 .LVL1373:
11546 .loc 1 6089 15 discriminator 2 view .LVU3858
11547 00f6 08A8 add r0, sp, #32
11548 00f8 FFF7FEFF bl putc_bfd
11549 .LVL1374:
11550 .L837:
11551 .loc 1 6089 11 is_stmt 1 discriminator 1 view .LVU3859
11552 00fc 98F80010 ldrb r1, [r8] @ zero_extendqisi2
11553 0100 0029 cmp r1, #0
11554 0102 F6D1 bne .L838
11555 .loc 1 6089 11 is_stmt 0 discriminator 1 view .LVU3860
11556 0104 05E0 b .L839
11557 .LVL1375:
11558 .L840:
6090:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, ' ');
11559 .loc 1 6090 20 is_stmt 1 discriminator 2 view .LVU3861
11560 0106 2021 movs r1, #32
11561 0108 0DEB0100 add r0, sp, r1
11562 010c FFF7FEFF bl putc_bfd
11563 .LVL1376:
11564 .loc 1 6090 12 is_stmt 0 discriminator 1 view .LVU3862
11565 0110 3746 mov r7, r6
11566 .LVL1377:
11567 .L839:
11568 .loc 1 6090 15 is_stmt 1 discriminator 1 view .LVU3863
11569 .loc 1 6090 12 is_stmt 0 discriminator 1 view .LVU3864
11570 0112 7E1C adds r6, r7, #1
11571 .LVL1378:
11572 .loc 1 6090 15 discriminator 1 view .LVU3865
11573 0114 A742 cmp r7, r4
11574 0116 F6D3 bcc .L840
11575 0118 7EE7 b .L814
11576 .LVL1379:
11577 .L830:
6091:Middlewares/Third_Party/FatFs/src/ff.c **** continue;
6092:Middlewares/Third_Party/FatFs/src/ff.c ****
6093:Middlewares/Third_Party/FatFs/src/ff.c **** case 'C' : /* Character */
6094:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, (TCHAR)va_arg(arp, int)); continue;
11578 .loc 1 6094 4 is_stmt 1 view .LVU3866
ARM GAS /tmp/ccH7dUYB.s page 369
11579 .loc 1 6094 25 is_stmt 0 view .LVU3867
11580 011a 1B9B ldr r3, [sp, #108]
11581 .LVL1380:
11582 .loc 1 6094 25 view .LVU3868
11583 011c 1A1D adds r2, r3, #4
11584 .LVL1381:
11585 .loc 1 6094 25 view .LVU3869
11586 011e 1B92 str r2, [sp, #108]
11587 .loc 1 6094 4 discriminator 1 view .LVU3870
11588 0120 1978 ldrb r1, [r3] @ zero_extendqisi2
11589 .LVL1382:
11590 .loc 1 6094 4 discriminator 1 view .LVU3871
11591 0122 08A8 add r0, sp, #32
11592 0124 FFF7FEFF bl putc_bfd
11593 .LVL1383:
11594 .loc 1 6094 44 is_stmt 1 discriminator 2 view .LVU3872
11595 .loc 1 6094 44 is_stmt 0 view .LVU3873
11596 0128 76E7 b .L814
11597 .LVL1384:
11598 .L827:
6095:Middlewares/Third_Party/FatFs/src/ff.c ****
6096:Middlewares/Third_Party/FatFs/src/ff.c **** case 'B' : /* Binary */
6097:Middlewares/Third_Party/FatFs/src/ff.c **** r = 2; break;
6098:Middlewares/Third_Party/FatFs/src/ff.c ****
6099:Middlewares/Third_Party/FatFs/src/ff.c **** case 'O' : /* Octal */
6100:Middlewares/Third_Party/FatFs/src/ff.c **** r = 8; break;
6101:Middlewares/Third_Party/FatFs/src/ff.c ****
6102:Middlewares/Third_Party/FatFs/src/ff.c **** case 'D' : /* Signed decimal */
6103:Middlewares/Third_Party/FatFs/src/ff.c **** case 'U' : /* Unsigned decimal */
6104:Middlewares/Third_Party/FatFs/src/ff.c **** r = 10; break;
11599 .loc 1 6104 4 is_stmt 1 view .LVU3874
11600 .loc 1 6104 12 view .LVU3875
11601 .loc 1 6104 6 is_stmt 0 view .LVU3876
11602 012a 0A20 movs r0, #10
11603 .LVL1385:
11604 .L829:
6105:Middlewares/Third_Party/FatFs/src/ff.c ****
6106:Middlewares/Third_Party/FatFs/src/ff.c **** case 'X' : /* Hexdecimal */
6107:Middlewares/Third_Party/FatFs/src/ff.c **** r = 16; break;
6108:Middlewares/Third_Party/FatFs/src/ff.c ****
6109:Middlewares/Third_Party/FatFs/src/ff.c **** default: /* Unknown type (pass-through) */
6110:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, c); continue;
6111:Middlewares/Third_Party/FatFs/src/ff.c **** }
6112:Middlewares/Third_Party/FatFs/src/ff.c ****
6113:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get an argument and put it in numeral */
6114:Middlewares/Third_Party/FatFs/src/ff.c **** v = (f & 4) ? (DWORD)va_arg(arp, long) : ((d == 'D') ? (DWORD)(long)va_arg(arp, int) : (DWORD)va_
11605 .loc 1 6114 3 is_stmt 1 view .LVU3877
11606 .loc 1 6114 42 is_stmt 0 view .LVU3878
11607 012c 16F0040F tst r6, #4
11608 0130 1AD0 beq .L841
11609 .loc 1 6114 24 discriminator 1 view .LVU3879
11610 0132 1B9A ldr r2, [sp, #108]
11611 0134 171D adds r7, r2, #4
11612 0136 1B97 str r7, [sp, #108]
11613 0138 1268 ldr r2, [r2]
11614 .L842:
11615 .LVL1386:
ARM GAS /tmp/ccH7dUYB.s page 370
6115:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) {
11616 .loc 1 6115 3 is_stmt 1 view .LVU3880
11617 .loc 1 6115 16 is_stmt 0 view .LVU3881
11618 013a D70F lsrs r7, r2, #31
11619 013c 442B cmp r3, #68
11620 013e 14BF ite ne
11621 0140 0027 movne r7, #0
11622 0142 07F00107 andeq r7, r7, #1
11623 .loc 1 6115 6 view .LVU3882
11624 0146 17B1 cbz r7, .L844
6116:Middlewares/Third_Party/FatFs/src/ff.c **** v = 0 - v;
11625 .loc 1 6116 4 is_stmt 1 view .LVU3883
11626 .loc 1 6116 6 is_stmt 0 view .LVU3884
11627 0148 5242 rsbs r2, r2, #0
11628 .LVL1387:
6117:Middlewares/Third_Party/FatFs/src/ff.c **** f |= 8;
11629 .loc 1 6117 4 is_stmt 1 view .LVU3885
11630 .loc 1 6117 6 is_stmt 0 view .LVU3886
11631 014a 46F00806 orr r6, r6, #8
11632 .LVL1388:
11633 .L844:
6118:Middlewares/Third_Party/FatFs/src/ff.c **** }
6119:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0;
11634 .loc 1 6119 3 is_stmt 1 view .LVU3887
11635 .loc 1 6119 5 is_stmt 0 view .LVU3888
11636 014e 4FF0000C mov ip, #0
11637 0152 28E0 b .L847
11638 .LVL1389:
11639 .L825:
6107:Middlewares/Third_Party/FatFs/src/ff.c ****
11640 .loc 1 6107 4 is_stmt 1 view .LVU3889
6107:Middlewares/Third_Party/FatFs/src/ff.c ****
11641 .loc 1 6107 12 view .LVU3890
6107:Middlewares/Third_Party/FatFs/src/ff.c ****
11642 .loc 1 6107 6 is_stmt 0 view .LVU3891
11643 0154 1020 movs r0, #16
6107:Middlewares/Third_Party/FatFs/src/ff.c ****
11644 .loc 1 6107 12 view .LVU3892
11645 0156 E9E7 b .L829
11646 .LVL1390:
11647 .L824:
6110:Middlewares/Third_Party/FatFs/src/ff.c **** }
11648 .loc 1 6110 4 is_stmt 1 view .LVU3893
11649 0158 08A8 add r0, sp, #32
11650 015a FFF7FEFF bl putc_bfd
11651 .LVL1391:
6110:Middlewares/Third_Party/FatFs/src/ff.c **** }
11652 .loc 1 6110 22 discriminator 1 view .LVU3894
6110:Middlewares/Third_Party/FatFs/src/ff.c **** }
11653 .loc 1 6110 22 is_stmt 0 view .LVU3895
11654 015e 5BE7 b .L814
11655 .LVL1392:
11656 .L831:
6082:Middlewares/Third_Party/FatFs/src/ff.c **** case 'S' : /* String */
11657 .loc 1 6082 3 view .LVU3896
11658 0160 0220 movs r0, #2
11659 0162 E3E7 b .L829
ARM GAS /tmp/ccH7dUYB.s page 371
11660 .L859:
6100:Middlewares/Third_Party/FatFs/src/ff.c ****
11661 .loc 1 6100 6 view .LVU3897
11662 0164 0820 movs r0, #8
11663 0166 E1E7 b .L829
11664 .LVL1393:
11665 .L841:
6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) {
11666 .loc 1 6114 88 discriminator 2 view .LVU3898
11667 0168 442B cmp r3, #68
11668 016a 04D0 beq .L867
6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) {
11669 .loc 1 6114 88 discriminator 5 view .LVU3899
11670 016c 1B9A ldr r2, [sp, #108]
11671 016e 171D adds r7, r2, #4
11672 0170 1B97 str r7, [sp, #108]
11673 0172 1268 ldr r2, [r2]
11674 0174 E1E7 b .L842
11675 .L867:
6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) {
11676 .loc 1 6114 71 discriminator 4 view .LVU3900
11677 0176 1B9A ldr r2, [sp, #108]
11678 0178 171D adds r7, r2, #4
11679 017a 1B97 str r7, [sp, #108]
11680 017c 1268 ldr r2, [r2]
11681 017e DCE7 b .L842
11682 .LVL1394:
11683 .L868:
6120:Middlewares/Third_Party/FatFs/src/ff.c **** do {
6121:Middlewares/Third_Party/FatFs/src/ff.c **** d = (TCHAR)(v % r); v /= r;
6122:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11684 .loc 1 6122 17 discriminator 2 view .LVU3901
11685 0180 2727 movs r7, #39
11686 .L846:
11687 .loc 1 6122 17 discriminator 5 view .LVU3902
11688 0182 3B44 add r3, r3, r7
11689 .LVL1395:
11690 .loc 1 6122 17 discriminator 5 view .LVU3903
11691 0184 DBB2 uxtb r3, r3
11692 .LVL1396:
11693 .L845:
6123:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11694 .loc 1 6123 4 is_stmt 1 view .LVU3904
11695 .loc 1 6123 9 is_stmt 0 view .LVU3905
11696 0186 0CF10107 add r7, ip, #1
11697 .LVL1397:
11698 .loc 1 6123 17 view .LVU3906
11699 018a 3033 adds r3, r3, #48
11700 .LVL1398:
11701 .loc 1 6123 13 view .LVU3907
11702 018c 0CF17009 add r9, ip, #112
11703 0190 E944 add r9, sp, r9
11704 0192 09F8703C strb r3, [r9, #-112]
6124:Middlewares/Third_Party/FatFs/src/ff.c **** } while (v && i < sizeof str / sizeof str[0]);
11705 .loc 1 6124 14 is_stmt 1 view .LVU3908
11706 .loc 1 6124 19 is_stmt 0 view .LVU3909
11707 0196 1F2F cmp r7, #31
ARM GAS /tmp/ccH7dUYB.s page 372
11708 0198 8CBF ite hi
11709 019a 0023 movhi r3, #0
11710 .LVL1399:
11711 .loc 1 6124 19 view .LVU3910
11712 019c 0123 movls r3, #1
11713 .loc 1 6124 14 view .LVU3911
11714 019e C645 cmp lr, r8
11715 01a0 0FD8 bhi .L863
11716 01a2 73B1 cbz r3, .L863
6123:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11717 .loc 1 6123 9 view .LVU3912
11718 01a4 BC46 mov ip, r7
11719 .LVL1400:
11720 .L847:
6120:Middlewares/Third_Party/FatFs/src/ff.c **** do {
11721 .loc 1 6120 3 is_stmt 1 view .LVU3913
6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11722 .loc 1 6121 4 view .LVU3914
6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11723 .loc 1 6121 18 is_stmt 0 view .LVU3915
11724 01a6 8646 mov lr, r0
11725 01a8 B2FBF0F7 udiv r7, r2, r0
11726 01ac 00FB1723 mls r3, r0, r7, r2
6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11727 .loc 1 6121 6 view .LVU3916
11728 01b0 DBB2 uxtb r3, r3
11729 .LVL1401:
6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11730 .loc 1 6121 24 is_stmt 1 view .LVU3917
11731 01b2 9046 mov r8, r2
6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07;
11732 .loc 1 6121 26 is_stmt 0 view .LVU3918
11733 01b4 3A46 mov r2, r7
11734 .LVL1402:
6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11735 .loc 1 6122 4 is_stmt 1 view .LVU3919
6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11736 .loc 1 6122 7 is_stmt 0 view .LVU3920
11737 01b6 092B cmp r3, #9
11738 01b8 E5D9 bls .L845
6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11739 .loc 1 6122 15 is_stmt 1 discriminator 1 view .LVU3921
6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11740 .loc 1 6122 17 is_stmt 0 discriminator 1 view .LVU3922
11741 01ba 7829 cmp r1, #120
11742 01bc E0D0 beq .L868
6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0';
11743 .loc 1 6122 17 discriminator 3 view .LVU3923
11744 01be 0727 movs r7, #7
11745 01c0 DFE7 b .L846
11746 .LVL1403:
11747 .L863:
6125:Middlewares/Third_Party/FatFs/src/ff.c **** if (f & 8) str[i++] = '-';
11748 .loc 1 6125 3 is_stmt 1 view .LVU3924
11749 .loc 1 6125 6 is_stmt 0 view .LVU3925
11750 01c2 16F0080F tst r6, #8
11751 01c6 08D0 beq .L849
ARM GAS /tmp/ccH7dUYB.s page 373
11752 .loc 1 6125 14 is_stmt 1 discriminator 1 view .LVU3926
11753 .LVL1404:
11754 .loc 1 6125 23 is_stmt 0 discriminator 1 view .LVU3927
11755 01c8 07F17003 add r3, r7, #112
11756 01cc 0DEB0307 add r7, sp, r3
11757 01d0 2D23 movs r3, #45
11758 01d2 07F8703C strb r3, [r7, #-112]
11759 .loc 1 6125 19 discriminator 1 view .LVU3928
11760 01d6 0CF10207 add r7, ip, #2
11761 .LVL1405:
11762 .L849:
6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' ';
11763 .loc 1 6126 3 is_stmt 1 view .LVU3929
11764 .loc 1 6126 10 view .LVU3930
11765 .loc 1 6126 12 is_stmt 0 view .LVU3931
11766 01da 16F0010F tst r6, #1
11767 01de 03D0 beq .L862
11768 .loc 1 6126 12 discriminator 1 view .LVU3932
11769 01e0 4FF0300A mov r10, #48
11770 .L850:
11771 .LVL1406:
6127:Middlewares/Third_Party/FatFs/src/ff.c **** while (!(f & 2) && j++ < w) putc_bfd(&pb, d);
11772 .loc 1 6127 3 is_stmt 1 view .LVU3933
6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' ';
11773 .loc 1 6126 5 is_stmt 0 view .LVU3934
11774 01e4 B846 mov r8, r7
11775 .loc 1 6127 9 view .LVU3935
11776 01e6 07E0 b .L851
11777 .LVL1407:
11778 .L862:
6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' ';
11779 .loc 1 6126 12 discriminator 2 view .LVU3936
11780 01e8 4FF0200A mov r10, #32
11781 01ec FAE7 b .L850
11782 .LVL1408:
11783 .L853:
11784 .loc 1 6127 31 is_stmt 1 discriminator 3 view .LVU3937
11785 01ee 5146 mov r1, r10
11786 01f0 08A8 add r0, sp, #32
11787 01f2 FFF7FEFF bl putc_bfd
11788 .LVL1409:
11789 .loc 1 6127 23 is_stmt 0 discriminator 2 view .LVU3938
11790 01f6 C846 mov r8, r9
11791 .LVL1410:
11792 .L851:
11793 .loc 1 6127 19 is_stmt 1 discriminator 1 view .LVU3939
11794 01f8 16F0020F tst r6, #2
11795 01fc 04D1 bne .L854
11796 .loc 1 6127 23 is_stmt 0 discriminator 2 view .LVU3940
11797 01fe 08F10109 add r9, r8, #1
11798 .LVL1411:
11799 .loc 1 6127 19 discriminator 2 view .LVU3941
11800 0202 A045 cmp r8, r4
11801 0204 F3D3 bcc .L853
11802 .loc 1 6127 23 discriminator 2 view .LVU3942
11803 0206 C846 mov r8, r9
11804 .LVL1412:
ARM GAS /tmp/ccH7dUYB.s page 374
11805 .L854:
6128:Middlewares/Third_Party/FatFs/src/ff.c **** do {
11806 .loc 1 6128 3 is_stmt 1 view .LVU3943
6129:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, str[--i]);
11807 .loc 1 6129 4 view .LVU3944
11808 0208 013F subs r7, r7, #1
11809 .LVL1413:
11810 .loc 1 6129 4 is_stmt 0 view .LVU3945
11811 020a 07F17003 add r3, r7, #112
11812 020e 6B44 add r3, sp, r3
11813 0210 13F8701C ldrb r1, [r3, #-112] @ zero_extendqisi2
11814 0214 08A8 add r0, sp, #32
11815 0216 FFF7FEFF bl putc_bfd
11816 .LVL1414:
6130:Middlewares/Third_Party/FatFs/src/ff.c **** } while (i);
11817 .loc 1 6130 12 is_stmt 1 discriminator 1 view .LVU3946
11818 021a 002F cmp r7, #0
11819 021c F4D1 bne .L854
11820 .LVL1415:
11821 .L855:
6131:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, d);
11822 .loc 1 6131 14 discriminator 1 view .LVU3947
11823 .loc 1 6131 11 is_stmt 0 discriminator 1 view .LVU3948
11824 021e 08F10106 add r6, r8, #1
11825 .LVL1416:
11826 .loc 1 6131 14 discriminator 1 view .LVU3949
11827 0222 A045 cmp r8, r4
11828 0224 BFF4F8AE bcs .L814
11829 .loc 1 6131 19 is_stmt 1 discriminator 2 view .LVU3950
11830 0228 5146 mov r1, r10
11831 022a 08A8 add r0, sp, #32
11832 022c FFF7FEFF bl putc_bfd
11833 .LVL1417:
11834 .loc 1 6131 11 is_stmt 0 discriminator 1 view .LVU3951
11835 0230 B046 mov r8, r6
11836 0232 F4E7 b .L855
11837 .LVL1418:
11838 .L815:
6132:Middlewares/Third_Party/FatFs/src/ff.c **** }
6133:Middlewares/Third_Party/FatFs/src/ff.c ****
6134:Middlewares/Third_Party/FatFs/src/ff.c **** va_end(arp);
11839 .loc 1 6134 2 is_stmt 1 view .LVU3952
6135:Middlewares/Third_Party/FatFs/src/ff.c ****
6136:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb);
11840 .loc 1 6136 2 view .LVU3953
11841 .loc 1 6136 9 is_stmt 0 view .LVU3954
11842 0234 08A8 add r0, sp, #32
11843 0236 FFF7FEFF bl putc_flush
11844 .LVL1419:
6137:Middlewares/Third_Party/FatFs/src/ff.c **** }
11845 .loc 1 6137 1 view .LVU3955
11846 023a 1DB0 add sp, sp, #116
11847 .LCFI127:
11848 .cfi_def_cfa_offset 44
11849 @ sp needed
11850 023c BDE8F047 pop {r4, r5, r6, r7, r8, r9, r10, lr}
11851 .LCFI128:
ARM GAS /tmp/ccH7dUYB.s page 375
11852 .cfi_restore 14
11853 .cfi_restore 10
11854 .cfi_restore 9
11855 .cfi_restore 8
11856 .cfi_restore 7
11857 .cfi_restore 6
11858 .cfi_restore 5
11859 .cfi_restore 4
11860 .cfi_def_cfa_offset 12
11861 0240 03B0 add sp, sp, #12
11862 .LCFI129:
11863 .cfi_restore 3
11864 .cfi_restore 2
11865 .cfi_restore 1
11866 .cfi_def_cfa_offset 0
11867 0242 7047 bx lr
11868 .cfi_endproc
11869 .LFE1244:
11871 .section .rodata.cst.0,"a"
11872 .align 2
11875 cst.0:
11876 0000 0100 .short 1
11877 0002 0400 .short 4
11878 0004 1000 .short 16
11879 0006 4000 .short 64
11880 0008 0001 .short 256
11881 000a 0002 .short 512
11882 000c 0000 .short 0
11883 .section .rodata.cst32.1,"a"
11884 .align 2
11887 cst32.1:
11888 0000 0100 .short 1
11889 0002 0200 .short 2
11890 0004 0400 .short 4
11891 0006 0800 .short 8
11892 0008 1000 .short 16
11893 000a 2000 .short 32
11894 000c 0000 .short 0
11895 .section .rodata.ExCvt,"a"
11896 .align 2
11899 ExCvt:
11900 0000 43554541 .ascii "CUEAAAACEEEIIIAAE\222\222OOOUUYOUO\234O\236\237AIOU"
11900 41414143
11900 45454549
11900 49494141
11900 4592924F
11901 0024 A5A5A6A7 .ascii "\245\245\246\247\250\251\252\253\254\255\256\257\260"
11901 A8A9AAAB
11901 ACADAEAF
11901 B0
11902 0031 B1B2B3B4 .ascii "\261\262\263\264AAA\270\271\272\273\274\275\276\277"
11902 414141B8
11902 B9BABBBC
11902 BDBEBF
11903 0040 C0C1C2C3 .ascii "\300\301\302\303\304\305AA\310\311\312\313\314\315\316"
11903 C4C54141
11903 C8C9CACB
ARM GAS /tmp/ccH7dUYB.s page 376
11903 CCCDCE
11904 004f CFD1D145 .ascii "\317\321\321EEEIIII\331\332\333\334\335I\337O\341OO"
11904 45454949
11904 4949D9DA
11904 DBDCDD49
11904 DF4FE14F
11905 0064 4F4FE6E8 .ascii "OO\346\350\350UUUYY\356\357\360\361\362\363\364\365"
11905 E8555555
11905 5959EEEF
11905 F0F1F2F3
11905 F4F5
11906 0076 F6F7F8F9 .ascii "\366\367\370\371\372\373\374\375\376\377"
11906 FAFBFCFD
11906 FEFF
11907 .section .bss.Files,"aw",%nobits
11908 .align 2
11911 Files:
11912 0000 00000000 .space 32
11912 00000000
11912 00000000
11912 00000000
11912 00000000
11913 .section .bss.Fsid,"aw",%nobits
11914 .align 1
11917 Fsid:
11918 0000 0000 .space 2
11919 .section .bss.FatFs,"aw",%nobits
11920 .align 2
11923 FatFs:
11924 0000 00000000 .space 4
11925 .text
11926 .Letext0:
11927 .file 2 "Middlewares/Third_Party/FatFs/src/integer.h"
11928 .file 3 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
11929 .file 4 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_dma.h"
11930 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_tim.h"
11931 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_rcc.h"
11932 .file 7 "Middlewares/Third_Party/FatFs/src/ff.h"
11933 .file 8 "Middlewares/Third_Party/FatFs/src/diskio.h"
11934 .file 9 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdarg.h"
11935 .file 10 "<built-in>"
ARM GAS /tmp/ccH7dUYB.s page 377
DEFINED SYMBOLS
*ABS*:00000000 ff.c
/tmp/ccH7dUYB.s:20 .text.ld_word:00000000 $t
/tmp/ccH7dUYB.s:25 .text.ld_word:00000000 ld_word
/tmp/ccH7dUYB.s:52 .text.ld_dword:00000000 $t
/tmp/ccH7dUYB.s:57 .text.ld_dword:00000000 ld_dword
/tmp/ccH7dUYB.s:96 .text.st_word:00000000 $t
/tmp/ccH7dUYB.s:101 .text.st_word:00000000 st_word
/tmp/ccH7dUYB.s:125 .text.st_dword:00000000 $t
/tmp/ccH7dUYB.s:130 .text.st_dword:00000000 st_dword
/tmp/ccH7dUYB.s:169 .text.mem_cpy:00000000 $t
/tmp/ccH7dUYB.s:174 .text.mem_cpy:00000000 mem_cpy
/tmp/ccH7dUYB.s:214 .text.mem_set:00000000 $t
/tmp/ccH7dUYB.s:219 .text.mem_set:00000000 mem_set
/tmp/ccH7dUYB.s:246 .text.mem_cmp:00000000 $t
/tmp/ccH7dUYB.s:251 .text.mem_cmp:00000000 mem_cmp
/tmp/ccH7dUYB.s:294 .text.chk_chr:00000000 $t
/tmp/ccH7dUYB.s:299 .text.chk_chr:00000000 chk_chr
/tmp/ccH7dUYB.s:335 .text.chk_lock:00000000 $t
/tmp/ccH7dUYB.s:340 .text.chk_lock:00000000 chk_lock
/tmp/ccH7dUYB.s:477 .text.chk_lock:00000078 $d
/tmp/ccH7dUYB.s:11911 .bss.Files:00000000 Files
/tmp/ccH7dUYB.s:482 .text.enq_lock:00000000 $t
/tmp/ccH7dUYB.s:487 .text.enq_lock:00000000 enq_lock
/tmp/ccH7dUYB.s:531 .text.enq_lock:0000001c $d
/tmp/ccH7dUYB.s:536 .text.inc_lock:00000000 $t
/tmp/ccH7dUYB.s:541 .text.inc_lock:00000000 inc_lock
/tmp/ccH7dUYB.s:711 .text.inc_lock:0000009c $d
/tmp/ccH7dUYB.s:716 .text.dec_lock:00000000 $t
/tmp/ccH7dUYB.s:721 .text.dec_lock:00000000 dec_lock
/tmp/ccH7dUYB.s:802 .text.dec_lock:0000003c $d
/tmp/ccH7dUYB.s:807 .text.clear_lock:00000000 $t
/tmp/ccH7dUYB.s:812 .text.clear_lock:00000000 clear_lock
/tmp/ccH7dUYB.s:889 .text.clear_lock:00000038 $d
/tmp/ccH7dUYB.s:894 .text.clust2sect:00000000 $t
/tmp/ccH7dUYB.s:899 .text.clust2sect:00000000 clust2sect
/tmp/ccH7dUYB.s:939 .text.clmt_clust:00000000 $t
/tmp/ccH7dUYB.s:944 .text.clmt_clust:00000000 clmt_clust
/tmp/ccH7dUYB.s:1015 .text.ld_clust:00000000 $t
/tmp/ccH7dUYB.s:1020 .text.ld_clust:00000000 ld_clust
/tmp/ccH7dUYB.s:1076 .text.st_clust:00000000 $t
/tmp/ccH7dUYB.s:1081 .text.st_clust:00000000 st_clust
/tmp/ccH7dUYB.s:1130 .text.get_fileinfo:00000000 $t
/tmp/ccH7dUYB.s:1135 .text.get_fileinfo:00000000 get_fileinfo
/tmp/ccH7dUYB.s:1275 .rodata.create_name.str1.4:00000000 $d
/tmp/ccH7dUYB.s:1279 .text.create_name:00000000 $t
/tmp/ccH7dUYB.s:1284 .text.create_name:00000000 create_name
/tmp/ccH7dUYB.s:1516 .text.create_name:000000c8 $d
/tmp/ccH7dUYB.s:11899 .rodata.ExCvt:00000000 ExCvt
/tmp/ccH7dUYB.s:1522 .text.get_ldnumber:00000000 $t
/tmp/ccH7dUYB.s:1527 .text.get_ldnumber:00000000 get_ldnumber
/tmp/ccH7dUYB.s:1628 .text.putc_init:00000000 $t
/tmp/ccH7dUYB.s:1633 .text.putc_init:00000000 putc_init
/tmp/ccH7dUYB.s:1656 .text.validate:00000000 $t
/tmp/ccH7dUYB.s:1661 .text.validate:00000000 validate
/tmp/ccH7dUYB.s:1770 .text.sync_window:00000000 $t
/tmp/ccH7dUYB.s:1775 .text.sync_window:00000000 sync_window
ARM GAS /tmp/ccH7dUYB.s page 378
/tmp/ccH7dUYB.s:1882 .text.move_window:00000000 $t
/tmp/ccH7dUYB.s:1887 .text.move_window:00000000 move_window
/tmp/ccH7dUYB.s:1959 .text.check_fs:00000000 $t
/tmp/ccH7dUYB.s:1964 .text.check_fs:00000000 check_fs
/tmp/ccH7dUYB.s:2060 .text.check_fs:0000006c $d
/tmp/ccH7dUYB.s:2067 .text.find_volume:00000000 $t
/tmp/ccH7dUYB.s:2072 .text.find_volume:00000000 find_volume
/tmp/ccH7dUYB.s:2746 .text.find_volume:00000314 $d
/tmp/ccH7dUYB.s:11923 .bss.FatFs:00000000 FatFs
/tmp/ccH7dUYB.s:11917 .bss.Fsid:00000000 Fsid
/tmp/ccH7dUYB.s:2753 .text.find_volume:00000324 $t
/tmp/ccH7dUYB.s:2802 .text.put_fat:00000000 $t
/tmp/ccH7dUYB.s:2807 .text.put_fat:00000000 put_fat
/tmp/ccH7dUYB.s:3085 .text.get_fat:00000000 $t
/tmp/ccH7dUYB.s:3090 .text.get_fat:00000000 get_fat
/tmp/ccH7dUYB.s:3338 .text.dir_sdi:00000000 $t
/tmp/ccH7dUYB.s:3343 .text.dir_sdi:00000000 dir_sdi
/tmp/ccH7dUYB.s:3548 .text.create_chain:00000000 $t
/tmp/ccH7dUYB.s:3553 .text.create_chain:00000000 create_chain
/tmp/ccH7dUYB.s:3789 .text.remove_chain:00000000 $t
/tmp/ccH7dUYB.s:3794 .text.remove_chain:00000000 remove_chain
/tmp/ccH7dUYB.s:3955 .text.dir_remove:00000000 $t
/tmp/ccH7dUYB.s:3960 .text.dir_remove:00000000 dir_remove
/tmp/ccH7dUYB.s:4011 .text.dir_next:00000000 $t
/tmp/ccH7dUYB.s:4016 .text.dir_next:00000000 dir_next
/tmp/ccH7dUYB.s:4326 .text.dir_find:00000000 $t
/tmp/ccH7dUYB.s:4331 .text.dir_find:00000000 dir_find
/tmp/ccH7dUYB.s:4439 .text.follow_path:00000000 $t
/tmp/ccH7dUYB.s:4444 .text.follow_path:00000000 follow_path
/tmp/ccH7dUYB.s:4612 .text.dir_alloc:00000000 $t
/tmp/ccH7dUYB.s:4617 .text.dir_alloc:00000000 dir_alloc
/tmp/ccH7dUYB.s:4728 .text.dir_register:00000000 $t
/tmp/ccH7dUYB.s:4733 .text.dir_register:00000000 dir_register
/tmp/ccH7dUYB.s:4807 .text.dir_read:00000000 $t
/tmp/ccH7dUYB.s:4812 .text.dir_read:00000000 dir_read
/tmp/ccH7dUYB.s:4934 .text.sync_fs:00000000 $t
/tmp/ccH7dUYB.s:4939 .text.sync_fs:00000000 sync_fs
/tmp/ccH7dUYB.s:5053 .text.sync_fs:00000080 $d
/tmp/ccH7dUYB.s:5059 .text.f_mount:00000000 $t
/tmp/ccH7dUYB.s:5065 .text.f_mount:00000000 f_mount
/tmp/ccH7dUYB.s:5181 .text.f_mount:0000005c $d
/tmp/ccH7dUYB.s:5186 .text.f_open:00000000 $t
/tmp/ccH7dUYB.s:5192 .text.f_open:00000000 f_open
/tmp/ccH7dUYB.s:5748 .text.f_read:00000000 $t
/tmp/ccH7dUYB.s:5754 .text.f_read:00000000 f_read
/tmp/ccH7dUYB.s:6186 .text.f_write:00000000 $t
/tmp/ccH7dUYB.s:6192 .text.f_write:00000000 f_write
/tmp/ccH7dUYB.s:6673 .text.putc_bfd:00000000 $t
/tmp/ccH7dUYB.s:6678 .text.putc_bfd:00000000 putc_bfd
/tmp/ccH7dUYB.s:6790 .text.putc_flush:00000000 $t
/tmp/ccH7dUYB.s:6795 .text.putc_flush:00000000 putc_flush
/tmp/ccH7dUYB.s:6874 .text.f_sync:00000000 $t
/tmp/ccH7dUYB.s:6880 .text.f_sync:00000000 f_sync
/tmp/ccH7dUYB.s:7031 .text.f_close:00000000 $t
/tmp/ccH7dUYB.s:7037 .text.f_close:00000000 f_close
/tmp/ccH7dUYB.s:7106 .text.f_lseek:00000000 $t
/tmp/ccH7dUYB.s:7112 .text.f_lseek:00000000 f_lseek
ARM GAS /tmp/ccH7dUYB.s page 379
/tmp/ccH7dUYB.s:7838 .text.f_opendir:00000000 $t
/tmp/ccH7dUYB.s:7844 .text.f_opendir:00000000 f_opendir
/tmp/ccH7dUYB.s:8024 .text.f_closedir:00000000 $t
/tmp/ccH7dUYB.s:8030 .text.f_closedir:00000000 f_closedir
/tmp/ccH7dUYB.s:8096 .text.f_readdir:00000000 $t
/tmp/ccH7dUYB.s:8102 .text.f_readdir:00000000 f_readdir
/tmp/ccH7dUYB.s:8207 .text.f_stat:00000000 $t
/tmp/ccH7dUYB.s:8213 .text.f_stat:00000000 f_stat
/tmp/ccH7dUYB.s:8306 .text.f_getfree:00000000 $t
/tmp/ccH7dUYB.s:8312 .text.f_getfree:00000000 f_getfree
/tmp/ccH7dUYB.s:8597 .text.f_truncate:00000000 $t
/tmp/ccH7dUYB.s:8603 .text.f_truncate:00000000 f_truncate
/tmp/ccH7dUYB.s:8787 .text.f_unlink:00000000 $t
/tmp/ccH7dUYB.s:8793 .text.f_unlink:00000000 f_unlink
/tmp/ccH7dUYB.s:9015 .text.f_mkdir:00000000 $t
/tmp/ccH7dUYB.s:9021 .text.f_mkdir:00000000 f_mkdir
/tmp/ccH7dUYB.s:9388 .text.f_rename:00000000 $t
/tmp/ccH7dUYB.s:9394 .text.f_rename:00000000 f_rename
/tmp/ccH7dUYB.s:9681 .rodata.f_mkfs.str1.4:00000000 $d
/tmp/ccH7dUYB.s:9691 .text.f_mkfs:00000000 $t
/tmp/ccH7dUYB.s:9697 .text.f_mkfs:00000000 f_mkfs
/tmp/ccH7dUYB.s:10298 .text.f_mkfs:000002a0 $d
/tmp/ccH7dUYB.s:11887 .rodata.cst32.1:00000000 cst32.1
/tmp/ccH7dUYB.s:11875 .rodata.cst.0:00000000 cst.0
/tmp/ccH7dUYB.s:10306 .text.f_mkfs:000002b4 $t
/tmp/ccH7dUYB.s:10943 .text.f_mkfs:00000644 $d
/tmp/ccH7dUYB.s:10951 .text.f_mkfs:0000065c $t
/tmp/ccH7dUYB.s:11023 .text.f_gets:00000000 $t
/tmp/ccH7dUYB.s:11029 .text.f_gets:00000000 f_gets
/tmp/ccH7dUYB.s:11149 .text.f_putc:00000000 $t
/tmp/ccH7dUYB.s:11155 .text.f_putc:00000000 f_putc
/tmp/ccH7dUYB.s:11200 .text.f_puts:00000000 $t
/tmp/ccH7dUYB.s:11206 .text.f_puts:00000000 f_puts
/tmp/ccH7dUYB.s:11263 .text.f_printf:00000000 $t
/tmp/ccH7dUYB.s:11269 .text.f_printf:00000000 f_printf
/tmp/ccH7dUYB.s:11455 .text.f_printf:000000a0 $d
/tmp/ccH7dUYB.s:11872 .rodata.cst.0:00000000 $d
/tmp/ccH7dUYB.s:11884 .rodata.cst32.1:00000000 $d
/tmp/ccH7dUYB.s:11896 .rodata.ExCvt:00000000 $d
/tmp/ccH7dUYB.s:11908 .bss.Files:00000000 $d
/tmp/ccH7dUYB.s:11914 .bss.Fsid:00000000 $d
/tmp/ccH7dUYB.s:11920 .bss.FatFs:00000000 $d
/tmp/ccH7dUYB.s:11479 .text.f_printf:000000b7 $d
/tmp/ccH7dUYB.s:11479 .text.f_printf:000000b8 $t
UNDEFINED SYMBOLS
disk_status
disk_write
disk_read
disk_initialize
disk_ioctl
get_fattime