ARM GAS /tmp/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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 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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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/cc2SVLkL.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 "" ARM GAS /tmp/cc2SVLkL.s page 377 DEFINED SYMBOLS *ABS*:00000000 ff.c /tmp/cc2SVLkL.s:20 .text.ld_word:00000000 $t /tmp/cc2SVLkL.s:25 .text.ld_word:00000000 ld_word /tmp/cc2SVLkL.s:52 .text.ld_dword:00000000 $t /tmp/cc2SVLkL.s:57 .text.ld_dword:00000000 ld_dword /tmp/cc2SVLkL.s:96 .text.st_word:00000000 $t /tmp/cc2SVLkL.s:101 .text.st_word:00000000 st_word /tmp/cc2SVLkL.s:125 .text.st_dword:00000000 $t /tmp/cc2SVLkL.s:130 .text.st_dword:00000000 st_dword /tmp/cc2SVLkL.s:169 .text.mem_cpy:00000000 $t /tmp/cc2SVLkL.s:174 .text.mem_cpy:00000000 mem_cpy /tmp/cc2SVLkL.s:214 .text.mem_set:00000000 $t /tmp/cc2SVLkL.s:219 .text.mem_set:00000000 mem_set /tmp/cc2SVLkL.s:246 .text.mem_cmp:00000000 $t /tmp/cc2SVLkL.s:251 .text.mem_cmp:00000000 mem_cmp /tmp/cc2SVLkL.s:294 .text.chk_chr:00000000 $t /tmp/cc2SVLkL.s:299 .text.chk_chr:00000000 chk_chr /tmp/cc2SVLkL.s:335 .text.chk_lock:00000000 $t /tmp/cc2SVLkL.s:340 .text.chk_lock:00000000 chk_lock /tmp/cc2SVLkL.s:477 .text.chk_lock:00000078 $d /tmp/cc2SVLkL.s:11911 .bss.Files:00000000 Files /tmp/cc2SVLkL.s:482 .text.enq_lock:00000000 $t /tmp/cc2SVLkL.s:487 .text.enq_lock:00000000 enq_lock /tmp/cc2SVLkL.s:531 .text.enq_lock:0000001c $d /tmp/cc2SVLkL.s:536 .text.inc_lock:00000000 $t /tmp/cc2SVLkL.s:541 .text.inc_lock:00000000 inc_lock /tmp/cc2SVLkL.s:711 .text.inc_lock:0000009c $d /tmp/cc2SVLkL.s:716 .text.dec_lock:00000000 $t /tmp/cc2SVLkL.s:721 .text.dec_lock:00000000 dec_lock /tmp/cc2SVLkL.s:802 .text.dec_lock:0000003c $d /tmp/cc2SVLkL.s:807 .text.clear_lock:00000000 $t /tmp/cc2SVLkL.s:812 .text.clear_lock:00000000 clear_lock /tmp/cc2SVLkL.s:889 .text.clear_lock:00000038 $d /tmp/cc2SVLkL.s:894 .text.clust2sect:00000000 $t /tmp/cc2SVLkL.s:899 .text.clust2sect:00000000 clust2sect /tmp/cc2SVLkL.s:939 .text.clmt_clust:00000000 $t /tmp/cc2SVLkL.s:944 .text.clmt_clust:00000000 clmt_clust /tmp/cc2SVLkL.s:1015 .text.ld_clust:00000000 $t /tmp/cc2SVLkL.s:1020 .text.ld_clust:00000000 ld_clust /tmp/cc2SVLkL.s:1076 .text.st_clust:00000000 $t /tmp/cc2SVLkL.s:1081 .text.st_clust:00000000 st_clust /tmp/cc2SVLkL.s:1130 .text.get_fileinfo:00000000 $t /tmp/cc2SVLkL.s:1135 .text.get_fileinfo:00000000 get_fileinfo /tmp/cc2SVLkL.s:1275 .rodata.create_name.str1.4:00000000 $d /tmp/cc2SVLkL.s:1279 .text.create_name:00000000 $t /tmp/cc2SVLkL.s:1284 .text.create_name:00000000 create_name /tmp/cc2SVLkL.s:1516 .text.create_name:000000c8 $d /tmp/cc2SVLkL.s:11899 .rodata.ExCvt:00000000 ExCvt /tmp/cc2SVLkL.s:1522 .text.get_ldnumber:00000000 $t /tmp/cc2SVLkL.s:1527 .text.get_ldnumber:00000000 get_ldnumber /tmp/cc2SVLkL.s:1628 .text.putc_init:00000000 $t /tmp/cc2SVLkL.s:1633 .text.putc_init:00000000 putc_init /tmp/cc2SVLkL.s:1656 .text.validate:00000000 $t /tmp/cc2SVLkL.s:1661 .text.validate:00000000 validate /tmp/cc2SVLkL.s:1770 .text.sync_window:00000000 $t /tmp/cc2SVLkL.s:1775 .text.sync_window:00000000 sync_window ARM GAS /tmp/cc2SVLkL.s page 378 /tmp/cc2SVLkL.s:1882 .text.move_window:00000000 $t /tmp/cc2SVLkL.s:1887 .text.move_window:00000000 move_window /tmp/cc2SVLkL.s:1959 .text.check_fs:00000000 $t /tmp/cc2SVLkL.s:1964 .text.check_fs:00000000 check_fs /tmp/cc2SVLkL.s:2060 .text.check_fs:0000006c $d /tmp/cc2SVLkL.s:2067 .text.find_volume:00000000 $t /tmp/cc2SVLkL.s:2072 .text.find_volume:00000000 find_volume /tmp/cc2SVLkL.s:2746 .text.find_volume:00000314 $d /tmp/cc2SVLkL.s:11923 .bss.FatFs:00000000 FatFs /tmp/cc2SVLkL.s:11917 .bss.Fsid:00000000 Fsid /tmp/cc2SVLkL.s:2753 .text.find_volume:00000324 $t /tmp/cc2SVLkL.s:2802 .text.put_fat:00000000 $t /tmp/cc2SVLkL.s:2807 .text.put_fat:00000000 put_fat /tmp/cc2SVLkL.s:3085 .text.get_fat:00000000 $t /tmp/cc2SVLkL.s:3090 .text.get_fat:00000000 get_fat /tmp/cc2SVLkL.s:3338 .text.dir_sdi:00000000 $t /tmp/cc2SVLkL.s:3343 .text.dir_sdi:00000000 dir_sdi /tmp/cc2SVLkL.s:3548 .text.create_chain:00000000 $t /tmp/cc2SVLkL.s:3553 .text.create_chain:00000000 create_chain /tmp/cc2SVLkL.s:3789 .text.remove_chain:00000000 $t /tmp/cc2SVLkL.s:3794 .text.remove_chain:00000000 remove_chain /tmp/cc2SVLkL.s:3955 .text.dir_remove:00000000 $t /tmp/cc2SVLkL.s:3960 .text.dir_remove:00000000 dir_remove /tmp/cc2SVLkL.s:4011 .text.dir_next:00000000 $t /tmp/cc2SVLkL.s:4016 .text.dir_next:00000000 dir_next /tmp/cc2SVLkL.s:4326 .text.dir_find:00000000 $t /tmp/cc2SVLkL.s:4331 .text.dir_find:00000000 dir_find /tmp/cc2SVLkL.s:4439 .text.follow_path:00000000 $t /tmp/cc2SVLkL.s:4444 .text.follow_path:00000000 follow_path /tmp/cc2SVLkL.s:4612 .text.dir_alloc:00000000 $t /tmp/cc2SVLkL.s:4617 .text.dir_alloc:00000000 dir_alloc /tmp/cc2SVLkL.s:4728 .text.dir_register:00000000 $t /tmp/cc2SVLkL.s:4733 .text.dir_register:00000000 dir_register /tmp/cc2SVLkL.s:4807 .text.dir_read:00000000 $t /tmp/cc2SVLkL.s:4812 .text.dir_read:00000000 dir_read /tmp/cc2SVLkL.s:4934 .text.sync_fs:00000000 $t /tmp/cc2SVLkL.s:4939 .text.sync_fs:00000000 sync_fs /tmp/cc2SVLkL.s:5053 .text.sync_fs:00000080 $d /tmp/cc2SVLkL.s:5059 .text.f_mount:00000000 $t /tmp/cc2SVLkL.s:5065 .text.f_mount:00000000 f_mount /tmp/cc2SVLkL.s:5181 .text.f_mount:0000005c $d /tmp/cc2SVLkL.s:5186 .text.f_open:00000000 $t /tmp/cc2SVLkL.s:5192 .text.f_open:00000000 f_open /tmp/cc2SVLkL.s:5748 .text.f_read:00000000 $t /tmp/cc2SVLkL.s:5754 .text.f_read:00000000 f_read /tmp/cc2SVLkL.s:6186 .text.f_write:00000000 $t /tmp/cc2SVLkL.s:6192 .text.f_write:00000000 f_write /tmp/cc2SVLkL.s:6673 .text.putc_bfd:00000000 $t /tmp/cc2SVLkL.s:6678 .text.putc_bfd:00000000 putc_bfd /tmp/cc2SVLkL.s:6790 .text.putc_flush:00000000 $t /tmp/cc2SVLkL.s:6795 .text.putc_flush:00000000 putc_flush /tmp/cc2SVLkL.s:6874 .text.f_sync:00000000 $t /tmp/cc2SVLkL.s:6880 .text.f_sync:00000000 f_sync /tmp/cc2SVLkL.s:7031 .text.f_close:00000000 $t /tmp/cc2SVLkL.s:7037 .text.f_close:00000000 f_close /tmp/cc2SVLkL.s:7106 .text.f_lseek:00000000 $t /tmp/cc2SVLkL.s:7112 .text.f_lseek:00000000 f_lseek ARM GAS /tmp/cc2SVLkL.s page 379 /tmp/cc2SVLkL.s:7838 .text.f_opendir:00000000 $t /tmp/cc2SVLkL.s:7844 .text.f_opendir:00000000 f_opendir /tmp/cc2SVLkL.s:8024 .text.f_closedir:00000000 $t /tmp/cc2SVLkL.s:8030 .text.f_closedir:00000000 f_closedir /tmp/cc2SVLkL.s:8096 .text.f_readdir:00000000 $t /tmp/cc2SVLkL.s:8102 .text.f_readdir:00000000 f_readdir /tmp/cc2SVLkL.s:8207 .text.f_stat:00000000 $t /tmp/cc2SVLkL.s:8213 .text.f_stat:00000000 f_stat /tmp/cc2SVLkL.s:8306 .text.f_getfree:00000000 $t /tmp/cc2SVLkL.s:8312 .text.f_getfree:00000000 f_getfree /tmp/cc2SVLkL.s:8597 .text.f_truncate:00000000 $t /tmp/cc2SVLkL.s:8603 .text.f_truncate:00000000 f_truncate /tmp/cc2SVLkL.s:8787 .text.f_unlink:00000000 $t /tmp/cc2SVLkL.s:8793 .text.f_unlink:00000000 f_unlink /tmp/cc2SVLkL.s:9015 .text.f_mkdir:00000000 $t /tmp/cc2SVLkL.s:9021 .text.f_mkdir:00000000 f_mkdir /tmp/cc2SVLkL.s:9388 .text.f_rename:00000000 $t /tmp/cc2SVLkL.s:9394 .text.f_rename:00000000 f_rename /tmp/cc2SVLkL.s:9681 .rodata.f_mkfs.str1.4:00000000 $d /tmp/cc2SVLkL.s:9691 .text.f_mkfs:00000000 $t /tmp/cc2SVLkL.s:9697 .text.f_mkfs:00000000 f_mkfs /tmp/cc2SVLkL.s:10298 .text.f_mkfs:000002a0 $d /tmp/cc2SVLkL.s:11887 .rodata.cst32.1:00000000 cst32.1 /tmp/cc2SVLkL.s:11875 .rodata.cst.0:00000000 cst.0 /tmp/cc2SVLkL.s:10306 .text.f_mkfs:000002b4 $t /tmp/cc2SVLkL.s:10943 .text.f_mkfs:00000644 $d /tmp/cc2SVLkL.s:10951 .text.f_mkfs:0000065c $t /tmp/cc2SVLkL.s:11023 .text.f_gets:00000000 $t /tmp/cc2SVLkL.s:11029 .text.f_gets:00000000 f_gets /tmp/cc2SVLkL.s:11149 .text.f_putc:00000000 $t /tmp/cc2SVLkL.s:11155 .text.f_putc:00000000 f_putc /tmp/cc2SVLkL.s:11200 .text.f_puts:00000000 $t /tmp/cc2SVLkL.s:11206 .text.f_puts:00000000 f_puts /tmp/cc2SVLkL.s:11263 .text.f_printf:00000000 $t /tmp/cc2SVLkL.s:11269 .text.f_printf:00000000 f_printf /tmp/cc2SVLkL.s:11455 .text.f_printf:000000a0 $d /tmp/cc2SVLkL.s:11872 .rodata.cst.0:00000000 $d /tmp/cc2SVLkL.s:11884 .rodata.cst32.1:00000000 $d /tmp/cc2SVLkL.s:11896 .rodata.ExCvt:00000000 $d /tmp/cc2SVLkL.s:11908 .bss.Files:00000000 $d /tmp/cc2SVLkL.s:11914 .bss.Fsid:00000000 $d /tmp/cc2SVLkL.s:11920 .bss.FatFs:00000000 $d /tmp/cc2SVLkL.s:11479 .text.f_printf:000000b7 $d /tmp/cc2SVLkL.s:11479 .text.f_printf:000000b8 $t UNDEFINED SYMBOLS disk_status disk_write disk_read disk_initialize disk_ioctl get_fattime