ARM GAS /tmp/cczRNDQp.s page 1 1 .cpu cortex-m7 2 .eabi_attribute 28, 1 3 .eabi_attribute 20, 1 4 .eabi_attribute 21, 1 5 .eabi_attribute 23, 3 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 .eabi_attribute 26, 1 9 .eabi_attribute 30, 1 10 .eabi_attribute 34, 1 11 .eabi_attribute 18, 4 12 .file "ff.c" 13 .text 14 .Ltext0: 15 .cfi_sections .debug_frame 16 .section .text.ld_word,"ax",%progbits 17 .align 1 18 .arch armv7e-m 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv5-d16 24 ld_word: 25 .LVL0: 26 .LFB1183: 27 .file 1 "Middlewares/Third_Party/FatFs/src/ff.c" 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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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/cczRNDQp.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 56 .fpu fpv5-d16 58 ld_dword: 59 .LVL4: 60 .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 **** { 61 .loc 1 624 1 is_stmt 1 view -0 62 .cfi_startproc 63 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cczRNDQp.s page 13 64 @ frame_needed = 0, uses_anonymous_args = 0 65 @ link register save eliminated. 625:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD rv; 66 .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]; 67 .loc 1 627 2 view .LVU11 68 .loc 1 627 10 is_stmt 0 view .LVU12 69 0000 C278 ldrb r2, [r0, #3] @ zero_extendqisi2 70 .LVL5: 628:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[2]; 71 .loc 1 628 2 is_stmt 1 view .LVU13 72 .loc 1 628 20 is_stmt 0 view .LVU14 73 0002 8378 ldrb r3, [r0, #2] @ zero_extendqisi2 74 .loc 1 628 5 view .LVU15 75 0004 43EA0222 orr r2, r3, r2, lsl #8 76 .LVL6: 629:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[1]; 77 .loc 1 629 2 is_stmt 1 view .LVU16 78 .loc 1 629 20 is_stmt 0 view .LVU17 79 0008 4378 ldrb r3, [r0, #1] @ zero_extendqisi2 80 .loc 1 629 5 view .LVU18 81 000a 43EA0223 orr r3, r3, r2, lsl #8 82 .LVL7: 630:Middlewares/Third_Party/FatFs/src/ff.c **** rv = rv << 8 | ptr[0]; 83 .loc 1 630 2 is_stmt 1 view .LVU19 84 .loc 1 630 20 is_stmt 0 view .LVU20 85 000e 0078 ldrb r0, [r0] @ zero_extendqisi2 86 .LVL8: 631:Middlewares/Third_Party/FatFs/src/ff.c **** return rv; 87 .loc 1 631 2 is_stmt 1 view .LVU21 632:Middlewares/Third_Party/FatFs/src/ff.c **** } 88 .loc 1 632 1 is_stmt 0 view .LVU22 89 0010 40EA0320 orr r0, r0, r3, lsl #8 90 .LVL9: 91 .loc 1 632 1 view .LVU23 92 0014 7047 bx lr 93 .cfi_endproc 94 .LFE1184: 96 .section .text.st_word,"ax",%progbits 97 .align 1 98 .syntax unified 99 .thumb 100 .thumb_func 101 .fpu fpv5-d16 103 st_word: 104 .LVL10: 105 .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]; ARM GAS /tmp/cczRNDQp.s page 14 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]; 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 **** { 106 .loc 1 655 1 is_stmt 1 view -0 107 .cfi_startproc 108 @ args = 0, pretend = 0, frame = 0 109 @ frame_needed = 0, uses_anonymous_args = 0 110 @ link register save eliminated. 656:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8; 111 .loc 1 656 2 view .LVU25 112 .loc 1 656 9 is_stmt 0 view .LVU26 113 0000 0170 strb r1, [r0] 114 .loc 1 656 22 is_stmt 1 view .LVU27 115 .LVL11: 657:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; 116 .loc 1 657 2 view .LVU28 117 .loc 1 657 11 is_stmt 0 view .LVU29 118 0002 090A lsrs r1, r1, #8 119 .LVL12: 120 .loc 1 657 9 view .LVU30 121 0004 4170 strb r1, [r0, #1] 658:Middlewares/Third_Party/FatFs/src/ff.c **** } 122 .loc 1 658 1 view .LVU31 123 0006 7047 bx lr 124 .cfi_endproc 125 .LFE1185: 127 .section .text.st_dword,"ax",%progbits 128 .align 1 129 .syntax unified 130 .thumb 131 .thumb_func 132 .fpu fpv5-d16 134 st_dword: 135 .LVL13: 136 .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 **** { 137 .loc 1 662 1 is_stmt 1 view -0 138 .cfi_startproc 139 @ args = 0, pretend = 0, frame = 0 140 @ frame_needed = 0, uses_anonymous_args = 0 141 @ link register save eliminated. 663:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8; 142 .loc 1 663 2 view .LVU33 ARM GAS /tmp/cczRNDQp.s page 15 143 .loc 1 663 9 is_stmt 0 view .LVU34 144 0000 0170 strb r1, [r0] 145 .loc 1 663 22 is_stmt 1 view .LVU35 146 .LVL14: 664:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8; 147 .loc 1 664 2 view .LVU36 148 .loc 1 664 11 is_stmt 0 view .LVU37 149 0002 C1F30723 ubfx r3, r1, #8, #8 150 .loc 1 664 9 view .LVU38 151 0006 4370 strb r3, [r0, #1] 152 .loc 1 664 22 is_stmt 1 view .LVU39 153 .LVL15: 665:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; val >>= 8; 154 .loc 1 665 2 view .LVU40 155 .loc 1 665 11 is_stmt 0 view .LVU41 156 0008 C1F30743 ubfx r3, r1, #16, #8 157 .loc 1 665 9 view .LVU42 158 000c 8370 strb r3, [r0, #2] 159 .loc 1 665 22 is_stmt 1 view .LVU43 160 .LVL16: 666:Middlewares/Third_Party/FatFs/src/ff.c **** *ptr++ = (BYTE)val; 161 .loc 1 666 2 view .LVU44 162 .loc 1 666 11 is_stmt 0 view .LVU45 163 000e 090E lsrs r1, r1, #24 164 .LVL17: 165 .loc 1 666 9 view .LVU46 166 0010 C170 strb r1, [r0, #3] 667:Middlewares/Third_Party/FatFs/src/ff.c **** } 167 .loc 1 667 1 view .LVU47 168 0012 7047 bx lr 169 .cfi_endproc 170 .LFE1186: 172 .section .text.mem_cpy,"ax",%progbits 173 .align 1 174 .syntax unified 175 .thumb 176 .thumb_func 177 .fpu fpv5-d16 179 mem_cpy: 180 .LVL18: 181 .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 */ ARM GAS /tmp/cczRNDQp.s page 16 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 */ 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) { 182 .loc 1 693 53 is_stmt 1 view -0 183 .cfi_startproc 184 @ args = 0, pretend = 0, frame = 0 185 @ frame_needed = 0, uses_anonymous_args = 0 186 @ link register save eliminated. 694:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *d = (BYTE*)dst; 187 .loc 1 694 2 view .LVU49 695:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *s = (const BYTE*)src; 188 .loc 1 695 2 view .LVU50 696:Middlewares/Third_Party/FatFs/src/ff.c **** 697:Middlewares/Third_Party/FatFs/src/ff.c **** if (cnt) { 189 .loc 1 697 2 view .LVU51 190 .loc 1 697 5 is_stmt 0 view .LVU52 191 0000 9446 mov ip, r2 192 0002 32B1 cbz r2, .L5 193 .LVL19: 194 .L7: 698:Middlewares/Third_Party/FatFs/src/ff.c **** do { 195 .loc 1 698 3 is_stmt 1 discriminator 1 view .LVU53 699:Middlewares/Third_Party/FatFs/src/ff.c **** *d++ = *s++; 196 .loc 1 699 4 discriminator 1 view .LVU54 197 .loc 1 699 11 is_stmt 0 discriminator 1 view .LVU55 198 0004 0A78 ldrb r2, [r1] @ zero_extendqisi2 199 0006 0131 adds r1, r1, #1 200 .LVL20: 201 .loc 1 699 9 discriminator 1 view .LVU56 202 0008 0270 strb r2, [r0] 203 000a 0130 adds r0, r0, #1 204 .LVL21: 700:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt); 205 .loc 1 700 11 is_stmt 1 discriminator 1 view .LVU57 206 .loc 1 700 3 is_stmt 0 discriminator 1 view .LVU58 207 000c BCF1010C subs ip, ip, #1 208 .LVL22: 209 .loc 1 700 3 discriminator 1 view .LVU59 210 0010 F8D1 bne .L7 211 .LVL23: 212 .L5: 701:Middlewares/Third_Party/FatFs/src/ff.c **** } 702:Middlewares/Third_Party/FatFs/src/ff.c **** } 213 .loc 1 702 1 view .LVU60 214 0012 7047 bx lr 215 .cfi_endproc 216 .LFE1187: 218 .section .text.mem_set,"ax",%progbits 219 .align 1 220 .syntax unified ARM GAS /tmp/cczRNDQp.s page 17 221 .thumb 222 .thumb_func 223 .fpu fpv5-d16 225 mem_set: 226 .LFB1188: 703:Middlewares/Third_Party/FatFs/src/ff.c **** 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) { 227 .loc 1 706 45 is_stmt 1 view -0 228 .cfi_startproc 229 @ args = 0, pretend = 0, frame = 0 230 @ frame_needed = 0, uses_anonymous_args = 0 231 @ link register save eliminated. 232 .LVL24: 233 .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 { 234 .loc 1 709 2 discriminator 1 view .LVU62 710:Middlewares/Third_Party/FatFs/src/ff.c **** *d++ = (BYTE)val; 235 .loc 1 710 3 discriminator 1 view .LVU63 236 .loc 1 710 8 is_stmt 0 discriminator 1 view .LVU64 237 0000 0170 strb r1, [r0] 238 0002 0130 adds r0, r0, #1 711:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt); 239 .loc 1 711 10 is_stmt 1 discriminator 1 view .LVU65 240 .LVL25: 241 .loc 1 711 2 is_stmt 0 discriminator 1 view .LVU66 242 0004 013A subs r2, r2, #1 243 .LVL26: 244 .loc 1 711 2 discriminator 1 view .LVU67 245 0006 FBD1 bne .L9 712:Middlewares/Third_Party/FatFs/src/ff.c **** } 246 .loc 1 712 1 view .LVU68 247 0008 7047 bx lr 248 .cfi_endproc 249 .LFE1188: 251 .section .text.mem_cmp,"ax",%progbits 252 .align 1 253 .syntax unified 254 .thumb 255 .thumb_func 256 .fpu fpv5-d16 258 mem_cmp: 259 .LVL27: 260 .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 */ 261 .loc 1 716 58 is_stmt 1 view -0 262 .cfi_startproc 263 @ args = 0, pretend = 0, frame = 0 264 @ frame_needed = 0, uses_anonymous_args = 0 265 @ link register save eliminated. 266 .loc 1 716 58 is_stmt 0 view .LVU70 ARM GAS /tmp/cczRNDQp.s page 18 267 0000 8446 mov ip, r0 717:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *d = (const BYTE *)dst, *s = (const BYTE *)src; 268 .loc 1 717 2 is_stmt 1 view .LVU71 269 .LVL28: 718:Middlewares/Third_Party/FatFs/src/ff.c **** int r = 0; 270 .loc 1 718 2 view .LVU72 271 .L12: 719:Middlewares/Third_Party/FatFs/src/ff.c **** 720:Middlewares/Third_Party/FatFs/src/ff.c **** do { 272 .loc 1 720 2 discriminator 2 view .LVU73 721:Middlewares/Third_Party/FatFs/src/ff.c **** r = *d++ - *s++; 273 .loc 1 721 3 discriminator 2 view .LVU74 274 .loc 1 721 7 is_stmt 0 discriminator 2 view .LVU75 275 0002 9CF80000 ldrb r0, [ip] @ zero_extendqisi2 276 0006 0CF1010C add ip, ip, #1 277 .LVL29: 278 .loc 1 721 14 discriminator 2 view .LVU76 279 000a 0B78 ldrb r3, [r1] @ zero_extendqisi2 280 000c 0131 adds r1, r1, #1 281 .LVL30: 282 .loc 1 721 5 discriminator 2 view .LVU77 283 000e C01A subs r0, r0, r3 284 .LVL31: 722:Middlewares/Third_Party/FatFs/src/ff.c **** } while (--cnt && r == 0); 285 .loc 1 722 10 is_stmt 1 discriminator 2 view .LVU78 286 .loc 1 722 2 is_stmt 0 discriminator 2 view .LVU79 287 0010 013A subs r2, r2, #1 288 .LVL32: 289 .loc 1 722 2 discriminator 2 view .LVU80 290 0012 01D0 beq .L10 291 .loc 1 722 17 discriminator 1 view .LVU81 292 0014 0028 cmp r0, #0 293 0016 F4D0 beq .L12 294 .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 **** } 295 .loc 1 725 1 view .LVU82 296 0018 7047 bx lr 297 .cfi_endproc 298 .LFE1189: 300 .section .text.chk_chr,"ax",%progbits 301 .align 1 302 .syntax unified 303 .thumb 304 .thumb_func 305 .fpu fpv5-d16 307 chk_chr: 308 .LVL33: 309 .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 */ 310 .loc 1 729 40 is_stmt 1 view -0 311 .cfi_startproc 312 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cczRNDQp.s page 19 313 @ frame_needed = 0, uses_anonymous_args = 0 314 @ link register save eliminated. 315 .loc 1 729 40 is_stmt 0 view .LVU84 316 0000 0346 mov r3, r0 730:Middlewares/Third_Party/FatFs/src/ff.c **** while (*str && *str != chr) str++; 317 .loc 1 730 2 is_stmt 1 view .LVU85 318 .loc 1 730 8 is_stmt 0 view .LVU86 319 0002 00E0 b .L14 320 .LVL34: 321 .L16: 322 .loc 1 730 30 is_stmt 1 discriminator 3 view .LVU87 323 .loc 1 730 33 is_stmt 0 discriminator 3 view .LVU88 324 0004 0133 adds r3, r3, #1 325 .LVL35: 326 .L14: 327 .loc 1 730 8 is_stmt 1 discriminator 1 view .LVU89 328 .loc 1 730 9 is_stmt 0 discriminator 1 view .LVU90 329 0006 1878 ldrb r0, [r3] @ zero_extendqisi2 330 .loc 1 730 8 discriminator 1 view .LVU91 331 0008 08B1 cbz r0, .L15 332 .loc 1 730 14 discriminator 2 view .LVU92 333 000a 8842 cmp r0, r1 334 000c FAD1 bne .L16 335 .L15: 731:Middlewares/Third_Party/FatFs/src/ff.c **** return *str; 336 .loc 1 731 2 is_stmt 1 view .LVU93 732:Middlewares/Third_Party/FatFs/src/ff.c **** } 337 .loc 1 732 1 is_stmt 0 view .LVU94 338 000e 7047 bx lr 339 .cfi_endproc 340 .LFE1190: 342 .section .text.chk_lock,"ax",%progbits 343 .align 1 344 .syntax unified 345 .thumb 346 .thumb_func 347 .fpu fpv5-d16 349 chk_lock: 350 .LVL36: 351 .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 **** ARM GAS /tmp/cczRNDQp.s page 20 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 **** } 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 **** { 352 .loc 1 775 1 is_stmt 1 view -0 353 .cfi_startproc 354 @ args = 0, pretend = 0, frame = 0 355 @ frame_needed = 0, uses_anonymous_args = 0 356 @ link register save eliminated. 357 .loc 1 775 1 is_stmt 0 view .LVU96 358 0000 10B4 push {r4} 359 .LCFI0: 360 .cfi_def_cfa_offset 4 361 .cfi_offset 4, -4 776:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, be; 362 .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++) { 363 .loc 1 779 2 view .LVU98 364 .LVL37: 365 .loc 1 779 14 is_stmt 0 view .LVU99 366 0002 4FF0000C mov ip, #0 367 .loc 1 779 9 view .LVU100 368 0006 6346 mov r3, ip 369 .loc 1 779 2 view .LVU101 370 0008 02E0 b .L18 371 .LVL38: 372 .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; ARM GAS /tmp/cczRNDQp.s page 21 373 .loc 1 785 7 view .LVU102 374 000a 4FF0010C mov ip, #1 375 .LVL39: 376 .L19: 779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 377 .loc 1 779 33 is_stmt 1 discriminator 2 view .LVU103 779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 378 .loc 1 779 34 is_stmt 0 discriminator 2 view .LVU104 379 000e 0133 adds r3, r3, #1 380 .LVL40: 381 .L18: 779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 382 .loc 1 779 19 is_stmt 1 discriminator 1 view .LVU105 779:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 383 .loc 1 779 2 is_stmt 0 discriminator 1 view .LVU106 384 0010 012B cmp r3, #1 385 0012 15D8 bhi .L20 780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 386 .loc 1 780 3 is_stmt 1 view .LVU107 780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 387 .loc 1 780 15 is_stmt 0 view .LVU108 388 0014 1A01 lsls r2, r3, #4 389 0016 184C ldr r4, .L32 390 0018 A258 ldr r2, [r4, r2] 780:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs) { /* Existing entry */ 391 .loc 1 780 6 view .LVU109 392 001a 002A cmp r2, #0 393 001c F5D0 beq .L25 781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 394 .loc 1 781 4 is_stmt 1 view .LVU110 781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 395 .loc 1 781 30 is_stmt 0 view .LVU111 396 001e 0468 ldr r4, [r0] 781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 397 .loc 1 781 7 view .LVU112 398 0020 A242 cmp r2, r4 399 0022 F4D1 bne .L19 782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break; 400 .loc 1 782 13 discriminator 1 view .LVU113 401 0024 144A ldr r2, .L32 402 0026 02EB0312 add r2, r2, r3, lsl #4 403 002a 5468 ldr r4, [r2, #4] 782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break; 404 .loc 1 782 28 discriminator 1 view .LVU114 405 002c 8268 ldr r2, [r0, #8] 781:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 406 .loc 1 781 34 discriminator 1 view .LVU115 407 002e 9442 cmp r4, r2 408 0030 EDD1 bne .L19 783:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Blank entry */ 409 .loc 1 783 13 view .LVU116 410 0032 114A ldr r2, .L32 411 0034 02EB0312 add r2, r2, r3, lsl #4 412 0038 9468 ldr r4, [r2, #8] 783:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Blank entry */ 413 .loc 1 783 23 view .LVU117 414 003a 4269 ldr r2, [r0, #20] ARM GAS /tmp/cczRNDQp.s page 22 782:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break; 415 .loc 1 782 36 view .LVU118 416 003c 9442 cmp r4, r2 417 003e E6D1 bne .L19 418 .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 */ 419 .loc 1 788 2 is_stmt 1 view .LVU119 420 .loc 1 788 5 is_stmt 0 view .LVU120 421 0040 022B cmp r3, #2 422 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 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; 423 .loc 1 793 2 is_stmt 1 view .LVU121 424 .loc 1 793 52 is_stmt 0 view .LVU122 425 0044 B1B9 cbnz r1, .L27 426 .loc 1 793 25 discriminator 2 view .LVU123 427 0046 0C4A ldr r2, .L32 428 0048 02EB0313 add r3, r2, r3, lsl #4 429 .LVL41: 430 .loc 1 793 25 discriminator 2 view .LVU124 431 004c 9B89 ldrh r3, [r3, #12] 432 .loc 1 793 14 discriminator 2 view .LVU125 433 004e B3F5807F cmp r3, #256 434 0052 0DD0 beq .L31 435 .loc 1 793 52 view .LVU126 436 0054 0020 movs r0, #0 437 .LVL42: 438 .L24: 794:Middlewares/Third_Party/FatFs/src/ff.c **** } 439 .loc 1 794 1 view .LVU127 440 0056 5DF8044B ldr r4, [sp], #4 441 .LCFI1: 442 .cfi_remember_state 443 .cfi_restore 4 444 .cfi_def_cfa_offset 0 445 005a 7047 bx lr 446 .LVL43: 447 .L30: 448 .LCFI2: 449 .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 450 .loc 1 789 3 is_stmt 1 view .LVU128 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 14 is_stmt 0 view .LVU129 452 005c 0229 cmp r1, #2 453 005e 14BF ite ne 454 0060 6346 movne r3, ip 455 0062 4CF00103 orreq r3, ip, #1 456 .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 457 .loc 1 789 35 view .LVU130 458 0066 0BB1 cbz r3, .L26 ARM GAS /tmp/cczRNDQp.s page 23 459 0068 0020 movs r0, #0 460 .LVL45: 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 461 .loc 1 789 35 view .LVU131 462 006a F4E7 b .L24 463 .LVL46: 464 .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 465 .loc 1 789 35 view .LVU132 466 006c 1220 movs r0, #18 467 .LVL47: 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 468 .loc 1 789 35 view .LVU133 469 006e F2E7 b .L24 470 .LVL48: 471 .L31: 793:Middlewares/Third_Party/FatFs/src/ff.c **** } 472 .loc 1 793 52 view .LVU134 473 0070 1020 movs r0, #16 474 .LVL49: 793:Middlewares/Third_Party/FatFs/src/ff.c **** } 475 .loc 1 793 52 view .LVU135 476 0072 F0E7 b .L24 477 .LVL50: 478 .L27: 793:Middlewares/Third_Party/FatFs/src/ff.c **** } 479 .loc 1 793 52 view .LVU136 480 0074 1020 movs r0, #16 481 .LVL51: 793:Middlewares/Third_Party/FatFs/src/ff.c **** } 482 .loc 1 793 52 view .LVU137 483 0076 EEE7 b .L24 484 .L33: 485 .align 2 486 .L32: 487 0078 00000000 .word .LANCHOR0 488 .cfi_endproc 489 .LFE1191: 491 .section .text.enq_lock,"ax",%progbits 492 .align 1 493 .syntax unified 494 .thumb 495 .thumb_func 496 .fpu fpv5-d16 498 enq_lock: 499 .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 **** { 500 .loc 1 799 1 is_stmt 1 view -0 501 .cfi_startproc 502 @ args = 0, pretend = 0, frame = 0 503 @ frame_needed = 0, uses_anonymous_args = 0 504 @ link register save eliminated. 800:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; ARM GAS /tmp/cczRNDQp.s page 24 505 .loc 1 800 2 view .LVU139 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++) ; 506 .loc 1 802 2 view .LVU140 507 .LVL52: 508 .loc 1 802 9 is_stmt 0 view .LVU141 509 0000 0020 movs r0, #0 510 .loc 1 802 2 view .LVU142 511 0002 00E0 b .L35 512 .LVL53: 513 .L37: 514 .loc 1 802 48 is_stmt 1 discriminator 4 view .LVU143 515 .loc 1 802 43 discriminator 4 view .LVU144 516 .loc 1 802 44 is_stmt 0 discriminator 4 view .LVU145 517 0004 0130 adds r0, r0, #1 518 .LVL54: 519 .L35: 520 .loc 1 802 14 is_stmt 1 discriminator 1 view .LVU146 521 .loc 1 802 2 is_stmt 0 discriminator 1 view .LVU147 522 0006 0128 cmp r0, #1 523 0008 04D8 bhi .L36 524 .loc 1 802 38 discriminator 3 view .LVU148 525 000a 0301 lsls r3, r0, #4 526 000c 034A ldr r2, .L38 527 000e D358 ldr r3, [r2, r3] 528 .loc 1 802 27 discriminator 3 view .LVU149 529 0010 002B cmp r3, #0 530 0012 F7D1 bne .L37 531 .L36: 803:Middlewares/Third_Party/FatFs/src/ff.c **** return (i == _FS_LOCK) ? 0 : 1; 532 .loc 1 803 2 is_stmt 1 view .LVU150 804:Middlewares/Third_Party/FatFs/src/ff.c **** } 533 .loc 1 804 1 is_stmt 0 view .LVU151 534 0014 0238 subs r0, r0, #2 535 .LVL55: 536 .loc 1 804 1 view .LVU152 537 0016 18BF it ne 538 0018 0120 movne r0, #1 539 .LVL56: 540 .loc 1 804 1 view .LVU153 541 001a 7047 bx lr 542 .L39: 543 .align 2 544 .L38: 545 001c 00000000 .word .LANCHOR0 546 .cfi_endproc 547 .LFE1192: 549 .section .text.inc_lock,"ax",%progbits 550 .align 1 551 .syntax unified 552 .thumb 553 .thumb_func 554 .fpu fpv5-d16 556 inc_lock: 557 .LVL57: 558 .LFB1193: 805:Middlewares/Third_Party/FatFs/src/ff.c **** ARM GAS /tmp/cczRNDQp.s page 25 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 **** { 559 .loc 1 812 1 is_stmt 1 view -0 560 .cfi_startproc 561 @ args = 0, pretend = 0, frame = 0 562 @ frame_needed = 0, uses_anonymous_args = 0 563 @ link register save eliminated. 564 .loc 1 812 1 is_stmt 0 view .LVU155 565 0000 70B4 push {r4, r5, r6} 566 .LCFI3: 567 .cfi_def_cfa_offset 12 568 .cfi_offset 4, -12 569 .cfi_offset 5, -8 570 .cfi_offset 6, -4 813:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 571 .loc 1 813 2 is_stmt 1 view .LVU156 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 */ 572 .loc 1 816 2 view .LVU157 573 .LVL58: 574 .loc 1 816 9 is_stmt 0 view .LVU158 575 0002 0023 movs r3, #0 576 .loc 1 816 2 view .LVU159 577 0004 00E0 b .L41 578 .LVL59: 579 .L42: 580 .loc 1 816 28 is_stmt 1 discriminator 2 view .LVU160 581 .loc 1 816 29 is_stmt 0 discriminator 2 view .LVU161 582 0006 0133 adds r3, r3, #1 583 .LVL60: 584 .L41: 585 .loc 1 816 14 is_stmt 1 discriminator 1 view .LVU162 586 .loc 1 816 2 is_stmt 0 discriminator 1 view .LVU163 587 0008 012B cmp r3, #1 588 000a 13D8 bhi .L43 817:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == dp->obj.fs && 589 .loc 1 817 3 is_stmt 1 view .LVU164 590 .loc 1 817 15 is_stmt 0 view .LVU165 591 000c 1A01 lsls r2, r3, #4 592 000e 244C ldr r4, .L58 593 0010 A458 ldr r4, [r4, r2] 594 .loc 1 817 29 view .LVU166 595 0012 0268 ldr r2, [r0] 596 .loc 1 817 6 view .LVU167 597 0014 9442 cmp r4, r2 598 0016 F6D1 bne .L42 818:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 599 .loc 1 818 12 discriminator 1 view .LVU168 600 0018 214A ldr r2, .L58 601 001a 02EB0312 add r2, r2, r3, lsl #4 602 001e 5468 ldr r4, [r2, #4] ARM GAS /tmp/cczRNDQp.s page 26 603 .loc 1 818 27 discriminator 1 view .LVU169 604 0020 8268 ldr r2, [r0, #8] 817:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == dp->obj.fs && 605 .loc 1 817 33 discriminator 1 view .LVU170 606 0022 9442 cmp r4, r2 607 0024 EFD1 bne .L42 819:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs == dp->dptr) break; 608 .loc 1 819 12 view .LVU171 609 0026 1E4A ldr r2, .L58 610 0028 02EB0312 add r2, r2, r3, lsl #4 611 002c 9468 ldr r4, [r2, #8] 612 .loc 1 819 22 view .LVU172 613 002e 4269 ldr r2, [r0, #20] 818:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu == dp->obj.sclust && 614 .loc 1 818 35 view .LVU173 615 0030 9442 cmp r4, r2 616 0032 E8D1 bne .L42 617 .L43: 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. */ 618 .loc 1 822 2 is_stmt 1 view .LVU174 619 .loc 1 822 5 is_stmt 0 view .LVU175 620 0034 022B cmp r3, #2 621 0036 0DD0 beq .L57 622 .LVL61: 623 .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) */ 624 .loc 1 831 2 is_stmt 1 view .LVU176 625 .loc 1 831 5 is_stmt 0 view .LVU177 626 0038 21B1 cbz r1, .L50 627 .loc 1 831 21 discriminator 1 view .LVU178 628 003a 194A ldr r2, .L58 629 003c 02EB0312 add r2, r2, r3, lsl #4 630 0040 9289 ldrh r2, [r2, #12] 631 .loc 1 831 10 discriminator 1 view .LVU179 632 0042 52BB cbnz r2, .L54 633 .L50: 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 */ 634 .loc 1 833 2 is_stmt 1 view .LVU180 635 .loc 1 833 15 is_stmt 0 view .LVU181 636 0044 F1B9 cbnz r1, .L55 637 .loc 1 833 39 discriminator 1 view .LVU182 638 0046 164A ldr r2, .L58 639 0048 02EB0312 add r2, r2, r3, lsl #4 640 004c 9189 ldrh r1, [r2, #12] 641 .LVL62: 642 .loc 1 833 15 discriminator 1 view .LVU183 ARM GAS /tmp/cczRNDQp.s page 27 643 004e 0131 adds r1, r1, #1 644 0050 89B2 uxth r1, r1 645 0052 19E0 b .L51 646 .LVL63: 647 .L57: 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 648 .loc 1 823 10 view .LVU184 649 0054 0023 movs r3, #0 650 .LVL64: 651 .L45: 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 652 .loc 1 823 15 is_stmt 1 discriminator 1 view .LVU185 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 653 .loc 1 823 3 is_stmt 0 discriminator 1 view .LVU186 654 0056 012B cmp r3, #1 655 0058 05D8 bhi .L47 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 656 .loc 1 823 39 discriminator 3 view .LVU187 657 005a 1A01 lsls r2, r3, #4 658 005c 104C ldr r4, .L58 659 005e A258 ldr r2, [r4, r2] 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 660 .loc 1 823 28 discriminator 3 view .LVU188 661 0060 0AB1 cbz r2, .L47 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 662 .loc 1 823 49 is_stmt 1 discriminator 4 view .LVU189 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 663 .loc 1 823 44 discriminator 4 view .LVU190 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 664 .loc 1 823 45 is_stmt 0 discriminator 4 view .LVU191 665 0062 0133 adds r3, r3, #1 666 .LVL65: 823:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; 667 .loc 1 823 45 discriminator 4 view .LVU192 668 0064 F7E7 b .L45 669 .L47: 824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs; 670 .loc 1 824 3 is_stmt 1 view .LVU193 824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs; 671 .loc 1 824 6 is_stmt 0 view .LVU194 672 0066 022B cmp r3, #2 673 0068 15D0 beq .L53 825:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu = dp->obj.sclust; 674 .loc 1 825 3 is_stmt 1 view .LVU195 825:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].clu = dp->obj.sclust; 675 .loc 1 825 15 is_stmt 0 view .LVU196 676 006a 0D4D ldr r5, .L58 677 006c 1C01 lsls r4, r3, #4 678 006e 05EB0312 add r2, r5, r3, lsl #4 679 0072 0668 ldr r6, [r0] 680 0074 2E51 str r6, [r5, r4] 826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr; 681 .loc 1 826 3 is_stmt 1 view .LVU197 826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr; 682 .loc 1 826 25 is_stmt 0 view .LVU198 683 0076 8468 ldr r4, [r0, #8] 826:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ofs = dp->dptr; ARM GAS /tmp/cczRNDQp.s page 28 684 .loc 1 826 16 view .LVU199 685 0078 5460 str r4, [r2, #4] 827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0; 686 .loc 1 827 3 is_stmt 1 view .LVU200 827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0; 687 .loc 1 827 20 is_stmt 0 view .LVU201 688 007a 4069 ldr r0, [r0, #20] 689 .LVL66: 827:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = 0; 690 .loc 1 827 16 view .LVU202 691 007c 9060 str r0, [r2, #8] 828:Middlewares/Third_Party/FatFs/src/ff.c **** } 692 .loc 1 828 3 is_stmt 1 view .LVU203 828:Middlewares/Third_Party/FatFs/src/ff.c **** } 693 .loc 1 828 16 is_stmt 0 view .LVU204 694 007e 0020 movs r0, #0 695 0080 9081 strh r0, [r2, #12] @ movhi 696 0082 D9E7 b .L46 697 .L55: 698 .loc 1 833 15 view .LVU205 699 0084 4FF48071 mov r1, #256 700 .LVL67: 701 .L51: 702 .loc 1 833 15 discriminator 4 view .LVU206 703 0088 054A ldr r2, .L58 704 008a 02EB0312 add r2, r2, r3, lsl #4 705 008e 9181 strh r1, [r2, #12] @ movhi 834:Middlewares/Third_Party/FatFs/src/ff.c **** 835:Middlewares/Third_Party/FatFs/src/ff.c **** return i + 1; 706 .loc 1 835 2 is_stmt 1 discriminator 4 view .LVU207 707 .loc 1 835 11 is_stmt 0 discriminator 4 view .LVU208 708 0090 581C adds r0, r3, #1 709 .L40: 836:Middlewares/Third_Party/FatFs/src/ff.c **** } 710 .loc 1 836 1 view .LVU209 711 0092 70BC pop {r4, r5, r6} 712 .LCFI4: 713 .cfi_remember_state 714 .cfi_restore 6 715 .cfi_restore 5 716 .cfi_restore 4 717 .cfi_def_cfa_offset 0 718 0094 7047 bx lr 719 .LVL68: 720 .L53: 721 .LCFI5: 722 .cfi_restore_state 824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs; 723 .loc 1 824 29 view .LVU210 724 0096 0020 movs r0, #0 725 .LVL69: 824:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].fs = dp->obj.fs; 726 .loc 1 824 29 view .LVU211 727 0098 FBE7 b .L40 728 .L54: 831:Middlewares/Third_Party/FatFs/src/ff.c **** 729 .loc 1 831 34 view .LVU212 ARM GAS /tmp/cczRNDQp.s page 29 730 009a 0020 movs r0, #0 731 009c F9E7 b .L40 732 .L59: 733 009e 00BF .align 2 734 .L58: 735 00a0 00000000 .word .LANCHOR0 736 .cfi_endproc 737 .LFE1193: 739 .section .text.dec_lock,"ax",%progbits 740 .align 1 741 .syntax unified 742 .thumb 743 .thumb_func 744 .fpu fpv5-d16 746 dec_lock: 747 .LVL70: 748 .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 **** { 749 .loc 1 843 1 is_stmt 1 view -0 750 .cfi_startproc 751 @ args = 0, pretend = 0, frame = 0 752 @ frame_needed = 0, uses_anonymous_args = 0 753 @ link register save eliminated. 844:Middlewares/Third_Party/FatFs/src/ff.c **** WORD n; 754 .loc 1 844 2 view .LVU214 845:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 755 .loc 1 845 2 view .LVU215 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 */ 756 .loc 1 848 2 view .LVU216 757 .loc 1 848 5 is_stmt 0 view .LVU217 758 0000 0138 subs r0, r0, #1 759 .LVL71: 760 .loc 1 848 5 view .LVU218 761 0002 0128 cmp r0, #1 762 0004 15D8 bhi .L63 849:Middlewares/Third_Party/FatFs/src/ff.c **** n = Files[i].ctr; 763 .loc 1 849 3 is_stmt 1 view .LVU219 764 .loc 1 849 5 is_stmt 0 view .LVU220 765 0006 0D4B ldr r3, .L66 766 0008 03EB0013 add r3, r3, r0, lsl #4 767 000c 9B89 ldrh r3, [r3, #12] 768 .LVL72: 850:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0x100) n = 0; /* If write mode open, delete the entry */ 769 .loc 1 850 3 is_stmt 1 view .LVU221 770 .loc 1 850 6 is_stmt 0 view .LVU222 771 000e B3F5807F cmp r3, #256 772 0012 03D0 beq .L64 851:Middlewares/Third_Party/FatFs/src/ff.c **** if (n > 0) n--; /* Decrement read mode open count */ 773 .loc 1 851 3 is_stmt 1 view .LVU223 ARM GAS /tmp/cczRNDQp.s page 30 774 .loc 1 851 6 is_stmt 0 view .LVU224 775 0014 1BB1 cbz r3, .L62 776 .loc 1 851 14 is_stmt 1 discriminator 1 view .LVU225 777 .loc 1 851 15 is_stmt 0 discriminator 1 view .LVU226 778 0016 013B subs r3, r3, #1 779 .LVL73: 780 .loc 1 851 15 discriminator 1 view .LVU227 781 0018 9BB2 uxth r3, r3 782 .LVL74: 783 .loc 1 851 15 discriminator 1 view .LVU228 784 001a 00E0 b .L62 785 .L64: 850:Middlewares/Third_Party/FatFs/src/ff.c **** if (n == 0x100) n = 0; /* If write mode open, delete the entry */ 786 .loc 1 850 21 view .LVU229 787 001c 0023 movs r3, #0 788 .LVL75: 789 .L62: 852:Middlewares/Third_Party/FatFs/src/ff.c **** Files[i].ctr = n; 790 .loc 1 852 3 is_stmt 1 view .LVU230 791 .loc 1 852 16 is_stmt 0 view .LVU231 792 001e 074A ldr r2, .L66 793 0020 02EB0012 add r2, r2, r0, lsl #4 794 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 */ 795 .loc 1 853 3 is_stmt 1 view .LVU232 796 .loc 1 853 6 is_stmt 0 view .LVU233 797 0026 33B9 cbnz r3, .L65 798 .loc 1 853 15 is_stmt 1 discriminator 1 view .LVU234 799 .loc 1 853 27 is_stmt 0 discriminator 1 view .LVU235 800 0028 0301 lsls r3, r0, #4 801 .LVL76: 802 .loc 1 853 27 discriminator 1 view .LVU236 803 002a 0020 movs r0, #0 804 .LVL77: 805 .loc 1 853 27 discriminator 1 view .LVU237 806 002c 034A ldr r2, .L66 807 .LVL78: 808 .loc 1 853 27 discriminator 1 view .LVU238 809 002e D050 str r0, [r2, r3] 810 0030 7047 bx lr 811 .LVL79: 812 .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 */ 813 .loc 1 856 7 view .LVU239 814 0032 0220 movs r0, #2 815 .LVL80: 816 .loc 1 856 7 view .LVU240 817 0034 7047 bx lr 818 .LVL81: 819 .L65: 854:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 820 .loc 1 854 7 view .LVU241 821 0036 0020 movs r0, #0 822 .LVL82: 857:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 31 858:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 823 .loc 1 858 2 is_stmt 1 view .LVU242 859:Middlewares/Third_Party/FatFs/src/ff.c **** } 824 .loc 1 859 1 is_stmt 0 view .LVU243 825 0038 7047 bx lr 826 .L67: 827 003a 00BF .align 2 828 .L66: 829 003c 00000000 .word .LANCHOR0 830 .cfi_endproc 831 .LFE1194: 833 .section .text.clear_lock,"ax",%progbits 834 .align 1 835 .syntax unified 836 .thumb 837 .thumb_func 838 .fpu fpv5-d16 840 clear_lock: 841 .LVL83: 842 .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 **** { 843 .loc 1 866 1 is_stmt 1 view -0 844 .cfi_startproc 845 @ args = 0, pretend = 0, frame = 0 846 @ frame_needed = 0, uses_anonymous_args = 0 847 @ link register save eliminated. 867:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 848 .loc 1 867 2 view .LVU245 868:Middlewares/Third_Party/FatFs/src/ff.c **** 869:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < _FS_LOCK; i++) { 849 .loc 1 869 2 view .LVU246 850 .loc 1 869 9 is_stmt 0 view .LVU247 851 0000 0023 movs r3, #0 852 .loc 1 869 2 view .LVU248 853 0002 03E0 b .L73 854 .LVL84: 855 .L80: 856 .LCFI6: 857 .cfi_def_cfa_offset 4 858 .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 **** } 859 .loc 1 872 1 view .LVU249 860 0004 5DF8044B ldr r4, [sp], #4 861 .LCFI7: 862 .cfi_restore 4 863 .cfi_def_cfa_offset 0 864 0008 7047 bx lr 865 .L79: 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; ARM GAS /tmp/cczRNDQp.s page 32 866 .loc 1 869 28 is_stmt 1 view .LVU250 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 867 .loc 1 869 29 is_stmt 0 view .LVU251 868 000a 0133 adds r3, r3, #1 869 .LVL85: 870 .L73: 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 871 .loc 1 869 14 is_stmt 1 view .LVU252 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 872 .loc 1 869 2 is_stmt 0 view .LVU253 873 000c 012B cmp r3, #1 874 000e 11D8 bhi .L78 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 875 .loc 1 870 3 is_stmt 1 view .LVU254 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 876 .loc 1 870 15 is_stmt 0 view .LVU255 877 0010 1A01 lsls r2, r3, #4 878 0012 0949 ldr r1, .L81 879 0014 8A58 ldr r2, [r1, r2] 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 880 .loc 1 870 6 view .LVU256 881 0016 8242 cmp r2, r0 882 0018 F7D1 bne .L79 866:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 883 .loc 1 866 1 view .LVU257 884 001a 10B4 push {r4} 885 .LCFI8: 886 .cfi_def_cfa_offset 4 887 .cfi_offset 4, -4 888 .L74: 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 889 .loc 1 870 26 is_stmt 1 discriminator 1 view .LVU258 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 890 .loc 1 870 38 is_stmt 0 discriminator 1 view .LVU259 891 001c 1A01 lsls r2, r3, #4 892 001e 0024 movs r4, #0 893 0020 8C50 str r4, [r1, r2] 894 .L70: 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 895 .loc 1 869 28 is_stmt 1 discriminator 2 view .LVU260 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 896 .loc 1 869 29 is_stmt 0 discriminator 2 view .LVU261 897 0022 0133 adds r3, r3, #1 898 .LVL86: 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 899 .loc 1 869 14 is_stmt 1 discriminator 2 view .LVU262 869:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 900 .loc 1 869 2 is_stmt 0 discriminator 2 view .LVU263 901 0024 012B cmp r3, #1 902 0026 EDD8 bhi .L80 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 903 .loc 1 870 3 is_stmt 1 view .LVU264 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 904 .loc 1 870 15 is_stmt 0 view .LVU265 905 0028 1A01 lsls r2, r3, #4 906 002a 0349 ldr r1, .L81 907 002c 8A58 ldr r2, [r1, r2] ARM GAS /tmp/cczRNDQp.s page 33 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 908 .loc 1 870 6 view .LVU266 909 002e 8242 cmp r2, r0 910 0030 F7D1 bne .L70 911 0032 F3E7 b .L74 912 .L78: 913 .LCFI9: 914 .cfi_def_cfa_offset 0 915 .cfi_restore 4 870:Middlewares/Third_Party/FatFs/src/ff.c **** if (Files[i].fs == fs) Files[i].fs = 0; 916 .loc 1 870 6 view .LVU267 917 0034 7047 bx lr 918 .L82: 919 0036 00BF .align 2 920 .L81: 921 0038 00000000 .word .LANCHOR0 922 .cfi_endproc 923 .LFE1195: 925 .section .text.clust2sect,"ax",%progbits 926 .align 1 927 .syntax unified 928 .thumb 929 .thumb_func 930 .fpu fpv5-d16 932 clust2sect: 933 .LVL87: 934 .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 **** { 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 **** } ARM GAS /tmp/cczRNDQp.s page 34 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 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); ARM GAS /tmp/cczRNDQp.s page 35 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 **** { 935 .loc 1 987 1 is_stmt 1 view -0 936 .cfi_startproc 937 @ args = 0, pretend = 0, frame = 0 938 @ frame_needed = 0, uses_anonymous_args = 0 939 @ link register save eliminated. 988:Middlewares/Third_Party/FatFs/src/ff.c **** clst -= 2; 940 .loc 1 988 2 view .LVU269 941 .loc 1 988 7 is_stmt 0 view .LVU270 942 0000 0239 subs r1, r1, #2 943 .LVL88: 989:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */ 944 .loc 1 989 2 is_stmt 1 view .LVU271 945 .loc 1 989 16 is_stmt 0 view .LVU272 946 0002 8369 ldr r3, [r0, #24] 947 .loc 1 989 27 view .LVU273 948 0004 023B subs r3, r3, #2 949 .loc 1 989 5 view .LVU274 950 0006 8B42 cmp r3, r1 951 0008 04D9 bls .L85 990:Middlewares/Third_Party/FatFs/src/ff.c **** return clst * fs->csize + fs->database; 952 .loc 1 990 2 is_stmt 1 view .LVU275 953 .loc 1 990 18 is_stmt 0 view .LVU276 954 000a 4389 ldrh r3, [r0, #10] 955 .loc 1 990 30 view .LVU277 956 000c C06A ldr r0, [r0, #44] 957 .LVL89: 958 .loc 1 990 26 view .LVU278 959 000e 01FB0300 mla r0, r1, r3, r0 960 0012 7047 bx lr ARM GAS /tmp/cczRNDQp.s page 36 961 .LVL90: 962 .L85: 989:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */ 963 .loc 1 989 39 view .LVU279 964 0014 0020 movs r0, #0 965 .LVL91: 991:Middlewares/Third_Party/FatFs/src/ff.c **** } 966 .loc 1 991 1 view .LVU280 967 0016 7047 bx lr 968 .cfi_endproc 969 .LFE1199: 971 .section .text.clmt_clust,"ax",%progbits 972 .align 1 973 .syntax unified 974 .thumb 975 .thumb_func 976 .fpu fpv5-d16 978 clmt_clust: 979 .LVL92: 980 .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 **** 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; ARM GAS /tmp/cczRNDQp.s page 37 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 **** } 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 **** ) ARM GAS /tmp/cczRNDQp.s page 38 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 **** } 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 */ ARM GAS /tmp/cczRNDQp.s page 39 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 **** /*----------------------------------------*/ 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 ARM GAS /tmp/cczRNDQp.s page 40 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 **** /*---------------------------------------------*/ 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; ARM GAS /tmp/cczRNDQp.s page 41 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? */ 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 ARM GAS /tmp/cczRNDQp.s page 42 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 **** { 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; ARM GAS /tmp/cczRNDQp.s page 43 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' */ 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 **** } ARM GAS /tmp/cczRNDQp.s page 44 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 **** { 981 .loc 1 1444 1 is_stmt 1 view -0 982 .cfi_startproc 983 @ args = 0, pretend = 0, frame = 0 984 @ frame_needed = 0, uses_anonymous_args = 0 985 @ link register save eliminated. 1445:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl, ncl, *tbl; 986 .loc 1 1445 2 view .LVU282 1446:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = fp->obj.fs; 987 .loc 1 1446 2 view .LVU283 988 .loc 1 1446 9 is_stmt 0 view .LVU284 989 0000 0268 ldr r2, [r0] 990 .LVL93: 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 */ 991 .loc 1 1449 2 is_stmt 1 view .LVU285 992 .loc 1 1449 10 is_stmt 0 view .LVU286 993 0002 C36A ldr r3, [r0, #44] 994 .loc 1 1449 6 view .LVU287 995 0004 0433 adds r3, r3, #4 996 .LVL94: 1450:Middlewares/Third_Party/FatFs/src/ff.c **** cl = (DWORD)(ofs / SS(fs) / fs->csize); /* Cluster order from top of the file */ 997 .loc 1 1450 2 is_stmt 1 view .LVU288 998 .loc 1 1450 21 is_stmt 0 view .LVU289 999 0006 9089 ldrh r0, [r2, #12] 1000 .LVL95: 1001 .loc 1 1450 19 view .LVU290 1002 0008 B1FBF0F1 udiv r1, r1, r0 1003 .LVL96: 1004 .loc 1 1450 32 view .LVU291 1005 000c 5289 ldrh r2, [r2, #10] 1006 .LVL97: 1007 .loc 1 1450 5 view .LVU292 1008 000e B1FBF2F1 udiv r1, r1, r2 1009 .LVL98: 1010 .loc 1 1450 5 view .LVU293 1011 0012 01E0 b .L89 1012 .LVL99: 1013 .L90: 1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { ARM GAS /tmp/cczRNDQp.s page 45 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 */ 1014 .loc 1 1455 3 is_stmt 1 view .LVU294 1015 .loc 1 1455 6 is_stmt 0 view .LVU295 1016 0014 091A subs r1, r1, r0 1017 .LVL100: 1018 .loc 1 1455 14 is_stmt 1 view .LVU296 1019 .loc 1 1455 17 is_stmt 0 view .LVU297 1020 0016 0833 adds r3, r3, #8 1021 .LVL101: 1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { 1022 .loc 1 1451 8 is_stmt 1 view .LVU298 1023 .L89: 1451:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { 1024 .loc 1 1451 2 view .LVU299 1452:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0) return 0; /* End of table? (error) */ 1025 .loc 1 1452 3 view .LVU300 1452:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0) return 0; /* End of table? (error) */ 1026 .loc 1 1452 7 is_stmt 0 view .LVU301 1027 0018 1868 ldr r0, [r3] 1028 .LVL102: 1453:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl < ncl) break; /* In this fragment? */ 1029 .loc 1 1453 3 is_stmt 1 view .LVU302 1453:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl < ncl) break; /* In this fragment? */ 1030 .loc 1 1453 6 is_stmt 0 view .LVU303 1031 001a 18B1 cbz r0, .L86 1454:Middlewares/Third_Party/FatFs/src/ff.c **** cl -= ncl; tbl++; /* Next fragment */ 1032 .loc 1 1454 3 is_stmt 1 view .LVU304 1454:Middlewares/Third_Party/FatFs/src/ff.c **** cl -= ncl; tbl++; /* Next fragment */ 1033 .loc 1 1454 6 is_stmt 0 view .LVU305 1034 001c 8142 cmp r1, r0 1035 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 */ 1036 .loc 1 1457 2 is_stmt 1 view .LVU306 1037 .loc 1 1457 14 is_stmt 0 view .LVU307 1038 0020 5868 ldr r0, [r3, #4] 1039 .LVL103: 1040 .loc 1 1457 12 view .LVU308 1041 0022 0844 add r0, r0, r1 1042 .L86: 1458:Middlewares/Third_Party/FatFs/src/ff.c **** } 1043 .loc 1 1458 1 view .LVU309 1044 0024 7047 bx lr 1045 .cfi_endproc 1046 .LFE1204: 1048 .section .text.ld_clust,"ax",%progbits 1049 .align 1 1050 .syntax unified 1051 .thumb 1052 .thumb_func 1053 .fpu fpv5-d16 1055 ld_clust: 1056 .LVL104: 1057 .LFB1208: ARM GAS /tmp/cczRNDQp.s page 46 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); 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 */ ARM GAS /tmp/cczRNDQp.s page 47 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 */ 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 **** } ARM GAS /tmp/cczRNDQp.s page 48 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 */ 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 **** /*-----------------------------------------------------------------------*/ ARM GAS /tmp/cczRNDQp.s page 49 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 **** { 1058 .loc 1 1636 1 is_stmt 1 view -0 1059 .cfi_startproc 1060 @ args = 0, pretend = 0, frame = 0 1061 @ frame_needed = 0, uses_anonymous_args = 0 1062 .loc 1 1636 1 is_stmt 0 view .LVU311 1063 0000 70B5 push {r4, r5, r6, lr} 1064 .LCFI10: 1065 .cfi_def_cfa_offset 16 1066 .cfi_offset 4, -16 1067 .cfi_offset 5, -12 1068 .cfi_offset 6, -8 1069 .cfi_offset 14, -4 1070 0002 0646 mov r6, r0 1071 0004 0D46 mov r5, r1 1637:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cl; 1072 .loc 1 1637 2 is_stmt 1 view .LVU312 1638:Middlewares/Third_Party/FatFs/src/ff.c **** 1639:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_word(dir + DIR_FstClusLO); 1073 .loc 1 1639 2 view .LVU313 1074 .loc 1 1639 7 is_stmt 0 view .LVU314 1075 0006 01F11A00 add r0, r1, #26 1076 .LVL105: 1077 .loc 1 1639 7 view .LVU315 1078 000a FFF7FEFF bl ld_word 1079 .LVL106: 1640:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32) { 1080 .loc 1 1640 2 is_stmt 1 view .LVU316 1081 .loc 1 1640 8 is_stmt 0 view .LVU317 1082 000e 3378 ldrb r3, [r6] @ zero_extendqisi2 1083 .loc 1 1640 5 view .LVU318 1084 0010 032B cmp r3, #3 1085 0012 00D0 beq .L94 1086 .LVL107: 1087 .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 **** } 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 **** } 1088 .loc 1 1645 1 view .LVU319 1089 0014 70BD pop {r4, r5, r6, pc} 1090 .LVL108: 1091 .L94: 1092 .loc 1 1645 1 view .LVU320 1093 0016 0446 mov r4, r0 1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; 1094 .loc 1 1641 3 is_stmt 1 view .LVU321 1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; 1095 .loc 1 1641 16 is_stmt 0 view .LVU322 1096 0018 05F11400 add r0, r5, #20 ARM GAS /tmp/cczRNDQp.s page 50 1097 .LVL109: 1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; 1098 .loc 1 1641 16 view .LVU323 1099 001c FFF7FEFF bl ld_word 1100 .LVL110: 1641:Middlewares/Third_Party/FatFs/src/ff.c **** cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; 1101 .loc 1 1641 6 view .LVU324 1102 0020 44EA0040 orr r0, r4, r0, lsl #16 1103 .LVL111: 1644:Middlewares/Third_Party/FatFs/src/ff.c **** } 1104 .loc 1 1644 2 is_stmt 1 view .LVU325 1644:Middlewares/Third_Party/FatFs/src/ff.c **** } 1105 .loc 1 1644 9 is_stmt 0 view .LVU326 1106 0024 F6E7 b .L91 1107 .cfi_endproc 1108 .LFE1208: 1110 .section .text.st_clust,"ax",%progbits 1111 .align 1 1112 .syntax unified 1113 .thumb 1114 .thumb_func 1115 .fpu fpv5-d16 1117 st_clust: 1118 .LVL112: 1119 .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 **** { 1120 .loc 1 1655 1 is_stmt 1 view -0 1121 .cfi_startproc 1122 @ args = 0, pretend = 0, frame = 0 1123 @ frame_needed = 0, uses_anonymous_args = 0 1124 .loc 1 1655 1 is_stmt 0 view .LVU328 1125 0000 70B5 push {r4, r5, r6, lr} 1126 .LCFI11: 1127 .cfi_def_cfa_offset 16 1128 .cfi_offset 4, -16 1129 .cfi_offset 5, -12 1130 .cfi_offset 6, -8 1131 .cfi_offset 14, -4 1132 0002 0646 mov r6, r0 1133 0004 0C46 mov r4, r1 1134 0006 1546 mov r5, r2 1656:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_FstClusLO, (WORD)cl); 1135 .loc 1 1656 2 is_stmt 1 view .LVU329 1136 0008 91B2 uxth r1, r2 1137 .LVL113: 1138 .loc 1 1656 2 is_stmt 0 view .LVU330 1139 000a 04F11A00 add r0, r4, #26 1140 .LVL114: ARM GAS /tmp/cczRNDQp.s page 51 1141 .loc 1 1656 2 view .LVU331 1142 000e FFF7FEFF bl st_word 1143 .LVL115: 1657:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32) { 1144 .loc 1 1657 2 is_stmt 1 view .LVU332 1145 .loc 1 1657 8 is_stmt 0 view .LVU333 1146 0012 3378 ldrb r3, [r6] @ zero_extendqisi2 1147 .loc 1 1657 5 view .LVU334 1148 0014 032B cmp r3, #3 1149 0016 00D0 beq .L98 1150 .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 **** } 1151 .loc 1 1660 1 view .LVU335 1152 0018 70BD pop {r4, r5, r6, pc} 1153 .LVL116: 1154 .L98: 1658:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16)); 1155 .loc 1 1658 3 is_stmt 1 view .LVU336 1156 001a 290C lsrs r1, r5, #16 1157 001c 04F11400 add r0, r4, #20 1158 0020 FFF7FEFF bl st_word 1159 .LVL117: 1160 .loc 1 1660 1 is_stmt 0 view .LVU337 1161 0024 F8E7 b .L95 1162 .cfi_endproc 1163 .LFE1209: 1165 .section .text.get_fileinfo,"ax",%progbits 1166 .align 1 1167 .syntax unified 1168 .thumb 1169 .thumb_func 1170 .fpu fpv5-d16 1172 get_fileinfo: 1173 .LVL118: 1174 .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 **** /*------------------------------------------------------------------------*/ 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 **** ) ARM GAS /tmp/cczRNDQp.s page 52 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 **** 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? */ ARM GAS /tmp/cczRNDQp.s page 53 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 **** 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 **** ) ARM GAS /tmp/cczRNDQp.s page 54 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 **** 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 **** { ARM GAS /tmp/cczRNDQp.s page 55 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 **** { 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 **** ARM GAS /tmp/cczRNDQp.s page 56 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) */ 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 */ ARM GAS /tmp/cczRNDQp.s page 57 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; 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 **** ARM GAS /tmp/cczRNDQp.s page 58 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 **** 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; ARM GAS /tmp/cczRNDQp.s page 59 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 **** 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; ARM GAS /tmp/cczRNDQp.s page 60 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? */ 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 */ ARM GAS /tmp/cczRNDQp.s page 61 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? */ 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]; ARM GAS /tmp/cczRNDQp.s page 62 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 **** { 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 */ ARM GAS /tmp/cczRNDQp.s page 63 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); 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 **** ARM GAS /tmp/cczRNDQp.s page 64 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; 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 **** } ARM GAS /tmp/cczRNDQp.s page 65 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 **** { 1175 .loc 1 2448 1 is_stmt 1 view -0 1176 .cfi_startproc 1177 @ args = 0, pretend = 0, frame = 0 1178 @ frame_needed = 0, uses_anonymous_args = 0 1179 .loc 1 2448 1 is_stmt 0 view .LVU339 1180 0000 38B5 push {r3, r4, r5, lr} 1181 .LCFI12: 1182 .cfi_def_cfa_offset 16 1183 .cfi_offset 3, -16 1184 .cfi_offset 4, -12 1185 .cfi_offset 5, -8 1186 .cfi_offset 14, -4 2449:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j; 1187 .loc 1 2449 2 is_stmt 1 view .LVU340 2450:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c; 1188 .loc 1 2450 2 view .LVU341 2451:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tm; 1189 .loc 1 2451 2 view .LVU342 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 */ 1190 .loc 1 2458 2 view .LVU343 1191 .loc 1 2458 16 is_stmt 0 view .LVU344 1192 0002 0023 movs r3, #0 1193 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 */ ARM GAS /tmp/cczRNDQp.s page 66 1194 .loc 1 2459 2 is_stmt 1 view .LVU345 1195 .loc 1 2459 9 is_stmt 0 view .LVU346 1196 0006 C369 ldr r3, [r0, #28] 1197 .loc 1 2459 5 view .LVU347 1198 0008 73B3 cbz r3, .L99 1199 000a 0546 mov r5, r0 1200 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])) { 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 **** } ARM GAS /tmp/cczRNDQp.s page 67 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; 1201 .loc 1 2519 8 view .LVU348 1202 000e 0022 movs r2, #0 1203 .loc 1 2519 4 view .LVU349 1204 0010 1346 mov r3, r2 1205 0012 06E0 b .L101 1206 .LVL119: 1207 .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 */ 1208 .loc 1 2524 3 is_stmt 1 view .LVU350 1209 .loc 1 2524 6 is_stmt 0 view .LVU351 1210 0014 BCF1090F cmp ip, #9 1211 0018 0FD0 beq .L108 1212 .L104: 2525:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c; 1213 .loc 1 2525 3 is_stmt 1 view .LVU352 1214 .LVL120: 1215 .loc 1 2525 19 is_stmt 0 view .LVU353 1216 001a A118 adds r1, r4, r2 1217 001c 4B72 strb r3, [r1, #9] 1218 .loc 1 2525 15 view .LVU354 1219 001e 0132 adds r2, r2, #1 1220 .LVL121: 1221 .L102: 1222 .loc 1 2525 15 view .LVU355 1223 0020 6346 mov r3, ip 1224 .LVL122: 1225 .L101: 2520:Middlewares/Third_Party/FatFs/src/ff.c **** while (i < 11) { /* Copy name body and extension */ 1226 .loc 1 2520 8 is_stmt 1 view .LVU356 1227 0022 0A2B cmp r3, #10 1228 0024 0ED8 bhi .L109 2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */ 1229 .loc 1 2521 3 view .LVU357 2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */ 1230 .loc 1 2521 23 is_stmt 0 view .LVU358 1231 0026 03F1010C add ip, r3, #1 1232 .LVL123: 2521:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == ' ') continue; /* Skip padding spaces */ 1233 .loc 1 2521 5 view .LVU359 1234 002a 296A ldr r1, [r5, #32] 1235 002c CB5C ldrb r3, [r1, r3] @ zero_extendqisi2 1236 .LVL124: 2522:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ ARM GAS /tmp/cczRNDQp.s page 68 1237 .loc 1 2522 3 is_stmt 1 view .LVU360 2522:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ 1238 .loc 1 2522 6 is_stmt 0 view .LVU361 1239 002e 202B cmp r3, #32 1240 0030 F6D0 beq .L102 2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ 1241 .loc 1 2523 3 is_stmt 1 view .LVU362 2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ 1242 .loc 1 2523 6 is_stmt 0 view .LVU363 1243 0032 052B cmp r3, #5 1244 0034 EED1 bne .L103 2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ 1245 .loc 1 2523 21 view .LVU364 1246 0036 E523 movs r3, #229 1247 .LVL125: 2523:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ 1248 .loc 1 2523 21 view .LVU365 1249 0038 ECE7 b .L103 1250 .LVL126: 1251 .L108: 2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c; 1252 .loc 1 2524 15 is_stmt 1 discriminator 1 view .LVU366 2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c; 1253 .loc 1 2524 31 is_stmt 0 discriminator 1 view .LVU367 1254 003a A118 adds r1, r4, r2 1255 003c 2E20 movs r0, #46 1256 003e 4872 strb r0, [r1, #9] 2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c; 1257 .loc 1 2524 27 discriminator 1 view .LVU368 1258 0040 0132 adds r2, r2, #1 1259 .LVL127: 2524:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j++] = c; 1260 .loc 1 2524 27 discriminator 1 view .LVU369 1261 0042 EAE7 b .L104 1262 .LVL128: 1263 .L109: 2526:Middlewares/Third_Party/FatFs/src/ff.c **** } 2527:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fname[j] = 0; 1264 .loc 1 2527 2 is_stmt 1 view .LVU370 1265 .loc 1 2527 16 is_stmt 0 view .LVU371 1266 0044 2244 add r2, r2, r4 1267 .LVL129: 1268 .loc 1 2527 16 view .LVU372 1269 0046 0023 movs r3, #0 1270 .LVL130: 1271 .loc 1 2527 16 view .LVU373 1272 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 */ 1273 .loc 1 2530 2 is_stmt 1 view .LVU374 1274 .loc 1 2530 19 is_stmt 0 view .LVU375 1275 004a 2B6A ldr r3, [r5, #32] 1276 .loc 1 2530 15 view .LVU376 1277 004c DB7A ldrb r3, [r3, #11] @ zero_extendqisi2 1278 004e 2372 strb r3, [r4, #8] 2531:Middlewares/Third_Party/FatFs/src/ff.c **** fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */ ARM GAS /tmp/cczRNDQp.s page 69 1279 .loc 1 2531 2 is_stmt 1 view .LVU377 1280 .loc 1 2531 26 is_stmt 0 view .LVU378 1281 0050 286A ldr r0, [r5, #32] 1282 .loc 1 2531 15 view .LVU379 1283 0052 1C30 adds r0, r0, #28 1284 0054 FFF7FEFF bl ld_dword 1285 .LVL131: 1286 .loc 1 2531 13 view .LVU380 1287 0058 2060 str r0, [r4] 2532:Middlewares/Third_Party/FatFs/src/ff.c **** tm = ld_dword(dp->dir + DIR_ModTime); /* Timestamp */ 1288 .loc 1 2532 2 is_stmt 1 view .LVU381 1289 .loc 1 2532 18 is_stmt 0 view .LVU382 1290 005a 286A ldr r0, [r5, #32] 1291 .loc 1 2532 7 view .LVU383 1292 005c 1630 adds r0, r0, #22 1293 005e FFF7FEFF bl ld_dword 1294 .LVL132: 2533:Middlewares/Third_Party/FatFs/src/ff.c **** fno->ftime = (WORD)tm; fno->fdate = (WORD)(tm >> 16); 1295 .loc 1 2533 2 is_stmt 1 view .LVU384 1296 .loc 1 2533 13 is_stmt 0 view .LVU385 1297 0062 E080 strh r0, [r4, #6] @ movhi 1298 .loc 1 2533 25 is_stmt 1 view .LVU386 1299 .loc 1 2533 38 is_stmt 0 view .LVU387 1300 0064 000C lsrs r0, r0, #16 1301 .LVL133: 1302 .loc 1 2533 36 view .LVU388 1303 0066 A080 strh r0, [r4, #4] @ movhi 1304 .LVL134: 1305 .L99: 2534:Middlewares/Third_Party/FatFs/src/ff.c **** } 1306 .loc 1 2534 1 view .LVU389 1307 0068 38BD pop {r3, r4, r5, pc} 1308 .cfi_endproc 1309 .LFE1214: 1311 .section .rodata.create_name.str1.4,"aMS",%progbits,1 1312 .align 2 1313 .LC0: 1314 0000 222A2B2C .ascii "\"*+,:;<=>?[]|\177\000" 1314 3A3B3C3D 1314 3E3F5B5D 1314 7C7F00 1315 .section .text.create_name,"ax",%progbits 1316 .align 1 1317 .syntax unified 1318 .thumb 1319 .thumb_func 1320 .fpu fpv5-d16 1322 create_name: 1323 .LVL135: 1324 .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 **** /*-----------------------------------------------------------------------*/ ARM GAS /tmp/cczRNDQp.s page 70 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 { 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 */ ARM GAS /tmp/cczRNDQp.s page 71 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 **** { 1325 .loc 1 2622 1 is_stmt 1 view -0 1326 .cfi_startproc 1327 @ args = 0, pretend = 0, frame = 0 1328 @ frame_needed = 0, uses_anonymous_args = 0 1329 .loc 1 2622 1 is_stmt 0 view .LVU391 1330 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 1331 .LCFI13: 1332 .cfi_def_cfa_offset 40 1333 .cfi_offset 3, -40 1334 .cfi_offset 4, -36 1335 .cfi_offset 5, -32 1336 .cfi_offset 6, -28 1337 .cfi_offset 7, -24 1338 .cfi_offset 8, -20 1339 .cfi_offset 9, -16 1340 .cfi_offset 10, -12 1341 .cfi_offset 11, -8 1342 .cfi_offset 14, -4 1343 0004 8146 mov r9, r0 1344 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; 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 */ ARM GAS /tmp/cczRNDQp.s page 72 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 73 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; 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; 1345 .loc 1 2742 2 is_stmt 1 view .LVU392 2743:Middlewares/Third_Party/FatFs/src/ff.c **** UINT ni, si, i; 1346 .loc 1 2743 2 view .LVU393 2744:Middlewares/Third_Party/FatFs/src/ff.c **** const char *p; 1347 .loc 1 2744 2 view .LVU394 2745:Middlewares/Third_Party/FatFs/src/ff.c **** 2746:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create file name in directory form */ ARM GAS /tmp/cczRNDQp.s page 74 2747:Middlewares/Third_Party/FatFs/src/ff.c **** p = *path; sfn = dp->fn; 1348 .loc 1 2747 2 view .LVU395 1349 .loc 1 2747 4 is_stmt 0 view .LVU396 1350 0008 D1F80080 ldr r8, [r1] 1351 .LVL136: 1352 .loc 1 2747 13 is_stmt 1 view .LVU397 1353 .loc 1 2747 17 is_stmt 0 view .LVU398 1354 000c 00F1240B add fp, r0, #36 1355 .LVL137: 2748:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(sfn, ' ', 11); 1356 .loc 1 2748 2 is_stmt 1 view .LVU399 1357 0010 0B22 movs r2, #11 1358 0012 2021 movs r1, #32 1359 .LVL138: 1360 .loc 1 2748 2 is_stmt 0 view .LVU400 1361 0014 5846 mov r0, fp 1362 .LVL139: 1363 .loc 1 2748 2 view .LVU401 1364 0016 FFF7FEFF bl mem_set 1365 .LVL140: 2749:Middlewares/Third_Party/FatFs/src/ff.c **** si = i = 0; ni = 8; 1366 .loc 1 2749 2 is_stmt 1 view .LVU402 1367 .loc 1 2749 14 view .LVU403 1368 .loc 1 2749 9 is_stmt 0 view .LVU404 1369 001a 0025 movs r5, #0 1370 .loc 1 2749 5 view .LVU405 1371 001c 2B46 mov r3, r5 1372 .loc 1 2749 17 view .LVU406 1373 001e 0827 movs r7, #8 1374 0020 29E0 b .L111 1375 .LVL141: 1376 .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 (;;) { 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 */ 1377 .loc 1 2767 42 is_stmt 1 discriminator 2 view .LVU407 1378 .loc 1 2767 44 is_stmt 0 discriminator 2 view .LVU408 1379 0022 0136 adds r6, r6, #1 1380 .LVL142: 1381 .L113: 1382 .loc 1 2767 10 is_stmt 1 discriminator 1 view .LVU409 1383 .loc 1 2767 12 is_stmt 0 discriminator 1 view .LVU410 ARM GAS /tmp/cczRNDQp.s page 75 1384 0024 18F80630 ldrb r3, [r8, r6] @ zero_extendqisi2 1385 .loc 1 2767 10 discriminator 1 view .LVU411 1386 0028 5C2B cmp r3, #92 1387 002a 18BF it ne 1388 002c 2F2B cmpne r3, #47 1389 002e F8D0 beq .L115 1390 .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 */ 1391 .loc 1 2795 2 is_stmt 1 view .LVU412 1392 .loc 1 2795 12 is_stmt 0 view .LVU413 1393 0030 4644 add r6, r6, r8 1394 .LVL143: 1395 .loc 1 2795 8 view .LVU414 1396 0032 CAF80060 str r6, [r10] 2796:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) return FR_INVALID_NAME; /* Reject nul string */ 1397 .loc 1 2796 2 is_stmt 1 view .LVU415 1398 .loc 1 2796 5 is_stmt 0 view .LVU416 1399 0036 002D cmp r5, #0 1400 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 1401 .loc 1 2798 2 is_stmt 1 view .LVU417 1402 .loc 1 2798 9 is_stmt 0 view .LVU418 1403 003a 99F82430 ldrb r3, [r9, #36] @ zero_extendqisi2 1404 .loc 1 2798 5 view .LVU419 1405 003e E52B cmp r3, #229 1406 0040 35D0 beq .L129 1407 .L121: 2799:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ 1408 .loc 1 2799 2 is_stmt 1 view .LVU420 ARM GAS /tmp/cczRNDQp.s page 76 1409 .loc 1 2799 14 is_stmt 0 view .LVU421 1410 0042 202C cmp r4, #32 1411 0044 37D8 bhi .L126 1412 0046 0423 movs r3, #4 1413 .L122: 1414 .loc 1 2799 14 discriminator 4 view .LVU422 1415 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; 1416 .loc 1 2801 2 is_stmt 1 discriminator 4 view .LVU423 1417 .loc 1 2801 9 is_stmt 0 discriminator 4 view .LVU424 1418 004c 0020 movs r0, #0 1419 004e 35E0 b .L117 1420 .LVL144: 1421 .L116: 2775:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT 1422 .loc 1 2775 3 is_stmt 1 view .LVU425 2775:Middlewares/Third_Party/FatFs/src/ff.c **** #ifdef _EXCVT 1423 .loc 1 2775 6 is_stmt 0 view .LVU426 1424 0050 14F0800F tst r4, #128 1425 0054 27D1 bne .L130 1426 .L119: 2784:Middlewares/Third_Party/FatFs/src/ff.c **** d = (BYTE)p[si++]; /* Get 2nd byte */ 1427 .loc 1 2784 3 is_stmt 1 view .LVU427 2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */ 1428 .loc 1 2790 4 view .LVU428 2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */ 1429 .loc 1 2790 8 is_stmt 0 view .LVU429 1430 0056 2146 mov r1, r4 1431 0058 1B48 ldr r0, .L131 1432 005a FFF7FEFF bl chk_chr 1433 .LVL145: 2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */ 1434 .loc 1 2790 7 view .LVU430 1435 005e 78BB cbnz r0, .L124 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1436 .loc 1 2791 4 is_stmt 1 view .LVU431 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1437 .loc 1 2791 8 is_stmt 0 view .LVU432 1438 0060 A4F16103 sub r3, r4, #97 1439 0064 DBB2 uxtb r3, r3 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1440 .loc 1 2791 7 view .LVU433 1441 0066 192B cmp r3, #25 1442 0068 01D8 bhi .L120 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1443 .loc 1 2791 20 is_stmt 1 discriminator 1 view .LVU434 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1444 .loc 1 2791 22 is_stmt 0 discriminator 1 view .LVU435 1445 006a 203C subs r4, r4, #32 1446 .LVL146: 2791:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[i++] = c; 1447 .loc 1 2791 22 discriminator 1 view .LVU436 1448 006c E4B2 uxtb r4, r4 1449 .LVL147: 1450 .L120: 2792:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 77 1451 .loc 1 2792 4 is_stmt 1 view .LVU437 2792:Middlewares/Third_Party/FatFs/src/ff.c **** } 1452 .loc 1 2792 13 is_stmt 0 view .LVU438 1453 006e 0BF80540 strb r4, [fp, r5] 2792:Middlewares/Third_Party/FatFs/src/ff.c **** } 1454 .loc 1 2792 9 view .LVU439 1455 0072 0135 adds r5, r5, #1 1456 .LVL148: 1457 .L118: 2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 1458 .loc 1 2772 14 view .LVU440 1459 0074 3346 mov r3, r6 1460 .LVL149: 1461 .L111: 2763:Middlewares/Third_Party/FatFs/src/ff.c **** c = (BYTE)p[si++]; 1462 .loc 1 2763 2 is_stmt 1 view .LVU441 2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */ 1463 .loc 1 2764 3 view .LVU442 2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */ 1464 .loc 1 2764 17 is_stmt 0 view .LVU443 1465 0076 5E1C adds r6, r3, #1 1466 .LVL150: 2764:Middlewares/Third_Party/FatFs/src/ff.c **** if (c <= ' ') break; /* Break if end of the path name */ 1467 .loc 1 2764 5 view .LVU444 1468 0078 18F80340 ldrb r4, [r8, r3] @ zero_extendqisi2 1469 .LVL151: 2765:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '/' || c == '\\') { /* Break if a separator is found */ 1470 .loc 1 2765 3 is_stmt 1 view .LVU445 2765:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '/' || c == '\\') { /* Break if a separator is found */ 1471 .loc 1 2765 6 is_stmt 0 view .LVU446 1472 007c 202C cmp r4, #32 1473 007e D7D9 bls .L112 2766:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ 1474 .loc 1 2766 3 is_stmt 1 view .LVU447 2766:Middlewares/Third_Party/FatFs/src/ff.c **** while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ 1475 .loc 1 2766 6 is_stmt 0 view .LVU448 1476 0080 5C2C cmp r4, #92 1477 0082 18BF it ne 1478 0084 2F2C cmpne r4, #47 1479 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 */ 1480 .loc 1 2770 3 is_stmt 1 view .LVU449 2770:Middlewares/Third_Party/FatFs/src/ff.c **** if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */ 1481 .loc 1 2770 6 is_stmt 0 view .LVU450 1482 0088 2E2C cmp r4, #46 1483 008a 18BF it ne 1484 008c AF42 cmpne r7, r5 1485 008e DFD8 bhi .L116 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1486 .loc 1 2771 4 is_stmt 1 view .LVU451 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1487 .loc 1 2771 22 is_stmt 0 view .LVU452 1488 0090 2E3C subs r4, r4, #46 1489 .LVL152: 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1490 .loc 1 2771 22 view .LVU453 1491 0092 18BF it ne ARM GAS /tmp/cczRNDQp.s page 78 1492 0094 0124 movne r4, #1 1493 .LVL153: 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1494 .loc 1 2771 17 view .LVU454 1495 0096 0B2F cmp r7, #11 1496 0098 08BF it eq 1497 009a 44F00104 orreq r4, r4, #1 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1498 .loc 1 2771 7 view .LVU455 1499 009e 64B9 cbnz r4, .L123 2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 1500 .loc 1 2772 6 view .LVU456 1501 00a0 0825 movs r5, #8 1502 .LVL154: 2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 1503 .loc 1 2772 14 view .LVU457 1504 00a2 0B27 movs r7, #11 1505 .LVL155: 2772:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 1506 .loc 1 2772 14 view .LVU458 1507 00a4 E6E7 b .L118 1508 .LVL156: 1509 .L130: 2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else 1510 .loc 1 2777 4 is_stmt 1 view .LVU459 2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else 1511 .loc 1 2777 16 is_stmt 0 view .LVU460 1512 00a6 803C subs r4, r4, #128 1513 .LVL157: 2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else 1514 .loc 1 2777 6 view .LVU461 1515 00a8 084B ldr r3, .L131+4 1516 00aa 1C5D ldrb r4, [r3, r4] @ zero_extendqisi2 1517 .LVL158: 2777:Middlewares/Third_Party/FatFs/src/ff.c **** #else 1518 .loc 1 2777 6 view .LVU462 1519 00ac D3E7 b .L119 1520 .LVL159: 1521 .L129: 2798:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ 1522 .loc 1 2798 22 is_stmt 1 discriminator 1 view .LVU463 2798:Middlewares/Third_Party/FatFs/src/ff.c **** sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ 1523 .loc 1 2798 29 is_stmt 0 discriminator 1 view .LVU464 1524 00ae 0523 movs r3, #5 1525 00b0 89F82430 strb r3, [r9, #36] 1526 00b4 C5E7 b .L121 1527 .L126: 2799:Middlewares/Third_Party/FatFs/src/ff.c **** 1528 .loc 1 2799 14 view .LVU465 1529 00b6 0023 movs r3, #0 1530 00b8 C6E7 b .L122 1531 .LVL160: 1532 .L123: 2771:Middlewares/Third_Party/FatFs/src/ff.c **** i = 8; ni = 11; /* Goto extension */ 1533 .loc 1 2771 37 view .LVU466 1534 00ba 0620 movs r0, #6 1535 .LVL161: ARM GAS /tmp/cczRNDQp.s page 79 1536 .L117: 2802:Middlewares/Third_Party/FatFs/src/ff.c **** #endif /* _USE_LFN != 0 */ 2803:Middlewares/Third_Party/FatFs/src/ff.c **** } 1537 .loc 1 2803 1 view .LVU467 1538 00bc BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 1539 .LVL162: 1540 .L124: 2790:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(c)) c -= 0x20; /* To upper */ 1541 .loc 1 2790 50 view .LVU468 1542 00c0 0620 movs r0, #6 1543 00c2 FBE7 b .L117 1544 .LVL163: 1545 .L125: 2796:Middlewares/Third_Party/FatFs/src/ff.c **** 1546 .loc 1 2796 21 view .LVU469 1547 00c4 0620 movs r0, #6 1548 00c6 F9E7 b .L117 1549 .L132: 1550 .align 2 1551 .L131: 1552 00c8 00000000 .word .LC0 1553 00cc 00000000 .word .LANCHOR1 1554 .cfi_endproc 1555 .LFE1215: 1557 .section .text.get_ldnumber,"ax",%progbits 1558 .align 1 1559 .syntax unified 1560 .thumb 1561 .thumb_func 1562 .fpu fpv5-d16 1564 get_ldnumber: 1565 .LVL164: 1566 .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 */ 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 ARM GAS /tmp/cczRNDQp.s page 80 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. */ 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); ARM GAS /tmp/cczRNDQp.s page 81 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 **** { 1567 .loc 1 2907 1 is_stmt 1 view -0 1568 .cfi_startproc 1569 @ args = 0, pretend = 0, frame = 0 1570 @ frame_needed = 0, uses_anonymous_args = 0 1571 @ link register save eliminated. 1572 .loc 1 2907 1 is_stmt 0 view .LVU471 1573 0000 0146 mov r1, r0 2908:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *tp, *tt; 1574 .loc 1 2908 2 is_stmt 1 view .LVU472 2909:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 1575 .loc 1 2909 2 view .LVU473 2910:Middlewares/Third_Party/FatFs/src/ff.c **** int vol = -1; 1576 .loc 1 2910 2 view .LVU474 1577 .LVL165: 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 **** 2919:Middlewares/Third_Party/FatFs/src/ff.c **** if (*path) { /* If the pointer is not a null */ 1578 .loc 1 2919 2 view .LVU475 1579 .loc 1 2919 6 is_stmt 0 view .LVU476 1580 0002 0068 ldr r0, [r0] 1581 .LVL166: 1582 .loc 1 2919 5 view .LVU477 1583 0004 08B1 cbz r0, .L142 2920:Middlewares/Third_Party/FatFs/src/ff.c **** for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the pa 1584 .loc 1 2920 11 view .LVU478 1585 0006 0246 mov r2, r0 1586 0008 03E0 b .L134 1587 .L142: ARM GAS /tmp/cczRNDQp.s page 82 2910:Middlewares/Third_Party/FatFs/src/ff.c **** int vol = -1; 1588 .loc 1 2910 6 view .LVU479 1589 000a 4FF0FF30 mov r0, #-1 1590 000e 7047 bx lr 1591 .LVL167: 1592 .L136: 1593 .loc 1 2920 77 is_stmt 1 discriminator 3 view .LVU480 1594 .loc 1 2920 71 discriminator 3 view .LVU481 1595 .loc 1 2920 73 is_stmt 0 discriminator 3 view .LVU482 1596 0010 0132 adds r2, r2, #1 1597 .LVL168: 1598 .L134: 1599 .loc 1 2920 20 is_stmt 1 discriminator 1 view .LVU483 1600 .loc 1 2920 26 is_stmt 0 discriminator 1 view .LVU484 1601 0012 1378 ldrb r3, [r2] @ zero_extendqisi2 1602 .loc 1 2920 3 discriminator 1 view .LVU485 1603 0014 3A2B cmp r3, #58 1604 0016 18BF it ne 1605 0018 202B cmpne r3, #32 1606 001a F9D8 bhi .L136 2921:Middlewares/Third_Party/FatFs/src/ff.c **** if (*tt == ':') { /* If a ':' is exist in the path name */ 1607 .loc 1 2921 3 is_stmt 1 view .LVU486 1608 .loc 1 2921 6 is_stmt 0 view .LVU487 1609 001c 3A2B cmp r3, #58 1610 001e 01D0 beq .L143 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; 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 */ 1611 .loc 1 2951 7 view .LVU488 1612 0020 0020 movs r0, #0 ARM GAS /tmp/cczRNDQp.s page 83 1613 .LVL169: 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 **** } 1614 .loc 1 2955 1 view .LVU489 1615 0022 7047 bx lr 1616 .LVL170: 1617 .L143: 2922:Middlewares/Third_Party/FatFs/src/ff.c **** tp = *path; 1618 .loc 1 2922 4 is_stmt 1 view .LVU490 2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ 1619 .loc 1 2923 4 view .LVU491 2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ 1620 .loc 1 2923 11 is_stmt 0 view .LVU492 1621 0024 0346 mov r3, r0 1622 .LVL171: 2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ 1623 .loc 1 2923 8 view .LVU493 1624 0026 13F8010B ldrb r0, [r3], #1 @ zero_extendqisi2 1625 .LVL172: 2923:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ 1626 .loc 1 2923 14 view .LVU494 1627 002a 3038 subs r0, r0, #48 1628 .LVL173: 2924:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ 1629 .loc 1 2924 4 is_stmt 1 view .LVU495 2924:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ 1630 .loc 1 2924 7 is_stmt 0 view .LVU496 1631 002c 0928 cmp r0, #9 1632 002e 98BF it ls 1633 0030 9A42 cmpls r2, r3 1634 0032 03D1 bne .L140 2925:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i; 1635 .loc 1 2925 5 is_stmt 1 view .LVU497 2925:Middlewares/Third_Party/FatFs/src/ff.c **** vol = (int)i; 1636 .loc 1 2925 8 is_stmt 0 view .LVU498 1637 0034 28B9 cbnz r0, .L141 2926:Middlewares/Third_Party/FatFs/src/ff.c **** *path = ++tt; 1638 .loc 1 2926 6 is_stmt 1 view .LVU499 1639 .LVL174: 2927:Middlewares/Third_Party/FatFs/src/ff.c **** } 1640 .loc 1 2927 6 view .LVU500 2927:Middlewares/Third_Party/FatFs/src/ff.c **** } 1641 .loc 1 2927 12 is_stmt 0 view .LVU501 1642 0036 0132 adds r2, r2, #1 1643 .LVL175: 2927:Middlewares/Third_Party/FatFs/src/ff.c **** } 1644 .loc 1 2927 12 view .LVU502 1645 0038 0A60 str r2, [r1] 1646 003a 7047 bx lr 1647 .LVL176: 1648 .L140: 2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */ 1649 .loc 1 2910 6 view .LVU503 1650 003c 4FF0FF30 mov r0, #-1 1651 .LVL177: ARM GAS /tmp/cczRNDQp.s page 84 2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */ 1652 .loc 1 2910 6 view .LVU504 1653 0040 7047 bx lr 1654 .LVL178: 1655 .L141: 2910:Middlewares/Third_Party/FatFs/src/ff.c **** #if _STR_VOLUME_ID /* Find string drive id */ 1656 .loc 1 2910 6 view .LVU505 1657 0042 4FF0FF30 mov r0, #-1 1658 .LVL179: 2946:Middlewares/Third_Party/FatFs/src/ff.c **** } 1659 .loc 1 2946 4 is_stmt 1 view .LVU506 2946:Middlewares/Third_Party/FatFs/src/ff.c **** } 1660 .loc 1 2946 11 is_stmt 0 view .LVU507 1661 0046 7047 bx lr 1662 .cfi_endproc 1663 .LFE1217: 1665 .section .text.putc_init,"ax",%progbits 1666 .align 1 1667 .syntax unified 1668 .thumb 1669 .thumb_func 1670 .fpu fpv5-d16 1672 putc_init: 1673 .LVL180: 1674 .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 */ 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 **** ARM GAS /tmp/cczRNDQp.s page 85 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 */ 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; ARM GAS /tmp/cczRNDQp.s page 86 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 **** 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); ARM GAS /tmp/cczRNDQp.s page 87 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 */ 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) */ ARM GAS /tmp/cczRNDQp.s page 88 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; 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 ARM GAS /tmp/cczRNDQp.s page 89 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 90 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; 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) { ARM GAS /tmp/cczRNDQp.s page 91 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 92 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) { 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 **** ARM GAS /tmp/cczRNDQp.s page 93 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 **** } 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 **** ARM GAS /tmp/cczRNDQp.s page 94 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 */ 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, */ ARM GAS /tmp/cczRNDQp.s page 95 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 **** 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 */ ARM GAS /tmp/cczRNDQp.s page 96 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 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; ARM GAS /tmp/cczRNDQp.s page 97 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 **** } 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 **** /*-----------------------------------------------------------------------*/ ARM GAS /tmp/cczRNDQp.s page 98 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) { 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); ARM GAS /tmp/cczRNDQp.s page 99 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 */ 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 **** ARM GAS /tmp/cczRNDQp.s page 100 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; 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 */ ARM GAS /tmp/cczRNDQp.s page 101 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 102 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 */ 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 **** ARM GAS /tmp/cczRNDQp.s page 103 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 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 **** } ARM GAS /tmp/cczRNDQp.s page 104 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 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)) { ARM GAS /tmp/cczRNDQp.s page 105 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 **** 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 */ ARM GAS /tmp/cczRNDQp.s page 106 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 **** 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) { ARM GAS /tmp/cczRNDQp.s page 107 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(); 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 */ ARM GAS /tmp/cczRNDQp.s page 108 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 **** 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 */ ARM GAS /tmp/cczRNDQp.s page 109 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 110 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 */ 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 **** ARM GAS /tmp/cczRNDQp.s page 111 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 **** } 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 */ ARM GAS /tmp/cczRNDQp.s page 112 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? */ 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; ARM GAS /tmp/cczRNDQp.s page 113 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 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)) { ARM GAS /tmp/cczRNDQp.s page 114 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); 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) { ARM GAS /tmp/cczRNDQp.s page 115 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 */ 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 */ ARM GAS /tmp/cczRNDQp.s page 116 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) { 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 **** } ARM GAS /tmp/cczRNDQp.s page 117 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 **** } 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 **** /*-----------------------------------------------------------------------*/ ARM GAS /tmp/cczRNDQp.s page 118 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 **** /*-----------------------------------------------------------------------*/ 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; ARM GAS /tmp/cczRNDQp.s page 119 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 */ 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 **** } ARM GAS /tmp/cczRNDQp.s page 120 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; 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)) { ARM GAS /tmp/cczRNDQp.s page 121 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 */ 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) { ARM GAS /tmp/cczRNDQp.s page 122 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 */ 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); ARM GAS /tmp/cczRNDQp.s page 123 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 **** } 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; ARM GAS /tmp/cczRNDQp.s page 124 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? */ 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; ARM GAS /tmp/cczRNDQp.s page 125 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; 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 **** ARM GAS /tmp/cczRNDQp.s page 126 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 */ 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; ARM GAS /tmp/cczRNDQp.s page 127 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 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 **** ARM GAS /tmp/cczRNDQp.s page 128 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; 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); ARM GAS /tmp/cczRNDQp.s page 129 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; 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 { ARM GAS /tmp/cczRNDQp.s page 130 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 **** } 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 */ ARM GAS /tmp/cczRNDQp.s page 131 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) */ 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); ARM GAS /tmp/cczRNDQp.s page 132 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) */ 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 */ ARM GAS /tmp/cczRNDQp.s page 133 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); 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; ARM GAS /tmp/cczRNDQp.s page 134 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 */ 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; ARM GAS /tmp/cczRNDQp.s page 135 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 = '?'; 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 */ ARM GAS /tmp/cczRNDQp.s page 136 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); 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); ARM GAS /tmp/cczRNDQp.s page 137 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 **** { 1675 .loc 1 5991 1 is_stmt 1 view -0 1676 .cfi_startproc 1677 @ args = 0, pretend = 0, frame = 0 1678 @ frame_needed = 0, uses_anonymous_args = 0 1679 @ link register save eliminated. 5992:Middlewares/Third_Party/FatFs/src/ff.c **** pb->fp = fp; 1680 .loc 1 5992 2 view .LVU509 1681 .loc 1 5992 9 is_stmt 0 view .LVU510 1682 0000 0160 str r1, [r0] 5993:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr = pb->idx = 0; 1683 .loc 1 5993 2 is_stmt 1 view .LVU511 1684 .loc 1 5993 21 is_stmt 0 view .LVU512 1685 0002 0023 movs r3, #0 1686 0004 4360 str r3, [r0, #4] 1687 .loc 1 5993 11 view .LVU513 1688 0006 8360 str r3, [r0, #8] 5994:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 138 1689 .loc 1 5994 1 view .LVU514 1690 0008 7047 bx lr 1691 .cfi_endproc 1692 .LFE1241: 1694 .section .text.validate,"ax",%progbits 1695 .align 1 1696 .syntax unified 1697 .thumb 1698 .thumb_func 1699 .fpu fpv5-d16 1701 validate: 1702 .LVL181: 1703 .LFB1220: 3220:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INVALID_OBJECT; 1704 .loc 1 3220 1 is_stmt 1 view -0 1705 .cfi_startproc 1706 @ args = 0, pretend = 0, frame = 0 1707 @ frame_needed = 0, uses_anonymous_args = 0 3220:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INVALID_OBJECT; 1708 .loc 1 3220 1 is_stmt 0 view .LVU516 1709 0000 38B5 push {r3, r4, r5, lr} 1710 .LCFI14: 1711 .cfi_def_cfa_offset 16 1712 .cfi_offset 3, -16 1713 .cfi_offset 4, -12 1714 .cfi_offset 5, -8 1715 .cfi_offset 14, -4 1716 0002 0D46 mov r5, r1 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1717 .loc 1 3221 2 is_stmt 1 view .LVU517 1718 .LVL182: 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1719 .loc 1 3224 2 view .LVU518 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1720 .loc 1 3224 5 is_stmt 0 view .LVU519 1721 0004 0446 mov r4, r0 1722 0006 98B1 cbz r0, .L147 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1723 .loc 1 3224 16 discriminator 1 view .LVU520 1724 0008 0368 ldr r3, [r0] 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1725 .loc 1 3224 10 discriminator 1 view .LVU521 1726 000a 9BB1 cbz r3, .L148 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1727 .loc 1 3224 31 discriminator 2 view .LVU522 1728 000c 1A78 ldrb r2, [r3] @ zero_extendqisi2 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1729 .loc 1 3224 21 discriminator 2 view .LVU523 1730 000e A2B1 cbz r2, .L149 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1731 .loc 1 3224 47 discriminator 3 view .LVU524 1732 0010 8188 ldrh r1, [r0, #4] 1733 .LVL183: 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT 1734 .loc 1 3224 62 discriminator 3 view .LVU525 1735 0012 DA88 ldrh r2, [r3, #6] 3224:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT ARM GAS /tmp/cczRNDQp.s page 139 1736 .loc 1 3224 41 discriminator 3 view .LVU526 1737 0014 9142 cmp r1, r2 1738 0016 03D0 beq .L153 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1739 .loc 1 3221 10 view .LVU527 1740 0018 0920 movs r0, #9 1741 .LVL184: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1742 .loc 1 3241 33 view .LVU528 1743 001a 0024 movs r4, #0 1744 .LVL185: 1745 .L146: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1746 .loc 1 3241 6 discriminator 4 view .LVU529 1747 001c 2C60 str r4, [r5] 3242:Middlewares/Third_Party/FatFs/src/ff.c **** } 1748 .loc 1 3242 2 is_stmt 1 discriminator 4 view .LVU530 3243:Middlewares/Third_Party/FatFs/src/ff.c **** 1749 .loc 1 3243 1 is_stmt 0 discriminator 4 view .LVU531 1750 001e 38BD pop {r3, r4, r5, pc} 1751 .LVL186: 1752 .L153: 3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 1753 .loc 1 3236 3 is_stmt 1 view .LVU532 3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 1754 .loc 1 3236 9 is_stmt 0 view .LVU533 1755 0020 5878 ldrb r0, [r3, #1] @ zero_extendqisi2 1756 .LVL187: 3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 1757 .loc 1 3236 9 view .LVU534 1758 0022 FFF7FEFF bl disk_status 1759 .LVL188: 3236:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 1760 .loc 1 3236 6 view .LVU535 1761 0026 10F00100 ands r0, r0, #1 1762 002a 09D1 bne .L151 3237:Middlewares/Third_Party/FatFs/src/ff.c **** } 1763 .loc 1 3237 4 is_stmt 1 view .LVU536 1764 .LVL189: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1765 .loc 1 3241 2 view .LVU537 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1766 .loc 1 3241 33 is_stmt 0 view .LVU538 1767 002c 2468 ldr r4, [r4] 1768 .LVL190: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1769 .loc 1 3241 33 view .LVU539 1770 002e F5E7 b .L146 1771 .LVL191: 1772 .L147: 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1773 .loc 1 3221 10 view .LVU540 1774 0030 0920 movs r0, #9 1775 .LVL192: 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1776 .loc 1 3221 10 view .LVU541 1777 0032 F3E7 b .L146 ARM GAS /tmp/cczRNDQp.s page 140 1778 .LVL193: 1779 .L148: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1780 .loc 1 3241 33 view .LVU542 1781 0034 1C46 mov r4, r3 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1782 .loc 1 3221 10 view .LVU543 1783 0036 0920 movs r0, #9 1784 .LVL194: 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1785 .loc 1 3221 10 view .LVU544 1786 0038 F0E7 b .L146 1787 .LVL195: 1788 .L149: 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1789 .loc 1 3221 10 view .LVU545 1790 003a 0920 movs r0, #9 1791 .LVL196: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1792 .loc 1 3241 33 view .LVU546 1793 003c 0024 movs r4, #0 1794 .LVL197: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1795 .loc 1 3241 33 view .LVU547 1796 003e EDE7 b .L146 1797 .LVL198: 1798 .L151: 3221:Middlewares/Third_Party/FatFs/src/ff.c **** 1799 .loc 1 3221 10 view .LVU548 1800 0040 0920 movs r0, #9 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1801 .loc 1 3241 33 view .LVU549 1802 0042 0024 movs r4, #0 1803 .LVL199: 3241:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 1804 .loc 1 3241 33 view .LVU550 1805 0044 EAE7 b .L146 1806 .cfi_endproc 1807 .LFE1220: 1809 .section .text.sync_window,"ax",%progbits 1810 .align 1 1811 .syntax unified 1812 .thumb 1813 .thumb_func 1814 .fpu fpv5-d16 1816 sync_window: 1817 .LVL200: 1818 .LFB1196: 886:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD wsect; 1819 .loc 1 886 1 is_stmt 1 view -0 1820 .cfi_startproc 1821 @ args = 0, pretend = 0, frame = 0 1822 @ frame_needed = 0, uses_anonymous_args = 0 886:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD wsect; 1823 .loc 1 886 1 is_stmt 0 view .LVU552 1824 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1825 .LCFI15: ARM GAS /tmp/cczRNDQp.s page 141 1826 .cfi_def_cfa_offset 24 1827 .cfi_offset 4, -24 1828 .cfi_offset 5, -20 1829 .cfi_offset 6, -16 1830 .cfi_offset 7, -12 1831 .cfi_offset 8, -8 1832 .cfi_offset 14, -4 887:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nf; 1833 .loc 1 887 2 is_stmt 1 view .LVU553 888:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK; 1834 .loc 1 888 2 view .LVU554 889:Middlewares/Third_Party/FatFs/src/ff.c **** 1835 .loc 1 889 2 view .LVU555 1836 .LVL201: 892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */ 1837 .loc 1 892 2 view .LVU556 892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */ 1838 .loc 1 892 8 is_stmt 0 view .LVU557 1839 0004 C578 ldrb r5, [r0, #3] @ zero_extendqisi2 892:Middlewares/Third_Party/FatFs/src/ff.c **** wsect = fs->winsect; /* Current sector number */ 1840 .loc 1 892 5 view .LVU558 1841 0006 15B9 cbnz r5, .L160 1842 .LVL202: 1843 .L155: 906:Middlewares/Third_Party/FatFs/src/ff.c **** } 1844 .loc 1 906 2 is_stmt 1 view .LVU559 907:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 1845 .loc 1 907 1 is_stmt 0 view .LVU560 1846 0008 2846 mov r0, r5 1847 000a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1848 .LVL203: 1849 .L160: 907:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 1850 .loc 1 907 1 view .LVU561 1851 000e 0446 mov r4, r0 893:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) { 1852 .loc 1 893 3 is_stmt 1 view .LVU562 893:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) { 1853 .loc 1 893 9 is_stmt 0 view .LVU563 1854 0010 076B ldr r7, [r0, #48] 1855 .LVL204: 894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1856 .loc 1 894 3 is_stmt 1 view .LVU564 894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1857 .loc 1 894 29 is_stmt 0 view .LVU565 1858 0012 00F13408 add r8, r0, #52 894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1859 .loc 1 894 7 view .LVU566 1860 0016 0123 movs r3, #1 1861 0018 3A46 mov r2, r7 1862 001a 4146 mov r1, r8 1863 001c 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 1864 .LVL205: 894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1865 .loc 1 894 7 view .LVU567 1866 001e FFF7FEFF bl disk_write 1867 .LVL206: ARM GAS /tmp/cczRNDQp.s page 142 894:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1868 .loc 1 894 6 view .LVU568 1869 0022 0546 mov r5, r0 1870 0024 A0B9 cbnz r0, .L158 897:Middlewares/Third_Party/FatFs/src/ff.c **** if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */ 1871 .loc 1 897 4 is_stmt 1 view .LVU569 897:Middlewares/Third_Party/FatFs/src/ff.c **** if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */ 1872 .loc 1 897 14 is_stmt 0 view .LVU570 1873 0026 0023 movs r3, #0 1874 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 */ 1875 .loc 1 898 4 is_stmt 1 view .LVU571 898:Middlewares/Third_Party/FatFs/src/ff.c **** for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */ 1876 .loc 1 898 18 is_stmt 0 view .LVU572 1877 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 */ 1878 .loc 1 898 14 view .LVU573 1879 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 */ 1880 .loc 1 898 32 view .LVU574 1881 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 */ 1882 .loc 1 898 7 view .LVU575 1883 0030 9342 cmp r3, r2 1884 0032 E9D2 bcs .L155 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1885 .loc 1 899 5 is_stmt 1 view .LVU576 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1886 .loc 1 899 17 is_stmt 0 view .LVU577 1887 0034 A678 ldrb r6, [r4, #2] @ zero_extendqisi2 1888 .LVL207: 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1889 .loc 1 899 5 view .LVU578 1890 0036 08E0 b .L156 1891 .L157: 900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1); 1892 .loc 1 900 6 is_stmt 1 discriminator 3 view .LVU579 900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1); 1893 .loc 1 900 17 is_stmt 0 discriminator 3 view .LVU580 1894 0038 E369 ldr r3, [r4, #28] 900:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, wsect, 1); 1895 .loc 1 900 12 discriminator 3 view .LVU581 1896 003a 1F44 add r7, r7, r3 1897 .LVL208: 901:Middlewares/Third_Party/FatFs/src/ff.c **** } 1898 .loc 1 901 6 is_stmt 1 discriminator 3 view .LVU582 1899 003c 0123 movs r3, #1 1900 003e 3A46 mov r2, r7 1901 0040 4146 mov r1, r8 1902 0042 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 1903 0044 FFF7FEFF bl disk_write 1904 .LVL209: 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1905 .loc 1 899 36 discriminator 3 view .LVU583 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1906 .loc 1 899 38 is_stmt 0 discriminator 3 view .LVU584 1907 0048 013E subs r6, r6, #1 ARM GAS /tmp/cczRNDQp.s page 143 1908 .LVL210: 1909 .L156: 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1910 .loc 1 899 27 is_stmt 1 discriminator 1 view .LVU585 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1911 .loc 1 899 5 is_stmt 0 discriminator 1 view .LVU586 1912 004a 012E cmp r6, #1 1913 004c F4D8 bhi .L157 899:Middlewares/Third_Party/FatFs/src/ff.c **** wsect += fs->fsize; 1914 .loc 1 899 5 discriminator 1 view .LVU587 1915 004e DBE7 b .L155 1916 .LVL211: 1917 .L158: 895:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 1918 .loc 1 895 8 view .LVU588 1919 0050 0125 movs r5, #1 1920 0052 D9E7 b .L155 1921 .cfi_endproc 1922 .LFE1196: 1924 .section .text.move_window,"ax",%progbits 1925 .align 1 1926 .syntax unified 1927 .thumb 1928 .thumb_func 1929 .fpu fpv5-d16 1931 move_window: 1932 .LVL212: 1933 .LFB1197: 916:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK; 1934 .loc 1 916 1 is_stmt 1 view -0 1935 .cfi_startproc 1936 @ args = 0, pretend = 0, frame = 0 1937 @ frame_needed = 0, uses_anonymous_args = 0 916:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK; 1938 .loc 1 916 1 is_stmt 0 view .LVU590 1939 0000 70B5 push {r4, r5, r6, lr} 1940 .LCFI16: 1941 .cfi_def_cfa_offset 16 1942 .cfi_offset 4, -16 1943 .cfi_offset 5, -12 1944 .cfi_offset 6, -8 1945 .cfi_offset 14, -4 917:Middlewares/Third_Party/FatFs/src/ff.c **** 1946 .loc 1 917 2 is_stmt 1 view .LVU591 1947 .LVL213: 920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 1948 .loc 1 920 2 view .LVU592 920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 1949 .loc 1 920 18 is_stmt 0 view .LVU593 1950 0002 036B ldr r3, [r0, #48] 920:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 1951 .loc 1 920 5 view .LVU594 1952 0004 8B42 cmp r3, r1 1953 0006 02D1 bne .L167 917:Middlewares/Third_Party/FatFs/src/ff.c **** 1954 .loc 1 917 10 view .LVU595 1955 0008 0026 movs r6, #0 ARM GAS /tmp/cczRNDQp.s page 144 1956 .LVL214: 1957 .L162: 932:Middlewares/Third_Party/FatFs/src/ff.c **** } 1958 .loc 1 932 2 is_stmt 1 view .LVU596 933:Middlewares/Third_Party/FatFs/src/ff.c **** 1959 .loc 1 933 1 is_stmt 0 view .LVU597 1960 000a 3046 mov r0, r6 1961 000c 70BD pop {r4, r5, r6, pc} 1962 .LVL215: 1963 .L167: 933:Middlewares/Third_Party/FatFs/src/ff.c **** 1964 .loc 1 933 1 view .LVU598 1965 000e 0446 mov r4, r0 1966 0010 0D46 mov r5, r1 922:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 1967 .loc 1 922 3 is_stmt 1 view .LVU599 922:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 1968 .loc 1 922 9 is_stmt 0 view .LVU600 1969 0012 FFF7FEFF bl sync_window 1970 .LVL216: 924:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) { 1971 .loc 1 924 3 is_stmt 1 view .LVU601 924:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) { 1972 .loc 1 924 6 is_stmt 0 view .LVU602 1973 0016 0646 mov r6, r0 1974 0018 0028 cmp r0, #0 1975 001a F6D1 bne .L162 925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ 1976 .loc 1 925 4 is_stmt 1 view .LVU603 925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ 1977 .loc 1 925 8 is_stmt 0 view .LVU604 1978 001c 0123 movs r3, #1 1979 001e 2A46 mov r2, r5 1980 0020 04F13401 add r1, r4, #52 1981 0024 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 1982 .LVL217: 925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ 1983 .loc 1 925 8 view .LVU605 1984 0026 FFF7FEFF bl disk_read 1985 .LVL218: 925:Middlewares/Third_Party/FatFs/src/ff.c **** sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ 1986 .loc 1 925 7 view .LVU606 1987 002a 10B1 cbz r0, .L163 927:Middlewares/Third_Party/FatFs/src/ff.c **** } 1988 .loc 1 927 9 view .LVU607 1989 002c 0126 movs r6, #1 926:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 1990 .loc 1 926 12 view .LVU608 1991 002e 4FF0FF35 mov r5, #-1 1992 .LVL219: 1993 .L163: 929:Middlewares/Third_Party/FatFs/src/ff.c **** } 1994 .loc 1 929 4 is_stmt 1 view .LVU609 929:Middlewares/Third_Party/FatFs/src/ff.c **** } 1995 .loc 1 929 16 is_stmt 0 view .LVU610 1996 0032 2563 str r5, [r4, #48] 1997 0034 E9E7 b .L162 ARM GAS /tmp/cczRNDQp.s page 145 1998 .cfi_endproc 1999 .LFE1197: 2001 .section .text.check_fs,"ax",%progbits 2002 .align 1 2003 .syntax unified 2004 .thumb 2005 .thumb_func 2006 .fpu fpv5-d16 2008 check_fs: 2009 .LVL220: 2010 .LFB1218: 2969:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ 2011 .loc 1 2969 1 is_stmt 1 view -0 2012 .cfi_startproc 2013 @ args = 0, pretend = 0, frame = 0 2014 @ frame_needed = 0, uses_anonymous_args = 0 2969:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ 2015 .loc 1 2969 1 is_stmt 0 view .LVU612 2016 0000 38B5 push {r3, r4, r5, lr} 2017 .LCFI17: 2018 .cfi_def_cfa_offset 16 2019 .cfi_offset 3, -16 2020 .cfi_offset 4, -12 2021 .cfi_offset 5, -8 2022 .cfi_offset 14, -4 2023 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 */ 2024 .loc 1 2970 2 is_stmt 1 view .LVU613 2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */ 2025 .loc 1 2970 12 is_stmt 0 view .LVU614 2026 0004 0023 movs r3, #0 2027 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 */ 2028 .loc 1 2970 17 is_stmt 1 view .LVU615 2970:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */ 2029 .loc 1 2970 29 is_stmt 0 view .LVU616 2030 0008 4FF0FF33 mov r3, #-1 2031 000c 0363 str r3, [r0, #48] 2971:Middlewares/Third_Party/FatFs/src/ff.c **** 2032 .loc 1 2971 2 is_stmt 1 view .LVU617 2971:Middlewares/Third_Party/FatFs/src/ff.c **** 2033 .loc 1 2971 6 is_stmt 0 view .LVU618 2034 000e FFF7FEFF bl move_window 2035 .LVL221: 2971:Middlewares/Third_Party/FatFs/src/ff.c **** 2036 .loc 1 2971 5 view .LVU619 2037 0012 30BB cbnz r0, .L171 2038 0014 0546 mov r5, r0 2973:Middlewares/Third_Party/FatFs/src/ff.c **** 2039 .loc 1 2973 2 is_stmt 1 view .LVU620 2973:Middlewares/Third_Party/FatFs/src/ff.c **** 2040 .loc 1 2973 6 is_stmt 0 view .LVU621 2041 0016 04F23220 addw r0, r4, #562 2042 001a FFF7FEFF bl ld_word 2043 .LVL222: 2973:Middlewares/Third_Party/FatFs/src/ff.c **** 2044 .loc 1 2973 5 view .LVU622 ARM GAS /tmp/cczRNDQp.s page 146 2045 001e 4AF65523 movw r3, #43605 2046 0022 9842 cmp r0, r3 2047 0024 1FD1 bne .L172 2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string * 2048 .loc 1 2975 2 is_stmt 1 view .LVU623 2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string * 2049 .loc 1 2975 13 is_stmt 0 view .LVU624 2050 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 * 2051 .loc 1 2975 5 view .LVU625 2052 002a E92B cmp r3, #233 2053 002c 07D0 beq .L170 2975:Middlewares/Third_Party/FatFs/src/ff.c **** if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string * 2054 .loc 1 2975 66 discriminator 1 view .LVU626 2055 002e 636B ldr r3, [r4, #52] 2056 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 * 2057 .loc 1 2975 34 discriminator 1 view .LVU627 2058 0034 0D4A ldr r2, .L175 2059 0036 9342 cmp r3, r2 2060 0038 01D0 beq .L170 2982:Middlewares/Third_Party/FatFs/src/ff.c **** } 2061 .loc 1 2982 9 view .LVU628 2062 003a 0225 movs r5, #2 2063 003c 14E0 b .L169 2064 .L170: 2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */ 2065 .loc 1 2976 3 is_stmt 1 view .LVU629 2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */ 2066 .loc 1 2976 8 is_stmt 0 view .LVU630 2067 003e 04F16A00 add r0, r4, #106 2068 0042 FFF7FEFF bl ld_dword 2069 .LVL223: 2976:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */ 2070 .loc 1 2976 42 view .LVU631 2071 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 */ 2072 .loc 1 2976 6 view .LVU632 2073 004a 094B ldr r3, .L175+4 2074 004c 9842 cmp r0, r3 2075 004e 0BD0 beq .L169 2977:Middlewares/Third_Party/FatFs/src/ff.c **** } 2076 .loc 1 2977 3 is_stmt 1 view .LVU633 2977:Middlewares/Third_Party/FatFs/src/ff.c **** } 2077 .loc 1 2977 7 is_stmt 0 view .LVU634 2078 0050 04F18600 add r0, r4, #134 2079 0054 FFF7FEFF bl ld_dword 2080 .LVL224: 2977:Middlewares/Third_Party/FatFs/src/ff.c **** } 2081 .loc 1 2977 6 view .LVU635 2082 0058 064B ldr r3, .L175+8 2083 005a 9842 cmp r0, r3 2084 005c 04D0 beq .L169 2982:Middlewares/Third_Party/FatFs/src/ff.c **** } 2085 .loc 1 2982 9 view .LVU636 2086 005e 0225 movs r5, #2 2087 0060 02E0 b .L169 ARM GAS /tmp/cczRNDQp.s page 147 2088 .L171: 2971:Middlewares/Third_Party/FatFs/src/ff.c **** 2089 .loc 1 2971 45 view .LVU637 2090 0062 0425 movs r5, #4 2091 0064 00E0 b .L169 2092 .L172: 2973:Middlewares/Third_Party/FatFs/src/ff.c **** 2093 .loc 1 2973 51 view .LVU638 2094 0066 0325 movs r5, #3 2095 .L169: 2983:Middlewares/Third_Party/FatFs/src/ff.c **** 2096 .loc 1 2983 1 view .LVU639 2097 0068 2846 mov r0, r5 2098 006a 38BD pop {r3, r4, r5, pc} 2099 .LVL225: 2100 .L176: 2983:Middlewares/Third_Party/FatFs/src/ff.c **** 2101 .loc 1 2983 1 view .LVU640 2102 .align 2 2103 .L175: 2104 006c EB009000 .word 9437419 2105 0070 46415400 .word 5521734 2106 0074 46415433 .word 861159750 2107 .cfi_endproc 2108 .LFE1218: 2110 .section .text.find_volume,"ax",%progbits 2111 .align 1 2112 .syntax unified 2113 .thumb 2114 .thumb_func 2115 .fpu fpv5-d16 2117 find_volume: 2118 .LVL226: 2119 .LFB1219: 2998:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, *pt; 2120 .loc 1 2998 1 is_stmt 1 view -0 2121 .cfi_startproc 2122 @ args = 0, pretend = 0, frame = 24 2123 @ frame_needed = 0, uses_anonymous_args = 0 2998:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, *pt; 2124 .loc 1 2998 1 is_stmt 0 view .LVU642 2125 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 2126 .LCFI18: 2127 .cfi_def_cfa_offset 36 2128 .cfi_offset 4, -36 2129 .cfi_offset 5, -32 2130 .cfi_offset 6, -28 2131 .cfi_offset 7, -24 2132 .cfi_offset 8, -20 2133 .cfi_offset 9, -16 2134 .cfi_offset 10, -12 2135 .cfi_offset 11, -8 2136 .cfi_offset 14, -4 2137 0004 87B0 sub sp, sp, #28 2138 .LCFI19: 2139 .cfi_def_cfa_offset 64 2140 0006 0D46 mov r5, r1 ARM GAS /tmp/cczRNDQp.s page 148 2141 0008 1646 mov r6, r2 2999:Middlewares/Third_Party/FatFs/src/ff.c **** int vol; 2142 .loc 1 2999 2 is_stmt 1 view .LVU643 3000:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat; 2143 .loc 1 3000 2 view .LVU644 3001:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD bsect, fasize, tsect, sysect, nclst, szbfat, br[4]; 2144 .loc 1 3001 2 view .LVU645 3002:Middlewares/Third_Party/FatFs/src/ff.c **** WORD nrsv; 2145 .loc 1 3002 2 view .LVU646 3003:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 2146 .loc 1 3003 2 view .LVU647 3004:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 2147 .loc 1 3004 2 view .LVU648 3005:Middlewares/Third_Party/FatFs/src/ff.c **** 2148 .loc 1 3005 2 view .LVU649 3009:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(path); 2149 .loc 1 3009 2 view .LVU650 3009:Middlewares/Third_Party/FatFs/src/ff.c **** vol = get_ldnumber(path); 2150 .loc 1 3009 7 is_stmt 0 view .LVU651 2151 000a 0023 movs r3, #0 2152 000c 0B60 str r3, [r1] 3010:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 2153 .loc 1 3010 2 is_stmt 1 view .LVU652 3010:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 2154 .loc 1 3010 8 is_stmt 0 view .LVU653 2155 000e FFF7FEFF bl get_ldnumber 2156 .LVL227: 3011:Middlewares/Third_Party/FatFs/src/ff.c **** 2157 .loc 1 3011 2 is_stmt 1 view .LVU654 3011:Middlewares/Third_Party/FatFs/src/ff.c **** 2158 .loc 1 3011 5 is_stmt 0 view .LVU655 2159 0012 071E subs r7, r0, #0 2160 0014 C0F26681 blt .L195 3014:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */ 2161 .loc 1 3014 2 is_stmt 1 view .LVU656 3014:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */ 2162 .loc 1 3014 5 is_stmt 0 view .LVU657 2163 0018 BF4B ldr r3, .L229 2164 001a 53F82740 ldr r4, [r3, r7, lsl #2] 2165 .LVL228: 3015:Middlewares/Third_Party/FatFs/src/ff.c **** 2166 .loc 1 3015 2 is_stmt 1 view .LVU658 3015:Middlewares/Third_Party/FatFs/src/ff.c **** 2167 .loc 1 3015 5 is_stmt 0 view .LVU659 2168 001e 002C cmp r4, #0 2169 0020 00F06581 beq .L196 3017:Middlewares/Third_Party/FatFs/src/ff.c **** *rfs = fs; /* Return pointer to the file system object */ 2170 .loc 1 3017 14 is_stmt 1 view .LVU660 3018:Middlewares/Third_Party/FatFs/src/ff.c **** 2171 .loc 1 3018 2 view .LVU661 3018:Middlewares/Third_Party/FatFs/src/ff.c **** 2172 .loc 1 3018 7 is_stmt 0 view .LVU662 2173 0024 2C60 str r4, [r5] 3020:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type) { /* If the volume has been mounted */ 2174 .loc 1 3020 2 is_stmt 1 view .LVU663 3020:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type) { /* If the volume has been mounted */ 2175 .loc 1 3020 7 is_stmt 0 view .LVU664 ARM GAS /tmp/cczRNDQp.s page 149 2176 0026 06F0FE06 and r6, r6, #254 2177 .LVL229: 3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv); 2178 .loc 1 3021 2 is_stmt 1 view .LVU665 3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv); 2179 .loc 1 3021 8 is_stmt 0 view .LVU666 2180 002a 2378 ldrb r3, [r4] @ zero_extendqisi2 3021:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_status(fs->drv); 2181 .loc 1 3021 5 view .LVU667 2182 002c 73B1 cbz r3, .L179 3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ 2183 .loc 1 3022 3 is_stmt 1 view .LVU668 3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ 2184 .loc 1 3022 10 is_stmt 0 view .LVU669 2185 002e 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 2186 .LVL230: 3022:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ 2187 .loc 1 3022 10 view .LVU670 2188 0030 FFF7FEFF bl disk_status 2189 .LVL231: 3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ 2190 .loc 1 3023 3 is_stmt 1 view .LVU671 3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ 2191 .loc 1 3023 6 is_stmt 0 view .LVU672 2192 0034 10F00105 ands r5, r0, #1 2193 .LVL232: 3023:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ 2194 .loc 1 3023 6 view .LVU673 2195 0038 08D1 bne .L179 3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2196 .loc 1 3024 4 is_stmt 1 view .LVU674 3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2197 .loc 1 3024 7 is_stmt 0 view .LVU675 2198 003a 002E cmp r6, #0 2199 003c 00F05381 beq .L178 3024:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2200 .loc 1 3024 30 discriminator 1 view .LVU676 2201 0040 10F0040F tst r0, #4 2202 0044 00F04F81 beq .L178 3025:Middlewares/Third_Party/FatFs/src/ff.c **** } 2203 .loc 1 3025 12 view .LVU677 2204 0048 0A25 movs r5, #10 2205 004a 4CE1 b .L178 2206 .LVL233: 2207 .L179: 3034:Middlewares/Third_Party/FatFs/src/ff.c **** fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */ 2208 .loc 1 3034 2 is_stmt 1 view .LVU678 3034:Middlewares/Third_Party/FatFs/src/ff.c **** fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */ 2209 .loc 1 3034 14 is_stmt 0 view .LVU679 2210 004c 0023 movs r3, #0 2211 004e 2370 strb r3, [r4] 3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */ 2212 .loc 1 3035 2 is_stmt 1 view .LVU680 3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */ 2213 .loc 1 3035 12 is_stmt 0 view .LVU681 2214 0050 F8B2 uxtb r0, r7 3035:Middlewares/Third_Party/FatFs/src/ff.c **** stat = disk_initialize(fs->drv); /* Initialize the physical drive */ ARM GAS /tmp/cczRNDQp.s page 150 2215 .loc 1 3035 10 view .LVU682 2216 0052 6070 strb r0, [r4, #1] 3036:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ 2217 .loc 1 3036 2 is_stmt 1 view .LVU683 3036:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ 2218 .loc 1 3036 9 is_stmt 0 view .LVU684 2219 0054 FFF7FEFF bl disk_initialize 2220 .LVL234: 3037:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ 2221 .loc 1 3037 2 is_stmt 1 view .LVU685 3037:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ 2222 .loc 1 3037 5 is_stmt 0 view .LVU686 2223 0058 10F0010F tst r0, #1 2224 005c 40F04981 bne .L198 3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2225 .loc 1 3040 2 is_stmt 1 view .LVU687 3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2226 .loc 1 3040 5 is_stmt 0 view .LVU688 2227 0060 1EB1 cbz r6, .L180 3040:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_WRITE_PROTECTED; 2228 .loc 1 3040 28 discriminator 1 view .LVU689 2229 0062 10F0040F tst r0, #4 2230 0066 40F04681 bne .L199 2231 .L180: 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; 2232 .loc 1 3044 2 is_stmt 1 view .LVU690 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; 2233 .loc 1 3044 6 is_stmt 0 view .LVU691 2234 006a 04F10C02 add r2, r4, #12 2235 006e 0221 movs r1, #2 2236 0070 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 2237 .LVL235: 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; 2238 .loc 1 3044 6 view .LVU692 2239 0072 FFF7FEFF bl disk_ioctl 2240 .LVL236: 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; 2241 .loc 1 3044 5 view .LVU693 2242 0076 0546 mov r5, r0 2243 0078 0028 cmp r0, #0 2244 007a 40F03E81 bne .L200 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2245 .loc 1 3045 2 is_stmt 1 view .LVU694 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2246 .loc 1 3045 6 is_stmt 0 view .LVU695 2247 007e A289 ldrh r2, [r4, #12] 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2248 .loc 1 3045 23 view .LVU696 2249 0080 A2F50073 sub r3, r2, #512 2250 0084 9BB2 uxth r3, r3 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2251 .loc 1 3045 5 view .LVU697 2252 0086 B3F5606F cmp r3, #3584 2253 008a 00F23881 bhi .L201 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2254 .loc 1 3045 64 discriminator 2 view .LVU698 2255 008e 531E subs r3, r2, #1 ARM GAS /tmp/cczRNDQp.s page 151 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2256 .loc 1 3045 43 discriminator 2 view .LVU699 2257 0090 1A42 tst r2, r3 2258 0092 01D0 beq .L223 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2259 .loc 1 3045 78 view .LVU700 2260 0094 0125 movs r5, #1 2261 0096 26E1 b .L178 2262 .L223: 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 */ 2263 .loc 1 3049 2 is_stmt 1 view .LVU701 2264 .LVL237: 3050:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */ 2265 .loc 1 3050 2 view .LVU702 3050:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */ 2266 .loc 1 3050 8 is_stmt 0 view .LVU703 2267 0098 0021 movs r1, #0 2268 009a 2046 mov r0, r4 2269 009c FFF7FEFF bl check_fs 2270 .LVL238: 3051:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++) { /* Get partition offset */ 2271 .loc 1 3051 2 is_stmt 1 view .LVU704 3051:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < 4; i++) { /* Get partition offset */ 2272 .loc 1 3051 5 is_stmt 0 view .LVU705 2273 00a0 0228 cmp r0, #2 2274 00a2 00F0C180 beq .L203 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 */ 2275 .loc 1 3049 8 view .LVU706 2276 00a6 0026 movs r6, #0 2277 .LVL239: 2278 .L182: 3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ 2279 .loc 1 3063 2 is_stmt 1 view .LVU707 3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ 2280 .loc 1 3063 5 is_stmt 0 view .LVU708 2281 00a8 0428 cmp r0, #4 2282 00aa 00F02A81 beq .L206 3064:Middlewares/Third_Party/FatFs/src/ff.c **** 2283 .loc 1 3064 2 is_stmt 1 view .LVU709 3064:Middlewares/Third_Party/FatFs/src/ff.c **** 2284 .loc 1 3064 5 is_stmt 0 view .LVU710 2285 00ae 0128 cmp r0, #1 2286 00b0 00F22981 bhi .L207 3116:Middlewares/Third_Party/FatFs/src/ff.c **** 2287 .loc 1 3116 3 is_stmt 1 view .LVU711 3116:Middlewares/Third_Party/FatFs/src/ff.c **** 2288 .loc 1 3116 7 is_stmt 0 view .LVU712 2289 00b4 04F13F00 add r0, r4, #63 2290 .LVL240: 3116:Middlewares/Third_Party/FatFs/src/ff.c **** 2291 .loc 1 3116 7 view .LVU713 2292 00b8 FFF7FEFF bl ld_word 2293 .LVL241: 3116:Middlewares/Third_Party/FatFs/src/ff.c **** 2294 .loc 1 3116 44 view .LVU714 2295 00bc B4F80C80 ldrh r8, [r4, #12] 3116:Middlewares/Third_Party/FatFs/src/ff.c **** ARM GAS /tmp/cczRNDQp.s page 152 2296 .loc 1 3116 6 view .LVU715 2297 00c0 4045 cmp r0, r8 2298 00c2 40F02281 bne .L208 3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); 2299 .loc 1 3118 3 is_stmt 1 view .LVU716 3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); 2300 .loc 1 3118 12 is_stmt 0 view .LVU717 2301 00c6 04F14A00 add r0, r4, #74 2302 00ca FFF7FEFF bl ld_word 2303 .LVL242: 3118:Middlewares/Third_Party/FatFs/src/ff.c **** if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); 2304 .loc 1 3118 10 view .LVU718 2305 00ce 0746 mov r7, r0 2306 .LVL243: 3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize; 2307 .loc 1 3119 3 is_stmt 1 view .LVU719 3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize; 2308 .loc 1 3119 6 is_stmt 0 view .LVU720 2309 00d0 20B9 cbnz r0, .L187 3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize; 2310 .loc 1 3119 20 is_stmt 1 discriminator 1 view .LVU721 3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize; 2311 .loc 1 3119 29 is_stmt 0 discriminator 1 view .LVU722 2312 00d2 04F15800 add r0, r4, #88 2313 .LVL244: 3119:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsize = fasize; 2314 .loc 1 3119 29 discriminator 1 view .LVU723 2315 00d6 FFF7FEFF bl ld_dword 2316 .LVL245: 2317 00da 0746 mov r7, r0 2318 .LVL246: 2319 .L187: 3120:Middlewares/Third_Party/FatFs/src/ff.c **** 2320 .loc 1 3120 3 is_stmt 1 view .LVU724 3120:Middlewares/Third_Party/FatFs/src/ff.c **** 2321 .loc 1 3120 13 is_stmt 0 view .LVU725 2322 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) */ 2323 .loc 1 3122 3 is_stmt 1 view .LVU726 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) */ 2324 .loc 1 3122 23 is_stmt 0 view .LVU727 2325 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) */ 2326 .loc 1 3122 14 view .LVU728 2327 00e2 A270 strb r2, [r4, #2] 3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */ 2328 .loc 1 3123 3 is_stmt 1 view .LVU729 3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */ 2329 .loc 1 3123 23 is_stmt 0 view .LVU730 2330 00e4 531E subs r3, r2, #1 2331 00e6 DBB2 uxtb r3, r3 3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */ 2332 .loc 1 3123 6 view .LVU731 2333 00e8 012B cmp r3, #1 2334 00ea 00F21081 bhi .L209 3124:Middlewares/Third_Party/FatFs/src/ff.c **** 2335 .loc 1 3124 3 is_stmt 1 view .LVU732 ARM GAS /tmp/cczRNDQp.s page 153 3124:Middlewares/Third_Party/FatFs/src/ff.c **** 2336 .loc 1 3124 10 is_stmt 0 view .LVU733 2337 00ee 07FB02F3 mul r3, r7, r2 2338 00f2 0093 str r3, [sp] 2339 .LVL247: 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 2340 .loc 1 3126 3 is_stmt 1 view .LVU734 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 2341 .loc 1 3126 22 is_stmt 0 view .LVU735 2342 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 2343 .loc 1 3126 13 view .LVU736 2344 00f8 A4F80A90 strh r9, [r4, #10] @ movhi 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2345 .loc 1 3127 3 is_stmt 1 view .LVU737 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2346 .loc 1 3127 6 is_stmt 0 view .LVU738 2347 00fc B9F1000F cmp r9, #0 2348 0100 00F00781 beq .L210 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2349 .loc 1 3127 49 discriminator 2 view .LVU739 2350 0104 09F1FF33 add r3, r9, #-1 2351 .LVL248: 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2352 .loc 1 3127 22 discriminator 2 view .LVU740 2353 0108 19EA030F tst r9, r3 2354 010c 40F00C81 bne .L211 3129:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ 2355 .loc 1 3129 3 is_stmt 1 view .LVU741 3129:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ 2356 .loc 1 3129 19 is_stmt 0 view .LVU742 2357 0110 04F14500 add r0, r4, #69 2358 0114 FFF7FEFF bl ld_word 2359 .LVL249: 2360 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) */ 2361 .loc 1 3129 17 view .LVU743 2362 011a 2081 strh r0, [r4, #8] @ movhi 3130:Middlewares/Third_Party/FatFs/src/ff.c **** 2363 .loc 1 3130 3 is_stmt 1 view .LVU744 3130:Middlewares/Third_Party/FatFs/src/ff.c **** 2364 .loc 1 3130 7 is_stmt 0 view .LVU745 2365 011c 4FEA581B lsr fp, r8, #5 2366 0120 B0FBFBF3 udiv r3, r0, fp 2367 0124 0BFB1303 mls r3, fp, r3, r0 2368 0128 9BB2 uxth r3, r3 3130:Middlewares/Third_Party/FatFs/src/ff.c **** 2369 .loc 1 3130 6 view .LVU746 2370 012a 002B cmp r3, #0 2371 012c 40F0FE80 bne .L212 3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); 2372 .loc 1 3132 3 is_stmt 1 view .LVU747 3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); 2373 .loc 1 3132 11 is_stmt 0 view .LVU748 2374 0130 04F14700 add r0, r4, #71 2375 0134 FFF7FEFF bl ld_word 2376 .LVL250: ARM GAS /tmp/cczRNDQp.s page 154 3132:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); 2377 .loc 1 3132 9 view .LVU749 2378 0138 0190 str r0, [sp, #4] 2379 .LVL251: 3133:Middlewares/Third_Party/FatFs/src/ff.c **** 2380 .loc 1 3133 3 is_stmt 1 view .LVU750 3133:Middlewares/Third_Party/FatFs/src/ff.c **** 2381 .loc 1 3133 6 is_stmt 0 view .LVU751 2382 013a 20B9 cbnz r0, .L188 3133:Middlewares/Third_Party/FatFs/src/ff.c **** 2383 .loc 1 3133 19 is_stmt 1 discriminator 1 view .LVU752 3133:Middlewares/Third_Party/FatFs/src/ff.c **** 2384 .loc 1 3133 27 is_stmt 0 discriminator 1 view .LVU753 2385 013c 04F15400 add r0, r4, #84 2386 .LVL252: 3133:Middlewares/Third_Party/FatFs/src/ff.c **** 2387 .loc 1 3133 27 discriminator 1 view .LVU754 2388 0140 FFF7FEFF bl ld_dword 2389 .LVL253: 2390 0144 0190 str r0, [sp, #4] 2391 .LVL254: 2392 .L188: 3135:Middlewares/Third_Party/FatFs/src/ff.c **** if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ 2393 .loc 1 3135 3 is_stmt 1 view .LVU755 3135:Middlewares/Third_Party/FatFs/src/ff.c **** if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ 2394 .loc 1 3135 10 is_stmt 0 view .LVU756 2395 0146 04F14200 add r0, r4, #66 2396 014a FFF7FEFF bl ld_word 2397 .LVL255: 3136:Middlewares/Third_Party/FatFs/src/ff.c **** 2398 .loc 1 3136 3 is_stmt 1 view .LVU757 3136:Middlewares/Third_Party/FatFs/src/ff.c **** 2399 .loc 1 3136 6 is_stmt 0 view .LVU758 2400 014e 0146 mov r1, r0 2401 0150 0028 cmp r0, #0 2402 0152 00F0ED80 beq .L213 3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2403 .loc 1 3139 3 is_stmt 1 view .LVU759 3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2404 .loc 1 3139 17 is_stmt 0 view .LVU760 2405 0156 009B ldr r3, [sp] 2406 0158 C318 adds r3, r0, r3 3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2407 .loc 1 3139 42 view .LVU761 2408 015a BAFBFBFB udiv fp, r10, fp 3139:Middlewares/Third_Party/FatFs/src/ff.c **** if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2409 .loc 1 3139 10 view .LVU762 2410 015e 5B44 add r3, r3, fp 2411 .LVL256: 3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ 2412 .loc 1 3140 3 is_stmt 1 view .LVU763 3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ 2413 .loc 1 3140 6 is_stmt 0 view .LVU764 2414 0160 019A ldr r2, [sp, #4] 2415 0162 9A42 cmp r2, r3 2416 0164 C0F0E680 bcc .L214 3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ ARM GAS /tmp/cczRNDQp.s page 155 2417 .loc 1 3141 3 is_stmt 1 view .LVU765 3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2418 .loc 1 3141 18 is_stmt 0 view .LVU766 2419 0168 D21A subs r2, r2, r3 3141:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ 2420 .loc 1 3141 9 view .LVU767 2421 016a B2FBF9F0 udiv r0, r2, r9 2422 .LVL257: 3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; 2423 .loc 1 3142 3 is_stmt 1 view .LVU768 3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; 2424 .loc 1 3142 6 is_stmt 0 view .LVU769 2425 016e 4A45 cmp r2, r9 2426 0170 C0F0E280 bcc .L215 3143:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT16) fmt = FS_FAT16; 2427 .loc 1 3143 3 is_stmt 1 view .LVU770 2428 .LVL258: 3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12; 2429 .loc 1 3144 3 view .LVU771 3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12; 2430 .loc 1 3144 6 is_stmt 0 view .LVU772 2431 0174 4FF6F572 movw r2, #65525 2432 0178 9042 cmp r0, r2 2433 017a 6DD9 bls .L216 3143:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT16) fmt = FS_FAT16; 2434 .loc 1 3143 7 view .LVU773 2435 017c 4FF0030B mov fp, #3 2436 .L189: 2437 .LVL259: 3145:Middlewares/Third_Party/FatFs/src/ff.c **** 2438 .loc 1 3145 3 is_stmt 1 view .LVU774 3145:Middlewares/Third_Party/FatFs/src/ff.c **** 2439 .loc 1 3145 6 is_stmt 0 view .LVU775 2440 0180 40F6F572 movw r2, #4085 2441 0184 9042 cmp r0, r2 2442 0186 01D8 bhi .L190 3145:Middlewares/Third_Party/FatFs/src/ff.c **** 2443 .loc 1 3145 31 view .LVU776 2444 0188 4FF0010B mov fp, #1 2445 .LVL260: 2446 .L190: 3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */ 2447 .loc 1 3148 3 is_stmt 1 view .LVU777 3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */ 2448 .loc 1 3148 24 is_stmt 0 view .LVU778 2449 018c 00F10209 add r9, r0, #2 3148:Middlewares/Third_Party/FatFs/src/ff.c **** fs->volbase = bsect; /* Volume start sector */ 2450 .loc 1 3148 16 view .LVU779 2451 0190 C4F81890 str r9, [r4, #24] 3149:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + nrsv; /* FAT start sector */ 2452 .loc 1 3149 3 is_stmt 1 view .LVU780 3149:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fatbase = bsect + nrsv; /* FAT start sector */ 2453 .loc 1 3149 15 is_stmt 0 view .LVU781 2454 0194 2662 str r6, [r4, #32] 3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */ 2455 .loc 1 3150 3 is_stmt 1 view .LVU782 3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */ ARM GAS /tmp/cczRNDQp.s page 156 2456 .loc 1 3150 23 is_stmt 0 view .LVU783 2457 0196 8A19 adds r2, r1, r6 3150:Middlewares/Third_Party/FatFs/src/ff.c **** fs->database = bsect + sysect; /* Data start sector */ 2458 .loc 1 3150 15 view .LVU784 2459 0198 6262 str r2, [r4, #36] 3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 2460 .loc 1 3151 3 is_stmt 1 view .LVU785 3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 2461 .loc 1 3151 24 is_stmt 0 view .LVU786 2462 019a 3344 add r3, r3, r6 2463 .LVL261: 3151:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 2464 .loc 1 3151 16 view .LVU787 2465 019c 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 2466 .loc 1 3152 3 is_stmt 1 view .LVU788 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 2467 .loc 1 3152 6 is_stmt 0 view .LVU789 2468 019e BBF1030F cmp fp, #3 2469 01a2 5CD0 beq .L224 3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ 2470 .loc 1 3158 4 is_stmt 1 view .LVU790 3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ 2471 .loc 1 3158 7 is_stmt 0 view .LVU791 2472 01a4 BAF1000F cmp r10, #0 2473 01a8 00F0CC80 beq .L220 3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ 2474 .loc 1 3159 4 is_stmt 1 view .LVU792 3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ 2475 .loc 1 3159 30 is_stmt 0 view .LVU793 2476 01ac 009B ldr r3, [sp] 2477 01ae 1A44 add r2, r2, r3 3159:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ 2478 .loc 1 3159 16 view .LVU794 2479 01b0 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); 2480 .loc 1 3160 4 is_stmt 1 view .LVU795 3161:Middlewares/Third_Party/FatFs/src/ff.c **** } 2481 .loc 1 3161 22 is_stmt 0 view .LVU796 2482 01b2 BBF1020F cmp fp, #2 2483 01b6 63D0 beq .L225 3161:Middlewares/Third_Party/FatFs/src/ff.c **** } 2484 .loc 1 3161 37 discriminator 2 view .LVU797 2485 01b8 09EB4902 add r2, r9, r9, lsl #1 3161:Middlewares/Third_Party/FatFs/src/ff.c **** } 2486 .loc 1 3161 61 discriminator 2 view .LVU798 2487 01bc 09F00103 and r3, r9, #1 3161:Middlewares/Third_Party/FatFs/src/ff.c **** } 2488 .loc 1 3161 22 discriminator 2 view .LVU799 2489 01c0 03EB5203 add r3, r3, r2, lsr #1 2490 .LVL262: 2491 .L192: 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2492 .loc 1 3163 3 is_stmt 1 view .LVU800 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2493 .loc 1 3163 27 is_stmt 0 view .LVU801 2494 01c4 4344 add r3, r3, r8 ARM GAS /tmp/cczRNDQp.s page 157 2495 .LVL263: 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2496 .loc 1 3163 27 view .LVU802 2497 01c6 013B subs r3, r3, #1 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2498 .loc 1 3163 43 view .LVU803 2499 01c8 B3FBF8F8 udiv r8, r3, r8 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2500 .loc 1 3163 6 view .LVU804 2501 01cc B845 cmp r8, r7 2502 01ce 00F2BB80 bhi .L221 3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80; 2503 .loc 1 3167 3 is_stmt 1 view .LVU805 3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80; 2504 .loc 1 3167 33 is_stmt 0 view .LVU806 2505 01d2 4FF0FF33 mov r3, #-1 2506 01d6 6361 str r3, [r4, #20] 3167:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0x80; 2507 .loc 1 3167 17 view .LVU807 2508 01d8 2361 str r3, [r4, #16] 3168:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 3) != 3 2509 .loc 1 3168 3 is_stmt 1 view .LVU808 3168:Middlewares/Third_Party/FatFs/src/ff.c **** #if (_FS_NOFSINFO & 3) != 3 2510 .loc 1 3168 16 is_stmt 0 view .LVU809 2511 01da 8023 movs r3, #128 2512 01dc 2371 strb r3, [r4, #4] 3170:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_word(fs->win + BPB_FSInfo32) == 1 2513 .loc 1 3170 3 is_stmt 1 view .LVU810 3170:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_word(fs->win + BPB_FSInfo32) == 1 2514 .loc 1 3170 6 is_stmt 0 view .LVU811 2515 01de BBF1030F cmp fp, #3 2516 01e2 50D0 beq .L226 2517 .L194: 3191:Middlewares/Third_Party/FatFs/src/ff.c **** fs->id = ++Fsid; /* File system mount ID */ 2518 .loc 1 3191 2 is_stmt 1 view .LVU812 3191:Middlewares/Third_Party/FatFs/src/ff.c **** fs->id = ++Fsid; /* File system mount ID */ 2519 .loc 1 3191 14 is_stmt 0 view .LVU813 2520 01e4 84F800B0 strb fp, [r4] 3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1 2521 .loc 1 3192 2 is_stmt 1 view .LVU814 3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1 2522 .loc 1 3192 11 is_stmt 0 view .LVU815 2523 01e8 4C4A ldr r2, .L229+4 2524 01ea 1388 ldrh r3, [r2] 2525 01ec 0133 adds r3, r3, #1 2526 01ee 9BB2 uxth r3, r3 3192:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN == 1 2527 .loc 1 3192 9 view .LVU816 2528 01f0 1380 strh r3, [r2] @ movhi 2529 01f2 E380 strh r3, [r4, #6] @ movhi 3203:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2530 .loc 1 3203 2 is_stmt 1 view .LVU817 2531 01f4 2046 mov r0, r4 2532 01f6 FFF7FEFF bl clear_lock 2533 .LVL264: 3205:Middlewares/Third_Party/FatFs/src/ff.c **** } 2534 .loc 1 3205 2 view .LVU818 ARM GAS /tmp/cczRNDQp.s page 158 3205:Middlewares/Third_Party/FatFs/src/ff.c **** } 2535 .loc 1 3205 9 is_stmt 0 view .LVU819 2536 01fa 74E0 b .L178 2537 .LVL265: 2538 .L204: 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2539 .loc 1 3054 54 view .LVU820 2540 01fc 0020 movs r0, #0 2541 .LVL266: 2542 .L183: 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2543 .loc 1 3054 10 discriminator 4 view .LVU821 2544 01fe 06AB add r3, sp, #24 2545 0200 03EB8603 add r3, r3, r6, lsl #2 2546 0204 43F8100C str r0, [r3, #-16] 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2547 .loc 1 3052 22 is_stmt 1 discriminator 4 view .LVU822 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2548 .loc 1 3052 23 is_stmt 0 discriminator 4 view .LVU823 2549 0208 0136 adds r6, r6, #1 2550 .LVL267: 2551 .L181: 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2552 .loc 1 3052 15 is_stmt 1 discriminator 2 view .LVU824 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2553 .loc 1 3052 3 is_stmt 0 discriminator 2 view .LVU825 2554 020a 032E cmp r6, #3 2555 020c 0ED8 bhi .L227 3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; 2556 .loc 1 3053 4 is_stmt 1 view .LVU826 3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; 2557 .loc 1 3053 9 is_stmt 0 view .LVU827 2558 020e 04F13400 add r0, r4, #52 3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; 2559 .loc 1 3053 34 view .LVU828 2560 0212 3301 lsls r3, r6, #4 3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; 2561 .loc 1 3053 30 view .LVU829 2562 0214 03F5DF73 add r3, r3, #446 3053:Middlewares/Third_Party/FatFs/src/ff.c **** br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; 2563 .loc 1 3053 7 view .LVU830 2564 0218 1844 add r0, r0, r3 2565 .LVL268: 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2566 .loc 1 3054 4 is_stmt 1 view .LVU831 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2567 .loc 1 3054 14 is_stmt 0 view .LVU832 2568 021a 0379 ldrb r3, [r0, #4] @ zero_extendqisi2 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2569 .loc 1 3054 54 view .LVU833 2570 021c 002B cmp r3, #0 2571 021e EDD0 beq .L204 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2572 .loc 1 3054 29 discriminator 1 view .LVU834 2573 0220 0830 adds r0, r0, #8 2574 .LVL269: 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 159 2575 .loc 1 3054 29 discriminator 1 view .LVU835 2576 0222 FFF7FEFF bl ld_dword 2577 .LVL270: 3054:Middlewares/Third_Party/FatFs/src/ff.c **** } 2578 .loc 1 3054 29 discriminator 1 view .LVU836 2579 0226 EAE7 b .L183 2580 .LVL271: 2581 .L203: 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2582 .loc 1 3052 10 view .LVU837 2583 0228 0026 movs r6, #0 2584 .LVL272: 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2585 .loc 1 3052 10 view .LVU838 2586 022a EEE7 b .L181 2587 .LVL273: 2588 .L227: 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2589 .loc 1 3052 10 view .LVU839 2590 022c 0027 movs r7, #0 2591 .LVL274: 3052:Middlewares/Third_Party/FatFs/src/ff.c **** pt = fs->win + (MBR_Table + i * SZ_PTE); 2592 .loc 1 3052 10 view .LVU840 2593 022e 0AE0 b .L186 2594 .LVL275: 2595 .L228: 3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4); 2596 .loc 1 3060 18 discriminator 1 view .LVU841 2597 0230 3146 mov r1, r6 2598 0232 2046 mov r0, r4 2599 0234 FFF7FEFF bl check_fs 2600 .LVL276: 3061:Middlewares/Third_Party/FatFs/src/ff.c **** } 2601 .loc 1 3061 11 is_stmt 1 discriminator 1 view .LVU842 3061:Middlewares/Third_Party/FatFs/src/ff.c **** } 2602 .loc 1 3061 3 is_stmt 0 discriminator 1 view .LVU843 2603 0238 0128 cmp r0, #1 2604 023a 7FF635AF bls .L182 2605 .LVL277: 2606 .L185: 3061:Middlewares/Third_Party/FatFs/src/ff.c **** } 2607 .loc 1 3061 40 discriminator 1 view .LVU844 2608 023e 0137 adds r7, r7, #1 2609 .LVL278: 3061:Middlewares/Third_Party/FatFs/src/ff.c **** } 2610 .loc 1 3061 40 discriminator 1 view .LVU845 2611 0240 032F cmp r7, #3 2612 0242 3FF631AF bhi .L182 2613 .LVL279: 2614 .L186: 3058:Middlewares/Third_Party/FatFs/src/ff.c **** bsect = br[i]; 2615 .loc 1 3058 3 is_stmt 1 view .LVU846 3059:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ 2616 .loc 1 3059 4 view .LVU847 3059:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ 2617 .loc 1 3059 10 is_stmt 0 view .LVU848 2618 0246 06AB add r3, sp, #24 ARM GAS /tmp/cczRNDQp.s page 160 2619 0248 03EB8703 add r3, r3, r7, lsl #2 2620 024c 53F8106C ldr r6, [r3, #-16] 2621 .LVL280: 3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4); 2622 .loc 1 3060 4 is_stmt 1 view .LVU849 3060:Middlewares/Third_Party/FatFs/src/ff.c **** } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4); 2623 .loc 1 3060 8 is_stmt 0 view .LVU850 2624 0250 002E cmp r6, #0 2625 0252 EDD1 bne .L228 2626 0254 0320 movs r0, #3 2627 0256 F2E7 b .L185 2628 .LVL281: 2629 .L216: 3144:Middlewares/Third_Party/FatFs/src/ff.c **** if (nclst <= MAX_FAT12) fmt = FS_FAT12; 2630 .loc 1 3144 31 view .LVU851 2631 0258 4FF0020B mov fp, #2 2632 025c 90E7 b .L189 2633 .LVL282: 2634 .L224: 3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ 2635 .loc 1 3153 4 is_stmt 1 view .LVU852 3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ 2636 .loc 1 3153 8 is_stmt 0 view .LVU853 2637 025e 04F15E00 add r0, r4, #94 2638 .LVL283: 3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ 2639 .loc 1 3153 8 view .LVU854 2640 0262 FFF7FEFF bl ld_word 2641 .LVL284: 3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ 2642 .loc 1 3153 7 view .LVU855 2643 0266 0028 cmp r0, #0 2644 0268 68D1 bne .L218 3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ 2645 .loc 1 3154 4 is_stmt 1 view .LVU856 3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ 2646 .loc 1 3154 7 is_stmt 0 view .LVU857 2647 026a BAF1000F cmp r10, #0 2648 026e 67D1 bne .L219 3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ 2649 .loc 1 3155 4 is_stmt 1 view .LVU858 3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ 2650 .loc 1 3155 18 is_stmt 0 view .LVU859 2651 0270 04F16000 add r0, r4, #96 2652 0274 FFF7FEFF bl ld_dword 2653 .LVL285: 3155:Middlewares/Third_Party/FatFs/src/ff.c **** szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ 2654 .loc 1 3155 16 view .LVU860 2655 0278 A062 str r0, [r4, #40] 3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 2656 .loc 1 3156 4 is_stmt 1 view .LVU861 3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 2657 .loc 1 3156 11 is_stmt 0 view .LVU862 2658 027a 4FEA8903 lsl r3, r9, #2 2659 .LVL286: 3156:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 2660 .loc 1 3156 11 view .LVU863 ARM GAS /tmp/cczRNDQp.s page 161 2661 027e A1E7 b .L192 2662 .LVL287: 2663 .L225: 3161:Middlewares/Third_Party/FatFs/src/ff.c **** } 2664 .loc 1 3161 22 discriminator 1 view .LVU864 2665 0280 4FEA4903 lsl r3, r9, #1 2666 0284 9EE7 b .L192 2667 .LVL288: 2668 .L226: 3171:Middlewares/Third_Party/FatFs/src/ff.c **** && move_window(fs, bsect + 1) == FR_OK) 2669 .loc 1 3171 7 view .LVU865 2670 0286 04F16400 add r0, r4, #100 2671 028a FFF7FEFF bl ld_word 2672 .LVL289: 3171:Middlewares/Third_Party/FatFs/src/ff.c **** && move_window(fs, bsect + 1) == FR_OK) 2673 .loc 1 3171 4 view .LVU866 2674 028e 0128 cmp r0, #1 2675 0290 A8D1 bne .L194 3172:Middlewares/Third_Party/FatFs/src/ff.c **** { 2676 .loc 1 3172 7 view .LVU867 2677 0292 711C adds r1, r6, #1 2678 0294 2046 mov r0, r4 2679 0296 FFF7FEFF bl move_window 2680 .LVL290: 3172:Middlewares/Third_Party/FatFs/src/ff.c **** { 2681 .loc 1 3172 4 view .LVU868 2682 029a 0028 cmp r0, #0 2683 029c A2D1 bne .L194 3174:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */ 2684 .loc 1 3174 4 is_stmt 1 view .LVU869 3174:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */ 2685 .loc 1 3174 17 is_stmt 0 view .LVU870 2686 029e 0023 movs r3, #0 2687 02a0 2371 strb r3, [r4, #4] 3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 2688 .loc 1 3175 4 is_stmt 1 view .LVU871 3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 2689 .loc 1 3175 8 is_stmt 0 view .LVU872 2690 02a2 04F23220 addw r0, r4, #562 2691 02a6 FFF7FEFF bl ld_word 2692 .LVL291: 3175:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 2693 .loc 1 3175 7 view .LVU873 2694 02aa 4AF65523 movw r3, #43605 2695 02ae 9842 cmp r0, r3 2696 02b0 98D1 bne .L194 3176:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_StrucSig) == 0x61417272) 2697 .loc 1 3176 8 view .LVU874 2698 02b2 04F13400 add r0, r4, #52 2699 02b6 FFF7FEFF bl ld_dword 2700 .LVL292: 3176:Middlewares/Third_Party/FatFs/src/ff.c **** && ld_dword(fs->win + FSI_StrucSig) == 0x61417272) 2701 .loc 1 3176 5 view .LVU875 2702 02ba 194B ldr r3, .L229+8 2703 02bc 9842 cmp r0, r3 2704 02be 91D1 bne .L194 3177:Middlewares/Third_Party/FatFs/src/ff.c **** { ARM GAS /tmp/cczRNDQp.s page 162 2705 .loc 1 3177 8 view .LVU876 2706 02c0 04F50670 add r0, r4, #536 2707 02c4 FFF7FEFF bl ld_dword 2708 .LVL293: 3177:Middlewares/Third_Party/FatFs/src/ff.c **** { 2709 .loc 1 3177 5 view .LVU877 2710 02c8 164B ldr r3, .L229+12 2711 02ca 9842 cmp r0, r3 2712 02cc 8AD1 bne .L194 3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2713 .loc 1 3180 5 is_stmt 1 view .LVU878 3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2714 .loc 1 3180 21 is_stmt 0 view .LVU879 2715 02ce 04F50770 add r0, r4, #540 2716 02d2 FFF7FEFF bl ld_dword 2717 .LVL294: 3180:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2718 .loc 1 3180 19 view .LVU880 2719 02d6 6061 str r0, [r4, #20] 3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2720 .loc 1 3183 5 is_stmt 1 view .LVU881 3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2721 .loc 1 3183 21 is_stmt 0 view .LVU882 2722 02d8 04F50870 add r0, r4, #544 2723 02dc FFF7FEFF bl ld_dword 2724 .LVL295: 3183:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2725 .loc 1 3183 19 view .LVU883 2726 02e0 2061 str r0, [r4, #16] 2727 02e2 7FE7 b .L194 2728 .LVL296: 2729 .L195: 3011:Middlewares/Third_Party/FatFs/src/ff.c **** 2730 .loc 1 3011 22 view .LVU884 2731 02e4 0B25 movs r5, #11 2732 .LVL297: 2733 .L178: 3206:Middlewares/Third_Party/FatFs/src/ff.c **** 2734 .loc 1 3206 1 view .LVU885 2735 02e6 2846 mov r0, r5 2736 02e8 07B0 add sp, sp, #28 2737 .LCFI20: 2738 .cfi_remember_state 2739 .cfi_def_cfa_offset 36 2740 @ sp needed 2741 02ea BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 2742 .LVL298: 2743 .L196: 2744 .LCFI21: 2745 .cfi_restore_state 3015:Middlewares/Third_Party/FatFs/src/ff.c **** 2746 .loc 1 3015 18 view .LVU886 2747 02ee 0C25 movs r5, #12 2748 .LVL299: 3015:Middlewares/Third_Party/FatFs/src/ff.c **** 2749 .loc 1 3015 18 view .LVU887 2750 02f0 F9E7 b .L178 ARM GAS /tmp/cczRNDQp.s page 163 2751 .LVL300: 2752 .L198: 3038:Middlewares/Third_Party/FatFs/src/ff.c **** } 2753 .loc 1 3038 10 view .LVU888 2754 02f2 0325 movs r5, #3 2755 02f4 F7E7 b .L178 2756 .L199: 3041:Middlewares/Third_Party/FatFs/src/ff.c **** } 2757 .loc 1 3041 10 view .LVU889 2758 02f6 0A25 movs r5, #10 2759 02f8 F5E7 b .L178 2760 .LVL301: 2761 .L200: 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; 2762 .loc 1 3044 70 view .LVU890 2763 02fa 0125 movs r5, #1 2764 02fc F3E7 b .L178 2765 .L201: 3045:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 2766 .loc 1 3045 78 view .LVU891 2767 02fe 0125 movs r5, #1 2768 0300 F1E7 b .L178 2769 .LVL302: 2770 .L206: 3063:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ 2771 .loc 1 3063 23 view .LVU892 2772 0302 0125 movs r5, #1 2773 0304 EFE7 b .L178 2774 .L207: 3064:Middlewares/Third_Party/FatFs/src/ff.c **** 2775 .loc 1 3064 23 view .LVU893 2776 0306 0D25 movs r5, #13 2777 0308 EDE7 b .L178 2778 .LVL303: 2779 .L208: 3116:Middlewares/Third_Party/FatFs/src/ff.c **** 2780 .loc 1 3116 59 view .LVU894 2781 030a 0D25 movs r5, #13 2782 030c EBE7 b .L178 2783 .LVL304: 2784 .L209: 3123:Middlewares/Third_Party/FatFs/src/ff.c **** fasize *= fs->n_fats; /* Number of sectors for FAT area */ 2785 .loc 1 3123 50 view .LVU895 2786 030e 0D25 movs r5, #13 2787 0310 E9E7 b .L178 2788 .LVL305: 2789 .L210: 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2790 .loc 1 3127 63 view .LVU896 2791 0312 0D25 movs r5, #13 2792 0314 E7E7 b .L178 2793 .L230: 2794 0316 00BF .align 2 2795 .L229: 2796 0318 00000000 .word .LANCHOR2 2797 031c 00000000 .word .LANCHOR3 2798 0320 52526141 .word 1096897106 ARM GAS /tmp/cczRNDQp.s page 164 2799 0324 72724161 .word 1631679090 2800 .LVL306: 2801 .L211: 3127:Middlewares/Third_Party/FatFs/src/ff.c **** 2802 .loc 1 3127 63 view .LVU897 2803 0328 0D25 movs r5, #13 2804 032a DCE7 b .L178 2805 .L212: 3130:Middlewares/Third_Party/FatFs/src/ff.c **** 2806 .loc 1 3130 49 view .LVU898 2807 032c 0D25 movs r5, #13 2808 032e DAE7 b .L178 2809 .LVL307: 2810 .L213: 3136:Middlewares/Third_Party/FatFs/src/ff.c **** 2811 .loc 1 3136 25 view .LVU899 2812 0330 0D25 movs r5, #13 2813 0332 D8E7 b .L178 2814 .LVL308: 2815 .L214: 3140:Middlewares/Third_Party/FatFs/src/ff.c **** nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ 2816 .loc 1 3140 30 view .LVU900 2817 0334 0D25 movs r5, #13 2818 0336 D6E7 b .L178 2819 .LVL309: 2820 .L215: 3142:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; 2821 .loc 1 3142 26 view .LVU901 2822 0338 0D25 movs r5, #13 2823 033a D4E7 b .L178 2824 .LVL310: 2825 .L218: 3153:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ 2826 .loc 1 3153 52 view .LVU902 2827 033c 0D25 movs r5, #13 2828 033e D2E7 b .L178 2829 .L219: 3154:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ 2830 .loc 1 3154 30 view .LVU903 2831 0340 0D25 movs r5, #13 2832 0342 D0E7 b .L178 2833 .LVL311: 2834 .L220: 3158:Middlewares/Third_Party/FatFs/src/ff.c **** fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ 2835 .loc 1 3158 35 view .LVU904 2836 0344 0D25 movs r5, #13 2837 0346 CEE7 b .L178 2838 .LVL312: 2839 .L221: 3163:Middlewares/Third_Party/FatFs/src/ff.c **** 2840 .loc 1 3163 60 view .LVU905 2841 0348 0D25 movs r5, #13 2842 034a CCE7 b .L178 2843 .cfi_endproc 2844 .LFE1219: 2846 .section .text.put_fat,"ax",%progbits 2847 .align 1 ARM GAS /tmp/cczRNDQp.s page 165 2848 .syntax unified 2849 .thumb 2850 .thumb_func 2851 .fpu fpv5-d16 2853 put_fat: 2854 .LVL313: 2855 .LFB1201: 1086:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bc; 2856 .loc 1 1086 1 is_stmt 1 view -0 2857 .cfi_startproc 2858 @ args = 0, pretend = 0, frame = 0 2859 @ frame_needed = 0, uses_anonymous_args = 0 1086:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bc; 2860 .loc 1 1086 1 is_stmt 0 view .LVU907 2861 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2862 .LCFI22: 2863 .cfi_def_cfa_offset 32 2864 .cfi_offset 4, -32 2865 .cfi_offset 5, -28 2866 .cfi_offset 6, -24 2867 .cfi_offset 7, -20 2868 .cfi_offset 8, -16 2869 .cfi_offset 9, -12 2870 .cfi_offset 10, -8 2871 .cfi_offset 14, -4 1087:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p; 2872 .loc 1 1087 2 is_stmt 1 view .LVU908 1088:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_INT_ERR; 2873 .loc 1 1088 2 view .LVU909 1089:Middlewares/Third_Party/FatFs/src/ff.c **** 2874 .loc 1 1089 2 view .LVU910 2875 .LVL314: 1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) { 2876 .loc 1 1091 2 view .LVU911 1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) { 2877 .loc 1 1091 5 is_stmt 0 view .LVU912 2878 0004 0129 cmp r1, #1 2879 0006 40F29680 bls .L239 2880 000a 0446 mov r4, r0 2881 000c 0D46 mov r5, r1 2882 000e 1746 mov r7, r2 1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) { 2883 .loc 1 1091 28 discriminator 1 view .LVU913 2884 0010 8369 ldr r3, [r0, #24] 1091:Middlewares/Third_Party/FatFs/src/ff.c **** switch (fs->fs_type) { 2885 .loc 1 1091 16 discriminator 1 view .LVU914 2886 0012 8B42 cmp r3, r1 2887 0014 40F29180 bls .L240 1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */ 2888 .loc 1 1092 3 is_stmt 1 view .LVU915 1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */ 2889 .loc 1 1092 13 is_stmt 0 view .LVU916 2890 0018 0378 ldrb r3, [r0] @ zero_extendqisi2 1092:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : /* Bitfield items */ 2891 .loc 1 1092 3 view .LVU917 2892 001a 022B cmp r3, #2 2893 001c 4FD0 beq .L233 ARM GAS /tmp/cczRNDQp.s page 166 2894 001e 032B cmp r3, #3 2895 0020 67D0 beq .L234 2896 0022 012B cmp r3, #1 2897 0024 03D0 beq .L243 2898 0026 0226 movs r6, #2 2899 .LVL315: 2900 .L232: 1128:Middlewares/Third_Party/FatFs/src/ff.c **** } 2901 .loc 1 1128 2 is_stmt 1 view .LVU918 1129:Middlewares/Third_Party/FatFs/src/ff.c **** 2902 .loc 1 1129 1 is_stmt 0 view .LVU919 2903 0028 3046 mov r0, r6 2904 002a BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2905 .LVL316: 2906 .L243: 1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs))); 2907 .loc 1 1094 4 is_stmt 1 view .LVU920 1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs))); 2908 .loc 1 1094 21 view .LVU921 1094:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs))); 2909 .loc 1 1094 24 is_stmt 0 view .LVU922 2910 002e 01EB5108 add r8, r1, r1, lsr #1 2911 .LVL317: 1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2912 .loc 1 1095 4 is_stmt 1 view .LVU923 1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2913 .loc 1 1095 28 is_stmt 0 view .LVU924 2914 0032 416A ldr r1, [r0, #36] 2915 .LVL318: 1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2916 .loc 1 1095 46 view .LVU925 2917 0034 8389 ldrh r3, [r0, #12] 1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2918 .loc 1 1095 44 view .LVU926 2919 0036 B8FBF3F3 udiv r3, r8, r3 1095:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2920 .loc 1 1095 10 view .LVU927 2921 003a 1944 add r1, r1, r3 2922 003c FFF7FEFF bl move_window 2923 .LVL319: 1096:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc++ % SS(fs); 2924 .loc 1 1096 4 is_stmt 1 view .LVU928 1096:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc++ % SS(fs); 2925 .loc 1 1096 7 is_stmt 0 view .LVU929 2926 0040 0646 mov r6, r0 2927 0042 0028 cmp r0, #0 2928 0044 F0D1 bne .L232 1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; 2929 .loc 1 1097 4 is_stmt 1 view .LVU930 1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; 2930 .loc 1 1097 8 is_stmt 0 view .LVU931 2931 0046 04F1340A add r10, r4, #52 1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; 2932 .loc 1 1097 20 view .LVU932 2933 004a 08F10109 add r9, r8, #1 2934 .LVL320: 1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; ARM GAS /tmp/cczRNDQp.s page 167 2935 .loc 1 1097 25 view .LVU933 2936 004e A389 ldrh r3, [r4, #12] 1097:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; 2937 .loc 1 1097 23 view .LVU934 2938 0050 B8FBF3F2 udiv r2, r8, r3 2939 0054 03FB1288 mls r8, r3, r2, r8 2940 .LVL321: 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2941 .loc 1 1098 4 is_stmt 1 view .LVU935 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2942 .loc 1 1098 7 is_stmt 0 view .LVU936 2943 0058 15F00105 ands r5, r5, #1 2944 .LVL322: 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2945 .loc 1 1098 7 view .LVU937 2946 005c 24D0 beq .L235 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2947 .loc 1 1098 24 discriminator 1 view .LVU938 2948 005e 1AF90830 ldrsb r3, [r10, r8] 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2949 .loc 1 1098 27 discriminator 1 view .LVU939 2950 0062 03F00F03 and r3, r3, #15 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2951 .loc 1 1098 48 discriminator 1 view .LVU940 2952 0066 3A01 lsls r2, r7, #4 2953 0068 02F47F62 and r2, r2, #4080 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2954 .loc 1 1098 35 discriminator 1 view .LVU941 2955 006c 1343 orrs r3, r3, r2 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2956 .loc 1 1098 7 discriminator 1 view .LVU942 2957 006e DBB2 uxtb r3, r3 2958 .L236: 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2959 .loc 1 1098 7 discriminator 4 view .LVU943 2960 0070 0AF80830 strb r3, [r10, r8] 1099:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs))); 2961 .loc 1 1099 4 is_stmt 1 discriminator 4 view .LVU944 1099:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, fs->fatbase + (bc / SS(fs))); 2962 .loc 1 1099 14 is_stmt 0 discriminator 4 view .LVU945 2963 0074 0123 movs r3, #1 2964 0076 E370 strb r3, [r4, #3] 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2965 .loc 1 1100 4 is_stmt 1 discriminator 4 view .LVU946 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2966 .loc 1 1100 28 is_stmt 0 discriminator 4 view .LVU947 2967 0078 616A ldr r1, [r4, #36] 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2968 .loc 1 1100 46 discriminator 4 view .LVU948 2969 007a A389 ldrh r3, [r4, #12] 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2970 .loc 1 1100 44 discriminator 4 view .LVU949 2971 007c B9FBF3F3 udiv r3, r9, r3 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2972 .loc 1 1100 10 discriminator 4 view .LVU950 2973 0080 1944 add r1, r1, r3 2974 0082 2046 mov r0, r4 ARM GAS /tmp/cczRNDQp.s page 168 2975 .LVL323: 1100:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 2976 .loc 1 1100 10 discriminator 4 view .LVU951 2977 0084 FFF7FEFF bl move_window 2978 .LVL324: 1101:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc % SS(fs); 2979 .loc 1 1101 4 is_stmt 1 discriminator 4 view .LVU952 1101:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win + bc % SS(fs); 2980 .loc 1 1101 7 is_stmt 0 discriminator 4 view .LVU953 2981 0088 0646 mov r6, r0 2982 008a 0028 cmp r0, #0 2983 008c CCD1 bne .L232 1102:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); 2984 .loc 1 1102 4 is_stmt 1 view .LVU954 1102:Middlewares/Third_Party/FatFs/src/ff.c **** *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); 2985 .loc 1 1102 23 is_stmt 0 view .LVU955 2986 008e 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)); 2987 .loc 1 1102 21 view .LVU956 2988 0090 B9FBF3F2 udiv r2, r9, r3 2989 0094 03FB1299 mls r9, r3, r2, r9 2990 .LVL325: 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2991 .loc 1 1103 4 is_stmt 1 view .LVU957 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2992 .loc 1 1103 7 is_stmt 0 view .LVU958 2993 0098 45B1 cbz r5, .L237 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2994 .loc 1 1103 7 discriminator 1 view .LVU959 2995 009a C7F30712 ubfx r2, r7, #4, #8 2996 .LVL326: 2997 .L238: 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 2998 .loc 1 1103 7 discriminator 4 view .LVU960 2999 009e 0AF80920 strb r2, [r10, r9] 1104:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3000 .loc 1 1104 4 is_stmt 1 discriminator 4 view .LVU961 1104:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3001 .loc 1 1104 14 is_stmt 0 discriminator 4 view .LVU962 3002 00a2 0123 movs r3, #1 3003 00a4 E370 strb r3, [r4, #3] 1105:Middlewares/Third_Party/FatFs/src/ff.c **** 3004 .loc 1 1105 4 is_stmt 1 discriminator 4 view .LVU963 3005 00a6 BFE7 b .L232 3006 .LVL327: 3007 .L235: 1098:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3008 .loc 1 1098 7 is_stmt 0 discriminator 2 view .LVU964 3009 00a8 FBB2 uxtb r3, r7 3010 00aa E1E7 b .L236 3011 .LVL328: 3012 .L237: 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3013 .loc 1 1103 43 discriminator 2 view .LVU965 3014 00ac 1AF90920 ldrsb r2, [r10, r9] 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3015 .loc 1 1103 46 discriminator 2 view .LVU966 ARM GAS /tmp/cczRNDQp.s page 169 3016 00b0 22F00F02 bic r2, r2, #15 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3017 .loc 1 1103 74 discriminator 2 view .LVU967 3018 00b4 C7F30327 ubfx r7, r7, #8, #4 3019 .LVL329: 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3020 .loc 1 1103 54 discriminator 2 view .LVU968 3021 00b8 3A43 orrs r2, r2, r7 1103:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3022 .loc 1 1103 7 discriminator 2 view .LVU969 3023 00ba D2B2 uxtb r2, r2 3024 00bc EFE7 b .L238 3025 .LVL330: 3026 .L233: 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3027 .loc 1 1108 4 is_stmt 1 view .LVU970 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3028 .loc 1 1108 28 is_stmt 0 view .LVU971 3029 00be 416A ldr r1, [r0, #36] 3030 .LVL331: 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3031 .loc 1 1108 49 view .LVU972 3032 00c0 8389 ldrh r3, [r0, #12] 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3033 .loc 1 1108 56 view .LVU973 3034 00c2 5B08 lsrs r3, r3, #1 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3035 .loc 1 1108 46 view .LVU974 3036 00c4 B5FBF3F3 udiv r3, r5, r3 1108:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3037 .loc 1 1108 10 view .LVU975 3038 00c8 1944 add r1, r1, r3 3039 00ca FFF7FEFF bl move_window 3040 .LVL332: 1109:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + clst * 2 % SS(fs), (WORD)val); 3041 .loc 1 1109 4 is_stmt 1 view .LVU976 1109:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + clst * 2 % SS(fs), (WORD)val); 3042 .loc 1 1109 7 is_stmt 0 view .LVU977 3043 00ce 0646 mov r6, r0 3044 00d0 0028 cmp r0, #0 3045 00d2 A9D1 bne .L232 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3046 .loc 1 1110 4 is_stmt 1 view .LVU978 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3047 .loc 1 1110 12 is_stmt 0 view .LVU979 3048 00d4 04F13400 add r0, r4, #52 3049 .LVL333: 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3050 .loc 1 1110 27 view .LVU980 3051 00d8 6D00 lsls r5, r5, #1 3052 .LVL334: 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3053 .loc 1 1110 33 view .LVU981 3054 00da A389 ldrh r3, [r4, #12] 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3055 .loc 1 1110 31 view .LVU982 3056 00dc B5FBF3F2 udiv r2, r5, r3 ARM GAS /tmp/cczRNDQp.s page 170 3057 00e0 03FB1255 mls r5, r3, r2, r5 1110:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3058 .loc 1 1110 4 view .LVU983 3059 00e4 B9B2 uxth r1, r7 3060 00e6 2844 add r0, r0, r5 3061 00e8 FFF7FEFF bl st_word 3062 .LVL335: 1111:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3063 .loc 1 1111 4 is_stmt 1 view .LVU984 1111:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3064 .loc 1 1111 14 is_stmt 0 view .LVU985 3065 00ec 0123 movs r3, #1 3066 00ee E370 strb r3, [r4, #3] 1112:Middlewares/Third_Party/FatFs/src/ff.c **** 3067 .loc 1 1112 4 is_stmt 1 view .LVU986 3068 00f0 9AE7 b .L232 3069 .LVL336: 3070 .L234: 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3071 .loc 1 1118 4 view .LVU987 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3072 .loc 1 1118 28 is_stmt 0 view .LVU988 3073 00f2 416A ldr r1, [r0, #36] 3074 .LVL337: 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3075 .loc 1 1118 49 view .LVU989 3076 00f4 8389 ldrh r3, [r0, #12] 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3077 .loc 1 1118 56 view .LVU990 3078 00f6 9B08 lsrs r3, r3, #2 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3079 .loc 1 1118 46 view .LVU991 3080 00f8 B5FBF3F3 udiv r3, r5, r3 1118:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 3081 .loc 1 1118 10 view .LVU992 3082 00fc 1944 add r1, r1, r3 3083 00fe FFF7FEFF bl move_window 3084 .LVL338: 1119:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 3085 .loc 1 1119 4 is_stmt 1 view .LVU993 1119:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 3086 .loc 1 1119 7 is_stmt 0 view .LVU994 3087 0102 0646 mov r6, r0 3088 0104 0028 cmp r0, #0 3089 0106 8FD1 bne .L232 1120:Middlewares/Third_Party/FatFs/src/ff.c **** val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000); 3090 .loc 1 1120 4 is_stmt 1 view .LVU995 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3091 .loc 1 1121 5 view .LVU996 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3092 .loc 1 1121 16 is_stmt 0 view .LVU997 3093 0108 27F07047 bic r7, r7, #-268435456 3094 .LVL339: 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3095 .loc 1 1121 42 view .LVU998 3096 010c 04F13403 add r3, r4, #52 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 171 3097 .loc 1 1121 57 view .LVU999 3098 0110 AD00 lsls r5, r5, #2 3099 .LVL340: 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3100 .loc 1 1121 63 view .LVU1000 3101 0112 A289 ldrh r2, [r4, #12] 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3102 .loc 1 1121 61 view .LVU1001 3103 0114 B5FBF2F1 udiv r1, r5, r2 3104 0118 02FB1155 mls r5, r2, r1, r5 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3105 .loc 1 1121 33 view .LVU1002 3106 011c 1D44 add r5, r5, r3 3107 011e 2846 mov r0, r5 3108 .LVL341: 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3109 .loc 1 1121 33 view .LVU1003 3110 0120 FFF7FEFF bl ld_dword 3111 .LVL342: 1121:Middlewares/Third_Party/FatFs/src/ff.c **** } 3112 .loc 1 1121 71 view .LVU1004 3113 0124 00F07041 and r1, r0, #-268435456 3114 .LVL343: 1123:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3115 .loc 1 1123 4 is_stmt 1 view .LVU1005 3116 0128 3943 orrs r1, r1, r7 3117 .LVL344: 1123:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 3118 .loc 1 1123 4 is_stmt 0 view .LVU1006 3119 012a 2846 mov r0, r5 3120 012c FFF7FEFF bl st_dword 3121 .LVL345: 1124:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3122 .loc 1 1124 4 is_stmt 1 view .LVU1007 1124:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3123 .loc 1 1124 14 is_stmt 0 view .LVU1008 3124 0130 0123 movs r3, #1 3125 0132 E370 strb r3, [r4, #3] 1125:Middlewares/Third_Party/FatFs/src/ff.c **** } 3126 .loc 1 1125 4 is_stmt 1 view .LVU1009 3127 0134 78E7 b .L232 3128 .LVL346: 3129 .L239: 1089:Middlewares/Third_Party/FatFs/src/ff.c **** 3130 .loc 1 1089 10 is_stmt 0 view .LVU1010 3131 0136 0226 movs r6, #2 3132 0138 76E7 b .L232 3133 .L240: 1089:Middlewares/Third_Party/FatFs/src/ff.c **** 3134 .loc 1 1089 10 view .LVU1011 3135 013a 0226 movs r6, #2 3136 013c 74E7 b .L232 3137 .cfi_endproc 3138 .LFE1201: 3140 .section .text.get_fat,"ax",%progbits 3141 .align 1 3142 .syntax unified ARM GAS /tmp/cczRNDQp.s page 172 3143 .thumb 3144 .thumb_func 3145 .fpu fpv5-d16 3147 get_fat: 3148 .LVL347: 3149 .LFB1200: 1005:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wc, bc; 3150 .loc 1 1005 1 is_stmt 1 view -0 3151 .cfi_startproc 3152 @ args = 0, pretend = 0, frame = 0 3153 @ frame_needed = 0, uses_anonymous_args = 0 1005:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wc, bc; 3154 .loc 1 1005 1 is_stmt 0 view .LVU1013 3155 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3156 .LCFI23: 3157 .cfi_def_cfa_offset 24 3158 .cfi_offset 3, -24 3159 .cfi_offset 4, -20 3160 .cfi_offset 5, -16 3161 .cfi_offset 6, -12 3162 .cfi_offset 7, -8 3163 .cfi_offset 14, -4 1006:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD val; 3164 .loc 1 1006 2 is_stmt 1 view .LVU1014 1007:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs; 3165 .loc 1 1007 2 view .LVU1015 1008:Middlewares/Third_Party/FatFs/src/ff.c **** 3166 .loc 1 1008 2 view .LVU1016 1008:Middlewares/Third_Party/FatFs/src/ff.c **** 3167 .loc 1 1008 9 is_stmt 0 view .LVU1017 3168 0002 0568 ldr r5, [r0] 3169 .LVL348: 1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */ 3170 .loc 1 1011 2 is_stmt 1 view .LVU1018 1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */ 3171 .loc 1 1011 5 is_stmt 0 view .LVU1019 3172 0004 0129 cmp r1, #1 3173 0006 6CD9 bls .L249 3174 0008 0C46 mov r4, r1 1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */ 3175 .loc 1 1011 28 discriminator 1 view .LVU1020 3176 000a AB69 ldr r3, [r5, #24] 1011:Middlewares/Third_Party/FatFs/src/ff.c **** val = 1; /* Internal error */ 3177 .loc 1 1011 15 discriminator 1 view .LVU1021 3178 000c 8B42 cmp r3, r1 3179 000e 6AD9 bls .L250 1015:Middlewares/Third_Party/FatFs/src/ff.c **** 3180 .loc 1 1015 3 is_stmt 1 view .LVU1022 3181 .LVL349: 1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : 3182 .loc 1 1017 3 view .LVU1023 1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : 3183 .loc 1 1017 13 is_stmt 0 view .LVU1024 3184 0010 2B78 ldrb r3, [r5] @ zero_extendqisi2 1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : 3185 .loc 1 1017 3 view .LVU1025 3186 0012 022B cmp r3, #2 ARM GAS /tmp/cczRNDQp.s page 173 3187 0014 37D0 beq .L246 3188 0016 032B cmp r3, #3 3189 0018 4BD0 beq .L247 3190 001a 012B cmp r3, #1 3191 001c 01D0 beq .L257 3192 001e 0120 movs r0, #1 3193 .LVL350: 1017:Middlewares/Third_Party/FatFs/src/ff.c **** case FS_FAT12 : 3194 .loc 1 1017 3 view .LVU1026 3195 0020 60E0 b .L244 3196 .LVL351: 3197 .L257: 1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3198 .loc 1 1019 4 is_stmt 1 view .LVU1027 1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3199 .loc 1 1019 21 view .LVU1028 1019:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3200 .loc 1 1019 24 is_stmt 0 view .LVU1029 3201 0022 01EB5106 add r6, r1, r1, lsr #1 3202 .LVL352: 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3203 .loc 1 1020 4 is_stmt 1 view .LVU1030 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3204 .loc 1 1020 26 is_stmt 0 view .LVU1031 3205 0026 696A ldr r1, [r5, #36] 3206 .LVL353: 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3207 .loc 1 1020 44 view .LVU1032 3208 0028 AB89 ldrh r3, [r5, #12] 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3209 .loc 1 1020 42 view .LVU1033 3210 002a B6FBF3F3 udiv r3, r6, r3 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3211 .loc 1 1020 8 view .LVU1034 3212 002e 1944 add r1, r1, r3 3213 0030 2846 mov r0, r5 3214 .LVL354: 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3215 .loc 1 1020 8 view .LVU1035 3216 0032 FFF7FEFF bl move_window 3217 .LVL355: 1020:Middlewares/Third_Party/FatFs/src/ff.c **** wc = fs->win[bc++ % SS(fs)]; 3218 .loc 1 1020 7 view .LVU1036 3219 0036 10B1 cbz r0, .L258 1015:Middlewares/Third_Party/FatFs/src/ff.c **** 3220 .loc 1 1015 7 view .LVU1037 3221 0038 4FF0FF30 mov r0, #-1 3222 003c 52E0 b .L244 3223 .L258: 1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3224 .loc 1 1021 4 is_stmt 1 view .LVU1038 1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3225 .loc 1 1021 19 is_stmt 0 view .LVU1039 3226 003e 771C adds r7, r6, #1 3227 .LVL356: 1021:Middlewares/Third_Party/FatFs/src/ff.c **** if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; 3228 .loc 1 1021 24 view .LVU1040 ARM GAS /tmp/cczRNDQp.s page 174 3229 0040 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; 3230 .loc 1 1021 22 view .LVU1041 3231 0042 B6FBF3F2 udiv r2, r6, r3 3232 0046 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; 3233 .loc 1 1021 16 view .LVU1042 3234 004a 2E44 add r6, r6, r5 3235 004c 96F83460 ldrb r6, [r6, #52] @ zero_extendqisi2 3236 .LVL357: 1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8; 3237 .loc 1 1022 4 is_stmt 1 view .LVU1043 1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8; 3238 .loc 1 1022 26 is_stmt 0 view .LVU1044 3239 0050 696A ldr r1, [r5, #36] 1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8; 3240 .loc 1 1022 42 view .LVU1045 3241 0052 B7FBF3F3 udiv r3, r7, r3 1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8; 3242 .loc 1 1022 8 view .LVU1046 3243 0056 1944 add r1, r1, r3 3244 0058 2846 mov r0, r5 3245 005a FFF7FEFF bl move_window 3246 .LVL358: 1022:Middlewares/Third_Party/FatFs/src/ff.c **** wc |= fs->win[bc % SS(fs)] << 8; 3247 .loc 1 1022 7 view .LVU1047 3248 005e 0028 cmp r0, #0 3249 0060 43D1 bne .L253 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3250 .loc 1 1023 4 is_stmt 1 view .LVU1048 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3251 .loc 1 1023 23 is_stmt 0 view .LVU1049 3252 0062 AB89 ldrh r3, [r5, #12] 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3253 .loc 1 1023 21 view .LVU1050 3254 0064 B7FBF3F2 udiv r2, r7, r3 3255 0068 03FB1277 mls r7, r3, r2, r7 3256 .LVL359: 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3257 .loc 1 1023 17 view .LVU1051 3258 006c 3D44 add r5, r5, r7 3259 .LVL360: 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3260 .loc 1 1023 17 view .LVU1052 3261 006e 95F83400 ldrb r0, [r5, #52] @ zero_extendqisi2 1023:Middlewares/Third_Party/FatFs/src/ff.c **** val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); 3262 .loc 1 1023 7 view .LVU1053 3263 0072 46EA0020 orr r0, r6, r0, lsl #8 3264 .LVL361: 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3265 .loc 1 1024 4 is_stmt 1 view .LVU1054 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3266 .loc 1 1024 33 is_stmt 0 view .LVU1055 3267 0076 14F0010F tst r4, #1 3268 007a 01D0 beq .L248 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3269 .loc 1 1024 33 discriminator 1 view .LVU1056 ARM GAS /tmp/cczRNDQp.s page 175 3270 007c 0009 lsrs r0, r0, #4 3271 .LVL362: 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3272 .loc 1 1024 33 discriminator 1 view .LVU1057 3273 007e 31E0 b .L244 3274 .LVL363: 3275 .L248: 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3276 .loc 1 1024 33 discriminator 2 view .LVU1058 3277 0080 C0F30B00 ubfx r0, r0, #0, #12 3278 .LVL364: 1024:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3279 .loc 1 1024 33 discriminator 2 view .LVU1059 3280 0084 2EE0 b .L244 3281 .LVL365: 3282 .L246: 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3283 .loc 1 1028 4 is_stmt 1 view .LVU1060 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3284 .loc 1 1028 26 is_stmt 0 view .LVU1061 3285 0086 696A ldr r1, [r5, #36] 3286 .LVL366: 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3287 .loc 1 1028 47 view .LVU1062 3288 0088 AB89 ldrh r3, [r5, #12] 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3289 .loc 1 1028 54 view .LVU1063 3290 008a 5B08 lsrs r3, r3, #1 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3291 .loc 1 1028 44 view .LVU1064 3292 008c B4FBF3F3 udiv r3, r4, r3 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3293 .loc 1 1028 8 view .LVU1065 3294 0090 1944 add r1, r1, r3 3295 0092 2846 mov r0, r5 3296 .LVL367: 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3297 .loc 1 1028 8 view .LVU1066 3298 0094 FFF7FEFF bl move_window 3299 .LVL368: 1028:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_word(fs->win + clst * 2 % SS(fs)); 3300 .loc 1 1028 7 view .LVU1067 3301 0098 50BB cbnz r0, .L254 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3302 .loc 1 1029 4 is_stmt 1 view .LVU1068 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3303 .loc 1 1029 18 is_stmt 0 view .LVU1069 3304 009a 05F13400 add r0, r5, #52 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3305 .loc 1 1029 33 view .LVU1070 3306 009e 6400 lsls r4, r4, #1 3307 .LVL369: 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3308 .loc 1 1029 39 view .LVU1071 3309 00a0 AB89 ldrh r3, [r5, #12] 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3310 .loc 1 1029 37 view .LVU1072 ARM GAS /tmp/cczRNDQp.s page 176 3311 00a2 B4FBF3F2 udiv r2, r4, r3 3312 00a6 03FB1244 mls r4, r3, r2, r4 1029:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3313 .loc 1 1029 10 view .LVU1073 3314 00aa 2044 add r0, r0, r4 3315 00ac FFF7FEFF bl ld_word 3316 .LVL370: 1030:Middlewares/Third_Party/FatFs/src/ff.c **** 3317 .loc 1 1030 4 is_stmt 1 view .LVU1074 3318 00b0 18E0 b .L244 3319 .LVL371: 3320 .L247: 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3321 .loc 1 1033 4 view .LVU1075 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3322 .loc 1 1033 26 is_stmt 0 view .LVU1076 3323 00b2 696A ldr r1, [r5, #36] 3324 .LVL372: 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3325 .loc 1 1033 47 view .LVU1077 3326 00b4 AB89 ldrh r3, [r5, #12] 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3327 .loc 1 1033 54 view .LVU1078 3328 00b6 9B08 lsrs r3, r3, #2 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3329 .loc 1 1033 44 view .LVU1079 3330 00b8 B4FBF3F3 udiv r3, r4, r3 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3331 .loc 1 1033 8 view .LVU1080 3332 00bc 1944 add r1, r1, r3 3333 00be 2846 mov r0, r5 3334 .LVL373: 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3335 .loc 1 1033 8 view .LVU1081 3336 00c0 FFF7FEFF bl move_window 3337 .LVL374: 1033:Middlewares/Third_Party/FatFs/src/ff.c **** val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; 3338 .loc 1 1033 7 view .LVU1082 3339 00c4 B8B9 cbnz r0, .L255 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3340 .loc 1 1034 4 is_stmt 1 view .LVU1083 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3341 .loc 1 1034 19 is_stmt 0 view .LVU1084 3342 00c6 05F13400 add r0, r5, #52 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3343 .loc 1 1034 34 view .LVU1085 3344 00ca A400 lsls r4, r4, #2 3345 .LVL375: 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3346 .loc 1 1034 40 view .LVU1086 3347 00cc AB89 ldrh r3, [r5, #12] 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3348 .loc 1 1034 38 view .LVU1087 3349 00ce B4FBF3F2 udiv r2, r4, r3 3350 00d2 03FB1244 mls r4, r3, r2, r4 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3351 .loc 1 1034 10 view .LVU1088 ARM GAS /tmp/cczRNDQp.s page 177 3352 00d6 2044 add r0, r0, r4 3353 00d8 FFF7FEFF bl ld_dword 3354 .LVL376: 1034:Middlewares/Third_Party/FatFs/src/ff.c **** break; 3355 .loc 1 1034 8 view .LVU1089 3356 00dc 20F07040 bic r0, r0, #-268435456 3357 .LVL377: 1035:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 3358 .loc 1 1035 4 is_stmt 1 view .LVU1090 3359 00e0 00E0 b .L244 3360 .LVL378: 3361 .L249: 1012:Middlewares/Third_Party/FatFs/src/ff.c **** 3362 .loc 1 1012 7 is_stmt 0 view .LVU1091 3363 00e2 0120 movs r0, #1 3364 .LVL379: 3365 .L244: 1070:Middlewares/Third_Party/FatFs/src/ff.c **** 3366 .loc 1 1070 1 view .LVU1092 3367 00e4 F8BD pop {r3, r4, r5, r6, r7, pc} 3368 .LVL380: 3369 .L250: 1012:Middlewares/Third_Party/FatFs/src/ff.c **** 3370 .loc 1 1012 7 view .LVU1093 3371 00e6 0120 movs r0, #1 3372 .LVL381: 1012:Middlewares/Third_Party/FatFs/src/ff.c **** 3373 .loc 1 1012 7 view .LVU1094 3374 00e8 FCE7 b .L244 3375 .LVL382: 3376 .L253: 1015:Middlewares/Third_Party/FatFs/src/ff.c **** 3377 .loc 1 1015 7 view .LVU1095 3378 00ea 4FF0FF30 mov r0, #-1 3379 00ee F9E7 b .L244 3380 .LVL383: 3381 .L254: 1015:Middlewares/Third_Party/FatFs/src/ff.c **** 3382 .loc 1 1015 7 view .LVU1096 3383 00f0 4FF0FF30 mov r0, #-1 3384 00f4 F6E7 b .L244 3385 .L255: 1015:Middlewares/Third_Party/FatFs/src/ff.c **** 3386 .loc 1 1015 7 view .LVU1097 3387 00f6 4FF0FF30 mov r0, #-1 1069:Middlewares/Third_Party/FatFs/src/ff.c **** } 3388 .loc 1 1069 2 is_stmt 1 view .LVU1098 1069:Middlewares/Third_Party/FatFs/src/ff.c **** } 3389 .loc 1 1069 9 is_stmt 0 view .LVU1099 3390 00fa F3E7 b .L244 3391 .cfi_endproc 3392 .LFE1200: 3394 .section .text.dir_sdi,"ax",%progbits 3395 .align 1 3396 .syntax unified 3397 .thumb 3398 .thumb_func ARM GAS /tmp/cczRNDQp.s page 178 3399 .fpu fpv5-d16 3401 dir_sdi: 3402 .LVL384: 3403 .LFB1205: 1474:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD csz, clst; 3404 .loc 1 1474 1 is_stmt 1 view -0 3405 .cfi_startproc 3406 @ args = 0, pretend = 0, frame = 0 3407 @ frame_needed = 0, uses_anonymous_args = 0 1474:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD csz, clst; 3408 .loc 1 1474 1 is_stmt 0 view .LVU1101 3409 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 3410 .LCFI24: 3411 .cfi_def_cfa_offset 24 3412 .cfi_offset 4, -24 3413 .cfi_offset 5, -20 3414 .cfi_offset 6, -16 3415 .cfi_offset 7, -12 3416 .cfi_offset 8, -8 3417 .cfi_offset 14, -4 1475:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 3418 .loc 1 1475 2 is_stmt 1 view .LVU1102 1476:Middlewares/Third_Party/FatFs/src/ff.c **** 3419 .loc 1 1476 2 view .LVU1103 1476:Middlewares/Third_Party/FatFs/src/ff.c **** 3420 .loc 1 1476 9 is_stmt 0 view .LVU1104 3421 0004 D0F80080 ldr r8, [r0] 3422 .LVL385: 1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR; 3423 .loc 1 1479 2 is_stmt 1 view .LVU1105 1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR; 3424 .loc 1 1479 5 is_stmt 0 view .LVU1106 3425 0008 B1F5001F cmp r1, #2097152 3426 000c 4AD2 bcs .L266 3427 000e 0746 mov r7, r0 3428 0010 0E46 mov r6, r1 1479:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_INT_ERR; 3429 .loc 1 1479 84 discriminator 1 view .LVU1107 3430 0012 11F01F0F tst r1, #31 3431 0016 47D1 bne .L267 1482:Middlewares/Third_Party/FatFs/src/ff.c **** clst = dp->obj.sclust; /* Table start cluster (0:root) */ 3432 .loc 1 1482 2 is_stmt 1 view .LVU1108 1482:Middlewares/Third_Party/FatFs/src/ff.c **** clst = dp->obj.sclust; /* Table start cluster (0:root) */ 3433 .loc 1 1482 11 is_stmt 0 view .LVU1109 3434 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# */ 3435 .loc 1 1483 2 is_stmt 1 view .LVU1110 1483:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */ 3436 .loc 1 1483 7 is_stmt 0 view .LVU1111 3437 001a 8468 ldr r4, [r0, #8] 3438 .LVL386: 1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase; 3439 .loc 1 1484 2 is_stmt 1 view .LVU1112 1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase; 3440 .loc 1 1484 5 is_stmt 0 view .LVU1113 3441 001c 2CB9 cbnz r4, .L261 1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase; ARM GAS /tmp/cczRNDQp.s page 179 3442 .loc 1 1484 21 discriminator 1 view .LVU1114 3443 001e 98F80030 ldrb r3, [r8] @ zero_extendqisi2 1484:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fs->dirbase; 3444 .loc 1 1484 16 discriminator 1 view .LVU1115 3445 0022 022B cmp r3, #2 3446 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 */ 3447 .loc 1 1485 3 is_stmt 1 view .LVU1116 1485:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */ 3448 .loc 1 1485 8 is_stmt 0 view .LVU1117 3449 0026 D8F82840 ldr r4, [r8, #40] 3450 .LVL387: 1486:Middlewares/Third_Party/FatFs/src/ff.c **** } 3451 .loc 1 1486 3 is_stmt 1 view .LVU1118 3452 .L261: 1489:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ 3453 .loc 1 1489 2 view .LVU1119 1489:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ 3454 .loc 1 1489 5 is_stmt 0 view .LVU1120 3455 002a ECB9 cbnz r4, .L262 1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase; 3456 .loc 1 1490 3 is_stmt 1 view .LVU1121 1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase; 3457 .loc 1 1490 25 is_stmt 0 view .LVU1122 3458 002c B8F80830 ldrh r3, [r8, #8] 1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase; 3459 .loc 1 1490 6 view .LVU1123 3460 0030 B3EB561F cmp r3, r6, lsr #5 3461 0034 3AD9 bls .L268 1491:Middlewares/Third_Party/FatFs/src/ff.c **** 3462 .loc 1 1491 3 is_stmt 1 view .LVU1124 1491:Middlewares/Third_Party/FatFs/src/ff.c **** 3463 .loc 1 1491 16 is_stmt 0 view .LVU1125 3464 0036 D8F82830 ldr r3, [r8, #40] 1491:Middlewares/Third_Party/FatFs/src/ff.c **** 3465 .loc 1 1491 12 view .LVU1126 3466 003a FB61 str r3, [r7, #28] 3467 .LVL388: 3468 .L263: 1503:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return FR_INT_ERR; 3469 .loc 1 1503 2 is_stmt 1 view .LVU1127 1503:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dp->sect) return FR_INT_ERR; 3470 .loc 1 1503 12 is_stmt 0 view .LVU1128 3471 003c BC61 str r4, [r7, #24] 1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ 3472 .loc 1 1504 2 is_stmt 1 view .LVU1129 1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ 3473 .loc 1 1504 9 is_stmt 0 view .LVU1130 3474 003e FB69 ldr r3, [r7, #28] 1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ 3475 .loc 1 1504 5 view .LVU1131 3476 0040 E3B3 cbz r3, .L272 1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ 3477 .loc 1 1505 2 is_stmt 1 view .LVU1132 1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ 3478 .loc 1 1505 20 is_stmt 0 view .LVU1133 3479 0042 B8F80C20 ldrh r2, [r8, #12] ARM GAS /tmp/cczRNDQp.s page 180 1505:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ 3480 .loc 1 1505 18 view .LVU1134 3481 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[] */ 3482 .loc 1 1505 11 view .LVU1135 3483 004a 1344 add r3, r3, r2 3484 004c FB61 str r3, [r7, #28] 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3485 .loc 1 1506 2 is_stmt 1 view .LVU1136 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3486 .loc 1 1506 12 is_stmt 0 view .LVU1137 3487 004e 08F13403 add r3, r8, #52 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3488 .loc 1 1506 29 view .LVU1138 3489 0052 B8F80C10 ldrh r1, [r8, #12] 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3490 .loc 1 1506 27 view .LVU1139 3491 0056 B6FBF1F2 udiv r2, r6, r1 3492 005a 01FB1261 mls r1, r1, r2, r6 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3493 .loc 1 1506 20 view .LVU1140 3494 005e 1944 add r1, r1, r3 1506:Middlewares/Third_Party/FatFs/src/ff.c **** 3495 .loc 1 1506 10 view .LVU1141 3496 0060 3962 str r1, [r7, #32] 1508:Middlewares/Third_Party/FatFs/src/ff.c **** } 3497 .loc 1 1508 2 is_stmt 1 view .LVU1142 1508:Middlewares/Third_Party/FatFs/src/ff.c **** } 3498 .loc 1 1508 9 is_stmt 0 view .LVU1143 3499 0062 0020 movs r0, #0 3500 .LVL389: 3501 .L260: 1509:Middlewares/Third_Party/FatFs/src/ff.c **** 3502 .loc 1 1509 1 view .LVU1144 3503 0064 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3504 .LVL390: 3505 .L262: 1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */ 3506 .loc 1 1494 3 is_stmt 1 view .LVU1145 1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */ 3507 .loc 1 1494 18 is_stmt 0 view .LVU1146 3508 0068 B8F80A50 ldrh r5, [r8, #10] 1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */ 3509 .loc 1 1494 28 view .LVU1147 3510 006c B8F80C30 ldrh r3, [r8, #12] 1494:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs >= csz) { /* Follow cluster chain */ 3511 .loc 1 1494 7 view .LVU1148 3512 0070 03FB05F5 mul r5, r3, r5 3513 .LVL391: 1495:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, clst); /* Get next cluster */ 3514 .loc 1 1495 3 is_stmt 1 view .LVU1149 3515 .L264: 1495:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, clst); /* Get next cluster */ 3516 .loc 1 1495 9 view .LVU1150 3517 0074 AE42 cmp r6, r5 3518 0076 0FD3 bcc .L274 1496:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ ARM GAS /tmp/cczRNDQp.s page 181 3519 .loc 1 1496 4 view .LVU1151 1496:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 3520 .loc 1 1496 11 is_stmt 0 view .LVU1152 3521 0078 2146 mov r1, r4 3522 007a 3846 mov r0, r7 3523 007c FFF7FEFF bl get_fat 3524 .LVL392: 3525 0080 0446 mov r4, r0 3526 .LVL393: 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 3527 .loc 1 1497 4 is_stmt 1 view .LVU1153 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 3528 .loc 1 1497 7 is_stmt 0 view .LVU1154 3529 0082 B0F1FF3F cmp r0, #-1 3530 0086 13D0 beq .L269 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3531 .loc 1 1498 4 is_stmt 1 view .LVU1155 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3532 .loc 1 1498 7 is_stmt 0 view .LVU1156 3533 0088 0128 cmp r0, #1 3534 008a 13D9 bls .L270 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3535 .loc 1 1498 30 discriminator 2 view .LVU1157 3536 008c D8F81830 ldr r3, [r8, #24] 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3537 .loc 1 1498 17 discriminator 2 view .LVU1158 3538 0090 8342 cmp r3, r0 3539 0092 11D9 bls .L271 1499:Middlewares/Third_Party/FatFs/src/ff.c **** } 3540 .loc 1 1499 4 is_stmt 1 view .LVU1159 1499:Middlewares/Third_Party/FatFs/src/ff.c **** } 3541 .loc 1 1499 8 is_stmt 0 view .LVU1160 3542 0094 761B subs r6, r6, r5 3543 .LVL394: 1499:Middlewares/Third_Party/FatFs/src/ff.c **** } 3544 .loc 1 1499 8 view .LVU1161 3545 0096 EDE7 b .L264 3546 .LVL395: 3547 .L274: 1501:Middlewares/Third_Party/FatFs/src/ff.c **** } 3548 .loc 1 1501 3 is_stmt 1 view .LVU1162 1501:Middlewares/Third_Party/FatFs/src/ff.c **** } 3549 .loc 1 1501 14 is_stmt 0 view .LVU1163 3550 0098 2146 mov r1, r4 3551 009a 4046 mov r0, r8 3552 009c FFF7FEFF bl clust2sect 3553 .LVL396: 1501:Middlewares/Third_Party/FatFs/src/ff.c **** } 3554 .loc 1 1501 12 view .LVU1164 3555 00a0 F861 str r0, [r7, #28] 3556 00a2 CBE7 b .L263 3557 .LVL397: 3558 .L266: 1480:Middlewares/Third_Party/FatFs/src/ff.c **** } 3559 .loc 1 1480 10 view .LVU1165 3560 00a4 0220 movs r0, #2 3561 .LVL398: ARM GAS /tmp/cczRNDQp.s page 182 1480:Middlewares/Third_Party/FatFs/src/ff.c **** } 3562 .loc 1 1480 10 view .LVU1166 3563 00a6 DDE7 b .L260 3564 .LVL399: 3565 .L267: 1480:Middlewares/Third_Party/FatFs/src/ff.c **** } 3566 .loc 1 1480 10 view .LVU1167 3567 00a8 0220 movs r0, #2 3568 .LVL400: 1480:Middlewares/Third_Party/FatFs/src/ff.c **** } 3569 .loc 1 1480 10 view .LVU1168 3570 00aa DBE7 b .L260 3571 .LVL401: 3572 .L268: 1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase; 3573 .loc 1 1490 45 view .LVU1169 3574 00ac 0220 movs r0, #2 3575 .LVL402: 1490:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = fs->dirbase; 3576 .loc 1 1490 45 view .LVU1170 3577 00ae D9E7 b .L260 3578 .LVL403: 3579 .L269: 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 3580 .loc 1 1497 35 view .LVU1171 3581 00b0 0120 movs r0, #1 3582 .LVL404: 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 3583 .loc 1 1497 35 view .LVU1172 3584 00b2 D7E7 b .L260 3585 .LVL405: 3586 .L270: 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3587 .loc 1 1498 49 view .LVU1173 3588 00b4 0220 movs r0, #2 3589 .LVL406: 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3590 .loc 1 1498 49 view .LVU1174 3591 00b6 D5E7 b .L260 3592 .LVL407: 3593 .L271: 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3594 .loc 1 1498 49 view .LVU1175 3595 00b8 0220 movs r0, #2 3596 .LVL408: 1498:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= csz; 3597 .loc 1 1498 49 view .LVU1176 3598 00ba D3E7 b .L260 3599 .LVL409: 3600 .L272: 1504:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ 3601 .loc 1 1504 24 view .LVU1177 3602 00bc 0220 movs r0, #2 3603 00be D1E7 b .L260 3604 .cfi_endproc 3605 .LFE1205: 3607 .section .text.create_chain,"ax",%progbits ARM GAS /tmp/cczRNDQp.s page 183 3608 .align 1 3609 .syntax unified 3610 .thumb 3611 .thumb_func 3612 .fpu fpv5-d16 3614 create_chain: 3615 .LVL410: 3616 .LFB1203: 1355:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cs, ncl, scl; 3617 .loc 1 1355 1 is_stmt 1 view -0 3618 .cfi_startproc 3619 @ args = 0, pretend = 0, frame = 0 3620 @ frame_needed = 0, uses_anonymous_args = 0 1355:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD cs, ncl, scl; 3621 .loc 1 1355 1 is_stmt 0 view .LVU1179 3622 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 3623 .LCFI25: 3624 .cfi_def_cfa_offset 24 3625 .cfi_offset 4, -24 3626 .cfi_offset 5, -20 3627 .cfi_offset 6, -16 3628 .cfi_offset 7, -12 3629 .cfi_offset 8, -8 3630 .cfi_offset 14, -4 3631 0004 0546 mov r5, r0 1356:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 3632 .loc 1 1356 2 is_stmt 1 view .LVU1180 1357:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs; 3633 .loc 1 1357 2 view .LVU1181 1358:Middlewares/Third_Party/FatFs/src/ff.c **** 3634 .loc 1 1358 2 view .LVU1182 1358:Middlewares/Third_Party/FatFs/src/ff.c **** 3635 .loc 1 1358 9 is_stmt 0 view .LVU1183 3636 0006 0668 ldr r6, [r0] 3637 .LVL411: 1361:Middlewares/Third_Party/FatFs/src/ff.c **** scl = fs->last_clst; /* Get suggested cluster to start from */ 3638 .loc 1 1361 2 is_stmt 1 view .LVU1184 1361:Middlewares/Third_Party/FatFs/src/ff.c **** scl = fs->last_clst; /* Get suggested cluster to start from */ 3639 .loc 1 1361 5 is_stmt 0 view .LVU1185 3640 0008 0F46 mov r7, r1 3641 000a 51B9 cbnz r1, .L276 1362:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0 || scl >= fs->n_fatent) scl = 1; 3642 .loc 1 1362 3 is_stmt 1 view .LVU1186 1362:Middlewares/Third_Party/FatFs/src/ff.c **** if (scl == 0 || scl >= fs->n_fatent) scl = 1; 3643 .loc 1 1362 7 is_stmt 0 view .LVU1187 3644 000c D6F81080 ldr r8, [r6, #16] 3645 .LVL412: 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3646 .loc 1 1363 3 is_stmt 1 view .LVU1188 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3647 .loc 1 1363 6 is_stmt 0 view .LVU1189 3648 0010 B8F1000F cmp r8, #0 3649 0014 12D0 beq .L285 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3650 .loc 1 1363 28 discriminator 2 view .LVU1190 3651 0016 B369 ldr r3, [r6, #24] 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 184 3652 .loc 1 1363 16 discriminator 2 view .LVU1191 3653 0018 4345 cmp r3, r8 3654 001a 11D8 bhi .L277 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3655 .loc 1 1363 44 view .LVU1192 3656 001c 4FF00108 mov r8, #1 3657 .LVL413: 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3658 .loc 1 1363 44 view .LVU1193 3659 0020 0EE0 b .L277 3660 .LVL414: 3661 .L276: 1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */ 3662 .loc 1 1366 3 is_stmt 1 view .LVU1194 1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */ 3663 .loc 1 1366 8 is_stmt 0 view .LVU1195 3664 0022 FFF7FEFF bl get_fat 3665 .LVL415: 1366:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < 2) return 1; /* Invalid FAT value */ 3666 .loc 1 1366 8 view .LVU1196 3667 0026 0346 mov r3, r0 3668 .LVL416: 1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ 3669 .loc 1 1367 3 is_stmt 1 view .LVU1197 1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ 3670 .loc 1 1367 6 is_stmt 0 view .LVU1198 3671 0028 0128 cmp r0, #1 3672 002a 4CD9 bls .L287 1368:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ 3673 .loc 1 1368 3 is_stmt 1 view .LVU1199 1368:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ 3674 .loc 1 1368 6 is_stmt 0 view .LVU1200 3675 002c B0F1FF3F cmp r0, #-1 3676 0030 4ED0 beq .L275 1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst; 3677 .loc 1 1369 3 is_stmt 1 view .LVU1201 1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst; 3678 .loc 1 1369 14 is_stmt 0 view .LVU1202 3679 0032 B269 ldr r2, [r6, #24] 1369:Middlewares/Third_Party/FatFs/src/ff.c **** scl = clst; 3680 .loc 1 1369 6 view .LVU1203 3681 0034 8242 cmp r2, r0 3682 0036 4BD8 bhi .L275 1370:Middlewares/Third_Party/FatFs/src/ff.c **** } 3683 .loc 1 1370 7 view .LVU1204 3684 0038 B846 mov r8, r7 3685 003a 01E0 b .L277 3686 .LVL417: 3687 .L285: 1363:Middlewares/Third_Party/FatFs/src/ff.c **** } 3688 .loc 1 1363 44 view .LVU1205 3689 003c 4FF00108 mov r8, #1 3690 .LVL418: 3691 .L277: 1400:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { 3692 .loc 1 1400 3 is_stmt 1 view .LVU1206 1400:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { ARM GAS /tmp/cczRNDQp.s page 185 3693 .loc 1 1400 7 is_stmt 0 view .LVU1207 3694 0040 4446 mov r4, r8 3695 0042 0CE0 b .L281 3696 .LVL419: 3697 .L279: 1407:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0) break; /* Found a free cluster */ 3698 .loc 1 1407 4 is_stmt 1 view .LVU1208 1407:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0) break; /* Found a free cluster */ 3699 .loc 1 1407 9 is_stmt 0 view .LVU1209 3700 0044 2146 mov r1, r4 3701 0046 2846 mov r0, r5 3702 0048 FFF7FEFF bl get_fat 3703 .LVL420: 1408:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ 3704 .loc 1 1408 4 is_stmt 1 view .LVU1210 1408:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ 3705 .loc 1 1408 7 is_stmt 0 view .LVU1211 3706 004c 0346 mov r3, r0 3707 004e 78B1 cbz r0, .L280 1409:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == scl) return 0; /* No free cluster */ 3708 .loc 1 1409 4 is_stmt 1 view .LVU1212 1409:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == scl) return 0; /* No free cluster */ 3709 .loc 1 1409 7 is_stmt 0 view .LVU1213 3710 0050 B0F1FF3F cmp r0, #-1 3711 0054 18BF it ne 3712 0056 0128 cmpne r0, #1 3713 0058 3AD0 beq .L275 1410:Middlewares/Third_Party/FatFs/src/ff.c **** } 3714 .loc 1 1410 4 is_stmt 1 view .LVU1214 1410:Middlewares/Third_Party/FatFs/src/ff.c **** } 3715 .loc 1 1410 7 is_stmt 0 view .LVU1215 3716 005a 4445 cmp r4, r8 3717 005c 37D0 beq .L292 3718 .LVL421: 3719 .L281: 1401:Middlewares/Third_Party/FatFs/src/ff.c **** ncl++; /* Next cluster */ 3720 .loc 1 1401 3 is_stmt 1 view .LVU1216 1402:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl >= fs->n_fatent) { /* Check wrap-around */ 3721 .loc 1 1402 4 view .LVU1217 1402:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl >= fs->n_fatent) { /* Check wrap-around */ 3722 .loc 1 1402 7 is_stmt 0 view .LVU1218 3723 005e 0134 adds r4, r4, #1 3724 .LVL422: 1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2; 3725 .loc 1 1403 4 is_stmt 1 view .LVU1219 1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2; 3726 .loc 1 1403 17 is_stmt 0 view .LVU1220 3727 0060 B369 ldr r3, [r6, #24] 1403:Middlewares/Third_Party/FatFs/src/ff.c **** ncl = 2; 3728 .loc 1 1403 7 view .LVU1221 3729 0062 A342 cmp r3, r4 3730 0064 EED8 bhi .L279 1404:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl > scl) return 0; /* No free cluster */ 3731 .loc 1 1404 5 is_stmt 1 view .LVU1222 3732 .LVL423: 1405:Middlewares/Third_Party/FatFs/src/ff.c **** } 3733 .loc 1 1405 5 view .LVU1223 ARM GAS /tmp/cczRNDQp.s page 186 1405:Middlewares/Third_Party/FatFs/src/ff.c **** } 3734 .loc 1 1405 8 is_stmt 0 view .LVU1224 3735 0066 B8F1010F cmp r8, #1 3736 006a 2ED9 bls .L288 1404:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl > scl) return 0; /* No free cluster */ 3737 .loc 1 1404 9 view .LVU1225 3738 006c 0224 movs r4, #2 3739 006e E9E7 b .L279 3740 .LVL424: 3741 .L280: 1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) { 3742 .loc 1 1412 3 is_stmt 1 view .LVU1226 1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) { 3743 .loc 1 1412 9 is_stmt 0 view .LVU1227 3744 0070 4FF0FF32 mov r2, #-1 3745 0074 2146 mov r1, r4 3746 0076 3046 mov r0, r6 3747 .LVL425: 1412:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && clst != 0) { 3748 .loc 1 1412 9 view .LVU1228 3749 0078 FFF7FEFF bl put_fat 3750 .LVL426: 1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ 3751 .loc 1 1413 3 is_stmt 1 view .LVU1229 1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ 3752 .loc 1 1413 11 is_stmt 0 view .LVU1230 3753 007c 0346 mov r3, r0 1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ 3754 .loc 1 1413 20 view .LVU1231 3755 007e B0FA80F0 clz r0, r0 3756 .LVL427: 1413:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ 3757 .loc 1 1413 20 view .LVU1232 3758 0082 4009 lsrs r0, r0, #5 3759 0084 002F cmp r7, #0 3760 0086 08BF it eq 3761 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 */ 3762 .loc 1 1413 6 view .LVU1233 3763 008a 70B9 cbnz r0, .L293 3764 .L282: 3765 .LVL428: 1418:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ncl; 3766 .loc 1 1418 2 is_stmt 1 view .LVU1234 1418:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = ncl; 3767 .loc 1 1418 5 is_stmt 0 view .LVU1235 3768 008c A3B9 cbnz r3, .L283 1419:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--; 3769 .loc 1 1419 3 is_stmt 1 view .LVU1236 1419:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--; 3770 .loc 1 1419 17 is_stmt 0 view .LVU1237 3771 008e 3461 str r4, [r6, #16] 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3772 .loc 1 1420 3 is_stmt 1 view .LVU1238 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3773 .loc 1 1420 9 is_stmt 0 view .LVU1239 3774 0090 7269 ldr r2, [r6, #20] ARM GAS /tmp/cczRNDQp.s page 187 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3775 .loc 1 1420 26 view .LVU1240 3776 0092 B369 ldr r3, [r6, #24] 3777 .LVL429: 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3778 .loc 1 1420 37 view .LVU1241 3779 0094 023B subs r3, r3, #2 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3780 .loc 1 1420 6 view .LVU1242 3781 0096 9A42 cmp r2, r3 3782 0098 01D8 bhi .L284 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3783 .loc 1 1420 42 is_stmt 1 discriminator 1 view .LVU1243 1420:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3784 .loc 1 1420 55 is_stmt 0 discriminator 1 view .LVU1244 3785 009a 013A subs r2, r2, #1 3786 009c 7261 str r2, [r6, #20] 3787 .L284: 1421:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 3788 .loc 1 1421 3 is_stmt 1 view .LVU1245 1421:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 3789 .loc 1 1421 16 is_stmt 0 view .LVU1246 3790 009e 3379 ldrb r3, [r6, #4] @ zero_extendqisi2 3791 00a0 43F00103 orr r3, r3, #1 3792 00a4 3371 strb r3, [r6, #4] 3793 00a6 2346 mov r3, r4 3794 00a8 12E0 b .L275 3795 .L293: 1414:Middlewares/Third_Party/FatFs/src/ff.c **** } 3796 .loc 1 1414 4 is_stmt 1 view .LVU1247 1414:Middlewares/Third_Party/FatFs/src/ff.c **** } 3797 .loc 1 1414 10 is_stmt 0 view .LVU1248 3798 00aa 2246 mov r2, r4 3799 00ac 3946 mov r1, r7 3800 00ae 3046 mov r0, r6 3801 00b0 FFF7FEFF bl put_fat 3802 .LVL430: 3803 00b4 0346 mov r3, r0 3804 .LVL431: 1414:Middlewares/Third_Party/FatFs/src/ff.c **** } 3805 .loc 1 1414 10 view .LVU1249 3806 00b6 E9E7 b .L282 3807 .L283: 1423:Middlewares/Third_Party/FatFs/src/ff.c **** } 3808 .loc 1 1423 3 is_stmt 1 view .LVU1250 1423:Middlewares/Third_Party/FatFs/src/ff.c **** } 3809 .loc 1 1423 43 is_stmt 0 view .LVU1251 3810 00b8 012B cmp r3, #1 3811 00ba 01D0 beq .L294 3812 00bc 0123 movs r3, #1 3813 .LVL432: 1423:Middlewares/Third_Party/FatFs/src/ff.c **** } 3814 .loc 1 1423 43 view .LVU1252 3815 00be 07E0 b .L275 3816 .LVL433: 3817 .L294: 1423:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 188 3818 .loc 1 1423 43 view .LVU1253 3819 00c0 4FF0FF33 mov r3, #-1 3820 .LVL434: 1423:Middlewares/Third_Party/FatFs/src/ff.c **** } 3821 .loc 1 1423 43 view .LVU1254 3822 00c4 04E0 b .L275 3823 .LVL435: 3824 .L287: 1367:Middlewares/Third_Party/FatFs/src/ff.c **** if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ 3825 .loc 1 1367 22 view .LVU1255 3826 00c6 0123 movs r3, #1 3827 00c8 02E0 b .L275 3828 .LVL436: 3829 .L288: 1405:Middlewares/Third_Party/FatFs/src/ff.c **** } 3830 .loc 1 1405 27 view .LVU1256 3831 00ca 0023 movs r3, #0 3832 00cc 00E0 b .L275 3833 .LVL437: 3834 .L292: 1410:Middlewares/Third_Party/FatFs/src/ff.c **** } 3835 .loc 1 1410 27 view .LVU1257 3836 00ce 0023 movs r3, #0 3837 .LVL438: 3838 .L275: 1427:Middlewares/Third_Party/FatFs/src/ff.c **** 3839 .loc 1 1427 1 view .LVU1258 3840 00d0 1846 mov r0, r3 3841 00d2 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1427:Middlewares/Third_Party/FatFs/src/ff.c **** 3842 .loc 1 1427 1 view .LVU1259 3843 .cfi_endproc 3844 .LFE1203: 3846 .section .text.remove_chain,"ax",%progbits 3847 .align 1 3848 .syntax unified 3849 .thumb 3850 .thumb_func 3851 .fpu fpv5-d16 3853 remove_chain: 3854 .LVL439: 3855 .LFB1202: 1276:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK; 3856 .loc 1 1276 1 is_stmt 1 view -0 3857 .cfi_startproc 3858 @ args = 0, pretend = 0, frame = 0 3859 @ frame_needed = 0, uses_anonymous_args = 0 1276:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_OK; 3860 .loc 1 1276 1 is_stmt 0 view .LVU1261 3861 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3862 .LCFI26: 3863 .cfi_def_cfa_offset 24 3864 .cfi_offset 3, -24 3865 .cfi_offset 4, -20 3866 .cfi_offset 5, -16 3867 .cfi_offset 6, -12 3868 .cfi_offset 7, -8 ARM GAS /tmp/cczRNDQp.s page 189 3869 .cfi_offset 14, -4 3870 0002 0C46 mov r4, r1 1277:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nxt; 3871 .loc 1 1277 2 is_stmt 1 view .LVU1262 3872 .LVL440: 1278:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs; 3873 .loc 1 1278 2 view .LVU1263 1279:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM 3874 .loc 1 1279 2 view .LVU1264 1279:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT || _USE_TRIM 3875 .loc 1 1279 9 is_stmt 0 view .LVU1265 3876 0004 0568 ldr r5, [r0] 3877 .LVL441: 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3878 .loc 1 1287 2 is_stmt 1 view .LVU1266 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3879 .loc 1 1287 5 is_stmt 0 view .LVU1267 3880 0006 0129 cmp r1, #1 3881 0008 2ED9 bls .L300 3882 000a 0646 mov r6, r0 3883 000c 1146 mov r1, r2 3884 .LVL442: 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3885 .loc 1 1287 28 discriminator 2 view .LVU1268 3886 000e AB69 ldr r3, [r5, #24] 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3887 .loc 1 1287 15 discriminator 2 view .LVU1269 3888 0010 A342 cmp r3, r4 3889 0012 2BD9 bls .L301 1290:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, pclst, 0xFFFFFFFF); 3890 .loc 1 1290 2 is_stmt 1 view .LVU1270 1290:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, pclst, 0xFFFFFFFF); 3891 .loc 1 1290 5 is_stmt 0 view .LVU1271 3892 0014 4AB1 cbz r2, .L299 1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3893 .loc 1 1291 3 is_stmt 1 view .LVU1272 1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3894 .loc 1 1291 9 is_stmt 0 view .LVU1273 3895 0016 4FF0FF32 mov r2, #-1 3896 .LVL443: 1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3897 .loc 1 1291 9 view .LVU1274 3898 001a 2846 mov r0, r5 3899 .LVL444: 1291:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3900 .loc 1 1291 9 view .LVU1275 3901 001c FFF7FEFF bl put_fat 3902 .LVL445: 1292:Middlewares/Third_Party/FatFs/src/ff.c **** } 3903 .loc 1 1292 3 is_stmt 1 view .LVU1276 1292:Middlewares/Third_Party/FatFs/src/ff.c **** } 3904 .loc 1 1292 6 is_stmt 0 view .LVU1277 3905 0020 0746 mov r7, r0 3906 0022 10B1 cbz r0, .L299 3907 0024 23E0 b .L296 3908 .LVL446: 3909 .L298: ARM GAS /tmp/cczRNDQp.s page 190 1327:Middlewares/Third_Party/FatFs/src/ff.c **** } while (clst < fs->n_fatent); /* Repeat while not the last link */ 3910 .loc 1 1327 3 is_stmt 1 view .LVU1278 1328:Middlewares/Third_Party/FatFs/src/ff.c **** 3911 .loc 1 1328 10 view .LVU1279 1328:Middlewares/Third_Party/FatFs/src/ff.c **** 3912 .loc 1 1328 2 is_stmt 0 view .LVU1280 3913 0026 A242 cmp r2, r4 3914 0028 21D9 bls .L296 3915 .LVL447: 3916 .L299: 1296:Middlewares/Third_Party/FatFs/src/ff.c **** nxt = get_fat(obj, clst); /* Get cluster status */ 3917 .loc 1 1296 2 is_stmt 1 view .LVU1281 1297:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0) break; /* Empty cluster? */ 3918 .loc 1 1297 3 view .LVU1282 3919 002a 2746 mov r7, r4 1297:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0) break; /* Empty cluster? */ 3920 .loc 1 1297 9 is_stmt 0 view .LVU1283 3921 002c 2146 mov r1, r4 3922 002e 3046 mov r0, r6 3923 0030 FFF7FEFF bl get_fat 3924 .LVL448: 1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */ 3925 .loc 1 1298 3 is_stmt 1 view .LVU1284 1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */ 3926 .loc 1 1298 6 is_stmt 0 view .LVU1285 3927 0034 0446 mov r4, r0 3928 .LVL449: 1298:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 1) return FR_INT_ERR; /* Internal error? */ 3929 .loc 1 1298 6 view .LVU1286 3930 0036 E0B1 cbz r0, .L302 1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ 3931 .loc 1 1299 3 is_stmt 1 view .LVU1287 1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ 3932 .loc 1 1299 6 is_stmt 0 view .LVU1288 3933 0038 0128 cmp r0, #1 3934 003a 1CD0 beq .L303 1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 3935 .loc 1 1300 3 is_stmt 1 view .LVU1289 1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 3936 .loc 1 1300 6 is_stmt 0 view .LVU1290 3937 003c B0F1FF3F cmp r0, #-1 3938 0040 1BD0 beq .L304 1301:Middlewares/Third_Party/FatFs/src/ff.c **** res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */ 3939 .loc 1 1301 3 is_stmt 1 view .LVU1291 1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3940 .loc 1 1302 4 view .LVU1292 1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3941 .loc 1 1302 10 is_stmt 0 view .LVU1293 3942 0042 0022 movs r2, #0 3943 0044 3946 mov r1, r7 3944 0046 2846 mov r0, r5 3945 .LVL450: 1302:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 3946 .loc 1 1302 10 view .LVU1294 3947 0048 FFF7FEFF bl put_fat 3948 .LVL451: 1303:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 191 3949 .loc 1 1303 4 is_stmt 1 view .LVU1295 1303:Middlewares/Third_Party/FatFs/src/ff.c **** } 3950 .loc 1 1303 7 is_stmt 0 view .LVU1296 3951 004c 0746 mov r7, r0 3952 .LVL452: 1303:Middlewares/Third_Party/FatFs/src/ff.c **** } 3953 .loc 1 1303 7 view .LVU1297 3954 004e 70B9 cbnz r0, .L296 1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++; 3955 .loc 1 1305 3 is_stmt 1 view .LVU1298 1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++; 3956 .loc 1 1305 9 is_stmt 0 view .LVU1299 3957 0050 6B69 ldr r3, [r5, #20] 1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++; 3958 .loc 1 1305 25 view .LVU1300 3959 0052 AA69 ldr r2, [r5, #24] 1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++; 3960 .loc 1 1305 36 view .LVU1301 3961 0054 911E subs r1, r2, #2 1305:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst++; 3962 .loc 1 1305 6 view .LVU1302 3963 0056 8B42 cmp r3, r1 3964 0058 E5D2 bcs .L298 1306:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3965 .loc 1 1306 4 is_stmt 1 view .LVU1303 1306:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; 3966 .loc 1 1306 17 is_stmt 0 view .LVU1304 3967 005a 0133 adds r3, r3, #1 3968 005c 6B61 str r3, [r5, #20] 1307:Middlewares/Third_Party/FatFs/src/ff.c **** } 3969 .loc 1 1307 4 is_stmt 1 view .LVU1305 1307:Middlewares/Third_Party/FatFs/src/ff.c **** } 3970 .loc 1 1307 17 is_stmt 0 view .LVU1306 3971 005e 2B79 ldrb r3, [r5, #4] @ zero_extendqisi2 3972 0060 43F00103 orr r3, r3, #1 3973 0064 2B71 strb r3, [r5, #4] 3974 0066 DEE7 b .L298 3975 .LVL453: 3976 .L300: 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3977 .loc 1 1287 47 view .LVU1307 3978 0068 0227 movs r7, #2 3979 006a 00E0 b .L296 3980 .LVL454: 3981 .L301: 1287:Middlewares/Third_Party/FatFs/src/ff.c **** 3982 .loc 1 1287 47 view .LVU1308 3983 006c 0227 movs r7, #2 3984 .LVL455: 3985 .L296: 1342:Middlewares/Third_Party/FatFs/src/ff.c **** 3986 .loc 1 1342 1 view .LVU1309 3987 006e 3846 mov r0, r7 3988 0070 F8BD pop {r3, r4, r5, r6, r7, pc} 3989 .LVL456: 3990 .L302: 1341:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 192 3991 .loc 1 1341 9 view .LVU1310 3992 0072 0027 movs r7, #0 3993 .LVL457: 1341:Middlewares/Third_Party/FatFs/src/ff.c **** } 3994 .loc 1 1341 9 view .LVU1311 3995 0074 FBE7 b .L296 3996 .LVL458: 3997 .L303: 1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ 3998 .loc 1 1299 24 view .LVU1312 3999 0076 0227 movs r7, #2 4000 .LVL459: 1299:Middlewares/Third_Party/FatFs/src/ff.c **** if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ 4001 .loc 1 1299 24 view .LVU1313 4002 0078 F9E7 b .L296 4003 .LVL460: 4004 .L304: 1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 4005 .loc 1 1300 33 view .LVU1314 4006 007a 0127 movs r7, #1 4007 .LVL461: 1300:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 4008 .loc 1 1300 33 view .LVU1315 4009 007c F7E7 b .L296 4010 .cfi_endproc 4011 .LFE1202: 4013 .section .text.dir_remove,"ax",%progbits 4014 .align 1 4015 .syntax unified 4016 .thumb 4017 .thumb_func 4018 .fpu fpv5-d16 4020 dir_remove: 4021 .LVL462: 4022 .LFB1213: 2399:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4023 .loc 1 2399 1 is_stmt 1 view -0 4024 .cfi_startproc 4025 @ args = 0, pretend = 0, frame = 0 4026 @ frame_needed = 0, uses_anonymous_args = 0 2399:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4027 .loc 1 2399 1 is_stmt 0 view .LVU1317 4028 0000 38B5 push {r3, r4, r5, lr} 4029 .LCFI27: 4030 .cfi_def_cfa_offset 16 4031 .cfi_offset 3, -16 4032 .cfi_offset 4, -12 4033 .cfi_offset 5, -8 4034 .cfi_offset 14, -4 4035 0002 0446 mov r4, r0 2400:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4036 .loc 1 2400 2 is_stmt 1 view .LVU1318 2401:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4037 .loc 1 2401 2 view .LVU1319 2401:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4038 .loc 1 2401 9 is_stmt 0 view .LVU1320 4039 0004 0568 ldr r5, [r0] ARM GAS /tmp/cczRNDQp.s page 193 4040 .LVL463: 2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4041 .loc 1 2424 2 is_stmt 1 view .LVU1321 2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4042 .loc 1 2424 8 is_stmt 0 view .LVU1322 4043 0006 C169 ldr r1, [r0, #28] 4044 0008 2846 mov r0, r5 4045 .LVL464: 2424:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4046 .loc 1 2424 8 view .LVU1323 4047 000a FFF7FEFF bl move_window 4048 .LVL465: 2425:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM; 4049 .loc 1 2425 2 is_stmt 1 view .LVU1324 2425:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir[DIR_Name] = DDEM; 4050 .loc 1 2425 5 is_stmt 0 view .LVU1325 4051 000e 20B9 cbnz r0, .L307 2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4052 .loc 1 2426 3 is_stmt 1 view .LVU1326 2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4053 .loc 1 2426 5 is_stmt 0 view .LVU1327 4054 0010 236A ldr r3, [r4, #32] 2426:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4055 .loc 1 2426 21 view .LVU1328 4056 0012 E522 movs r2, #229 4057 0014 1A70 strb r2, [r3] 2427:Middlewares/Third_Party/FatFs/src/ff.c **** } 4058 .loc 1 2427 3 is_stmt 1 view .LVU1329 2427:Middlewares/Third_Party/FatFs/src/ff.c **** } 4059 .loc 1 2427 13 is_stmt 0 view .LVU1330 4060 0016 0123 movs r3, #1 4061 0018 EB70 strb r3, [r5, #3] 4062 .L307: 2431:Middlewares/Third_Party/FatFs/src/ff.c **** } 4063 .loc 1 2431 2 is_stmt 1 view .LVU1331 2432:Middlewares/Third_Party/FatFs/src/ff.c **** 4064 .loc 1 2432 1 is_stmt 0 view .LVU1332 4065 001a 38BD pop {r3, r4, r5, pc} 2432:Middlewares/Third_Party/FatFs/src/ff.c **** 4066 .loc 1 2432 1 view .LVU1333 4067 .cfi_endproc 4068 .LFE1213: 4070 .section .text.dir_next,"ax",%progbits 4071 .align 1 4072 .syntax unified 4073 .thumb 4074 .thumb_func 4075 .fpu fpv5-d16 4077 dir_next: 4078 .LVL466: 4079 .LFB1206: 1523:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs, clst; 4080 .loc 1 1523 1 is_stmt 1 view -0 4081 .cfi_startproc 4082 @ args = 0, pretend = 0, frame = 0 4083 @ frame_needed = 0, uses_anonymous_args = 0 1523:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ofs, clst; ARM GAS /tmp/cczRNDQp.s page 194 4084 .loc 1 1523 1 is_stmt 0 view .LVU1335 4085 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 4086 .LCFI28: 4087 .cfi_def_cfa_offset 32 4088 .cfi_offset 3, -32 4089 .cfi_offset 4, -28 4090 .cfi_offset 5, -24 4091 .cfi_offset 6, -20 4092 .cfi_offset 7, -16 4093 .cfi_offset 8, -12 4094 .cfi_offset 9, -8 4095 .cfi_offset 14, -4 1524:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4096 .loc 1 1524 2 is_stmt 1 view .LVU1336 1525:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 4097 .loc 1 1525 2 view .LVU1337 1525:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 4098 .loc 1 1525 9 is_stmt 0 view .LVU1338 4099 0004 0668 ldr r6, [r0] 4100 .LVL467: 1527:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4101 .loc 1 1527 2 is_stmt 1 view .LVU1339 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 4102 .loc 1 1530 2 view .LVU1340 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 4103 .loc 1 1530 10 is_stmt 0 view .LVU1341 4104 0006 4469 ldr r4, [r0, #20] 4105 .LVL468: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4106 .loc 1 1531 2 is_stmt 1 view .LVU1342 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4107 .loc 1 1531 9 is_stmt 0 view .LVU1343 4108 0008 C369 ldr r3, [r0, #28] 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4109 .loc 1 1531 5 view .LVU1344 4110 000a 002B cmp r3, #0 4111 000c 74D0 beq .L317 4112 000e 0546 mov r5, r0 4113 0010 0F46 mov r7, r1 4114 0012 2034 adds r4, r4, #32 4115 .LVL469: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4116 .loc 1 1531 16 discriminator 2 view .LVU1345 4117 0014 B4F5001F cmp r4, #2097152 4118 0018 70D2 bcs .L318 1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */ 4119 .loc 1 1533 2 is_stmt 1 view .LVU1346 1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */ 4120 .loc 1 1533 12 is_stmt 0 view .LVU1347 4121 001a B189 ldrh r1, [r6, #12] 4122 .LVL470: 1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */ 4123 .loc 1 1533 10 view .LVU1348 4124 001c B4FBF1F2 udiv r2, r4, r1 4125 0020 01FB1242 mls r2, r1, r2, r4 1533:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect++; /* Next sector */ 4126 .loc 1 1533 5 view .LVU1349 ARM GAS /tmp/cczRNDQp.s page 195 4127 0024 3AB9 cbnz r2, .L311 1534:Middlewares/Third_Party/FatFs/src/ff.c **** 4128 .loc 1 1534 3 is_stmt 1 view .LVU1350 1534:Middlewares/Third_Party/FatFs/src/ff.c **** 4129 .loc 1 1534 11 is_stmt 0 view .LVU1351 4130 0026 0133 adds r3, r3, #1 4131 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 */ 4132 .loc 1 1536 3 is_stmt 1 view .LVU1352 1536:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */ 4133 .loc 1 1536 10 is_stmt 0 view .LVU1353 4134 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 */ 4135 .loc 1 1536 6 view .LVU1354 4136 002c A1B9 cbnz r1, .L312 1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; 4137 .loc 1 1537 4 is_stmt 1 view .LVU1355 1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; 4138 .loc 1 1537 26 is_stmt 0 view .LVU1356 4139 002e 3389 ldrh r3, [r6, #8] 1537:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; 4140 .loc 1 1537 7 view .LVU1357 4141 0030 B3EB541F cmp r3, r4, lsr #5 4142 0034 0CD9 bls .L327 4143 .LVL471: 4144 .L311: 1574:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ 4145 .loc 1 1574 2 is_stmt 1 view .LVU1358 1574:Middlewares/Third_Party/FatFs/src/ff.c **** dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ 4146 .loc 1 1574 11 is_stmt 0 view .LVU1359 4147 0036 6C61 str r4, [r5, #20] 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4148 .loc 1 1575 2 is_stmt 1 view .LVU1360 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4149 .loc 1 1575 12 is_stmt 0 view .LVU1361 4150 0038 06F13403 add r3, r6, #52 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4151 .loc 1 1575 28 view .LVU1362 4152 003c B289 ldrh r2, [r6, #12] 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4153 .loc 1 1575 26 view .LVU1363 4154 003e B4FBF2F1 udiv r1, r4, r2 4155 0042 02FB1144 mls r4, r2, r1, r4 4156 .LVL472: 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4157 .loc 1 1575 20 view .LVU1364 4158 0046 1C44 add r4, r4, r3 1575:Middlewares/Third_Party/FatFs/src/ff.c **** 4159 .loc 1 1575 10 view .LVU1365 4160 0048 2C62 str r4, [r5, #32] 1577:Middlewares/Third_Party/FatFs/src/ff.c **** } 4161 .loc 1 1577 2 is_stmt 1 view .LVU1366 1577:Middlewares/Third_Party/FatFs/src/ff.c **** } 4162 .loc 1 1577 9 is_stmt 0 view .LVU1367 4163 004a 0020 movs r0, #0 4164 .LVL473: 4165 .L310: ARM GAS /tmp/cczRNDQp.s page 196 1578:Middlewares/Third_Party/FatFs/src/ff.c **** 4166 .loc 1 1578 1 view .LVU1368 4167 004c BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 4168 .LVL474: 4169 .L327: 1538:Middlewares/Third_Party/FatFs/src/ff.c **** } 4170 .loc 1 1538 5 is_stmt 1 view .LVU1369 1538:Middlewares/Third_Party/FatFs/src/ff.c **** } 4171 .loc 1 1538 14 is_stmt 0 view .LVU1370 4172 0050 0023 movs r3, #0 4173 0052 C361 str r3, [r0, #28] 1538:Middlewares/Third_Party/FatFs/src/ff.c **** } 4174 .loc 1 1538 19 is_stmt 1 view .LVU1371 1538:Middlewares/Third_Party/FatFs/src/ff.c **** } 4175 .loc 1 1538 26 is_stmt 0 view .LVU1372 4176 0054 0420 movs r0, #4 4177 .LVL475: 1538:Middlewares/Third_Party/FatFs/src/ff.c **** } 4178 .loc 1 1538 26 view .LVU1373 4179 0056 F9E7 b .L310 4180 .LVL476: 4181 .L312: 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4182 .loc 1 1542 4 is_stmt 1 view .LVU1374 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4183 .loc 1 1542 15 is_stmt 0 view .LVU1375 4184 0058 B289 ldrh r2, [r6, #12] 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4185 .loc 1 1542 13 view .LVU1376 4186 005a B4FBF2F2 udiv r2, r4, r2 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4187 .loc 1 1542 27 view .LVU1377 4188 005e 7389 ldrh r3, [r6, #10] 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4189 .loc 1 1542 35 view .LVU1378 4190 0060 013B subs r3, r3, #1 1542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ 4191 .loc 1 1542 7 view .LVU1379 4192 0062 12EA0308 ands r8, r2, r3 4193 0066 E6D1 bne .L311 1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */ 4194 .loc 1 1543 5 is_stmt 1 view .LVU1380 1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */ 4195 .loc 1 1543 12 is_stmt 0 view .LVU1381 4196 0068 FFF7FEFF bl get_fat 4197 .LVL477: 1543:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) return FR_INT_ERR; /* Internal error */ 4198 .loc 1 1543 12 view .LVU1382 4199 006c 8146 mov r9, r0 4200 .LVL478: 1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4201 .loc 1 1544 5 is_stmt 1 view .LVU1383 1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4202 .loc 1 1544 8 is_stmt 0 view .LVU1384 4203 006e 0128 cmp r0, #1 4204 0070 46D9 bls .L319 1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ ARM GAS /tmp/cczRNDQp.s page 197 4205 .loc 1 1545 5 is_stmt 1 view .LVU1385 1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ 4206 .loc 1 1545 8 is_stmt 0 view .LVU1386 4207 0072 B0F1FF3F cmp r0, #-1 4208 0076 45D0 beq .L320 1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 4209 .loc 1 1546 5 is_stmt 1 view .LVU1387 1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 4210 .loc 1 1546 19 is_stmt 0 view .LVU1388 4211 0078 B369 ldr r3, [r6, #24] 1546:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 4212 .loc 1 1546 8 view .LVU1389 4213 007a 8342 cmp r3, r0 4214 007c 34D8 bhi .L313 1548:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; 4215 .loc 1 1548 6 is_stmt 1 view .LVU1390 1548:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = 0; return FR_NO_FILE; 4216 .loc 1 1548 9 is_stmt 0 view .LVU1391 4217 007e 8FB1 cbz r7, .L328 1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */ 4218 .loc 1 1551 6 is_stmt 1 view .LVU1392 1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */ 4219 .loc 1 1551 13 is_stmt 0 view .LVU1393 4220 0080 A969 ldr r1, [r5, #24] 4221 0082 2846 mov r0, r5 4222 .LVL479: 1551:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) return FR_DENIED; /* No free cluster */ 4223 .loc 1 1551 13 view .LVU1394 4224 0084 FFF7FEFF bl create_chain 4225 .LVL480: 1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */ 4226 .loc 1 1552 6 is_stmt 1 view .LVU1395 1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */ 4227 .loc 1 1552 9 is_stmt 0 view .LVU1396 4228 0088 8146 mov r9, r0 4229 008a 0028 cmp r0, #0 4230 008c 3CD0 beq .L321 1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4231 .loc 1 1553 6 is_stmt 1 view .LVU1397 1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4232 .loc 1 1553 9 is_stmt 0 view .LVU1398 4233 008e 0128 cmp r0, #1 4234 0090 3CD0 beq .L322 1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */ 4235 .loc 1 1554 6 is_stmt 1 view .LVU1399 1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */ 4236 .loc 1 1554 9 is_stmt 0 view .LVU1400 4237 0092 B0F1FF3F cmp r0, #-1 4238 0096 3BD0 beq .L323 1556:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */ 4239 .loc 1 1556 6 is_stmt 1 view .LVU1401 1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ 4240 .loc 1 1557 6 view .LVU1402 1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ 4241 .loc 1 1557 10 is_stmt 0 view .LVU1403 4242 0098 3046 mov r0, r6 4243 .LVL481: ARM GAS /tmp/cczRNDQp.s page 198 1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ 4244 .loc 1 1557 10 view .LVU1404 4245 009a FFF7FEFF bl sync_window 4246 .LVL482: 1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ 4247 .loc 1 1557 9 view .LVU1405 4248 009e 28B1 cbz r0, .L329 1557:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ 4249 .loc 1 1557 43 view .LVU1406 4250 00a0 0120 movs r0, #1 4251 00a2 D3E7 b .L310 4252 .LVL483: 4253 .L328: 1549:Middlewares/Third_Party/FatFs/src/ff.c **** } 4254 .loc 1 1549 7 is_stmt 1 view .LVU1407 1549:Middlewares/Third_Party/FatFs/src/ff.c **** } 4255 .loc 1 1549 16 is_stmt 0 view .LVU1408 4256 00a4 0023 movs r3, #0 4257 00a6 EB61 str r3, [r5, #28] 1549:Middlewares/Third_Party/FatFs/src/ff.c **** } 4258 .loc 1 1549 21 is_stmt 1 view .LVU1409 1549:Middlewares/Third_Party/FatFs/src/ff.c **** } 4259 .loc 1 1549 28 is_stmt 0 view .LVU1410 4260 00a8 0420 movs r0, #4 4261 .LVL484: 1549:Middlewares/Third_Party/FatFs/src/ff.c **** } 4262 .loc 1 1549 28 view .LVU1411 4263 00aa CFE7 b .L310 4264 .L329: 1558:Middlewares/Third_Party/FatFs/src/ff.c **** for (n = 0, fs->winsect = clust2sect(fs, clst); n < fs->csize; n++, fs->winsect++) { /* Fill t 4265 .loc 1 1558 6 is_stmt 1 view .LVU1412 4266 00ac B289 ldrh r2, [r6, #12] 4267 00ae 0021 movs r1, #0 4268 00b0 06F13400 add r0, r6, #52 4269 00b4 FFF7FEFF bl mem_set 4270 .LVL485: 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4271 .loc 1 1559 6 view .LVU1413 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4272 .loc 1 1559 32 is_stmt 0 view .LVU1414 4273 00b8 4946 mov r1, r9 4274 00ba 3046 mov r0, r6 4275 00bc FFF7FEFF bl clust2sect 4276 .LVL486: 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4277 .loc 1 1559 30 view .LVU1415 4278 00c0 3063 str r0, [r6, #48] 4279 .LVL487: 4280 .L315: 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4281 .loc 1 1559 54 is_stmt 1 discriminator 1 view .LVU1416 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4282 .loc 1 1559 60 is_stmt 0 discriminator 1 view .LVU1417 4283 00c2 7389 ldrh r3, [r6, #10] 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4284 .loc 1 1559 6 discriminator 1 view .LVU1418 4285 00c4 9845 cmp r8, r3 ARM GAS /tmp/cczRNDQp.s page 199 4286 00c6 0BD2 bcs .L330 1560:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR; 4287 .loc 1 1560 7 is_stmt 1 view .LVU1419 1560:Middlewares/Third_Party/FatFs/src/ff.c **** if (sync_window(fs) != FR_OK) return FR_DISK_ERR; 4288 .loc 1 1560 17 is_stmt 0 view .LVU1420 4289 00c8 0123 movs r3, #1 4290 00ca F370 strb r3, [r6, #3] 1561:Middlewares/Third_Party/FatFs/src/ff.c **** } 4291 .loc 1 1561 7 is_stmt 1 view .LVU1421 1561:Middlewares/Third_Party/FatFs/src/ff.c **** } 4292 .loc 1 1561 11 is_stmt 0 view .LVU1422 4293 00cc 3046 mov r0, r6 4294 00ce FFF7FEFF bl sync_window 4295 .LVL488: 1561:Middlewares/Third_Party/FatFs/src/ff.c **** } 4296 .loc 1 1561 10 view .LVU1423 4297 00d2 F8B9 cbnz r0, .L325 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4298 .loc 1 1559 69 is_stmt 1 discriminator 2 view .LVU1424 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4299 .loc 1 1559 70 is_stmt 0 discriminator 2 view .LVU1425 4300 00d4 08F10108 add r8, r8, #1 4301 .LVL489: 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4302 .loc 1 1559 76 discriminator 2 view .LVU1426 4303 00d8 336B ldr r3, [r6, #48] 1559:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 4304 .loc 1 1559 85 discriminator 2 view .LVU1427 4305 00da 0133 adds r3, r3, #1 4306 00dc 3363 str r3, [r6, #48] 4307 00de F0E7 b .L315 4308 .L330: 1563:Middlewares/Third_Party/FatFs/src/ff.c **** #else 4309 .loc 1 1563 6 is_stmt 1 view .LVU1428 1563:Middlewares/Third_Party/FatFs/src/ff.c **** #else 4310 .loc 1 1563 18 is_stmt 0 view .LVU1429 4311 00e0 336B ldr r3, [r6, #48] 4312 00e2 A3EB0803 sub r3, r3, r8 4313 00e6 3363 str r3, [r6, #48] 4314 .LVL490: 4315 .L313: 1569:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst); 4316 .loc 1 1569 5 is_stmt 1 view .LVU1430 1569:Middlewares/Third_Party/FatFs/src/ff.c **** dp->sect = clust2sect(fs, clst); 4317 .loc 1 1569 15 is_stmt 0 view .LVU1431 4318 00e8 C5F81890 str r9, [r5, #24] 1570:Middlewares/Third_Party/FatFs/src/ff.c **** } 4319 .loc 1 1570 5 is_stmt 1 view .LVU1432 1570:Middlewares/Third_Party/FatFs/src/ff.c **** } 4320 .loc 1 1570 16 is_stmt 0 view .LVU1433 4321 00ec 4946 mov r1, r9 4322 00ee 3046 mov r0, r6 4323 00f0 FFF7FEFF bl clust2sect 4324 .LVL491: 1570:Middlewares/Third_Party/FatFs/src/ff.c **** } 4325 .loc 1 1570 14 view .LVU1434 4326 00f4 E861 str r0, [r5, #28] ARM GAS /tmp/cczRNDQp.s page 200 4327 00f6 9EE7 b .L311 4328 .LVL492: 4329 .L317: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4330 .loc 1 1531 105 view .LVU1435 4331 00f8 0420 movs r0, #4 4332 .LVL493: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4333 .loc 1 1531 105 view .LVU1436 4334 00fa A7E7 b .L310 4335 .LVL494: 4336 .L318: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4337 .loc 1 1531 105 view .LVU1437 4338 00fc 0420 movs r0, #4 4339 .LVL495: 1531:Middlewares/Third_Party/FatFs/src/ff.c **** 4340 .loc 1 1531 105 view .LVU1438 4341 00fe A5E7 b .L310 4342 .LVL496: 4343 .L319: 1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4344 .loc 1 1544 27 view .LVU1439 4345 0100 0220 movs r0, #2 4346 .LVL497: 1544:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4347 .loc 1 1544 27 view .LVU1440 4348 0102 A3E7 b .L310 4349 .LVL498: 4350 .L320: 1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ 4351 .loc 1 1545 36 view .LVU1441 4352 0104 0120 movs r0, #1 4353 .LVL499: 1545:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ 4354 .loc 1 1545 36 view .LVU1442 4355 0106 A1E7 b .L310 4356 .LVL500: 4357 .L321: 1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */ 4358 .loc 1 1552 28 view .LVU1443 4359 0108 0720 movs r0, #7 4360 .LVL501: 1552:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) return FR_INT_ERR; /* Internal error */ 4361 .loc 1 1552 28 view .LVU1444 4362 010a 9FE7 b .L310 4363 .LVL502: 4364 .L322: 1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4365 .loc 1 1553 28 view .LVU1445 4366 010c 0220 movs r0, #2 4367 .LVL503: 1553:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ 4368 .loc 1 1553 28 view .LVU1446 4369 010e 9DE7 b .L310 4370 .LVL504: 4371 .L323: ARM GAS /tmp/cczRNDQp.s page 201 1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */ 4372 .loc 1 1554 37 view .LVU1447 4373 0110 0120 movs r0, #1 4374 .LVL505: 1554:Middlewares/Third_Party/FatFs/src/ff.c **** /* Clean-up the stretched table */ 4375 .loc 1 1554 37 view .LVU1448 4376 0112 9BE7 b .L310 4377 .LVL506: 4378 .L325: 1561:Middlewares/Third_Party/FatFs/src/ff.c **** } 4379 .loc 1 1561 44 view .LVU1449 4380 0114 0120 movs r0, #1 4381 0116 99E7 b .L310 4382 .cfi_endproc 4383 .LFE1206: 4385 .section .text.dir_find,"ax",%progbits 4386 .align 1 4387 .syntax unified 4388 .thumb 4389 .thumb_func 4390 .fpu fpv5-d16 4392 dir_find: 4393 .LVL507: 4394 .LFB1211: 2213:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4395 .loc 1 2213 1 is_stmt 1 view -0 4396 .cfi_startproc 4397 @ args = 0, pretend = 0, frame = 0 4398 @ frame_needed = 0, uses_anonymous_args = 0 2213:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4399 .loc 1 2213 1 is_stmt 0 view .LVU1451 4400 0000 70B5 push {r4, r5, r6, lr} 4401 .LCFI29: 4402 .cfi_def_cfa_offset 16 4403 .cfi_offset 4, -16 4404 .cfi_offset 5, -12 4405 .cfi_offset 6, -8 4406 .cfi_offset 14, -4 4407 0002 0446 mov r4, r0 2214:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4408 .loc 1 2214 2 is_stmt 1 view .LVU1452 2215:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c; 4409 .loc 1 2215 2 view .LVU1453 2215:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE c; 4410 .loc 1 2215 9 is_stmt 0 view .LVU1454 4411 0004 0668 ldr r6, [r0] 4412 .LVL508: 2216:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 4413 .loc 1 2216 2 is_stmt 1 view .LVU1455 2221:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 4414 .loc 1 2221 2 view .LVU1456 2221:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) return res; 4415 .loc 1 2221 8 is_stmt 0 view .LVU1457 4416 0006 0021 movs r1, #0 4417 0008 FFF7FEFF bl dir_sdi 4418 .LVL509: 2222:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT ARM GAS /tmp/cczRNDQp.s page 202 4419 .loc 1 2222 2 is_stmt 1 view .LVU1458 2222:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 4420 .loc 1 2222 5 is_stmt 0 view .LVU1459 4421 000c 0546 mov r5, r0 4422 000e 40B1 cbz r0, .L334 4423 .LVL510: 4424 .L332: 2281:Middlewares/Third_Party/FatFs/src/ff.c **** 4425 .loc 1 2281 1 view .LVU1460 4426 0010 2846 mov r0, r5 4427 0012 70BD pop {r4, r5, r6, pc} 4428 .LVL511: 4429 .L333: 2277:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); 4430 .loc 1 2277 3 is_stmt 1 view .LVU1461 2277:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); 4431 .loc 1 2277 9 is_stmt 0 view .LVU1462 4432 0014 0021 movs r1, #0 4433 0016 2046 mov r0, r4 4434 0018 FFF7FEFF bl dir_next 4435 .LVL512: 2278:Middlewares/Third_Party/FatFs/src/ff.c **** 4436 .loc 1 2278 10 is_stmt 1 view .LVU1463 2278:Middlewares/Third_Party/FatFs/src/ff.c **** 4437 .loc 1 2278 2 is_stmt 0 view .LVU1464 4438 001c 0546 mov r5, r0 4439 001e 0028 cmp r0, #0 4440 0020 F6D1 bne .L332 4441 .L334: 2247:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4442 .loc 1 2247 2 is_stmt 1 view .LVU1465 2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4443 .loc 1 2248 3 view .LVU1466 2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4444 .loc 1 2248 9 is_stmt 0 view .LVU1467 4445 0022 E169 ldr r1, [r4, #28] 4446 0024 3046 mov r0, r6 4447 .LVL513: 2248:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4448 .loc 1 2248 9 view .LVU1468 4449 0026 FFF7FEFF bl move_window 4450 .LVL514: 2249:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; 4451 .loc 1 2249 3 is_stmt 1 view .LVU1469 2249:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; 4452 .loc 1 2249 6 is_stmt 0 view .LVU1470 4453 002a 0546 mov r5, r0 4454 002c 0028 cmp r0, #0 4455 002e EFD1 bne .L332 2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ 4456 .loc 1 2250 3 is_stmt 1 view .LVU1471 2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ 4457 .loc 1 2250 9 is_stmt 0 view .LVU1472 4458 0030 206A ldr r0, [r4, #32] 4459 .LVL515: 2250:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ 4460 .loc 1 2250 5 view .LVU1473 ARM GAS /tmp/cczRNDQp.s page 203 4461 0032 0378 ldrb r3, [r0] @ zero_extendqisi2 4462 .LVL516: 2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4463 .loc 1 2251 3 is_stmt 1 view .LVU1474 2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4464 .loc 1 2251 6 is_stmt 0 view .LVU1475 4465 0034 7BB1 cbz r3, .L335 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 4466 .loc 1 2274 3 is_stmt 1 view .LVU1476 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 4467 .loc 1 2274 25 is_stmt 0 view .LVU1477 4468 0036 C37A ldrb r3, [r0, #11] @ zero_extendqisi2 4469 .LVL517: 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 4470 .loc 1 2274 36 view .LVU1478 4471 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 4472 .loc 1 2274 16 view .LVU1479 4473 003c A371 strb r3, [r4, #6] 4474 .LVL518: 2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4475 .loc 1 2275 3 is_stmt 1 view .LVU1480 2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4476 .loc 1 2275 16 is_stmt 0 view .LVU1481 4477 003e C37A ldrb r3, [r0, #11] @ zero_extendqisi2 2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4478 .loc 1 2275 6 view .LVU1482 4479 0040 13F0080F tst r3, #8 4480 0044 E6D1 bne .L333 2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4481 .loc 1 2275 41 discriminator 1 view .LVU1483 4482 0046 0B22 movs r2, #11 4483 0048 04F12401 add r1, r4, #36 4484 004c FFF7FEFF bl mem_cmp 4485 .LVL519: 2275:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4486 .loc 1 2275 37 discriminator 1 view .LVU1484 4487 0050 0028 cmp r0, #0 4488 0052 DFD1 bne .L333 4489 0054 DCE7 b .L332 4490 .LVL520: 4491 .L335: 2251:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4492 .loc 1 2251 21 view .LVU1485 4493 0056 0425 movs r5, #4 4494 0058 DAE7 b .L332 4495 .cfi_endproc 4496 .LFE1211: 4498 .section .text.follow_path,"ax",%progbits 4499 .align 1 4500 .syntax unified 4501 .thumb 4502 .thumb_func 4503 .fpu fpv5-d16 4505 follow_path: 4506 .LVL521: 4507 .LFB1216: ARM GAS /tmp/cczRNDQp.s page 204 2817:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4508 .loc 1 2817 1 is_stmt 1 view -0 4509 .cfi_startproc 4510 @ args = 0, pretend = 0, frame = 8 4511 @ frame_needed = 0, uses_anonymous_args = 0 2817:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4512 .loc 1 2817 1 is_stmt 0 view .LVU1487 4513 0000 30B5 push {r4, r5, lr} 4514 .LCFI30: 4515 .cfi_def_cfa_offset 12 4516 .cfi_offset 4, -12 4517 .cfi_offset 5, -8 4518 .cfi_offset 14, -4 4519 0002 83B0 sub sp, sp, #12 4520 .LCFI31: 4521 .cfi_def_cfa_offset 24 4522 0004 0446 mov r4, r0 4523 0006 0191 str r1, [sp, #4] 2818:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE ns; 4524 .loc 1 2818 2 is_stmt 1 view .LVU1488 2819:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj = &dp->obj; 4525 .loc 1 2819 2 view .LVU1489 2820:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = obj->fs; 4526 .loc 1 2820 2 view .LVU1490 4527 .LVL522: 2821:Middlewares/Third_Party/FatFs/src/ff.c **** 4528 .loc 1 2821 2 view .LVU1491 2821:Middlewares/Third_Party/FatFs/src/ff.c **** 4529 .loc 1 2821 9 is_stmt 0 view .LVU1492 4530 0008 0568 ldr r5, [r0] 4531 .LVL523: 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4532 .loc 1 2830 3 is_stmt 1 view .LVU1493 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4533 .loc 1 2830 9 is_stmt 0 view .LVU1494 4534 000a 01E0 b .L338 4535 .L339: 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4536 .loc 1 2830 41 is_stmt 1 discriminator 2 view .LVU1495 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4537 .loc 1 2830 45 is_stmt 0 discriminator 2 view .LVU1496 4538 000c 0133 adds r3, r3, #1 4539 000e 0193 str r3, [sp, #4] 4540 .L338: 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4541 .loc 1 2830 9 is_stmt 1 discriminator 1 view .LVU1497 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4542 .loc 1 2830 10 is_stmt 0 discriminator 1 view .LVU1498 4543 0010 019B ldr r3, [sp, #4] 4544 0012 1A78 ldrb r2, [r3] @ zero_extendqisi2 2830:Middlewares/Third_Party/FatFs/src/ff.c **** obj->sclust = 0; /* Start from root directory */ 4545 .loc 1 2830 9 discriminator 1 view .LVU1499 4546 0014 5C2A cmp r2, #92 4547 0016 18BF it ne 4548 0018 2F2A cmpne r2, #47 4549 001a F7D0 beq .L339 2831:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 205 4550 .loc 1 2831 3 is_stmt 1 view .LVU1500 2831:Middlewares/Third_Party/FatFs/src/ff.c **** } 4551 .loc 1 2831 15 is_stmt 0 view .LVU1501 4552 001c 0022 movs r2, #0 4553 001e A260 str r2, [r4, #8] 2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME; 4554 .loc 1 2850 2 is_stmt 1 view .LVU1502 2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME; 4555 .loc 1 2850 12 is_stmt 0 view .LVU1503 4556 0020 1B78 ldrb r3, [r3] @ zero_extendqisi2 2850:Middlewares/Third_Party/FatFs/src/ff.c **** dp->fn[NSFLAG] = NS_NONAME; 4557 .loc 1 2850 5 view .LVU1504 4558 0022 1F2B cmp r3, #31 4559 0024 21D9 bls .L346 4560 .LVL524: 4561 .L340: 2855:Middlewares/Third_Party/FatFs/src/ff.c **** res = create_name(dp, &path); /* Get a segment name of the path */ 4562 .loc 1 2855 3 is_stmt 1 view .LVU1505 2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4563 .loc 1 2856 4 view .LVU1506 2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4564 .loc 1 2856 10 is_stmt 0 view .LVU1507 4565 0026 01A9 add r1, sp, #4 4566 0028 2046 mov r0, r4 4567 002a FFF7FEFF bl create_name 4568 .LVL525: 2857:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Find an object with the segment name */ 4569 .loc 1 2857 4 is_stmt 1 view .LVU1508 2857:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_find(dp); /* Find an object with the segment name */ 4570 .loc 1 2857 7 is_stmt 0 view .LVU1509 4571 002e 0346 mov r3, r0 4572 0030 18BB cbnz r0, .L341 2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG]; 4573 .loc 1 2858 4 is_stmt 1 view .LVU1510 2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG]; 4574 .loc 1 2858 10 is_stmt 0 view .LVU1511 4575 0032 2046 mov r0, r4 4576 .LVL526: 2858:Middlewares/Third_Party/FatFs/src/ff.c **** ns = dp->fn[NSFLAG]; 4577 .loc 1 2858 10 view .LVU1512 4578 0034 FFF7FEFF bl dir_find 4579 .LVL527: 2859:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* Failed to find the object */ 4580 .loc 1 2859 4 is_stmt 1 view .LVU1513 2859:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* Failed to find the object */ 4581 .loc 1 2859 7 is_stmt 0 view .LVU1514 4582 0038 94F82F20 ldrb r2, [r4, #47] @ zero_extendqisi2 4583 .LVL528: 2860:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Object is not found */ 4584 .loc 1 2860 4 is_stmt 1 view .LVU1515 2860:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* Object is not found */ 4585 .loc 1 2860 7 is_stmt 0 view .LVU1516 4586 003c 0346 mov r3, r0 4587 003e F8B9 cbnz r0, .L347 2872:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get into the sub-directory */ 4588 .loc 1 2872 4 is_stmt 1 view .LVU1517 2872:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get into the sub-directory */ ARM GAS /tmp/cczRNDQp.s page 206 4589 .loc 1 2872 7 is_stmt 0 view .LVU1518 4590 0040 12F0040F tst r2, #4 4591 0044 19D1 bne .L341 2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break; 4592 .loc 1 2874 4 is_stmt 1 view .LVU1519 2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break; 4593 .loc 1 2874 13 is_stmt 0 view .LVU1520 4594 0046 A379 ldrb r3, [r4, #6] @ zero_extendqisi2 2874:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_PATH; break; 4595 .loc 1 2874 7 view .LVU1521 4596 0048 13F0100F tst r3, #16 4597 004c 1FD0 beq .L344 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4598 .loc 1 2888 5 is_stmt 1 view .LVU1522 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4599 .loc 1 2888 32 is_stmt 0 view .LVU1523 4600 004e 05F13403 add r3, r5, #52 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4601 .loc 1 2888 44 view .LVU1524 4602 0052 6169 ldr r1, [r4, #20] 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4603 .loc 1 2888 53 view .LVU1525 4604 0054 AA89 ldrh r2, [r5, #12] 4605 .LVL529: 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4606 .loc 1 2888 51 view .LVU1526 4607 0056 B1FBF2F0 udiv r0, r1, r2 4608 .LVL530: 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4609 .loc 1 2888 51 view .LVU1527 4610 005a 02FB1011 mls r1, r2, r0, r1 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4611 .loc 1 2888 19 view .LVU1528 4612 005e 1944 add r1, r1, r3 4613 0060 2846 mov r0, r5 4614 0062 FFF7FEFF bl ld_clust 4615 .LVL531: 2888:Middlewares/Third_Party/FatFs/src/ff.c **** } 4616 .loc 1 2888 17 view .LVU1529 4617 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 */ 4618 .loc 1 2855 9 is_stmt 1 view .LVU1530 2856:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4619 .loc 1 2856 8 is_stmt 0 view .LVU1531 4620 0068 DDE7 b .L340 4621 .LVL532: 4622 .L346: 2851:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); 4623 .loc 1 2851 3 is_stmt 1 view .LVU1532 2851:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); 4624 .loc 1 2851 18 is_stmt 0 view .LVU1533 4625 006a 8023 movs r3, #128 4626 006c 84F82F30 strb r3, [r4, #47] 2852:Middlewares/Third_Party/FatFs/src/ff.c **** 4627 .loc 1 2852 3 is_stmt 1 view .LVU1534 2852:Middlewares/Third_Party/FatFs/src/ff.c **** 4628 .loc 1 2852 9 is_stmt 0 view .LVU1535 ARM GAS /tmp/cczRNDQp.s page 207 4629 0070 1146 mov r1, r2 4630 .LVL533: 2852:Middlewares/Third_Party/FatFs/src/ff.c **** 4631 .loc 1 2852 9 view .LVU1536 4632 0072 2046 mov r0, r4 4633 .LVL534: 2852:Middlewares/Third_Party/FatFs/src/ff.c **** 4634 .loc 1 2852 9 view .LVU1537 4635 0074 FFF7FEFF bl dir_sdi 4636 .LVL535: 4637 0078 0346 mov r3, r0 4638 .LVL536: 4639 .L341: 2893:Middlewares/Third_Party/FatFs/src/ff.c **** } 4640 .loc 1 2893 2 is_stmt 1 view .LVU1538 2894:Middlewares/Third_Party/FatFs/src/ff.c **** 4641 .loc 1 2894 1 is_stmt 0 view .LVU1539 4642 007a 1846 mov r0, r3 4643 007c 03B0 add sp, sp, #12 4644 .LCFI32: 4645 .cfi_remember_state 4646 .cfi_def_cfa_offset 12 4647 @ sp needed 4648 007e 30BD pop {r4, r5, pc} 4649 .LVL537: 4650 .L347: 4651 .LCFI33: 4652 .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 */ 4653 .loc 1 2861 5 is_stmt 1 view .LVU1540 2861:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */ 4654 .loc 1 2861 8 is_stmt 0 view .LVU1541 4655 0080 0428 cmp r0, #4 4656 0082 FAD1 bne .L341 2862:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */ 4657 .loc 1 2862 6 is_stmt 1 view .LVU1542 2867:Middlewares/Third_Party/FatFs/src/ff.c **** } 4658 .loc 1 2867 7 view .LVU1543 2867:Middlewares/Third_Party/FatFs/src/ff.c **** } 4659 .loc 1 2867 10 is_stmt 0 view .LVU1544 4660 0084 12F0040F tst r2, #4 4661 0088 F7D1 bne .L341 2867:Middlewares/Third_Party/FatFs/src/ff.c **** } 4662 .loc 1 2867 32 view .LVU1545 4663 008a 0523 movs r3, #5 4664 008c F5E7 b .L341 4665 .L344: 2875:Middlewares/Third_Party/FatFs/src/ff.c **** } 4666 .loc 1 2875 9 view .LVU1546 4667 008e 0523 movs r3, #5 4668 0090 F3E7 b .L341 4669 .cfi_endproc 4670 .LFE1216: 4672 .section .text.dir_alloc,"ax",%progbits 4673 .align 1 4674 .syntax unified 4675 .thumb ARM GAS /tmp/cczRNDQp.s page 208 4676 .thumb_func 4677 .fpu fpv5-d16 4679 dir_alloc: 4680 .LVL538: 4681 .LFB1207: 1593:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4682 .loc 1 1593 1 is_stmt 1 view -0 4683 .cfi_startproc 4684 @ args = 0, pretend = 0, frame = 0 4685 @ frame_needed = 0, uses_anonymous_args = 0 1593:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4686 .loc 1 1593 1 is_stmt 0 view .LVU1548 4687 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 4688 .LCFI34: 4689 .cfi_def_cfa_offset 24 4690 .cfi_offset 3, -24 4691 .cfi_offset 4, -20 4692 .cfi_offset 5, -16 4693 .cfi_offset 6, -12 4694 .cfi_offset 7, -8 4695 .cfi_offset 14, -4 4696 0002 0446 mov r4, r0 4697 0004 0E46 mov r6, r1 1594:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n; 4698 .loc 1 1594 2 is_stmt 1 view .LVU1549 1595:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4699 .loc 1 1595 2 view .LVU1550 1596:Middlewares/Third_Party/FatFs/src/ff.c **** 4700 .loc 1 1596 2 view .LVU1551 1596:Middlewares/Third_Party/FatFs/src/ff.c **** 4701 .loc 1 1596 9 is_stmt 0 view .LVU1552 4702 0006 0768 ldr r7, [r0] 4703 .LVL539: 1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4704 .loc 1 1599 2 is_stmt 1 view .LVU1553 1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4705 .loc 1 1599 8 is_stmt 0 view .LVU1554 4706 0008 0021 movs r1, #0 4707 .LVL540: 1599:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4708 .loc 1 1599 8 view .LVU1555 4709 000a FFF7FEFF bl dir_sdi 4710 .LVL541: 1600:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0; 4711 .loc 1 1600 2 is_stmt 1 view .LVU1556 1600:Middlewares/Third_Party/FatFs/src/ff.c **** n = 0; 4712 .loc 1 1600 5 is_stmt 0 view .LVU1557 4713 000e 0246 mov r2, r0 4714 0010 B8B9 cbnz r0, .L349 1601:Middlewares/Third_Party/FatFs/src/ff.c **** do { 4715 .loc 1 1601 5 view .LVU1558 4716 0012 0025 movs r5, #0 4717 0014 06E0 b .L351 4718 .LVL542: 4719 .L353: 1612:Middlewares/Third_Party/FatFs/src/ff.c **** } 4720 .loc 1 1612 7 view .LVU1559 ARM GAS /tmp/cczRNDQp.s page 209 4721 0016 0025 movs r5, #0 4722 .LVL543: 4723 .L350: 1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */ 4724 .loc 1 1614 4 is_stmt 1 view .LVU1560 1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */ 4725 .loc 1 1614 10 is_stmt 0 view .LVU1561 4726 0018 0121 movs r1, #1 4727 001a 2046 mov r0, r4 4728 .LVL544: 1614:Middlewares/Third_Party/FatFs/src/ff.c **** } while (res == FR_OK); /* Next entry with table stretch enabled */ 4729 .loc 1 1614 10 view .LVU1562 4730 001c FFF7FEFF bl dir_next 4731 .LVL545: 1615:Middlewares/Third_Party/FatFs/src/ff.c **** } 4732 .loc 1 1615 11 is_stmt 1 view .LVU1563 1615:Middlewares/Third_Party/FatFs/src/ff.c **** } 4733 .loc 1 1615 3 is_stmt 0 view .LVU1564 4734 0020 0246 mov r2, r0 4735 0022 70B9 cbnz r0, .L349 4736 .LVL546: 4737 .L351: 1602:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4738 .loc 1 1602 3 is_stmt 1 view .LVU1565 1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4739 .loc 1 1603 4 view .LVU1566 1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4740 .loc 1 1603 10 is_stmt 0 view .LVU1567 4741 0024 E169 ldr r1, [r4, #28] 4742 0026 3846 mov r0, r7 4743 .LVL547: 1603:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4744 .loc 1 1603 10 view .LVU1568 4745 0028 FFF7FEFF bl move_window 4746 .LVL548: 1604:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 4747 .loc 1 1604 4 is_stmt 1 view .LVU1569 1604:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 4748 .loc 1 1604 7 is_stmt 0 view .LVU1570 4749 002c 0246 mov r2, r0 4750 002e 40B9 cbnz r0, .L349 1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4751 .loc 1 1608 4 is_stmt 1 view .LVU1571 1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4752 .loc 1 1608 10 is_stmt 0 view .LVU1572 4753 0030 236A ldr r3, [r4, #32] 1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4754 .loc 1 1608 15 view .LVU1573 4755 0032 1B78 ldrb r3, [r3] @ zero_extendqisi2 1608:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 4756 .loc 1 1608 7 view .LVU1574 4757 0034 002B cmp r3, #0 4758 0036 18BF it ne 4759 0038 E52B cmpne r3, #229 4760 003a ECD1 bne .L353 1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 4761 .loc 1 1610 5 is_stmt 1 view .LVU1575 ARM GAS /tmp/cczRNDQp.s page 210 1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 4762 .loc 1 1610 8 is_stmt 0 view .LVU1576 4763 003c 0135 adds r5, r5, #1 4764 .LVL549: 1610:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 4765 .loc 1 1610 8 view .LVU1577 4766 003e B542 cmp r5, r6 4767 0040 EAD1 bne .L350 4768 .LVL550: 4769 .L349: 1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4770 .loc 1 1618 2 is_stmt 1 view .LVU1578 1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4771 .loc 1 1618 5 is_stmt 0 view .LVU1579 4772 0042 042A cmp r2, #4 4773 0044 01D0 beq .L356 4774 .LVL551: 4775 .L352: 1619:Middlewares/Third_Party/FatFs/src/ff.c **** } 4776 .loc 1 1619 2 is_stmt 1 view .LVU1580 1620:Middlewares/Third_Party/FatFs/src/ff.c **** 4777 .loc 1 1620 1 is_stmt 0 view .LVU1581 4778 0046 1046 mov r0, r2 4779 0048 F8BD pop {r3, r4, r5, r6, r7, pc} 4780 .LVL552: 4781 .L356: 1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4782 .loc 1 1618 29 view .LVU1582 4783 004a 0722 movs r2, #7 4784 .LVL553: 1618:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4785 .loc 1 1618 29 view .LVU1583 4786 004c FBE7 b .L352 4787 .cfi_endproc 4788 .LFE1207: 4790 .section .text.dir_register,"ax",%progbits 4791 .align 1 4792 .syntax unified 4793 .thumb 4794 .thumb_func 4795 .fpu fpv5-d16 4797 dir_register: 4798 .LVL554: 4799 .LFB1212: 2295:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4800 .loc 1 2295 1 is_stmt 1 view -0 4801 .cfi_startproc 4802 @ args = 0, pretend = 0, frame = 0 4803 @ frame_needed = 0, uses_anonymous_args = 0 2295:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 4804 .loc 1 2295 1 is_stmt 0 view .LVU1585 4805 0000 70B5 push {r4, r5, r6, lr} 4806 .LCFI35: 4807 .cfi_def_cfa_offset 16 4808 .cfi_offset 4, -16 4809 .cfi_offset 5, -12 4810 .cfi_offset 6, -8 ARM GAS /tmp/cczRNDQp.s page 211 4811 .cfi_offset 14, -4 4812 0002 0446 mov r4, r0 2296:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4813 .loc 1 2296 2 is_stmt 1 view .LVU1586 2297:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4814 .loc 1 2297 2 view .LVU1587 2297:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4815 .loc 1 2297 9 is_stmt 0 view .LVU1588 4816 0004 0668 ldr r6, [r0] 4817 .LVL555: 2366:Middlewares/Third_Party/FatFs/src/ff.c **** 4818 .loc 1 2366 2 is_stmt 1 view .LVU1589 2366:Middlewares/Third_Party/FatFs/src/ff.c **** 4819 .loc 1 2366 8 is_stmt 0 view .LVU1590 4820 0006 0121 movs r1, #1 4821 0008 FFF7FEFF bl dir_alloc 4822 .LVL556: 2371:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4823 .loc 1 2371 2 is_stmt 1 view .LVU1591 2371:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4824 .loc 1 2371 5 is_stmt 0 view .LVU1592 4825 000c 0546 mov r5, r0 4826 000e 08B1 cbz r0, .L360 4827 .LVL557: 4828 .L358: 2383:Middlewares/Third_Party/FatFs/src/ff.c **** } 4829 .loc 1 2383 2 is_stmt 1 view .LVU1593 2384:Middlewares/Third_Party/FatFs/src/ff.c **** 4830 .loc 1 2384 1 is_stmt 0 view .LVU1594 4831 0010 2846 mov r0, r5 4832 0012 70BD pop {r4, r5, r6, pc} 4833 .LVL558: 4834 .L360: 2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4835 .loc 1 2372 3 is_stmt 1 view .LVU1595 2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4836 .loc 1 2372 9 is_stmt 0 view .LVU1596 4837 0014 E169 ldr r1, [r4, #28] 4838 0016 3046 mov r0, r6 4839 .LVL559: 2372:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 4840 .loc 1 2372 9 view .LVU1597 4841 0018 FFF7FEFF bl move_window 4842 .LVL560: 2373:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */ 4843 .loc 1 2373 3 is_stmt 1 view .LVU1598 2373:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */ 4844 .loc 1 2373 6 is_stmt 0 view .LVU1599 4845 001c 0546 mov r5, r0 4846 001e 0028 cmp r0, #0 4847 0020 F6D1 bne .L358 2374:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */ 4848 .loc 1 2374 4 is_stmt 1 view .LVU1600 4849 0022 2022 movs r2, #32 4850 0024 0021 movs r1, #0 4851 0026 206A ldr r0, [r4, #32] 4852 .LVL561: ARM GAS /tmp/cczRNDQp.s page 212 2374:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */ 4853 .loc 1 2374 4 is_stmt 0 view .LVU1601 4854 0028 FFF7FEFF bl mem_set 4855 .LVL562: 2375:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 4856 .loc 1 2375 4 is_stmt 1 view .LVU1602 4857 002c 0B22 movs r2, #11 4858 002e 04F12401 add r1, r4, #36 4859 0032 206A ldr r0, [r4, #32] 4860 0034 FFF7FEFF bl mem_cpy 4861 .LVL563: 2379:Middlewares/Third_Party/FatFs/src/ff.c **** } 4862 .loc 1 2379 4 view .LVU1603 2379:Middlewares/Third_Party/FatFs/src/ff.c **** } 4863 .loc 1 2379 14 is_stmt 0 view .LVU1604 4864 0038 0123 movs r3, #1 4865 003a F370 strb r3, [r6, #3] 4866 003c E8E7 b .L358 4867 .cfi_endproc 4868 .LFE1212: 4870 .section .text.dir_read,"ax",%progbits 4871 .align 1 4872 .syntax unified 4873 .thumb 4874 .thumb_func 4875 .fpu fpv5-d16 4877 dir_read: 4878 .LVL564: 4879 .LFB1210: 2135:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_NO_FILE; 4880 .loc 1 2135 1 is_stmt 1 view -0 4881 .cfi_startproc 4882 @ args = 0, pretend = 0, frame = 0 4883 @ frame_needed = 0, uses_anonymous_args = 0 2135:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res = FR_NO_FILE; 4884 .loc 1 2135 1 is_stmt 0 view .LVU1606 4885 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 4886 .LCFI36: 4887 .cfi_def_cfa_offset 24 4888 .cfi_offset 3, -24 4889 .cfi_offset 4, -20 4890 .cfi_offset 5, -16 4891 .cfi_offset 6, -12 4892 .cfi_offset 7, -8 4893 .cfi_offset 14, -4 4894 0002 0446 mov r4, r0 4895 0004 0E46 mov r6, r1 2136:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4896 .loc 1 2136 2 is_stmt 1 view .LVU1607 4897 .LVL565: 2137:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, c; 4898 .loc 1 2137 2 view .LVU1608 2137:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE a, c; 4899 .loc 1 2137 9 is_stmt 0 view .LVU1609 4900 0006 0568 ldr r5, [r0] 4901 .LVL566: 2138:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 ARM GAS /tmp/cczRNDQp.s page 213 4902 .loc 1 2138 2 is_stmt 1 view .LVU1610 2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4903 .loc 1 2143 2 view .LVU1611 2136:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs = dp->obj.fs; 4904 .loc 1 2136 10 is_stmt 0 view .LVU1612 4905 0008 0427 movs r7, #4 2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4906 .loc 1 2143 8 view .LVU1613 4907 000a 05E0 b .L362 4908 .LVL567: 4909 .L364: 2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4910 .loc 1 2193 3 is_stmt 1 view .LVU1614 2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4911 .loc 1 2193 9 is_stmt 0 view .LVU1615 4912 000c 0021 movs r1, #0 4913 000e 2046 mov r0, r4 4914 .LVL568: 2193:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4915 .loc 1 2193 9 view .LVU1616 4916 0010 FFF7FEFF bl dir_next 4917 .LVL569: 2194:Middlewares/Third_Party/FatFs/src/ff.c **** } 4918 .loc 1 2194 3 is_stmt 1 view .LVU1617 2194:Middlewares/Third_Party/FatFs/src/ff.c **** } 4919 .loc 1 2194 6 is_stmt 0 view .LVU1618 4920 0014 0746 mov r7, r0 4921 0016 E8B9 cbnz r0, .L363 4922 .LVL570: 4923 .L362: 2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4924 .loc 1 2143 8 is_stmt 1 view .LVU1619 2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4925 .loc 1 2143 11 is_stmt 0 view .LVU1620 4926 0018 E169 ldr r1, [r4, #28] 2143:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dp->sect); 4927 .loc 1 2143 8 view .LVU1621 4928 001a D9B1 cbz r1, .L363 2144:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4929 .loc 1 2144 3 is_stmt 1 view .LVU1622 2144:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 4930 .loc 1 2144 9 is_stmt 0 view .LVU1623 4931 001c 2846 mov r0, r5 4932 001e FFF7FEFF bl move_window 4933 .LVL571: 2145:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; /* Test for the entry type */ 4934 .loc 1 2145 3 is_stmt 1 view .LVU1624 2145:Middlewares/Third_Party/FatFs/src/ff.c **** c = dp->dir[DIR_Name]; /* Test for the entry type */ 4935 .loc 1 2145 6 is_stmt 0 view .LVU1625 4936 0022 0746 mov r7, r0 4937 0024 B0B9 cbnz r0, .L363 2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { 4938 .loc 1 2146 3 is_stmt 1 view .LVU1626 2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { 4939 .loc 1 2146 9 is_stmt 0 view .LVU1627 4940 0026 236A ldr r3, [r4, #32] 2146:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) { ARM GAS /tmp/cczRNDQp.s page 214 4941 .loc 1 2146 5 view .LVU1628 4942 0028 1A78 ldrb r2, [r3] @ zero_extendqisi2 4943 .LVL572: 2147:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; break; /* Reached to end of the directory */ 4944 .loc 1 2147 3 is_stmt 1 view .LVU1629 2147:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; break; /* Reached to end of the directory */ 4945 .loc 1 2147 6 is_stmt 0 view .LVU1630 4946 002a 92B1 cbz r2, .L367 2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4947 .loc 1 2167 4 is_stmt 1 view .LVU1631 2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4948 .loc 1 2167 30 is_stmt 0 view .LVU1632 4949 002c DB7A ldrb r3, [r3, #11] @ zero_extendqisi2 2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4950 .loc 1 2167 21 view .LVU1633 4951 002e 03F03F03 and r3, r3, #63 4952 .LVL573: 2167:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_LFN != 0 /* LFN configuration */ 4953 .loc 1 2167 17 view .LVU1634 4954 0032 A371 strb r3, [r4, #6] 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4955 .loc 1 2188 4 is_stmt 1 view .LVU1635 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4956 .loc 1 2188 7 is_stmt 0 view .LVU1636 4957 0034 E52A cmp r2, #229 4958 0036 18BF it ne 4959 0038 2E2A cmpne r2, #46 4960 003a E7D0 beq .L364 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4961 .loc 1 2188 30 discriminator 1 view .LVU1637 4962 003c 0F2B cmp r3, #15 4963 003e E5D0 beq .L364 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4964 .loc 1 2188 57 discriminator 2 view .LVU1638 4965 0040 23F02003 bic r3, r3, #32 4966 .LVL574: 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4967 .loc 1 2188 48 discriminator 2 view .LVU1639 4968 0044 082B cmp r3, #8 4969 0046 14BF ite ne 4970 0048 0023 movne r3, #0 4971 004a 0123 moveq r3, #1 2188:Middlewares/Third_Party/FatFs/src/ff.c **** break; 4972 .loc 1 2188 45 discriminator 2 view .LVU1640 4973 004c B342 cmp r3, r6 4974 004e DDD1 bne .L364 4975 0050 00E0 b .L363 4976 .LVL575: 4977 .L367: 2148:Middlewares/Third_Party/FatFs/src/ff.c **** } 4978 .loc 1 2148 8 view .LVU1641 4979 0052 0427 movs r7, #4 4980 .LVL576: 4981 .L363: 2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4982 .loc 1 2197 2 is_stmt 1 view .LVU1642 2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res; ARM GAS /tmp/cczRNDQp.s page 215 4983 .loc 1 2197 5 is_stmt 0 view .LVU1643 4984 0054 0FB1 cbz r7, .L366 2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4985 .loc 1 2197 20 is_stmt 1 discriminator 1 view .LVU1644 2197:Middlewares/Third_Party/FatFs/src/ff.c **** return res; 4986 .loc 1 2197 29 is_stmt 0 discriminator 1 view .LVU1645 4987 0056 0023 movs r3, #0 4988 0058 E361 str r3, [r4, #28] 4989 .L366: 2198:Middlewares/Third_Party/FatFs/src/ff.c **** } 4990 .loc 1 2198 2 is_stmt 1 view .LVU1646 2199:Middlewares/Third_Party/FatFs/src/ff.c **** 4991 .loc 1 2199 1 is_stmt 0 view .LVU1647 4992 005a 3846 mov r0, r7 4993 005c F8BD pop {r3, r4, r5, r6, r7, pc} 2199:Middlewares/Third_Party/FatFs/src/ff.c **** 4994 .loc 1 2199 1 view .LVU1648 4995 .cfi_endproc 4996 .LFE1210: 4998 .section .text.sync_fs,"ax",%progbits 4999 .align 1 5000 .syntax unified 5001 .thumb 5002 .thumb_func 5003 .fpu fpv5-d16 5005 sync_fs: 5006 .LVL577: 5007 .LFB1198: 947:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5008 .loc 1 947 1 is_stmt 1 view -0 5009 .cfi_startproc 5010 @ args = 0, pretend = 0, frame = 0 5011 @ frame_needed = 0, uses_anonymous_args = 0 947:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5012 .loc 1 947 1 is_stmt 0 view .LVU1650 5013 0000 70B5 push {r4, r5, r6, lr} 5014 .LCFI37: 5015 .cfi_def_cfa_offset 16 5016 .cfi_offset 4, -16 5017 .cfi_offset 5, -12 5018 .cfi_offset 6, -8 5019 .cfi_offset 14, -4 5020 0002 0446 mov r4, r0 948:Middlewares/Third_Party/FatFs/src/ff.c **** 5021 .loc 1 948 2 is_stmt 1 view .LVU1651 951:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5022 .loc 1 951 2 view .LVU1652 951:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5023 .loc 1 951 8 is_stmt 0 view .LVU1653 5024 0004 FFF7FEFF bl sync_window 5025 .LVL578: 952:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update FSInfo sector if needed */ 5026 .loc 1 952 2 is_stmt 1 view .LVU1654 952:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update FSInfo sector if needed */ 5027 .loc 1 952 5 is_stmt 0 view .LVU1655 5028 0008 0546 mov r5, r0 5029 000a 48B9 cbnz r0, .L370 ARM GAS /tmp/cczRNDQp.s page 216 954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */ 5030 .loc 1 954 3 is_stmt 1 view .LVU1656 954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */ 5031 .loc 1 954 9 is_stmt 0 view .LVU1657 5032 000c 2378 ldrb r3, [r4] @ zero_extendqisi2 954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */ 5033 .loc 1 954 6 view .LVU1658 5034 000e 032B cmp r3, #3 5035 0010 08D0 beq .L374 5036 .LVL579: 5037 .L371: 968:Middlewares/Third_Party/FatFs/src/ff.c **** } 5038 .loc 1 968 3 is_stmt 1 view .LVU1659 968:Middlewares/Third_Party/FatFs/src/ff.c **** } 5039 .loc 1 968 7 is_stmt 0 view .LVU1660 5040 0012 0022 movs r2, #0 5041 0014 1146 mov r1, r2 5042 0016 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 5043 0018 FFF7FEFF bl disk_ioctl 5044 .LVL580: 968:Middlewares/Third_Party/FatFs/src/ff.c **** } 5045 .loc 1 968 6 view .LVU1661 5046 001c 00B1 cbz r0, .L370 968:Middlewares/Third_Party/FatFs/src/ff.c **** } 5047 .loc 1 968 56 view .LVU1662 5048 001e 0125 movs r5, #1 5049 .L370: 5050 .LVL581: 971:Middlewares/Third_Party/FatFs/src/ff.c **** } 5051 .loc 1 971 2 is_stmt 1 view .LVU1663 972:Middlewares/Third_Party/FatFs/src/ff.c **** 5052 .loc 1 972 1 is_stmt 0 view .LVU1664 5053 0020 2846 mov r0, r5 5054 0022 70BD pop {r4, r5, r6, pc} 5055 .LVL582: 5056 .L374: 954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */ 5057 .loc 1 954 36 discriminator 1 view .LVU1665 5058 0024 2379 ldrb r3, [r4, #4] @ zero_extendqisi2 954:Middlewares/Third_Party/FatFs/src/ff.c **** /* Create FSInfo structure */ 5059 .loc 1 954 31 discriminator 1 view .LVU1666 5060 0026 012B cmp r3, #1 5061 0028 F3D1 bne .L371 956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55); 5062 .loc 1 956 4 is_stmt 1 view .LVU1667 956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55); 5063 .loc 1 956 14 is_stmt 0 view .LVU1668 5064 002a 04F13406 add r6, r4, #52 956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55); 5065 .loc 1 956 4 view .LVU1669 5066 002e A289 ldrh r2, [r4, #12] 5067 0030 0021 movs r1, #0 5068 0032 3046 mov r0, r6 5069 .LVL583: 956:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(fs->win + BS_55AA, 0xAA55); 5070 .loc 1 956 4 view .LVU1670 5071 0034 FFF7FEFF bl mem_set ARM GAS /tmp/cczRNDQp.s page 217 5072 .LVL584: 957:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_LeadSig, 0x41615252); 5073 .loc 1 957 4 is_stmt 1 view .LVU1671 5074 0038 4AF65521 movw r1, #43605 5075 003c 04F23220 addw r0, r4, #562 5076 0040 FFF7FEFF bl st_word 5077 .LVL585: 958:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_StrucSig, 0x61417272); 5078 .loc 1 958 4 view .LVU1672 5079 0044 0E49 ldr r1, .L375 5080 0046 3046 mov r0, r6 5081 0048 FFF7FEFF bl st_dword 5082 .LVL586: 959:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Free_Count, fs->free_clst); 5083 .loc 1 959 4 view .LVU1673 5084 004c 0D49 ldr r1, .L375+4 5085 004e 04F50670 add r0, r4, #536 5086 0052 FFF7FEFF bl st_dword 5087 .LVL587: 960:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(fs->win + FSI_Nxt_Free, fs->last_clst); 5088 .loc 1 960 4 view .LVU1674 5089 0056 6169 ldr r1, [r4, #20] 5090 0058 04F50770 add r0, r4, #540 5091 005c FFF7FEFF bl st_dword 5092 .LVL588: 961:Middlewares/Third_Party/FatFs/src/ff.c **** /* Write it into the FSInfo sector */ 5093 .loc 1 961 4 view .LVU1675 5094 0060 2169 ldr r1, [r4, #16] 5095 0062 04F50870 add r0, r4, #544 5096 0066 FFF7FEFF bl st_dword 5097 .LVL589: 963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1); 5098 .loc 1 963 4 view .LVU1676 963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1); 5099 .loc 1 963 20 is_stmt 0 view .LVU1677 5100 006a 226A ldr r2, [r4, #32] 963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1); 5101 .loc 1 963 30 view .LVU1678 5102 006c 0132 adds r2, r2, #1 963:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(fs->drv, fs->win, fs->winsect, 1); 5103 .loc 1 963 16 view .LVU1679 5104 006e 2263 str r2, [r4, #48] 964:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag = 0; 5105 .loc 1 964 4 is_stmt 1 view .LVU1680 5106 0070 0123 movs r3, #1 5107 0072 3146 mov r1, r6 5108 0074 6078 ldrb r0, [r4, #1] @ zero_extendqisi2 5109 0076 FFF7FEFF bl disk_write 5110 .LVL590: 965:Middlewares/Third_Party/FatFs/src/ff.c **** } 5111 .loc 1 965 4 view .LVU1681 965:Middlewares/Third_Party/FatFs/src/ff.c **** } 5112 .loc 1 965 17 is_stmt 0 view .LVU1682 5113 007a 0023 movs r3, #0 5114 007c 2371 strb r3, [r4, #4] 5115 007e C8E7 b .L371 5116 .L376: ARM GAS /tmp/cczRNDQp.s page 218 5117 .align 2 5118 .L375: 5119 0080 52526141 .word 1096897106 5120 0084 72724161 .word 1631679090 5121 .cfi_endproc 5122 .LFE1198: 5124 .section .text.f_mount,"ax",%progbits 5125 .align 1 5126 .global f_mount 5127 .syntax unified 5128 .thumb 5129 .thumb_func 5130 .fpu fpv5-d16 5132 f_mount: 5133 .LVL591: 5134 .LFB1221: 3265:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *cfs; 5135 .loc 1 3265 1 is_stmt 1 view -0 5136 .cfi_startproc 5137 @ args = 0, pretend = 0, frame = 16 5138 @ frame_needed = 0, uses_anonymous_args = 0 3265:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *cfs; 5139 .loc 1 3265 1 is_stmt 0 view .LVU1684 5140 0000 70B5 push {r4, r5, r6, lr} 5141 .LCFI38: 5142 .cfi_def_cfa_offset 16 5143 .cfi_offset 4, -16 5144 .cfi_offset 5, -12 5145 .cfi_offset 6, -8 5146 .cfi_offset 14, -4 5147 0002 84B0 sub sp, sp, #16 5148 .LCFI39: 5149 .cfi_def_cfa_offset 32 5150 0004 0190 str r0, [sp, #4] 5151 0006 0091 str r1, [sp] 5152 0008 1646 mov r6, r2 3266:Middlewares/Third_Party/FatFs/src/ff.c **** int vol; 5153 .loc 1 3266 2 is_stmt 1 view .LVU1685 3267:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5154 .loc 1 3267 2 view .LVU1686 3268:Middlewares/Third_Party/FatFs/src/ff.c **** const TCHAR *rp = path; 5155 .loc 1 3268 2 view .LVU1687 3269:Middlewares/Third_Party/FatFs/src/ff.c **** 5156 .loc 1 3269 2 view .LVU1688 3269:Middlewares/Third_Party/FatFs/src/ff.c **** 5157 .loc 1 3269 15 is_stmt 0 view .LVU1689 5158 000a 0391 str r1, [sp, #12] 3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 5159 .loc 1 3273 2 is_stmt 1 view .LVU1690 3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 5160 .loc 1 3273 8 is_stmt 0 view .LVU1691 5161 000c 03A8 add r0, sp, #12 5162 .LVL592: 3273:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 5163 .loc 1 3273 8 view .LVU1692 5164 000e FFF7FEFF bl get_ldnumber 5165 .LVL593: ARM GAS /tmp/cczRNDQp.s page 219 3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */ 5166 .loc 1 3274 2 is_stmt 1 view .LVU1693 3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */ 5167 .loc 1 3274 5 is_stmt 0 view .LVU1694 5168 0012 041E subs r4, r0, #0 5169 0014 20DB blt .L381 3275:Middlewares/Third_Party/FatFs/src/ff.c **** 5170 .loc 1 3275 2 is_stmt 1 view .LVU1695 3275:Middlewares/Third_Party/FatFs/src/ff.c **** 5171 .loc 1 3275 6 is_stmt 0 view .LVU1696 5172 0016 114B ldr r3, .L385 5173 0018 53F82450 ldr r5, [r3, r4, lsl #2] 5174 .LVL594: 3277:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5175 .loc 1 3277 2 is_stmt 1 view .LVU1697 3277:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5176 .loc 1 3277 5 is_stmt 0 view .LVU1698 5177 001c 25B1 cbz r5, .L379 3279:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5178 .loc 1 3279 3 is_stmt 1 view .LVU1699 5179 001e 2846 mov r0, r5 5180 .LVL595: 3279:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5181 .loc 1 3279 3 is_stmt 0 view .LVU1700 5182 0020 FFF7FEFF bl clear_lock 5183 .LVL596: 3284:Middlewares/Third_Party/FatFs/src/ff.c **** } 5184 .loc 1 3284 3 is_stmt 1 view .LVU1701 3284:Middlewares/Third_Party/FatFs/src/ff.c **** } 5185 .loc 1 3284 16 is_stmt 0 view .LVU1702 5186 0024 0023 movs r3, #0 5187 0026 2B70 strb r3, [r5] 5188 .L379: 3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */ 5189 .loc 1 3287 2 is_stmt 1 view .LVU1703 3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */ 5190 .loc 1 3287 6 is_stmt 0 view .LVU1704 5191 0028 019B ldr r3, [sp, #4] 3287:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fs_type = 0; /* Clear new fs object */ 5192 .loc 1 3287 5 view .LVU1705 5193 002a 0BB1 cbz r3, .L380 3288:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Create sync object for the new volume */ 5194 .loc 1 3288 3 is_stmt 1 view .LVU1706 3288:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_REENTRANT /* Create sync object for the new volume */ 5195 .loc 1 3288 15 is_stmt 0 view .LVU1707 5196 002c 0022 movs r2, #0 5197 002e 1A70 strb r2, [r3] 5198 .L380: 3293:Middlewares/Third_Party/FatFs/src/ff.c **** 5199 .loc 1 3293 2 is_stmt 1 view .LVU1708 3293:Middlewares/Third_Party/FatFs/src/ff.c **** 5200 .loc 1 3293 13 is_stmt 0 view .LVU1709 5201 0030 019B ldr r3, [sp, #4] 5202 0032 0A4A ldr r2, .L385 5203 0034 42F82430 str r3, [r2, r4, lsl #2] 3295:Middlewares/Third_Party/FatFs/src/ff.c **** 5204 .loc 1 3295 2 is_stmt 1 view .LVU1710 ARM GAS /tmp/cczRNDQp.s page 220 3295:Middlewares/Third_Party/FatFs/src/ff.c **** 5205 .loc 1 3295 17 is_stmt 0 view .LVU1711 5206 0038 721E subs r2, r6, #1 5207 003a 18BF it ne 5208 003c 0122 movne r2, #1 3295:Middlewares/Third_Party/FatFs/src/ff.c **** 5209 .loc 1 3295 10 view .LVU1712 5210 003e 002B cmp r3, #0 5211 0040 08BF it eq 5212 0042 42F00102 orreq r2, r2, #1 3295:Middlewares/Third_Party/FatFs/src/ff.c **** 5213 .loc 1 3295 5 view .LVU1713 5214 0046 12B1 cbz r2, .L384 3295:Middlewares/Third_Party/FatFs/src/ff.c **** 5215 .loc 1 3295 30 view .LVU1714 5216 0048 0020 movs r0, #0 5217 .LVL597: 5218 .L378: 3299:Middlewares/Third_Party/FatFs/src/ff.c **** 5219 .loc 1 3299 1 view .LVU1715 5220 004a 04B0 add sp, sp, #16 5221 .LCFI40: 5222 .cfi_remember_state 5223 .cfi_def_cfa_offset 16 5224 @ sp needed 5225 004c 70BD pop {r4, r5, r6, pc} 5226 .LVL598: 5227 .L384: 5228 .LCFI41: 5229 .cfi_restore_state 3297:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res); 5230 .loc 1 3297 2 is_stmt 1 view .LVU1716 3297:Middlewares/Third_Party/FatFs/src/ff.c **** LEAVE_FF(fs, res); 5231 .loc 1 3297 8 is_stmt 0 view .LVU1717 5232 004e 01A9 add r1, sp, #4 5233 0050 6846 mov r0, sp 5234 0052 FFF7FEFF bl find_volume 5235 .LVL599: 3298:Middlewares/Third_Party/FatFs/src/ff.c **** } 5236 .loc 1 3298 2 is_stmt 1 view .LVU1718 5237 0056 F8E7 b .L378 5238 .LVL600: 5239 .L381: 3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */ 5240 .loc 1 3274 22 is_stmt 0 view .LVU1719 5241 0058 0B20 movs r0, #11 5242 .LVL601: 3274:Middlewares/Third_Party/FatFs/src/ff.c **** cfs = FatFs[vol]; /* Pointer to fs object */ 5243 .loc 1 3274 22 view .LVU1720 5244 005a F6E7 b .L378 5245 .L386: 5246 .align 2 5247 .L385: 5248 005c 00000000 .word .LANCHOR2 5249 .cfi_endproc 5250 .LFE1221: 5252 .section .text.f_open,"ax",%progbits ARM GAS /tmp/cczRNDQp.s page 221 5253 .align 1 5254 .global f_open 5255 .syntax unified 5256 .thumb 5257 .thumb_func 5258 .fpu fpv5-d16 5260 f_open: 5261 .LVL602: 5262 .LFB1222: 3313:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5263 .loc 1 3313 1 is_stmt 1 view -0 5264 .cfi_startproc 5265 @ args = 0, pretend = 0, frame = 64 5266 @ frame_needed = 0, uses_anonymous_args = 0 3313:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5267 .loc 1 3313 1 is_stmt 0 view .LVU1722 5268 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 5269 .LCFI42: 5270 .cfi_def_cfa_offset 28 5271 .cfi_offset 4, -28 5272 .cfi_offset 5, -24 5273 .cfi_offset 6, -20 5274 .cfi_offset 7, -16 5275 .cfi_offset 8, -12 5276 .cfi_offset 9, -8 5277 .cfi_offset 14, -4 5278 0004 91B0 sub sp, sp, #68 5279 .LCFI43: 5280 .cfi_def_cfa_offset 96 5281 0006 0191 str r1, [sp, #4] 3314:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj; 5282 .loc 1 3314 2 is_stmt 1 view .LVU1723 3315:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 5283 .loc 1 3315 2 view .LVU1724 3316:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 5284 .loc 1 3316 2 view .LVU1725 3318:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ofs; 5285 .loc 1 3318 2 view .LVU1726 3319:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5286 .loc 1 3319 2 view .LVU1727 3324:Middlewares/Third_Party/FatFs/src/ff.c **** 5287 .loc 1 3324 2 view .LVU1728 3324:Middlewares/Third_Party/FatFs/src/ff.c **** 5288 .loc 1 3324 5 is_stmt 0 view .LVU1729 5289 0008 0028 cmp r0, #0 5290 000a 00F01581 beq .L403 5291 000e 1546 mov r5, r2 5292 0010 0646 mov r6, r0 3327:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, mode); 5293 .loc 1 3327 2 is_stmt 1 view .LVU1730 3327:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, mode); 5294 .loc 1 3327 7 is_stmt 0 view .LVU1731 5295 0012 02F03F07 and r7, r2, #63 5296 .LVL603: 3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5297 .loc 1 3328 2 is_stmt 1 view .LVU1732 3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { ARM GAS /tmp/cczRNDQp.s page 222 5298 .loc 1 3328 8 is_stmt 0 view .LVU1733 5299 0016 3A46 mov r2, r7 5300 0018 03A9 add r1, sp, #12 5301 .LVL604: 3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5302 .loc 1 3328 8 view .LVU1734 5303 001a 01A8 add r0, sp, #4 5304 .LVL605: 3328:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5305 .loc 1 3328 8 view .LVU1735 5306 001c FFF7FEFF bl find_volume 5307 .LVL606: 3329:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 5308 .loc 1 3329 2 is_stmt 1 view .LVU1736 3329:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 5309 .loc 1 3329 5 is_stmt 0 view .LVU1737 5310 0020 0446 mov r4, r0 5311 0022 30B1 cbz r0, .L416 5312 .LVL607: 5313 .L389: 3496:Middlewares/Third_Party/FatFs/src/ff.c **** } 5314 .loc 1 3496 16 is_stmt 1 view .LVU1738 3499:Middlewares/Third_Party/FatFs/src/ff.c **** 5315 .loc 1 3499 2 view .LVU1739 3499:Middlewares/Third_Party/FatFs/src/ff.c **** 5316 .loc 1 3499 5 is_stmt 0 view .LVU1740 5317 0024 0CB1 cbz r4, .L388 5318 .LVL608: 5319 .L402: 3499:Middlewares/Third_Party/FatFs/src/ff.c **** 5320 .loc 1 3499 20 is_stmt 1 discriminator 1 view .LVU1741 3499:Middlewares/Third_Party/FatFs/src/ff.c **** 5321 .loc 1 3499 31 is_stmt 0 discriminator 1 view .LVU1742 5322 0026 0023 movs r3, #0 5323 0028 3360 str r3, [r6] 5324 .LVL609: 5325 .L388: 3502:Middlewares/Third_Party/FatFs/src/ff.c **** 5326 .loc 1 3502 1 view .LVU1743 5327 002a 2046 mov r0, r4 5328 002c 11B0 add sp, sp, #68 5329 .LCFI44: 5330 .cfi_remember_state 5331 .cfi_def_cfa_offset 28 5332 @ sp needed 5333 002e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 5334 .LVL610: 5335 .L416: 5336 .LCFI45: 5337 .cfi_restore_state 3330:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 5338 .loc 1 3330 3 is_stmt 1 view .LVU1744 3330:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 5339 .loc 1 3330 13 is_stmt 0 view .LVU1745 5340 0032 039B ldr r3, [sp, #12] 5341 0034 0493 str r3, [sp, #16] 3331:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */ ARM GAS /tmp/cczRNDQp.s page 223 5342 .loc 1 3331 18 is_stmt 1 view .LVU1746 3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */ 5343 .loc 1 3332 3 view .LVU1747 3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */ 5344 .loc 1 3332 9 is_stmt 0 view .LVU1748 5345 0036 0199 ldr r1, [sp, #4] 5346 0038 04A8 add r0, sp, #16 5347 .LVL611: 3332:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY /* R/W configuration */ 5348 .loc 1 3332 9 view .LVU1749 5349 003a FFF7FEFF bl follow_path 5350 .LVL612: 3334:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ 5351 .loc 1 3334 3 is_stmt 1 view .LVU1750 3334:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ 5352 .loc 1 3334 6 is_stmt 0 view .LVU1751 5353 003e 0446 mov r4, r0 5354 0040 60B9 cbnz r0, .L390 3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 5355 .loc 1 3335 4 is_stmt 1 view .LVU1752 3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 5356 .loc 1 3335 8 is_stmt 0 view .LVU1753 5357 0042 9DF93F30 ldrsb r3, [sp, #63] 3335:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 5358 .loc 1 3335 7 view .LVU1754 5359 0046 002B cmp r3, #0 5360 0048 50DB blt .L404 3340:Middlewares/Third_Party/FatFs/src/ff.c **** } 5361 .loc 1 3340 5 is_stmt 1 view .LVU1755 3340:Middlewares/Third_Party/FatFs/src/ff.c **** } 5362 .loc 1 3340 11 is_stmt 0 view .LVU1756 5363 004a 37F00103 bics r3, r7, #1 5364 004e 14BF ite ne 5365 0050 0121 movne r1, #1 5366 0052 0021 moveq r1, #0 5367 0054 04A8 add r0, sp, #16 5368 .LVL613: 3340:Middlewares/Third_Party/FatFs/src/ff.c **** } 5369 .loc 1 3340 11 view .LVU1757 5370 0056 FFF7FEFF bl chk_lock 5371 .LVL614: 5372 005a 0446 mov r4, r0 5373 .LVL615: 5374 .L390: 3345:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* No file, create new */ 5375 .loc 1 3345 3 is_stmt 1 view .LVU1758 3345:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) { /* No file, create new */ 5376 .loc 1 3345 6 is_stmt 0 view .LVU1759 5377 005c 15F01C0F tst r5, #28 5378 0060 5AD0 beq .L391 3346:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ 5379 .loc 1 3346 4 is_stmt 1 view .LVU1760 3346:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ 5380 .loc 1 3346 7 is_stmt 0 view .LVU1761 5381 0062 002C cmp r4, #0 5382 0064 4ED0 beq .L392 3347:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 ARM GAS /tmp/cczRNDQp.s page 224 5383 .loc 1 3347 5 is_stmt 1 view .LVU1762 3347:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5384 .loc 1 3347 8 is_stmt 0 view .LVU1763 5385 0066 042C cmp r4, #4 5386 0068 42D0 beq .L417 5387 .LVL616: 5388 .L393: 3354:Middlewares/Third_Party/FatFs/src/ff.c **** } 5389 .loc 1 3354 5 is_stmt 1 view .LVU1764 3354:Middlewares/Third_Party/FatFs/src/ff.c **** } 5390 .loc 1 3354 10 is_stmt 0 view .LVU1765 5391 006a 47F00807 orr r7, r7, #8 5392 .LVL617: 5393 .L394: 3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME(); 5394 .loc 1 3363 4 is_stmt 1 view .LVU1766 3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME(); 5395 .loc 1 3363 7 is_stmt 0 view .LVU1767 5396 006e 002C cmp r4, #0 5397 0070 61D1 bne .L395 3363:Middlewares/Third_Party/FatFs/src/ff.c **** dw = GET_FATTIME(); 5398 .loc 1 3363 21 discriminator 1 view .LVU1768 5399 0072 17F0080F tst r7, #8 5400 0076 5ED0 beq .L395 3364:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 5401 .loc 1 3364 5 is_stmt 1 view .LVU1769 3364:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 5402 .loc 1 3364 10 is_stmt 0 view .LVU1770 5403 0078 FFF7FEFF bl get_fattime 5404 .LVL618: 5405 007c 0546 mov r5, r0 5406 .LVL619: 3392:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */ 5407 .loc 1 3392 6 is_stmt 1 view .LVU1771 5408 007e 0146 mov r1, r0 5409 0080 0C98 ldr r0, [sp, #48] 5410 .LVL620: 3392:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */ 5411 .loc 1 3392 6 is_stmt 0 view .LVU1772 5412 0082 0E30 adds r0, r0, #14 5413 0084 FFF7FEFF bl st_dword 5414 .LVL621: 3393:Middlewares/Third_Party/FatFs/src/ff.c **** dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */ 5415 .loc 1 3393 6 is_stmt 1 view .LVU1773 5416 0088 2946 mov r1, r5 5417 008a 0C98 ldr r0, [sp, #48] 5418 008c 1630 adds r0, r0, #22 5419 008e FFF7FEFF bl st_dword 5420 .LVL622: 3394:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_clust(fs, dj.dir); /* Get cluster chain */ 5421 .loc 1 3394 6 view .LVU1774 3394:Middlewares/Third_Party/FatFs/src/ff.c **** cl = ld_clust(fs, dj.dir); /* Get cluster chain */ 5422 .loc 1 3394 23 is_stmt 0 view .LVU1775 5423 0092 0C9B ldr r3, [sp, #48] 5424 0094 2022 movs r2, #32 5425 0096 DA72 strb r2, [r3, #11] 3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */ ARM GAS /tmp/cczRNDQp.s page 225 5426 .loc 1 3395 6 is_stmt 1 view .LVU1776 3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */ 5427 .loc 1 3395 11 is_stmt 0 view .LVU1777 5428 0098 DDF80C80 ldr r8, [sp, #12] 3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */ 5429 .loc 1 3395 26 view .LVU1778 5430 009c DDF83090 ldr r9, [sp, #48] 3395:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dj.dir, 0); /* Reset file allocation info */ 5431 .loc 1 3395 11 view .LVU1779 5432 00a0 4946 mov r1, r9 5433 00a2 4046 mov r0, r8 5434 00a4 FFF7FEFF bl ld_clust 5435 .LVL623: 5436 00a8 0546 mov r5, r0 5437 .LVL624: 3396:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_FileSize, 0); 5438 .loc 1 3396 6 is_stmt 1 view .LVU1780 5439 00aa 0022 movs r2, #0 5440 00ac 4946 mov r1, r9 5441 00ae 4046 mov r0, r8 5442 .LVL625: 3396:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dj.dir + DIR_FileSize, 0); 5443 .loc 1 3396 6 is_stmt 0 view .LVU1781 5444 00b0 FFF7FEFF bl st_clust 5445 .LVL626: 3397:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 5446 .loc 1 3397 6 is_stmt 1 view .LVU1782 5447 00b4 0021 movs r1, #0 5448 00b6 0C98 ldr r0, [sp, #48] 5449 00b8 1C30 adds r0, r0, #28 5450 00ba FFF7FEFF bl st_dword 5451 .LVL627: 3398:Middlewares/Third_Party/FatFs/src/ff.c **** 5452 .loc 1 3398 6 view .LVU1783 3398:Middlewares/Third_Party/FatFs/src/ff.c **** 5453 .loc 1 3398 16 is_stmt 0 view .LVU1784 5454 00be 039B ldr r3, [sp, #12] 5455 00c0 0122 movs r2, #1 5456 00c2 DA70 strb r2, [r3, #3] 3400:Middlewares/Third_Party/FatFs/src/ff.c **** dw = fs->winsect; 5457 .loc 1 3400 6 is_stmt 1 view .LVU1785 3400:Middlewares/Third_Party/FatFs/src/ff.c **** dw = fs->winsect; 5458 .loc 1 3400 9 is_stmt 0 view .LVU1786 5459 00c4 BDB3 cbz r5, .L395 3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0); 5460 .loc 1 3401 7 is_stmt 1 view .LVU1787 3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0); 5461 .loc 1 3401 14 is_stmt 0 view .LVU1788 5462 00c6 039B ldr r3, [sp, #12] 3401:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&dj.obj, cl, 0); 5463 .loc 1 3401 10 view .LVU1789 5464 00c8 D3F83080 ldr r8, [r3, #48] 5465 .LVL628: 3402:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5466 .loc 1 3402 7 is_stmt 1 view .LVU1790 3402:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 5467 .loc 1 3402 13 is_stmt 0 view .LVU1791 ARM GAS /tmp/cczRNDQp.s page 226 5468 00cc 0022 movs r2, #0 5469 00ce 2946 mov r1, r5 5470 00d0 04A8 add r0, sp, #16 5471 00d2 FFF7FEFF bl remove_chain 5472 .LVL629: 3403:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw); 5473 .loc 1 3403 7 is_stmt 1 view .LVU1792 3403:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, dw); 5474 .loc 1 3403 10 is_stmt 0 view .LVU1793 5475 00d6 0446 mov r4, r0 5476 00d8 68BB cbnz r0, .L395 3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */ 5477 .loc 1 3404 8 is_stmt 1 view .LVU1794 3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */ 5478 .loc 1 3404 14 is_stmt 0 view .LVU1795 5479 00da 4146 mov r1, r8 5480 00dc 0398 ldr r0, [sp, #12] 5481 .LVL630: 3404:Middlewares/Third_Party/FatFs/src/ff.c **** fs->last_clst = cl - 1; /* Reuse the cluster hole */ 5482 .loc 1 3404 14 view .LVU1796 5483 00de FFF7FEFF bl move_window 5484 .LVL631: 5485 00e2 0446 mov r4, r0 5486 .LVL632: 3405:Middlewares/Third_Party/FatFs/src/ff.c **** } 5487 .loc 1 3405 8 is_stmt 1 view .LVU1797 3405:Middlewares/Third_Party/FatFs/src/ff.c **** } 5488 .loc 1 3405 27 is_stmt 0 view .LVU1798 5489 00e4 013D subs r5, r5, #1 5490 .LVL633: 3405:Middlewares/Third_Party/FatFs/src/ff.c **** } 5491 .loc 1 3405 22 view .LVU1799 5492 00e6 039B ldr r3, [sp, #12] 5493 00e8 1D61 str r5, [r3, #16] 5494 00ea 24E0 b .L395 5495 .LVL634: 5496 .L404: 3336:Middlewares/Third_Party/FatFs/src/ff.c **** } 5497 .loc 1 3336 9 view .LVU1800 5498 00ec 0624 movs r4, #6 5499 00ee B5E7 b .L390 5500 .LVL635: 5501 .L417: 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5502 .loc 1 3349 6 is_stmt 1 view .LVU1801 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5503 .loc 1 3349 12 is_stmt 0 view .LVU1802 5504 00f0 FFF7FEFF bl enq_lock 5505 .LVL636: 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5506 .loc 1 3349 43 view .LVU1803 5507 00f4 08B9 cbnz r0, .L418 5508 00f6 1224 movs r4, #18 5509 .LVL637: 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5510 .loc 1 3349 43 view .LVU1804 5511 00f8 B7E7 b .L393 ARM GAS /tmp/cczRNDQp.s page 227 5512 .LVL638: 5513 .L418: 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5514 .loc 1 3349 25 discriminator 1 view .LVU1805 5515 00fa 04A8 add r0, sp, #16 5516 00fc FFF7FEFF bl dir_register 5517 .LVL639: 5518 0100 0446 mov r4, r0 5519 .LVL640: 3349:Middlewares/Third_Party/FatFs/src/ff.c **** #else 5520 .loc 1 3349 25 discriminator 1 view .LVU1806 5521 0102 B2E7 b .L393 5522 .LVL641: 5523 .L392: 3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5524 .loc 1 3357 5 is_stmt 1 view .LVU1807 3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5525 .loc 1 3357 15 is_stmt 0 view .LVU1808 5526 0104 9DF81630 ldrb r3, [sp, #22] @ zero_extendqisi2 3357:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5527 .loc 1 3357 8 view .LVU1809 5528 0108 13F0110F tst r3, #17 5529 010c 12D1 bne .L406 3360:Middlewares/Third_Party/FatFs/src/ff.c **** } 5530 .loc 1 3360 6 is_stmt 1 view .LVU1810 3360:Middlewares/Third_Party/FatFs/src/ff.c **** } 5531 .loc 1 3360 9 is_stmt 0 view .LVU1811 5532 010e 15F0040F tst r5, #4 5533 0112 ACD0 beq .L394 3360:Middlewares/Third_Party/FatFs/src/ff.c **** } 5534 .loc 1 3360 36 view .LVU1812 5535 0114 0824 movs r4, #8 5536 .LVL642: 3360:Middlewares/Third_Party/FatFs/src/ff.c **** } 5537 .loc 1 3360 36 view .LVU1813 5538 0116 0EE0 b .L395 5539 .LVL643: 5540 .L391: 3412:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */ 5541 .loc 1 3412 4 is_stmt 1 view .LVU1814 3412:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.obj.attr & AM_DIR) { /* It is a directory */ 5542 .loc 1 3412 7 is_stmt 0 view .LVU1815 5543 0118 6CB9 cbnz r4, .L395 3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; 5544 .loc 1 3413 5 is_stmt 1 view .LVU1816 3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; 5545 .loc 1 3413 15 is_stmt 0 view .LVU1817 5546 011a 9DF81630 ldrb r3, [sp, #22] @ zero_extendqisi2 3413:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_NO_FILE; 5547 .loc 1 3413 8 view .LVU1818 5548 011e 13F0100F tst r3, #16 5549 0122 4ED1 bne .L408 3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5550 .loc 1 3416 6 is_stmt 1 view .LVU1819 3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5551 .loc 1 3416 9 is_stmt 0 view .LVU1820 5552 0124 15F0020F tst r5, #2 ARM GAS /tmp/cczRNDQp.s page 228 5553 0128 05D0 beq .L395 3416:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; 5554 .loc 1 3416 28 discriminator 1 view .LVU1821 5555 012a 13F0010F tst r3, #1 5556 012e 02D0 beq .L395 3417:Middlewares/Third_Party/FatFs/src/ff.c **** } 5557 .loc 1 3417 11 view .LVU1822 5558 0130 0724 movs r4, #7 5559 .LVL644: 3417:Middlewares/Third_Party/FatFs/src/ff.c **** } 5560 .loc 1 3417 11 view .LVU1823 5561 0132 16E0 b .L396 5562 .LVL645: 5563 .L406: 3358:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 5564 .loc 1 3358 10 view .LVU1824 5565 0134 0724 movs r4, #7 5566 .LVL646: 5567 .L395: 3422:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */ 5568 .loc 1 3422 3 is_stmt 1 view .LVU1825 3422:Middlewares/Third_Party/FatFs/src/ff.c **** if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */ 5569 .loc 1 3422 6 is_stmt 0 view .LVU1826 5570 0136 A4B9 cbnz r4, .L396 3423:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_MODIFIED; 5571 .loc 1 3423 4 is_stmt 1 view .LVU1827 3423:Middlewares/Third_Party/FatFs/src/ff.c **** mode |= FA_MODIFIED; 5572 .loc 1 3423 7 is_stmt 0 view .LVU1828 5573 0138 17F0080F tst r7, #8 5574 013c 01D0 beq .L397 3424:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_sect = fs->winsect; /* Pointer to the directory entry */ 5575 .loc 1 3424 5 is_stmt 1 view .LVU1829 3424:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_sect = fs->winsect; /* Pointer to the directory entry */ 5576 .loc 1 3424 10 is_stmt 0 view .LVU1830 5577 013e 47F04007 orr r7, r7, #64 5578 .LVL647: 5579 .L397: 3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir; 5580 .loc 1 3425 4 is_stmt 1 view .LVU1831 3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir; 5581 .loc 1 3425 21 is_stmt 0 view .LVU1832 5582 0142 039B ldr r3, [sp, #12] 5583 0144 1B6B ldr r3, [r3, #48] 3425:Middlewares/Third_Party/FatFs/src/ff.c **** fp->dir_ptr = dj.dir; 5584 .loc 1 3425 17 view .LVU1833 5585 0146 7362 str r3, [r6, #36] 3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5586 .loc 1 3426 4 is_stmt 1 view .LVU1834 3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5587 .loc 1 3426 20 is_stmt 0 view .LVU1835 5588 0148 0C9B ldr r3, [sp, #48] 3426:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 5589 .loc 1 3426 16 view .LVU1836 5590 014a B362 str r3, [r6, #40] 3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR; 5591 .loc 1 3428 4 is_stmt 1 view .LVU1837 3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR; ARM GAS /tmp/cczRNDQp.s page 229 5592 .loc 1 3428 21 is_stmt 0 view .LVU1838 5593 014c 37F00103 bics r3, r7, #1 5594 0150 14BF ite ne 5595 0152 0121 movne r1, #1 5596 0154 0021 moveq r1, #0 5597 0156 04A8 add r0, sp, #16 5598 0158 FFF7FEFF bl inc_lock 5599 .LVL648: 3428:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fp->obj.lockid) res = FR_INT_ERR; 5600 .loc 1 3428 19 view .LVU1839 5601 015c 3061 str r0, [r6, #16] 3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5602 .loc 1 3429 4 is_stmt 1 view .LVU1840 3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5603 .loc 1 3429 7 is_stmt 0 view .LVU1841 5604 015e 0028 cmp r0, #0 5605 0160 68D0 beq .L410 5606 .LVL649: 5607 .L396: 3444:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 5608 .loc 1 3444 3 is_stmt 1 view .LVU1842 3444:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 5609 .loc 1 3444 6 is_stmt 0 view .LVU1843 5610 0162 002C cmp r4, #0 5611 0164 7FF45EAF bne .L389 3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); 5612 .loc 1 3456 5 is_stmt 1 view .LVU1844 3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); 5613 .loc 1 3456 22 is_stmt 0 view .LVU1845 5614 0168 039D ldr r5, [sp, #12] 3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); 5615 .loc 1 3456 37 view .LVU1846 5616 016a DDF83080 ldr r8, [sp, #48] 3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); 5617 .loc 1 3456 22 view .LVU1847 5618 016e 4146 mov r1, r8 5619 0170 2846 mov r0, r5 5620 0172 FFF7FEFF bl ld_clust 5621 .LVL650: 3456:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); 5622 .loc 1 3456 20 view .LVU1848 5623 0176 B060 str r0, [r6, #8] 3457:Middlewares/Third_Party/FatFs/src/ff.c **** } 5624 .loc 1 3457 5 is_stmt 1 view .LVU1849 3457:Middlewares/Third_Party/FatFs/src/ff.c **** } 5625 .loc 1 3457 23 is_stmt 0 view .LVU1850 5626 0178 08F11C00 add r0, r8, #28 5627 017c FFF7FEFF bl ld_dword 5628 .LVL651: 3457:Middlewares/Third_Party/FatFs/src/ff.c **** } 5629 .loc 1 3457 21 view .LVU1851 5630 0180 F060 str r0, [r6, #12] 3460:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5631 .loc 1 3460 4 is_stmt 1 view .LVU1852 3460:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5632 .loc 1 3460 14 is_stmt 0 view .LVU1853 5633 0182 0021 movs r1, #0 ARM GAS /tmp/cczRNDQp.s page 230 5634 0184 F162 str r1, [r6, #44] 3462:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.id = fs->id; 5635 .loc 1 3462 4 is_stmt 1 view .LVU1854 3462:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.id = fs->id; 5636 .loc 1 3462 15 is_stmt 0 view .LVU1855 5637 0186 3560 str r5, [r6] 3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */ 5638 .loc 1 3463 4 is_stmt 1 view .LVU1856 3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */ 5639 .loc 1 3463 19 is_stmt 0 view .LVU1857 5640 0188 EB88 ldrh r3, [r5, #6] 3463:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag = mode; /* Set file access mode */ 5641 .loc 1 3463 15 view .LVU1858 5642 018a B380 strh r3, [r6, #4] @ movhi 3464:Middlewares/Third_Party/FatFs/src/ff.c **** fp->err = 0; /* Clear error flag */ 5643 .loc 1 3464 4 is_stmt 1 view .LVU1859 3464:Middlewares/Third_Party/FatFs/src/ff.c **** fp->err = 0; /* Clear error flag */ 5644 .loc 1 3464 13 is_stmt 0 view .LVU1860 5645 018c 3775 strb r7, [r6, #20] 3465:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = 0; /* Invalidate current data sector */ 5646 .loc 1 3465 4 is_stmt 1 view .LVU1861 3465:Middlewares/Third_Party/FatFs/src/ff.c **** fp->sect = 0; /* Invalidate current data sector */ 5647 .loc 1 3465 12 is_stmt 0 view .LVU1862 5648 018e 7175 strb r1, [r6, #21] 3466:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = 0; /* Set file pointer top of the file */ 5649 .loc 1 3466 4 is_stmt 1 view .LVU1863 3466:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = 0; /* Set file pointer top of the file */ 5650 .loc 1 3466 13 is_stmt 0 view .LVU1864 5651 0190 3162 str r1, [r6, #32] 3467:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 5652 .loc 1 3467 4 is_stmt 1 view .LVU1865 3467:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 5653 .loc 1 3467 13 is_stmt 0 view .LVU1866 5654 0192 B161 str r1, [r6, #24] 3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5655 .loc 1 3470 4 is_stmt 1 view .LVU1867 3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5656 .loc 1 3470 14 is_stmt 0 view .LVU1868 5657 0194 06F13008 add r8, r6, #48 3470:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5658 .loc 1 3470 4 view .LVU1869 5659 0198 4FF48052 mov r2, #4096 5660 019c 4046 mov r0, r8 5661 019e FFF7FEFF bl mem_set 5662 .LVL652: 3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */ 5663 .loc 1 3472 4 is_stmt 1 view .LVU1870 3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */ 5664 .loc 1 3472 7 is_stmt 0 view .LVU1871 5665 01a2 17F0200F tst r7, #32 5666 01a6 3FF43DAF beq .L389 3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */ 5667 .loc 1 3472 38 discriminator 1 view .LVU1872 5668 01aa F568 ldr r5, [r6, #12] 3472:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = fp->obj.objsize; /* Offset to seek */ 5669 .loc 1 3472 28 discriminator 1 view .LVU1873 5670 01ac 002D cmp r5, #0 ARM GAS /tmp/cczRNDQp.s page 231 5671 01ae 3FF439AF beq .L389 3473:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */ 5672 .loc 1 3473 5 is_stmt 1 view .LVU1874 3473:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */ 5673 .loc 1 3473 14 is_stmt 0 view .LVU1875 5674 01b2 B561 str r5, [r6, #24] 3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */ 5675 .loc 1 3474 5 is_stmt 1 view .LVU1876 3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */ 5676 .loc 1 3474 20 is_stmt 0 view .LVU1877 5677 01b4 039B ldr r3, [sp, #12] 5678 01b6 5F89 ldrh r7, [r3, #10] 5679 .LVL653: 3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */ 5680 .loc 1 3474 30 view .LVU1878 5681 01b8 9B89 ldrh r3, [r3, #12] 3474:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow the cluster chain */ 5682 .loc 1 3474 9 view .LVU1879 5683 01ba 03FB07F7 mul r7, r3, r7 5684 .LVL654: 3475:Middlewares/Third_Party/FatFs/src/ff.c **** for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) { 5685 .loc 1 3475 5 is_stmt 1 view .LVU1880 3475:Middlewares/Third_Party/FatFs/src/ff.c **** for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) { 5686 .loc 1 3475 10 is_stmt 0 view .LVU1881 5687 01be B168 ldr r1, [r6, #8] 5688 .LVL655: 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5689 .loc 1 3476 5 is_stmt 1 view .LVU1882 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5690 .loc 1 3476 5 is_stmt 0 view .LVU1883 5691 01c0 05E0 b .L398 5692 .LVL656: 5693 .L408: 3414:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 5694 .loc 1 3414 10 view .LVU1884 5695 01c2 0424 movs r4, #4 5696 .LVL657: 3414:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 5697 .loc 1 3414 10 view .LVU1885 5698 01c4 CDE7 b .L396 5699 .LVL658: 5700 .L399: 3479:Middlewares/Third_Party/FatFs/src/ff.c **** } 5701 .loc 1 3479 6 is_stmt 1 view .LVU1886 3479:Middlewares/Third_Party/FatFs/src/ff.c **** } 5702 .loc 1 3479 9 is_stmt 0 view .LVU1887 5703 01c6 B1F1FF3F cmp r1, #-1 5704 01ca 0FD0 beq .L419 5705 .LVL659: 5706 .L400: 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5707 .loc 1 3476 60 is_stmt 1 discriminator 2 view .LVU1888 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5708 .loc 1 3476 64 is_stmt 0 discriminator 2 view .LVU1889 5709 01cc ED1B subs r5, r5, r7 5710 .LVL660: 5711 .L398: ARM GAS /tmp/cczRNDQp.s page 232 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5712 .loc 1 3476 33 is_stmt 1 discriminator 1 view .LVU1890 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5713 .loc 1 3476 46 is_stmt 0 discriminator 1 view .LVU1891 5714 01ce B4FA84F3 clz r3, r4 5715 01d2 5B09 lsrs r3, r3, #5 5716 01d4 BD42 cmp r5, r7 5717 01d6 98BF it ls 5718 01d8 0023 movls r3, #0 3476:Middlewares/Third_Party/FatFs/src/ff.c **** clst = get_fat(&fp->obj, clst); 5719 .loc 1 3476 5 discriminator 1 view .LVU1892 5720 01da 4BB1 cbz r3, .L420 3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR; 5721 .loc 1 3477 6 is_stmt 1 view .LVU1893 3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR; 5722 .loc 1 3477 13 is_stmt 0 view .LVU1894 5723 01dc 3046 mov r0, r6 5724 01de FFF7FEFF bl get_fat 5725 .LVL661: 3477:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1) res = FR_INT_ERR; 5726 .loc 1 3477 13 view .LVU1895 5727 01e2 0146 mov r1, r0 5728 .LVL662: 3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; 5729 .loc 1 3478 6 is_stmt 1 view .LVU1896 3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; 5730 .loc 1 3478 9 is_stmt 0 view .LVU1897 5731 01e4 0128 cmp r0, #1 5732 01e6 EED8 bhi .L399 3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; 5733 .loc 1 3478 25 view .LVU1898 5734 01e8 0224 movs r4, #2 5735 .LVL663: 3478:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; 5736 .loc 1 3478 25 view .LVU1899 5737 01ea ECE7 b .L399 5738 .LVL664: 5739 .L419: 3479:Middlewares/Third_Party/FatFs/src/ff.c **** } 5740 .loc 1 3479 34 view .LVU1900 5741 01ec 0124 movs r4, #1 5742 .LVL665: 3479:Middlewares/Third_Party/FatFs/src/ff.c **** } 5743 .loc 1 3479 34 view .LVU1901 5744 01ee EDE7 b .L400 5745 .LVL666: 5746 .L420: 3481:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */ 5747 .loc 1 3481 5 is_stmt 1 view .LVU1902 3481:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */ 5748 .loc 1 3481 15 is_stmt 0 view .LVU1903 5749 01f0 F161 str r1, [r6, #28] 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5750 .loc 1 3482 5 is_stmt 1 view .LVU1904 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5751 .loc 1 3482 8 is_stmt 0 view .LVU1905 5752 01f2 002C cmp r4, #0 ARM GAS /tmp/cczRNDQp.s page 233 5753 01f4 7FF416AF bne .L389 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5754 .loc 1 3482 31 discriminator 1 view .LVU1906 5755 01f8 039F ldr r7, [sp, #12] 5756 .LVL667: 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5757 .loc 1 3482 31 discriminator 1 view .LVU1907 5758 01fa B7F80C90 ldrh r9, [r7, #12] 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5759 .loc 1 3482 29 discriminator 1 view .LVU1908 5760 01fe B5FBF9F3 udiv r3, r5, r9 5761 0202 09FB1353 mls r3, r9, r3, r5 3482:Middlewares/Third_Party/FatFs/src/ff.c **** if ((sc = clust2sect(fs, clst)) == 0) { 5762 .loc 1 3482 22 discriminator 1 view .LVU1909 5763 0206 002B cmp r3, #0 5764 0208 3FF40CAF beq .L389 3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; 5765 .loc 1 3483 6 is_stmt 1 view .LVU1910 3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; 5766 .loc 1 3483 16 is_stmt 0 view .LVU1911 5767 020c 3846 mov r0, r7 5768 020e FFF7FEFF bl clust2sect 5769 .LVL668: 3483:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; 5770 .loc 1 3483 9 view .LVU1912 5771 0212 08B9 cbnz r0, .L421 3484:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 5772 .loc 1 3484 11 view .LVU1913 5773 0214 0224 movs r4, #2 5774 .LVL669: 3484:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 5775 .loc 1 3484 11 view .LVU1914 5776 0216 06E7 b .L402 5777 .LVL670: 5778 .L421: 3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 5779 .loc 1 3486 7 is_stmt 1 view .LVU1915 3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 5780 .loc 1 3486 23 is_stmt 0 view .LVU1916 5781 0218 B5FBF9F2 udiv r2, r5, r9 3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 5782 .loc 1 3486 21 view .LVU1917 5783 021c 0244 add r2, r2, r0 3486:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 5784 .loc 1 3486 16 view .LVU1918 5785 021e 3262 str r2, [r6, #32] 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5786 .loc 1 3488 7 is_stmt 1 view .LVU1919 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5787 .loc 1 3488 11 is_stmt 0 view .LVU1920 5788 0220 0123 movs r3, #1 5789 0222 4146 mov r1, r8 5790 0224 7878 ldrb r0, [r7, #1] @ zero_extendqisi2 5791 .LVL671: 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5792 .loc 1 3488 11 view .LVU1921 5793 0226 FFF7FEFF bl disk_read ARM GAS /tmp/cczRNDQp.s page 234 5794 .LVL672: 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5795 .loc 1 3488 10 view .LVU1922 5796 022a 0028 cmp r0, #0 5797 022c 3FF4FAAE beq .L389 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5798 .loc 1 3488 67 view .LVU1923 5799 0230 0124 movs r4, #1 5800 .LVL673: 3488:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5801 .loc 1 3488 67 view .LVU1924 5802 0232 F8E6 b .L402 5803 .LVL674: 5804 .L410: 3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5805 .loc 1 3429 29 view .LVU1925 5806 0234 0224 movs r4, #2 5807 .LVL675: 3429:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 5808 .loc 1 3429 29 view .LVU1926 5809 0236 F5E6 b .L389 5810 .LVL676: 5811 .L403: 3324:Middlewares/Third_Party/FatFs/src/ff.c **** 5812 .loc 1 3324 18 view .LVU1927 5813 0238 0924 movs r4, #9 5814 023a F6E6 b .L388 5815 .cfi_endproc 5816 .LFE1222: 5818 .section .text.f_read,"ax",%progbits 5819 .align 1 5820 .global f_read 5821 .syntax unified 5822 .thumb 5823 .thumb_func 5824 .fpu fpv5-d16 5826 f_read: 5827 .LVL677: 5828 .LFB1223: 3517:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5829 .loc 1 3517 1 is_stmt 1 view -0 5830 .cfi_startproc 5831 @ args = 0, pretend = 0, frame = 16 5832 @ frame_needed = 0, uses_anonymous_args = 0 3517:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 5833 .loc 1 3517 1 is_stmt 0 view .LVU1929 5834 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5835 .LCFI46: 5836 .cfi_def_cfa_offset 36 5837 .cfi_offset 4, -36 5838 .cfi_offset 5, -32 5839 .cfi_offset 6, -28 5840 .cfi_offset 7, -24 5841 .cfi_offset 8, -20 5842 .cfi_offset 9, -16 5843 .cfi_offset 10, -12 5844 .cfi_offset 11, -8 ARM GAS /tmp/cczRNDQp.s page 235 5845 .cfi_offset 14, -4 5846 0004 85B0 sub sp, sp, #20 5847 .LCFI47: 5848 .cfi_def_cfa_offset 56 5849 0006 0446 mov r4, r0 5850 0008 0F46 mov r7, r1 5851 000a 1546 mov r5, r2 5852 000c 9846 mov r8, r3 3518:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 5853 .loc 1 3518 2 is_stmt 1 view .LVU1930 3519:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect; 5854 .loc 1 3519 2 view .LVU1931 3520:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t remain; 5855 .loc 1 3520 2 view .LVU1932 3521:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rcnt, cc, csect; 5856 .loc 1 3521 2 view .LVU1933 3522:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *rbuff = (BYTE*)buff; 5857 .loc 1 3522 2 view .LVU1934 3523:Middlewares/Third_Party/FatFs/src/ff.c **** 5858 .loc 1 3523 2 view .LVU1935 5859 .LVL678: 3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 5860 .loc 1 3526 2 view .LVU1936 3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 5861 .loc 1 3526 6 is_stmt 0 view .LVU1937 5862 000e 0023 movs r3, #0 5863 .LVL679: 3526:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 5864 .loc 1 3526 6 view .LVU1938 5865 0010 C8F80030 str r3, [r8] 3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ 5866 .loc 1 3527 2 is_stmt 1 view .LVU1939 3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ 5867 .loc 1 3527 8 is_stmt 0 view .LVU1940 5868 0014 03A9 add r1, sp, #12 5869 .LVL680: 3527:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ 5870 .loc 1 3527 8 view .LVU1941 5871 0016 FFF7FEFF bl validate 5872 .LVL681: 3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 5873 .loc 1 3528 2 is_stmt 1 view .LVU1942 3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 5874 .loc 1 3528 5 is_stmt 0 view .LVU1943 5875 001a 0190 str r0, [sp, #4] 5876 001c 0028 cmp r0, #0 5877 001e 40F0B980 bne .L425 3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 5878 .loc 1 3528 27 discriminator 2 view .LVU1944 5879 0022 637D ldrb r3, [r4, #21] @ zero_extendqisi2 5880 0024 0193 str r3, [sp, #4] 5881 .LVL682: 3528:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 5882 .loc 1 3528 19 discriminator 2 view .LVU1945 5883 0026 002B cmp r3, #0 5884 0028 40F0B480 bne .L425 3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr; ARM GAS /tmp/cczRNDQp.s page 236 5885 .loc 1 3529 2 is_stmt 1 view .LVU1946 3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr; 5886 .loc 1 3529 10 is_stmt 0 view .LVU1947 5887 002c 237D ldrb r3, [r4, #20] @ zero_extendqisi2 5888 .LVL683: 3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr; 5889 .loc 1 3529 5 view .LVU1948 5890 002e 13F0010F tst r3, #1 5891 0032 00F0CE80 beq .L447 3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */ 5892 .loc 1 3530 2 is_stmt 1 view .LVU1949 3530:Middlewares/Third_Party/FatFs/src/ff.c **** if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */ 5893 .loc 1 3530 18 is_stmt 0 view .LVU1950 5894 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 */ 5895 .loc 1 3530 31 view .LVU1951 5896 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 */ 5897 .loc 1 3530 9 view .LVU1952 5898 003a F61A subs r6, r6, r3 5899 .LVL684: 3531:Middlewares/Third_Party/FatFs/src/ff.c **** 5900 .loc 1 3531 2 is_stmt 1 view .LVU1953 3531:Middlewares/Third_Party/FatFs/src/ff.c **** 5901 .loc 1 3531 5 is_stmt 0 view .LVU1954 5902 003c AE42 cmp r6, r5 5903 003e 67D3 bcc .L445 5904 0040 2E46 mov r6, r5 5905 .LVL685: 3531:Middlewares/Third_Party/FatFs/src/ff.c **** 5906 .loc 1 3531 5 view .LVU1955 5907 0042 65E0 b .L445 5908 .LVL686: 5909 .L430: 3542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ 5910 .loc 1 3542 6 is_stmt 1 view .LVU1956 3542:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ 5911 .loc 1 3542 12 is_stmt 0 view .LVU1957 5912 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 */ 5913 .loc 1 3542 9 view .LVU1958 5914 0046 1BB1 cbz r3, .L432 3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else 5915 .loc 1 3543 7 is_stmt 1 view .LVU1959 3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else 5916 .loc 1 3543 14 is_stmt 0 view .LVU1960 5917 0048 2046 mov r0, r4 5918 004a FFF7FEFF bl clmt_clust 5919 .LVL687: 3543:Middlewares/Third_Party/FatFs/src/ff.c **** } else 5920 .loc 1 3543 14 view .LVU1961 5921 004e 73E0 b .L431 5922 .LVL688: 5923 .L432: 3547:Middlewares/Third_Party/FatFs/src/ff.c **** } 5924 .loc 1 3547 7 is_stmt 1 view .LVU1962 3547:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 237 5925 .loc 1 3547 14 is_stmt 0 view .LVU1963 5926 0050 E169 ldr r1, [r4, #28] 5927 0052 2046 mov r0, r4 5928 0054 FFF7FEFF bl get_fat 5929 .LVL689: 3547:Middlewares/Third_Party/FatFs/src/ff.c **** } 5930 .loc 1 3547 14 view .LVU1964 5931 0058 6EE0 b .L431 5932 .L454: 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 5933 .loc 1 3550 19 is_stmt 1 discriminator 1 view .LVU1965 5934 005a 4FF0020A mov r10, #2 5935 005e 84F815A0 strb r10, [r4, #21] 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 5936 .loc 1 3550 19 discriminator 1 view .LVU1966 5937 0062 CDF804A0 str r10, [sp, #4] 5938 .LVL690: 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 5939 .loc 1 3550 19 is_stmt 0 discriminator 1 view .LVU1967 5940 0066 95E0 b .L425 5941 .LVL691: 5942 .L455: 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 5943 .loc 1 3551 29 is_stmt 1 discriminator 1 view .LVU1968 5944 0068 4FF0010A mov r10, #1 5945 006c 84F815A0 strb r10, [r4, #21] 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 5946 .loc 1 3551 29 discriminator 1 view .LVU1969 5947 0070 CDF804A0 str r10, [sp, #4] 5948 .LVL692: 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 5949 .loc 1 3551 29 is_stmt 0 discriminator 1 view .LVU1970 5950 0074 8EE0 b .L425 5951 .LVL693: 5952 .L456: 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 5953 .loc 1 3555 15 is_stmt 1 discriminator 1 view .LVU1971 5954 0076 4FF0020A mov r10, #2 5955 007a 84F815A0 strb r10, [r4, #21] 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 5956 .loc 1 3555 15 discriminator 1 view .LVU1972 5957 007e CDF804A0 str r10, [sp, #4] 5958 .LVL694: 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 5959 .loc 1 3555 15 is_stmt 0 discriminator 1 view .LVU1973 5960 0082 87E0 b .L425 5961 .LVL695: 5962 .L438: 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 5963 .loc 1 3562 78 is_stmt 1 discriminator 2 view .LVU1974 3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); 5964 .loc 1 3569 5 discriminator 2 view .LVU1975 3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); 5965 .loc 1 3569 9 is_stmt 0 discriminator 2 view .LVU1976 5966 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)); 5967 .loc 1 3569 8 discriminator 2 view .LVU1977 ARM GAS /tmp/cczRNDQp.s page 238 5968 0088 002B cmp r3, #0 5969 008a 04DB blt .L451 5970 .L439: 3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 5971 .loc 1 3574 5 is_stmt 1 view .LVU1978 3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 5972 .loc 1 3574 12 is_stmt 0 view .LVU1979 5973 008c 039B ldr r3, [sp, #12] 5974 008e 9D89 ldrh r5, [r3, #12] 5975 .LVL696: 3574:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 5976 .loc 1 3574 10 view .LVU1980 5977 0090 0AFB05F5 mul r5, r10, r5 5978 .LVL697: 3575:Middlewares/Third_Party/FatFs/src/ff.c **** } 5979 .loc 1 3575 5 is_stmt 1 view .LVU1981 5980 0094 32E0 b .L440 5981 .LVL698: 5982 .L451: 3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); 5983 .loc 1 3569 36 is_stmt 0 discriminator 1 view .LVU1982 5984 0096 206A ldr r0, [r4, #32] 3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); 5985 .loc 1 3569 43 discriminator 1 view .LVU1983 5986 0098 A0EB0900 sub r0, r0, r9 3569:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); 5987 .loc 1 3569 31 discriminator 1 view .LVU1984 5988 009c 5045 cmp r0, r10 5989 009e F5D2 bcs .L439 3570:Middlewares/Third_Party/FatFs/src/ff.c **** } 5990 .loc 1 3570 6 is_stmt 1 view .LVU1985 3570:Middlewares/Third_Party/FatFs/src/ff.c **** } 5991 .loc 1 3570 43 is_stmt 0 view .LVU1986 5992 00a0 039B ldr r3, [sp, #12] 5993 00a2 9A89 ldrh r2, [r3, #12] 3570:Middlewares/Third_Party/FatFs/src/ff.c **** } 5994 .loc 1 3570 6 view .LVU1987 5995 00a4 04F13001 add r1, r4, #48 5996 00a8 02FB0070 mla r0, r2, r0, r7 5997 00ac FFF7FEFF bl mem_cpy 5998 .LVL699: 5999 00b0 ECE7 b .L439 6000 .L436: 3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 6001 .loc 1 3578 4 is_stmt 1 view .LVU1988 3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 6002 .loc 1 3578 10 is_stmt 0 view .LVU1989 6003 00b2 226A ldr r2, [r4, #32] 3578:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 6004 .loc 1 3578 7 view .LVU1990 6005 00b4 4A45 cmp r2, r9 6006 00b6 0DD0 beq .L441 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); 6007 .loc 1 3580 5 is_stmt 1 view .LVU1991 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); 6008 .loc 1 3580 9 is_stmt 0 view .LVU1992 6009 00b8 94F91430 ldrsb r3, [r4, #20] ARM GAS /tmp/cczRNDQp.s page 239 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); 6010 .loc 1 3580 8 view .LVU1993 6011 00bc 002B cmp r3, #0 6012 00be 6DDB blt .L452 6013 .L442: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6014 .loc 1 3585 5 is_stmt 1 view .LVU1994 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6015 .loc 1 3585 9 is_stmt 0 view .LVU1995 6016 00c0 0123 movs r3, #1 6017 00c2 4A46 mov r2, r9 6018 00c4 04F13001 add r1, r4, #48 6019 00c8 0398 ldr r0, [sp, #12] 6020 00ca 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 6021 00cc FFF7FEFF bl disk_read 6022 .LVL700: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6023 .loc 1 3585 8 view .LVU1996 6024 00d0 0028 cmp r0, #0 6025 00d2 77D1 bne .L453 6026 .L441: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6027 .loc 1 3585 79 is_stmt 1 discriminator 2 view .LVU1997 3588:Middlewares/Third_Party/FatFs/src/ff.c **** } 6028 .loc 1 3588 4 discriminator 2 view .LVU1998 3588:Middlewares/Third_Party/FatFs/src/ff.c **** } 6029 .loc 1 3588 13 is_stmt 0 discriminator 2 view .LVU1999 6030 00d4 C4F82090 str r9, [r4, #32] 6031 .LVL701: 6032 .L428: 3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ 6033 .loc 1 3590 3 is_stmt 1 view .LVU2000 3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ 6034 .loc 1 3590 10 is_stmt 0 view .LVU2001 6035 00d8 039B ldr r3, [sp, #12] 6036 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 */ 6037 .loc 1 3590 27 view .LVU2002 6038 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 */ 6039 .loc 1 3590 34 view .LVU2003 6040 00de B3FBF5F1 udiv r1, r3, r5 6041 00e2 05FB1133 mls r3, r5, r1, r3 3590:Middlewares/Third_Party/FatFs/src/ff.c **** if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ 6042 .loc 1 3590 8 view .LVU2004 6043 00e6 ED1A subs r5, r5, r3 6044 .LVL702: 3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6045 .loc 1 3591 3 is_stmt 1 view .LVU2005 3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6046 .loc 1 3591 6 is_stmt 0 view .LVU2006 6047 00e8 AE42 cmp r6, r5 6048 00ea 00D2 bcs .L444 3591:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6049 .loc 1 3591 24 view .LVU2007 6050 00ec 3546 mov r5, r6 6051 .LVL703: ARM GAS /tmp/cczRNDQp.s page 240 6052 .L444: 3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6053 .loc 1 3596 3 is_stmt 1 view .LVU2008 3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6054 .loc 1 3596 18 is_stmt 0 view .LVU2009 6055 00ee 04F13001 add r1, r4, #48 3596:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6056 .loc 1 3596 3 view .LVU2010 6057 00f2 2A46 mov r2, r5 6058 00f4 1944 add r1, r1, r3 6059 00f6 3846 mov r0, r7 6060 00f8 FFF7FEFF bl mem_cpy 6061 .LVL704: 6062 .L440: 3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6063 .loc 1 3534 3 is_stmt 1 view .LVU2011 3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6064 .loc 1 3534 9 is_stmt 0 view .LVU2012 6065 00fc 2F44 add r7, r7, r5 6066 .LVL705: 3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6067 .loc 1 3534 27 view .LVU2013 6068 00fe A369 ldr r3, [r4, #24] 6069 0100 2B44 add r3, r3, r5 6070 0102 A361 str r3, [r4, #24] 3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6071 .loc 1 3534 40 view .LVU2014 6072 0104 D8F80030 ldr r3, [r8] 6073 0108 2B44 add r3, r3, r5 6074 010a C8F80030 str r3, [r8] 3534:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6075 .loc 1 3534 53 view .LVU2015 6076 010e 761B subs r6, r6, r5 6077 .LVL706: 6078 .L445: 3533:Middlewares/Third_Party/FatFs/src/ff.c **** rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) { 6079 .loc 1 3533 11 is_stmt 1 view .LVU2016 3533:Middlewares/Third_Party/FatFs/src/ff.c **** rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) { 6080 .loc 1 3533 2 is_stmt 0 view .LVU2017 6081 0110 002E cmp r6, #0 6082 0112 3FD0 beq .L425 3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ 6083 .loc 1 3535 3 is_stmt 1 view .LVU2018 3535:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ 6084 .loc 1 3535 9 is_stmt 0 view .LVU2019 6085 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 */ 6086 .loc 1 3535 18 view .LVU2020 6087 0116 039A ldr r2, [sp, #12] 6088 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 */ 6089 .loc 1 3535 16 view .LVU2021 6090 011a B1FBF5F3 udiv r3, r1, r5 6091 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 */ 6092 .loc 1 3535 6 view .LVU2022 6093 0122 002B cmp r3, #0 ARM GAS /tmp/cczRNDQp.s page 241 6094 0124 D8D1 bne .L428 3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6095 .loc 1 3536 4 is_stmt 1 view .LVU2023 3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6096 .loc 1 3536 28 is_stmt 0 view .LVU2024 6097 0126 B1FBF5F5 udiv r5, r1, r5 3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6098 .loc 1 3536 42 view .LVU2025 6099 012a 5389 ldrh r3, [r2, #10] 3536:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6100 .loc 1 3536 50 view .LVU2026 6101 012c 013B subs r3, r3, #1 6102 .LVL707: 3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6103 .loc 1 3537 4 is_stmt 1 view .LVU2027 3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6104 .loc 1 3537 7 is_stmt 0 view .LVU2028 6105 012e 1D40 ands r5, r5, r3 6106 .LVL708: 3537:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6107 .loc 1 3537 7 view .LVU2029 6108 0130 08D1 bne .L429 3538:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow cluster chain from the origin */ 6109 .loc 1 3538 5 is_stmt 1 view .LVU2030 3538:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow cluster chain from the origin */ 6110 .loc 1 3538 8 is_stmt 0 view .LVU2031 6111 0132 0029 cmp r1, #0 6112 0134 86D1 bne .L430 3539:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Middle or end of the file */ 6113 .loc 1 3539 6 is_stmt 1 view .LVU2032 3539:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Middle or end of the file */ 6114 .loc 1 3539 11 is_stmt 0 view .LVU2033 6115 0136 A068 ldr r0, [r4, #8] 6116 .LVL709: 6117 .L431: 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6118 .loc 1 3550 5 is_stmt 1 view .LVU2034 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6119 .loc 1 3550 8 is_stmt 0 view .LVU2035 6120 0138 0128 cmp r0, #1 6121 013a 8ED9 bls .L454 3550:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6122 .loc 1 3550 40 is_stmt 1 discriminator 2 view .LVU2036 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6123 .loc 1 3551 5 discriminator 2 view .LVU2037 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6124 .loc 1 3551 8 is_stmt 0 discriminator 2 view .LVU2038 6125 013c B0F1FF3F cmp r0, #-1 6126 0140 92D0 beq .L455 3551:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6127 .loc 1 3551 51 is_stmt 1 discriminator 2 view .LVU2039 3552:Middlewares/Third_Party/FatFs/src/ff.c **** } 6128 .loc 1 3552 5 discriminator 2 view .LVU2040 3552:Middlewares/Third_Party/FatFs/src/ff.c **** } 6129 .loc 1 3552 15 is_stmt 0 discriminator 2 view .LVU2041 6130 0142 E061 str r0, [r4, #28] 6131 .LVL710: ARM GAS /tmp/cczRNDQp.s page 242 6132 .L429: 3554:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR); 6133 .loc 1 3554 4 is_stmt 1 view .LVU2042 3554:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR); 6134 .loc 1 3554 11 is_stmt 0 view .LVU2043 6135 0144 DDF80CB0 ldr fp, [sp, #12] 6136 0148 E169 ldr r1, [r4, #28] 6137 014a 5846 mov r0, fp 6138 014c FFF7FEFF bl clust2sect 6139 .LVL711: 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6140 .loc 1 3555 4 is_stmt 1 view .LVU2044 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6141 .loc 1 3555 7 is_stmt 0 view .LVU2045 6142 0150 8146 mov r9, r0 6143 0152 0028 cmp r0, #0 6144 0154 8FD0 beq .L456 3555:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6145 .loc 1 3555 36 is_stmt 1 discriminator 2 view .LVU2046 3556:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btr / SS(fs); /* When remaining bytes >= sector size, */ 6146 .loc 1 3556 4 discriminator 2 view .LVU2047 3556:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btr / SS(fs); /* When remaining bytes >= sector size, */ 6147 .loc 1 3556 9 is_stmt 0 discriminator 2 view .LVU2048 6148 0156 A944 add r9, r9, r5 6149 .LVL712: 3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */ 6150 .loc 1 3557 4 is_stmt 1 discriminator 2 view .LVU2049 3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */ 6151 .loc 1 3557 15 is_stmt 0 discriminator 2 view .LVU2050 6152 0158 BBF80C30 ldrh r3, [fp, #12] 3557:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Read maximum contiguous sectors directly */ 6153 .loc 1 3557 7 discriminator 2 view .LVU2051 6154 015c B6FBF3FA udiv r10, r6, r3 6155 .LVL713: 3558:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */ 6156 .loc 1 3558 4 is_stmt 1 discriminator 2 view .LVU2052 3558:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */ 6157 .loc 1 3558 7 is_stmt 0 discriminator 2 view .LVU2053 6158 0160 B342 cmp r3, r6 6159 0162 A6D8 bhi .L436 3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6160 .loc 1 3559 5 is_stmt 1 view .LVU2054 3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6161 .loc 1 3559 15 is_stmt 0 view .LVU2055 6162 0164 05EB0A03 add r3, r5, r10 3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6163 .loc 1 3559 24 view .LVU2056 6164 0168 BBF80A20 ldrh r2, [fp, #10] 3559:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6165 .loc 1 3559 8 view .LVU2057 6166 016c 9342 cmp r3, r2 6167 016e 01D9 bls .L437 3560:Middlewares/Third_Party/FatFs/src/ff.c **** } 6168 .loc 1 3560 6 is_stmt 1 view .LVU2058 3560:Middlewares/Third_Party/FatFs/src/ff.c **** } 6169 .loc 1 3560 9 is_stmt 0 view .LVU2059 6170 0170 A2EB050A sub r10, r2, r5 ARM GAS /tmp/cczRNDQp.s page 243 6171 .LVL714: 6172 .L437: 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 6173 .loc 1 3562 5 is_stmt 1 view .LVU2060 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 6174 .loc 1 3562 9 is_stmt 0 view .LVU2061 6175 0174 5346 mov r3, r10 6176 0176 4A46 mov r2, r9 6177 0178 3946 mov r1, r7 6178 017a 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2 6179 017e FFF7FEFF bl disk_read 6180 .LVL715: 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 6181 .loc 1 3562 8 view .LVU2062 6182 0182 0028 cmp r0, #0 6183 0184 3FF47EAF beq .L438 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 6184 .loc 1 3562 56 is_stmt 1 discriminator 1 view .LVU2063 6185 0188 4FF0010A mov r10, #1 6186 .LVL716: 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 6187 .loc 1 3562 56 is_stmt 0 discriminator 1 view .LVU2064 6188 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 6189 .loc 1 3562 56 is_stmt 1 discriminator 1 view .LVU2065 6190 0190 CDF804A0 str r10, [sp, #4] 6191 .LVL717: 6192 .L425: 3601:Middlewares/Third_Party/FatFs/src/ff.c **** 6193 .loc 1 3601 1 is_stmt 0 view .LVU2066 6194 0194 0198 ldr r0, [sp, #4] 6195 0196 05B0 add sp, sp, #20 6196 .LCFI48: 6197 .cfi_remember_state 6198 .cfi_def_cfa_offset 36 6199 @ sp needed 6200 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 6201 .LVL718: 6202 .L452: 6203 .LCFI49: 6204 .cfi_restore_state 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6205 .loc 1 3581 6 is_stmt 1 view .LVU2067 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6206 .loc 1 3581 10 is_stmt 0 view .LVU2068 6207 019c 0123 movs r3, #1 6208 019e 04F13001 add r1, r4, #48 6209 01a2 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2 6210 01a6 FFF7FEFF bl disk_write 6211 .LVL719: 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6212 .loc 1 3581 9 view .LVU2069 6213 01aa 20B9 cbnz r0, .L457 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6214 .loc 1 3581 85 is_stmt 1 discriminator 2 view .LVU2070 3582:Middlewares/Third_Party/FatFs/src/ff.c **** } 6215 .loc 1 3582 6 discriminator 2 view .LVU2071 ARM GAS /tmp/cczRNDQp.s page 244 3582:Middlewares/Third_Party/FatFs/src/ff.c **** } 6216 .loc 1 3582 15 is_stmt 0 discriminator 2 view .LVU2072 6217 01ac 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6218 01ae 03F07F03 and r3, r3, #127 6219 01b2 2375 strb r3, [r4, #20] 6220 01b4 84E7 b .L442 6221 .L457: 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6222 .loc 1 3581 63 is_stmt 1 discriminator 1 view .LVU2073 6223 01b6 4FF0010A mov r10, #1 6224 .LVL720: 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6225 .loc 1 3581 63 is_stmt 0 discriminator 1 view .LVU2074 6226 01ba 84F815A0 strb r10, [r4, #21] 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6227 .loc 1 3581 63 is_stmt 1 discriminator 1 view .LVU2075 6228 01be CDF804A0 str r10, [sp, #4] 6229 .LVL721: 3581:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6230 .loc 1 3581 63 is_stmt 0 discriminator 1 view .LVU2076 6231 01c2 E7E7 b .L425 6232 .LVL722: 6233 .L453: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6234 .loc 1 3585 57 is_stmt 1 discriminator 1 view .LVU2077 6235 01c4 4FF0010A mov r10, #1 6236 .LVL723: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6237 .loc 1 3585 57 is_stmt 0 discriminator 1 view .LVU2078 6238 01c8 84F815A0 strb r10, [r4, #21] 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6239 .loc 1 3585 57 is_stmt 1 discriminator 1 view .LVU2079 6240 01cc CDF804A0 str r10, [sp, #4] 6241 .LVL724: 3585:Middlewares/Third_Party/FatFs/src/ff.c **** } 6242 .loc 1 3585 57 is_stmt 0 discriminator 1 view .LVU2080 6243 01d0 E0E7 b .L425 6244 .LVL725: 6245 .L447: 3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr; 6246 .loc 1 3529 29 view .LVU2081 6247 01d2 0723 movs r3, #7 6248 01d4 0193 str r3, [sp, #4] 6249 .LVL726: 3529:Middlewares/Third_Party/FatFs/src/ff.c **** remain = fp->obj.objsize - fp->fptr; 6250 .loc 1 3529 29 view .LVU2082 6251 01d6 DDE7 b .L425 6252 .cfi_endproc 6253 .LFE1223: 6255 .section .text.f_write,"ax",%progbits 6256 .align 1 6257 .global f_write 6258 .syntax unified 6259 .thumb 6260 .thumb_func 6261 .fpu fpv5-d16 6263 f_write: ARM GAS /tmp/cczRNDQp.s page 245 6264 .LVL727: 6265 .LFB1224: 3617:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 6266 .loc 1 3617 1 is_stmt 1 view -0 6267 .cfi_startproc 6268 @ args = 0, pretend = 0, frame = 16 6269 @ frame_needed = 0, uses_anonymous_args = 0 3617:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 6270 .loc 1 3617 1 is_stmt 0 view .LVU2084 6271 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 6272 .LCFI50: 6273 .cfi_def_cfa_offset 36 6274 .cfi_offset 4, -36 6275 .cfi_offset 5, -32 6276 .cfi_offset 6, -28 6277 .cfi_offset 7, -24 6278 .cfi_offset 8, -20 6279 .cfi_offset 9, -16 6280 .cfi_offset 10, -12 6281 .cfi_offset 11, -8 6282 .cfi_offset 14, -4 6283 0004 85B0 sub sp, sp, #20 6284 .LCFI51: 6285 .cfi_def_cfa_offset 56 6286 0006 0446 mov r4, r0 6287 0008 0F46 mov r7, r1 6288 000a 1546 mov r5, r2 6289 000c 9846 mov r8, r3 3618:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 6290 .loc 1 3618 2 is_stmt 1 view .LVU2085 3619:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, sect; 6291 .loc 1 3619 2 view .LVU2086 3620:Middlewares/Third_Party/FatFs/src/ff.c **** UINT wcnt, cc, csect; 6292 .loc 1 3620 2 view .LVU2087 3621:Middlewares/Third_Party/FatFs/src/ff.c **** const BYTE *wbuff = (const BYTE*)buff; 6293 .loc 1 3621 2 view .LVU2088 3622:Middlewares/Third_Party/FatFs/src/ff.c **** 6294 .loc 1 3622 2 view .LVU2089 6295 .LVL728: 3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 6296 .loc 1 3625 2 view .LVU2090 3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 6297 .loc 1 3625 6 is_stmt 0 view .LVU2091 6298 000e 0023 movs r3, #0 6299 .LVL729: 3625:Middlewares/Third_Party/FatFs/src/ff.c **** res = validate(&fp->obj, &fs); /* Check validity of the file object */ 6300 .loc 1 3625 6 view .LVU2092 6301 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 */ 6302 .loc 1 3626 2 is_stmt 1 view .LVU2093 3626:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ 6303 .loc 1 3626 8 is_stmt 0 view .LVU2094 6304 0014 03A9 add r1, sp, #12 6305 .LVL730: 3626:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ 6306 .loc 1 3626 8 view .LVU2095 6307 0016 FFF7FEFF bl validate ARM GAS /tmp/cczRNDQp.s page 246 6308 .LVL731: 3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 6309 .loc 1 3627 2 is_stmt 1 view .LVU2096 3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 6310 .loc 1 3627 5 is_stmt 0 view .LVU2097 6311 001a 0190 str r0, [sp, #4] 6312 001c 0028 cmp r0, #0 6313 001e 4AD1 bne .L461 3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 6314 .loc 1 3627 27 discriminator 2 view .LVU2098 6315 0020 637D ldrb r3, [r4, #21] @ zero_extendqisi2 6316 0022 0193 str r3, [sp, #4] 6317 .LVL732: 3627:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 6318 .loc 1 3627 19 discriminator 2 view .LVU2099 6319 0024 002B cmp r3, #0 6320 0026 46D1 bne .L461 3628:Middlewares/Third_Party/FatFs/src/ff.c **** 6321 .loc 1 3628 2 is_stmt 1 view .LVU2100 3628:Middlewares/Third_Party/FatFs/src/ff.c **** 6322 .loc 1 3628 10 is_stmt 0 view .LVU2101 6323 0028 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6324 .LVL733: 3628:Middlewares/Third_Party/FatFs/src/ff.c **** 6325 .loc 1 3628 5 view .LVU2102 6326 002a 13F0020F tst r3, #2 6327 002e 00F0EC80 beq .L483 3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); 6328 .loc 1 3631 2 is_stmt 1 view .LVU2103 3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); 6329 .loc 1 3631 59 is_stmt 0 view .LVU2104 6330 0032 A369 ldr r3, [r4, #24] 3631:Middlewares/Third_Party/FatFs/src/ff.c **** btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); 6331 .loc 1 3631 5 view .LVU2105 6332 0034 EB42 cmn r3, r5 6333 0036 C0F0B680 bcc .L481 3632:Middlewares/Third_Party/FatFs/src/ff.c **** } 6334 .loc 1 3632 3 is_stmt 1 view .LVU2106 3632:Middlewares/Third_Party/FatFs/src/ff.c **** } 6335 .loc 1 3632 7 is_stmt 0 view .LVU2107 6336 003a DD43 mvns r5, r3 6337 .LVL734: 3632:Middlewares/Third_Party/FatFs/src/ff.c **** } 6338 .loc 1 3632 7 view .LVU2108 6339 003c B3E0 b .L481 6340 .LVL735: 6341 .L465: 3647:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ 6342 .loc 1 3647 6 is_stmt 1 view .LVU2109 3647:Middlewares/Third_Party/FatFs/src/ff.c **** clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ 6343 .loc 1 3647 12 is_stmt 0 view .LVU2110 6344 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 */ 6345 .loc 1 3647 9 view .LVU2111 6346 0040 002B cmp r3, #0 6347 0042 3CD0 beq .L467 3648:Middlewares/Third_Party/FatFs/src/ff.c **** } else ARM GAS /tmp/cczRNDQp.s page 247 6348 .loc 1 3648 7 is_stmt 1 view .LVU2112 3648:Middlewares/Third_Party/FatFs/src/ff.c **** } else 6349 .loc 1 3648 14 is_stmt 0 view .LVU2113 6350 0044 2046 mov r0, r4 6351 0046 FFF7FEFF bl clmt_clust 6352 .LVL736: 6353 .L466: 3655:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR); 6354 .loc 1 3655 5 is_stmt 1 view .LVU2114 3655:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR); 6355 .loc 1 3655 8 is_stmt 0 view .LVU2115 6356 004a 0028 cmp r0, #0 6357 004c 00F0D880 beq .L468 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6358 .loc 1 3656 5 is_stmt 1 view .LVU2116 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6359 .loc 1 3656 8 is_stmt 0 view .LVU2117 6360 0050 0128 cmp r0, #1 6361 0052 39D0 beq .L486 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6362 .loc 1 3656 41 is_stmt 1 discriminator 2 view .LVU2118 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6363 .loc 1 3657 5 discriminator 2 view .LVU2119 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6364 .loc 1 3657 8 is_stmt 0 discriminator 2 view .LVU2120 6365 0054 B0F1FF3F cmp r0, #-1 6366 0058 3DD0 beq .L487 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6367 .loc 1 3657 51 is_stmt 1 discriminator 2 view .LVU2121 3658:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */ 6368 .loc 1 3658 5 discriminator 2 view .LVU2122 3658:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */ 6369 .loc 1 3658 15 is_stmt 0 discriminator 2 view .LVU2123 6370 005a E061 str r0, [r4, #28] 3659:Middlewares/Third_Party/FatFs/src/ff.c **** } 6371 .loc 1 3659 5 is_stmt 1 discriminator 2 view .LVU2124 3659:Middlewares/Third_Party/FatFs/src/ff.c **** } 6372 .loc 1 3659 16 is_stmt 0 discriminator 2 view .LVU2125 6373 005c A368 ldr r3, [r4, #8] 3659:Middlewares/Third_Party/FatFs/src/ff.c **** } 6374 .loc 1 3659 8 discriminator 2 view .LVU2126 6375 005e 03B9 cbnz r3, .L464 3659:Middlewares/Third_Party/FatFs/src/ff.c **** } 6376 .loc 1 3659 30 is_stmt 1 discriminator 1 view .LVU2127 3659:Middlewares/Third_Party/FatFs/src/ff.c **** } 6377 .loc 1 3659 45 is_stmt 0 discriminator 1 view .LVU2128 6378 0060 A060 str r0, [r4, #8] 6379 .LVL737: 6380 .L464: 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); 6381 .loc 1 3664 4 is_stmt 1 view .LVU2129 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); 6382 .loc 1 3664 8 is_stmt 0 view .LVU2130 6383 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); 6384 .loc 1 3664 7 view .LVU2131 6385 0066 002B cmp r3, #0 ARM GAS /tmp/cczRNDQp.s page 248 6386 0068 3CDB blt .L488 6387 .L471: 3669:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR); 6388 .loc 1 3669 4 is_stmt 1 view .LVU2132 3669:Middlewares/Third_Party/FatFs/src/ff.c **** if (!sect) ABORT(fs, FR_INT_ERR); 6389 .loc 1 3669 11 is_stmt 0 view .LVU2133 6390 006a DDF80CB0 ldr fp, [sp, #12] 6391 006e E169 ldr r1, [r4, #28] 6392 0070 5846 mov r0, fp 6393 0072 FFF7FEFF bl clust2sect 6394 .LVL738: 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6395 .loc 1 3670 4 is_stmt 1 view .LVU2134 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6396 .loc 1 3670 7 is_stmt 0 view .LVU2135 6397 0076 8146 mov r9, r0 6398 0078 0028 cmp r0, #0 6399 007a 48D0 beq .L489 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6400 .loc 1 3670 36 is_stmt 1 discriminator 2 view .LVU2136 3671:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btw / SS(fs); /* When remaining bytes >= sector size, */ 6401 .loc 1 3671 4 discriminator 2 view .LVU2137 3671:Middlewares/Third_Party/FatFs/src/ff.c **** cc = btw / SS(fs); /* When remaining bytes >= sector size, */ 6402 .loc 1 3671 9 is_stmt 0 discriminator 2 view .LVU2138 6403 007c B144 add r9, r9, r6 6404 .LVL739: 3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */ 6405 .loc 1 3672 4 is_stmt 1 discriminator 2 view .LVU2139 3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */ 6406 .loc 1 3672 15 is_stmt 0 discriminator 2 view .LVU2140 6407 007e BBF80C30 ldrh r3, [fp, #12] 3672:Middlewares/Third_Party/FatFs/src/ff.c **** if (cc) { /* Write maximum contiguous sectors directly */ 6408 .loc 1 3672 7 discriminator 2 view .LVU2141 6409 0082 B5FBF3FA udiv r10, r5, r3 6410 .LVL740: 3673:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */ 6411 .loc 1 3673 4 is_stmt 1 discriminator 2 view .LVU2142 3673:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect + cc > fs->csize) { /* Clip at cluster boundary */ 6412 .loc 1 3673 7 is_stmt 0 discriminator 2 view .LVU2143 6413 0086 AB42 cmp r3, r5 6414 0088 5FD8 bhi .L474 3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6415 .loc 1 3674 5 is_stmt 1 view .LVU2144 3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6416 .loc 1 3674 15 is_stmt 0 view .LVU2145 6417 008a 06EB0A03 add r3, r6, r10 3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6418 .loc 1 3674 24 view .LVU2146 6419 008e BBF80A20 ldrh r2, [fp, #10] 3674:Middlewares/Third_Party/FatFs/src/ff.c **** cc = fs->csize - csect; 6420 .loc 1 3674 8 view .LVU2147 6421 0092 9342 cmp r3, r2 6422 0094 01D9 bls .L475 3675:Middlewares/Third_Party/FatFs/src/ff.c **** } 6423 .loc 1 3675 6 is_stmt 1 view .LVU2148 3675:Middlewares/Third_Party/FatFs/src/ff.c **** } 6424 .loc 1 3675 9 is_stmt 0 view .LVU2149 ARM GAS /tmp/cczRNDQp.s page 249 6425 0096 A2EB060A sub r10, r2, r6 6426 .LVL741: 6427 .L475: 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6428 .loc 1 3677 5 is_stmt 1 view .LVU2150 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6429 .loc 1 3677 9 is_stmt 0 view .LVU2151 6430 009a 5346 mov r3, r10 6431 009c 4A46 mov r2, r9 6432 009e 3946 mov r1, r7 6433 00a0 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2 6434 00a4 FFF7FEFF bl disk_write 6435 .LVL742: 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6436 .loc 1 3677 8 view .LVU2152 6437 00a8 C0B3 cbz r0, .L476 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6438 .loc 1 3677 57 is_stmt 1 discriminator 1 view .LVU2153 6439 00aa 4FF0010A mov r10, #1 6440 .LVL743: 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6441 .loc 1 3677 57 is_stmt 0 discriminator 1 view .LVU2154 6442 00ae 84F815A0 strb r10, [r4, #21] 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6443 .loc 1 3677 57 is_stmt 1 discriminator 1 view .LVU2155 6444 00b2 CDF804A0 str r10, [sp, #4] 6445 .LVL744: 6446 .L461: 3723:Middlewares/Third_Party/FatFs/src/ff.c **** 6447 .loc 1 3723 1 is_stmt 0 view .LVU2156 6448 00b6 0198 ldr r0, [sp, #4] 6449 00b8 05B0 add sp, sp, #20 6450 .LCFI52: 6451 .cfi_remember_state 6452 .cfi_def_cfa_offset 36 6453 @ sp needed 6454 00ba BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 6455 .LVL745: 6456 .L467: 6457 .LCFI53: 6458 .cfi_restore_state 3652:Middlewares/Third_Party/FatFs/src/ff.c **** } 6459 .loc 1 3652 7 is_stmt 1 view .LVU2157 3652:Middlewares/Third_Party/FatFs/src/ff.c **** } 6460 .loc 1 3652 14 is_stmt 0 view .LVU2158 6461 00be E169 ldr r1, [r4, #28] 6462 00c0 2046 mov r0, r4 6463 00c2 FFF7FEFF bl create_chain 6464 .LVL746: 3652:Middlewares/Third_Party/FatFs/src/ff.c **** } 6465 .loc 1 3652 14 view .LVU2159 6466 00c6 C0E7 b .L466 6467 .L486: 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6468 .loc 1 3656 20 is_stmt 1 discriminator 1 view .LVU2160 6469 00c8 4FF0020A mov r10, #2 6470 00cc 84F815A0 strb r10, [r4, #21] ARM GAS /tmp/cczRNDQp.s page 250 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6471 .loc 1 3656 20 discriminator 1 view .LVU2161 6472 00d0 CDF804A0 str r10, [sp, #4] 6473 .LVL747: 3656:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 6474 .loc 1 3656 20 is_stmt 0 discriminator 1 view .LVU2162 6475 00d4 EFE7 b .L461 6476 .LVL748: 6477 .L487: 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6478 .loc 1 3657 29 is_stmt 1 discriminator 1 view .LVU2163 6479 00d6 4FF0010A mov r10, #1 6480 00da 84F815A0 strb r10, [r4, #21] 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6481 .loc 1 3657 29 discriminator 1 view .LVU2164 6482 00de CDF804A0 str r10, [sp, #4] 6483 .LVL749: 3657:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; /* Update current cluster */ 6484 .loc 1 3657 29 is_stmt 0 discriminator 1 view .LVU2165 6485 00e2 E8E7 b .L461 6486 .LVL750: 6487 .L488: 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6488 .loc 1 3665 5 is_stmt 1 view .LVU2166 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6489 .loc 1 3665 9 is_stmt 0 view .LVU2167 6490 00e4 0123 movs r3, #1 6491 00e6 226A ldr r2, [r4, #32] 6492 00e8 04F13001 add r1, r4, #48 6493 00ec 0398 ldr r0, [sp, #12] 6494 00ee 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 6495 00f0 FFF7FEFF bl disk_write 6496 .LVL751: 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6497 .loc 1 3665 8 view .LVU2168 6498 00f4 20B9 cbnz r0, .L490 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6499 .loc 1 3665 84 is_stmt 1 discriminator 2 view .LVU2169 3666:Middlewares/Third_Party/FatFs/src/ff.c **** } 6500 .loc 1 3666 5 discriminator 2 view .LVU2170 3666:Middlewares/Third_Party/FatFs/src/ff.c **** } 6501 .loc 1 3666 14 is_stmt 0 discriminator 2 view .LVU2171 6502 00f6 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6503 00f8 03F07F03 and r3, r3, #127 6504 00fc 2375 strb r3, [r4, #20] 6505 00fe B4E7 b .L471 6506 .L490: 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6507 .loc 1 3665 62 is_stmt 1 discriminator 1 view .LVU2172 6508 0100 4FF0010A mov r10, #1 6509 0104 84F815A0 strb r10, [r4, #21] 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6510 .loc 1 3665 62 discriminator 1 view .LVU2173 6511 0108 CDF804A0 str r10, [sp, #4] 6512 .LVL752: 3665:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6513 .loc 1 3665 62 is_stmt 0 discriminator 1 view .LVU2174 ARM GAS /tmp/cczRNDQp.s page 251 6514 010c D3E7 b .L461 6515 .LVL753: 6516 .L489: 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6517 .loc 1 3670 15 is_stmt 1 discriminator 1 view .LVU2175 6518 010e 4FF0020A mov r10, #2 6519 0112 84F815A0 strb r10, [r4, #21] 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6520 .loc 1 3670 15 discriminator 1 view .LVU2176 6521 0116 CDF804A0 str r10, [sp, #4] 6522 .LVL754: 3670:Middlewares/Third_Party/FatFs/src/ff.c **** sect += csect; 6523 .loc 1 3670 15 is_stmt 0 discriminator 1 view .LVU2177 6524 011a CCE7 b .L461 6525 .LVL755: 6526 .L476: 3677:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_MINIMIZE <= 2 6527 .loc 1 3677 79 is_stmt 1 discriminator 2 view .LVU2178 3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); 6528 .loc 1 3685 5 discriminator 2 view .LVU2179 3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); 6529 .loc 1 3685 11 is_stmt 0 discriminator 2 view .LVU2180 6530 011c 216A ldr r1, [r4, #32] 3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); 6531 .loc 1 3685 18 discriminator 2 view .LVU2181 6532 011e A1EB0901 sub r1, r1, r9 3685:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); 6533 .loc 1 3685 8 discriminator 2 view .LVU2182 6534 0122 5145 cmp r1, r10 6535 0124 04D3 bcc .L491 6536 .L477: 3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 6537 .loc 1 3691 5 is_stmt 1 view .LVU2183 3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 6538 .loc 1 3691 12 is_stmt 0 view .LVU2184 6539 0126 039B ldr r3, [sp, #12] 6540 0128 9E89 ldrh r6, [r3, #12] 6541 .LVL756: 3691:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 6542 .loc 1 3691 10 view .LVU2185 6543 012a 0AFB06F6 mul r6, r10, r6 6544 .LVL757: 3692:Middlewares/Third_Party/FatFs/src/ff.c **** } 6545 .loc 1 3692 5 is_stmt 1 view .LVU2186 6546 012e 2BE0 b .L478 6547 .LVL758: 6548 .L491: 3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6549 .loc 1 3686 6 view .LVU2187 3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6550 .loc 1 3686 52 is_stmt 0 view .LVU2188 6551 0130 039B ldr r3, [sp, #12] 6552 0132 9A89 ldrh r2, [r3, #12] 3686:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 6553 .loc 1 3686 6 view .LVU2189 6554 0134 02FB0171 mla r1, r2, r1, r7 6555 0138 04F13000 add r0, r4, #48 ARM GAS /tmp/cczRNDQp.s page 252 6556 013c FFF7FEFF bl mem_cpy 6557 .LVL759: 3687:Middlewares/Third_Party/FatFs/src/ff.c **** } 6558 .loc 1 3687 6 is_stmt 1 view .LVU2190 3687:Middlewares/Third_Party/FatFs/src/ff.c **** } 6559 .loc 1 3687 15 is_stmt 0 view .LVU2191 6560 0140 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6561 0142 03F07F03 and r3, r3, #127 6562 0146 2375 strb r3, [r4, #20] 6563 0148 EDE7 b .L477 6564 .L474: 3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize && 6565 .loc 1 3700 4 is_stmt 1 view .LVU2192 3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize && 6566 .loc 1 3700 10 is_stmt 0 view .LVU2193 6567 014a 236A ldr r3, [r4, #32] 3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize && 6568 .loc 1 3700 7 view .LVU2194 6569 014c 4B45 cmp r3, r9 6570 014e 03D0 beq .L479 3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { 6571 .loc 1 3701 7 discriminator 1 view .LVU2195 6572 0150 A269 ldr r2, [r4, #24] 3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { 6573 .loc 1 3701 23 discriminator 1 view .LVU2196 6574 0152 E368 ldr r3, [r4, #12] 3700:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr < fp->obj.objsize && 6575 .loc 1 3700 25 discriminator 1 view .LVU2197 6576 0154 9A42 cmp r2, r3 6577 0156 42D3 bcc .L492 6578 .L479: 3703:Middlewares/Third_Party/FatFs/src/ff.c **** } 6579 .loc 1 3703 28 is_stmt 1 view .LVU2198 3706:Middlewares/Third_Party/FatFs/src/ff.c **** } 6580 .loc 1 3706 4 view .LVU2199 3706:Middlewares/Third_Party/FatFs/src/ff.c **** } 6581 .loc 1 3706 13 is_stmt 0 view .LVU2200 6582 0158 C4F82090 str r9, [r4, #32] 6583 .LVL760: 6584 .L463: 3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ 6585 .loc 1 3708 3 is_stmt 1 view .LVU2201 3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ 6586 .loc 1 3708 10 is_stmt 0 view .LVU2202 6587 015c 039B ldr r3, [sp, #12] 6588 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 */ 6589 .loc 1 3708 27 view .LVU2203 6590 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 */ 6591 .loc 1 3708 34 view .LVU2204 6592 0162 B3FBF6F0 udiv r0, r3, r6 6593 0166 06FB1033 mls r3, r6, r0, r3 3708:Middlewares/Third_Party/FatFs/src/ff.c **** if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ 6594 .loc 1 3708 8 view .LVU2205 6595 016a F61A subs r6, r6, r3 6596 .LVL761: ARM GAS /tmp/cczRNDQp.s page 253 3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6597 .loc 1 3709 3 is_stmt 1 view .LVU2206 3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6598 .loc 1 3709 6 is_stmt 0 view .LVU2207 6599 016c B542 cmp r5, r6 6600 016e 00D2 bcs .L480 3709:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_TINY 6601 .loc 1 3709 24 view .LVU2208 6602 0170 2E46 mov r6, r5 6603 .LVL762: 6604 .L480: 3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY; 6605 .loc 1 3715 3 is_stmt 1 view .LVU2209 3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY; 6606 .loc 1 3715 11 is_stmt 0 view .LVU2210 6607 0172 04F13000 add r0, r4, #48 3715:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_DIRTY; 6608 .loc 1 3715 3 view .LVU2211 6609 0176 3246 mov r2, r6 6610 0178 3946 mov r1, r7 6611 017a 1844 add r0, r0, r3 6612 017c FFF7FEFF bl mem_cpy 6613 .LVL763: 3716:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6614 .loc 1 3716 3 is_stmt 1 view .LVU2212 3716:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6615 .loc 1 3716 12 is_stmt 0 view .LVU2213 6616 0180 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6617 0182 63F07F03 orn r3, r3, #127 6618 0186 2375 strb r3, [r4, #20] 6619 .L478: 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6620 .loc 1 3636 3 is_stmt 1 view .LVU2214 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6621 .loc 1 3636 9 is_stmt 0 view .LVU2215 6622 0188 3744 add r7, r7, r6 6623 .LVL764: 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6624 .loc 1 3636 27 view .LVU2216 6625 018a A369 ldr r3, [r4, #24] 6626 018c 3344 add r3, r3, r6 6627 018e A361 str r3, [r4, #24] 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6628 .loc 1 3636 73 view .LVU2217 6629 0190 E268 ldr r2, [r4, #12] 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6630 .loc 1 3636 94 view .LVU2218 6631 0192 9342 cmp r3, r2 6632 0194 38BF it cc 6633 0196 1346 movcc r3, r2 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6634 .loc 1 3636 52 view .LVU2219 6635 0198 E360 str r3, [r4, #12] 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6636 .loc 1 3636 117 view .LVU2220 6637 019a D8F80030 ldr r3, [r8] 6638 019e 3344 add r3, r3, r6 ARM GAS /tmp/cczRNDQp.s page 254 6639 01a0 C8F80030 str r3, [r8] 3636:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ 6640 .loc 1 3636 130 view .LVU2221 6641 01a4 AD1B subs r5, r5, r6 6642 .LVL765: 6643 .L481: 3635:Middlewares/Third_Party/FatFs/src/ff.c **** wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp-> 6644 .loc 1 3635 11 is_stmt 1 view .LVU2222 3635:Middlewares/Third_Party/FatFs/src/ff.c **** wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp-> 6645 .loc 1 3635 2 is_stmt 0 view .LVU2223 6646 01a6 5DB3 cbz r5, .L468 3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */ 6647 .loc 1 3637 3 is_stmt 1 view .LVU2224 3637:Middlewares/Third_Party/FatFs/src/ff.c **** csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */ 6648 .loc 1 3637 9 is_stmt 0 view .LVU2225 6649 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 */ 6650 .loc 1 3637 18 view .LVU2226 6651 01aa 039A ldr r2, [sp, #12] 6652 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 */ 6653 .loc 1 3637 16 view .LVU2227 6654 01ae B1FBF6F3 udiv r3, r1, r6 6655 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 */ 6656 .loc 1 3637 6 view .LVU2228 6657 01b6 002B cmp r3, #0 6658 01b8 D0D1 bne .L463 3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6659 .loc 1 3638 4 is_stmt 1 view .LVU2229 3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6660 .loc 1 3638 28 is_stmt 0 view .LVU2230 6661 01ba B1FBF6F6 udiv r6, r1, r6 3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6662 .loc 1 3638 43 view .LVU2231 6663 01be 5389 ldrh r3, [r2, #10] 3638:Middlewares/Third_Party/FatFs/src/ff.c **** if (csect == 0) { /* On the cluster boundary? */ 6664 .loc 1 3638 51 view .LVU2232 6665 01c0 013B subs r3, r3, #1 6666 .LVL766: 3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6667 .loc 1 3639 4 is_stmt 1 view .LVU2233 3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6668 .loc 1 3639 7 is_stmt 0 view .LVU2234 6669 01c2 1E40 ands r6, r6, r3 6670 .LVL767: 3639:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* On the top of the file? */ 6671 .loc 1 3639 7 view .LVU2235 6672 01c4 7FF44DAF bne .L464 3640:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow from the origin */ 6673 .loc 1 3640 5 is_stmt 1 view .LVU2236 3640:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->obj.sclust; /* Follow from the origin */ 6674 .loc 1 3640 8 is_stmt 0 view .LVU2237 6675 01c8 0029 cmp r1, #0 6676 01ca 7FF438AF bne .L465 3641:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster is allocated, */ 6677 .loc 1 3641 6 is_stmt 1 view .LVU2238 ARM GAS /tmp/cczRNDQp.s page 255 3641:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* If no cluster is allocated, */ 6678 .loc 1 3641 11 is_stmt 0 view .LVU2239 6679 01ce A068 ldr r0, [r4, #8] 6680 .LVL768: 3642:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); /* create a new cluster chain */ 6681 .loc 1 3642 6 is_stmt 1 view .LVU2240 3642:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); /* create a new cluster chain */ 6682 .loc 1 3642 9 is_stmt 0 view .LVU2241 6683 01d0 0028 cmp r0, #0 6684 01d2 7FF43AAF bne .L466 3643:Middlewares/Third_Party/FatFs/src/ff.c **** } 6685 .loc 1 3643 7 is_stmt 1 view .LVU2242 3643:Middlewares/Third_Party/FatFs/src/ff.c **** } 6686 .loc 1 3643 14 is_stmt 0 view .LVU2243 6687 01d6 2046 mov r0, r4 6688 .LVL769: 3643:Middlewares/Third_Party/FatFs/src/ff.c **** } 6689 .loc 1 3643 14 view .LVU2244 6690 01d8 FFF7FEFF bl create_chain 6691 .LVL770: 3643:Middlewares/Third_Party/FatFs/src/ff.c **** } 6692 .loc 1 3643 14 view .LVU2245 6693 01dc 35E7 b .L466 6694 .LVL771: 6695 .L492: 3702:Middlewares/Third_Party/FatFs/src/ff.c **** ABORT(fs, FR_DISK_ERR); 6696 .loc 1 3702 5 view .LVU2246 6697 01de 0123 movs r3, #1 6698 01e0 4A46 mov r2, r9 6699 01e2 04F13001 add r1, r4, #48 6700 01e6 9BF80100 ldrb r0, [fp, #1] @ zero_extendqisi2 6701 01ea FFF7FEFF bl disk_read 6702 .LVL772: 3701:Middlewares/Third_Party/FatFs/src/ff.c **** disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { 6703 .loc 1 3701 32 view .LVU2247 6704 01ee 0028 cmp r0, #0 6705 01f0 B2D0 beq .L479 3703:Middlewares/Third_Party/FatFs/src/ff.c **** } 6706 .loc 1 3703 6 is_stmt 1 view .LVU2248 6707 01f2 4FF0010A mov r10, #1 6708 .LVL773: 3703:Middlewares/Third_Party/FatFs/src/ff.c **** } 6709 .loc 1 3703 6 is_stmt 0 view .LVU2249 6710 01f6 84F815A0 strb r10, [r4, #21] 3703:Middlewares/Third_Party/FatFs/src/ff.c **** } 6711 .loc 1 3703 6 is_stmt 1 view .LVU2250 6712 01fa CDF804A0 str r10, [sp, #4] 6713 .LVL774: 3703:Middlewares/Third_Party/FatFs/src/ff.c **** } 6714 .loc 1 3703 6 is_stmt 0 view .LVU2251 6715 01fe 5AE7 b .L461 6716 .LVL775: 6717 .L468: 3720:Middlewares/Third_Party/FatFs/src/ff.c **** 6718 .loc 1 3720 2 is_stmt 1 view .LVU2252 3720:Middlewares/Third_Party/FatFs/src/ff.c **** 6719 .loc 1 3720 11 is_stmt 0 view .LVU2253 ARM GAS /tmp/cczRNDQp.s page 256 6720 0200 237D ldrb r3, [r4, #20] @ zero_extendqisi2 6721 0202 43F04003 orr r3, r3, #64 6722 0206 2375 strb r3, [r4, #20] 3722:Middlewares/Third_Party/FatFs/src/ff.c **** } 6723 .loc 1 3722 2 is_stmt 1 view .LVU2254 6724 0208 55E7 b .L461 6725 .LVL776: 6726 .L483: 3628:Middlewares/Third_Party/FatFs/src/ff.c **** 6727 .loc 1 3628 30 is_stmt 0 view .LVU2255 6728 020a 0723 movs r3, #7 6729 020c 0193 str r3, [sp, #4] 6730 .LVL777: 3628:Middlewares/Third_Party/FatFs/src/ff.c **** 6731 .loc 1 3628 30 view .LVU2256 6732 020e 52E7 b .L461 6733 .cfi_endproc 6734 .LFE1224: 6736 .section .text.putc_bfd,"ax",%progbits 6737 .align 1 6738 .syntax unified 6739 .thumb 6740 .thumb_func 6741 .fpu fpv5-d16 6743 putc_bfd: 6744 .LVL778: 6745 .LFB1239: 5921:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bw; 6746 .loc 1 5921 1 is_stmt 1 view -0 6747 .cfi_startproc 6748 @ args = 0, pretend = 0, frame = 8 6749 @ frame_needed = 0, uses_anonymous_args = 0 5921:Middlewares/Third_Party/FatFs/src/ff.c **** UINT bw; 6750 .loc 1 5921 1 is_stmt 0 view .LVU2258 6751 0000 70B5 push {r4, r5, r6, lr} 6752 .LCFI54: 6753 .cfi_def_cfa_offset 16 6754 .cfi_offset 4, -16 6755 .cfi_offset 5, -12 6756 .cfi_offset 6, -8 6757 .cfi_offset 14, -4 6758 0002 82B0 sub sp, sp, #8 6759 .LCFI55: 6760 .cfi_def_cfa_offset 24 6761 0004 0446 mov r4, r0 6762 0006 0D46 mov r5, r1 5922:Middlewares/Third_Party/FatFs/src/ff.c **** int i; 6763 .loc 1 5922 2 is_stmt 1 view .LVU2259 5923:Middlewares/Third_Party/FatFs/src/ff.c **** 6764 .loc 1 5923 2 view .LVU2260 5926:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(pb, '\r'); 6765 .loc 1 5926 2 view .LVU2261 5926:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(pb, '\r'); 6766 .loc 1 5926 5 is_stmt 0 view .LVU2262 6767 0008 0A29 cmp r1, #10 6768 000a 0DD0 beq .L500 6769 .LVL779: ARM GAS /tmp/cczRNDQp.s page 257 6770 .L494: 5930:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 0) return; 6771 .loc 1 5930 2 is_stmt 1 view .LVU2263 5930:Middlewares/Third_Party/FatFs/src/ff.c **** if (i < 0) return; 6772 .loc 1 5930 4 is_stmt 0 view .LVU2264 6773 000c 6368 ldr r3, [r4, #4] 6774 .LVL780: 5931:Middlewares/Third_Party/FatFs/src/ff.c **** 6775 .loc 1 5931 2 is_stmt 1 view .LVU2265 5931:Middlewares/Third_Party/FatFs/src/ff.c **** 6776 .loc 1 5931 5 is_stmt 0 view .LVU2266 6777 000e 002B cmp r3, #0 6778 0010 08DB blt .L493 5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6779 .loc 1 5960 2 is_stmt 1 view .LVU2267 5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6780 .loc 1 5960 11 is_stmt 0 view .LVU2268 6781 0012 5E1C adds r6, r3, #1 6782 .LVL781: 5960:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 6783 .loc 1 5960 15 view .LVU2269 6784 0014 2344 add r3, r3, r4 6785 0016 1D73 strb r5, [r3, #12] 5963:Middlewares/Third_Party/FatFs/src/ff.c **** f_write(pb->fp, pb->buf, (UINT)i, &bw); 6786 .loc 1 5963 2 is_stmt 1 view .LVU2270 5963:Middlewares/Third_Party/FatFs/src/ff.c **** f_write(pb->fp, pb->buf, (UINT)i, &bw); 6787 .loc 1 5963 5 is_stmt 0 view .LVU2271 6788 0018 3C2E cmp r6, #60 6789 001a 09DC bgt .L501 6790 .LVL782: 6791 .L497: 5967:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr++; 6792 .loc 1 5967 2 is_stmt 1 view .LVU2272 5967:Middlewares/Third_Party/FatFs/src/ff.c **** pb->nchr++; 6793 .loc 1 5967 10 is_stmt 0 view .LVU2273 6794 001c 6660 str r6, [r4, #4] 5968:Middlewares/Third_Party/FatFs/src/ff.c **** } 6795 .loc 1 5968 2 is_stmt 1 view .LVU2274 5968:Middlewares/Third_Party/FatFs/src/ff.c **** } 6796 .loc 1 5968 4 is_stmt 0 view .LVU2275 6797 001e A368 ldr r3, [r4, #8] 5968:Middlewares/Third_Party/FatFs/src/ff.c **** } 6798 .loc 1 5968 10 view .LVU2276 6799 0020 0133 adds r3, r3, #1 6800 0022 A360 str r3, [r4, #8] 6801 .LVL783: 6802 .L493: 5969:Middlewares/Third_Party/FatFs/src/ff.c **** 6803 .loc 1 5969 1 view .LVU2277 6804 0024 02B0 add sp, sp, #8 6805 .LCFI56: 6806 .cfi_remember_state 6807 .cfi_def_cfa_offset 16 6808 @ sp needed 6809 0026 70BD pop {r4, r5, r6, pc} 6810 .LVL784: 6811 .L500: ARM GAS /tmp/cczRNDQp.s page 258 6812 .LCFI57: 6813 .cfi_restore_state 5927:Middlewares/Third_Party/FatFs/src/ff.c **** } 6814 .loc 1 5927 3 is_stmt 1 view .LVU2278 6815 0028 0D21 movs r1, #13 6816 .LVL785: 5927:Middlewares/Third_Party/FatFs/src/ff.c **** } 6817 .loc 1 5927 3 is_stmt 0 view .LVU2279 6818 002a FFF7E9FF bl putc_bfd 6819 .LVL786: 5927:Middlewares/Third_Party/FatFs/src/ff.c **** } 6820 .loc 1 5927 3 view .LVU2280 6821 002e EDE7 b .L494 6822 .LVL787: 6823 .L501: 5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1; 6824 .loc 1 5964 3 is_stmt 1 view .LVU2281 5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1; 6825 .loc 1 5964 21 is_stmt 0 view .LVU2282 6826 0030 2146 mov r1, r4 5964:Middlewares/Third_Party/FatFs/src/ff.c **** i = (bw == (UINT)i) ? 0 : -1; 6827 .loc 1 5964 3 view .LVU2283 6828 0032 51F80C0B ldr r0, [r1], #12 6829 0036 01AB add r3, sp, #4 6830 0038 3246 mov r2, r6 6831 003a FFF7FEFF bl f_write 6832 .LVL788: 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6833 .loc 1 5965 3 is_stmt 1 view .LVU2284 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6834 .loc 1 5965 11 is_stmt 0 view .LVU2285 6835 003e 019B ldr r3, [sp, #4] 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6836 .loc 1 5965 27 view .LVU2286 6837 0040 9E42 cmp r6, r3 6838 0042 02D0 beq .L502 6839 0044 4FF0FF36 mov r6, #-1 6840 .LVL789: 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6841 .loc 1 5965 27 view .LVU2287 6842 0048 E8E7 b .L497 6843 .LVL790: 6844 .L502: 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6845 .loc 1 5965 27 view .LVU2288 6846 004a 0026 movs r6, #0 6847 .LVL791: 5965:Middlewares/Third_Party/FatFs/src/ff.c **** } 6848 .loc 1 5965 27 view .LVU2289 6849 004c E6E7 b .L497 6850 .cfi_endproc 6851 .LFE1239: 6853 .section .text.putc_flush,"ax",%progbits 6854 .align 1 6855 .syntax unified 6856 .thumb 6857 .thumb_func ARM GAS /tmp/cczRNDQp.s page 259 6858 .fpu fpv5-d16 6860 putc_flush: 6861 .LVL792: 6862 .LFB1240: 5976:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nw; 6863 .loc 1 5976 1 is_stmt 1 view -0 6864 .cfi_startproc 6865 @ args = 0, pretend = 0, frame = 8 6866 @ frame_needed = 0, uses_anonymous_args = 0 5977:Middlewares/Third_Party/FatFs/src/ff.c **** 6867 .loc 1 5977 2 view .LVU2291 5979:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK 6868 .loc 1 5979 2 view .LVU2292 5979:Middlewares/Third_Party/FatFs/src/ff.c **** && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK 6869 .loc 1 5979 11 is_stmt 0 view .LVU2293 6870 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 6871 .loc 1 5979 5 view .LVU2294 6872 0002 002A cmp r2, #0 6873 0004 10DB blt .L505 5976:Middlewares/Third_Party/FatFs/src/ff.c **** UINT nw; 6874 .loc 1 5976 1 view .LVU2295 6875 0006 10B5 push {r4, lr} 6876 .LCFI58: 6877 .cfi_def_cfa_offset 8 6878 .cfi_offset 4, -8 6879 .cfi_offset 14, -4 6880 0008 82B0 sub sp, sp, #8 6881 .LCFI59: 6882 .cfi_def_cfa_offset 16 6883 000a 0446 mov r4, r0 5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr; 6884 .loc 1 5980 24 view .LVU2296 6885 000c 0146 mov r1, r0 5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr; 6886 .loc 1 5980 6 view .LVU2297 6887 000e 51F80C0B ldr r0, [r1], #12 6888 .LVL793: 5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr; 6889 .loc 1 5980 6 view .LVU2298 6890 0012 01AB add r3, sp, #4 6891 0014 FFF7FEFF bl f_write 6892 .LVL794: 5980:Middlewares/Third_Party/FatFs/src/ff.c **** && (UINT)pb->idx == nw) return pb->nchr; 6893 .loc 1 5980 3 view .LVU2299 6894 0018 48B9 cbnz r0, .L506 5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF; 6895 .loc 1 5981 14 view .LVU2300 6896 001a 6268 ldr r2, [r4, #4] 5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF; 6897 .loc 1 5981 20 view .LVU2301 6898 001c 019B ldr r3, [sp, #4] 5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF; 6899 .loc 1 5981 3 view .LVU2302 6900 001e 9A42 cmp r2, r3 6901 0020 08D1 bne .L507 5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF; ARM GAS /tmp/cczRNDQp.s page 260 6902 .loc 1 5981 27 is_stmt 1 discriminator 1 view .LVU2303 5981:Middlewares/Third_Party/FatFs/src/ff.c **** return EOF; 6903 .loc 1 5981 36 is_stmt 0 discriminator 1 view .LVU2304 6904 0022 A068 ldr r0, [r4, #8] 6905 .L503: 5983:Middlewares/Third_Party/FatFs/src/ff.c **** 6906 .loc 1 5983 1 view .LVU2305 6907 0024 02B0 add sp, sp, #8 6908 .LCFI60: 6909 .cfi_def_cfa_offset 8 6910 @ sp needed 6911 0026 10BD pop {r4, pc} 6912 .LVL795: 6913 .L505: 6914 .LCFI61: 6915 .cfi_def_cfa_offset 0 6916 .cfi_restore 4 6917 .cfi_restore 14 5982:Middlewares/Third_Party/FatFs/src/ff.c **** } 6918 .loc 1 5982 9 view .LVU2306 6919 0028 4FF0FF30 mov r0, #-1 6920 .LVL796: 5983:Middlewares/Third_Party/FatFs/src/ff.c **** 6921 .loc 1 5983 1 view .LVU2307 6922 002c 7047 bx lr 6923 .LVL797: 6924 .L506: 6925 .LCFI62: 6926 .cfi_def_cfa_offset 16 6927 .cfi_offset 4, -8 6928 .cfi_offset 14, -4 5982:Middlewares/Third_Party/FatFs/src/ff.c **** } 6929 .loc 1 5982 9 view .LVU2308 6930 002e 4FF0FF30 mov r0, #-1 6931 0032 F7E7 b .L503 6932 .L507: 6933 0034 4FF0FF30 mov r0, #-1 6934 0038 F4E7 b .L503 6935 .cfi_endproc 6936 .LFE1240: 6938 .section .text.f_sync,"ax",%progbits 6939 .align 1 6940 .global f_sync 6941 .syntax unified 6942 .thumb 6943 .thumb_func 6944 .fpu fpv5-d16 6946 f_sync: 6947 .LVL798: 6948 .LFB1225: 3735:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 6949 .loc 1 3735 1 is_stmt 1 view -0 6950 .cfi_startproc 6951 @ args = 0, pretend = 0, frame = 8 6952 @ frame_needed = 0, uses_anonymous_args = 0 3735:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 6953 .loc 1 3735 1 is_stmt 0 view .LVU2310 ARM GAS /tmp/cczRNDQp.s page 261 6954 0000 70B5 push {r4, r5, r6, lr} 6955 .LCFI63: 6956 .cfi_def_cfa_offset 16 6957 .cfi_offset 4, -16 6958 .cfi_offset 5, -12 6959 .cfi_offset 6, -8 6960 .cfi_offset 14, -4 6961 0002 82B0 sub sp, sp, #8 6962 .LCFI64: 6963 .cfi_def_cfa_offset 24 6964 0004 0446 mov r4, r0 3736:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 6965 .loc 1 3736 2 is_stmt 1 view .LVU2311 3737:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD tm; 6966 .loc 1 3737 2 view .LVU2312 3738:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir; 6967 .loc 1 3738 2 view .LVU2313 3739:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 6968 .loc 1 3739 2 view .LVU2314 3745:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 6969 .loc 1 3745 2 view .LVU2315 3745:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 6970 .loc 1 3745 8 is_stmt 0 view .LVU2316 6971 0006 01A9 add r1, sp, #4 6972 0008 FFF7FEFF bl validate 6973 .LVL799: 3746:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ 6974 .loc 1 3746 2 is_stmt 1 view .LVU2317 3746:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ 6975 .loc 1 3746 5 is_stmt 0 view .LVU2318 6976 000c 70B9 cbnz r0, .L513 3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 6977 .loc 1 3747 3 is_stmt 1 view .LVU2319 3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 6978 .loc 1 3747 9 is_stmt 0 view .LVU2320 6979 000e 237D ldrb r3, [r4, #20] @ zero_extendqisi2 3747:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 6980 .loc 1 3747 6 view .LVU2321 6981 0010 13F0400F tst r3, #64 6982 0014 0AD0 beq .L513 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); 6983 .loc 1 3749 4 is_stmt 1 view .LVU2322 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); 6984 .loc 1 3749 7 is_stmt 0 view .LVU2323 6985 0016 13F0800F tst r3, #128 6986 001a 09D1 bne .L517 6987 .L514: 3755:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 6988 .loc 1 3755 4 is_stmt 1 view .LVU2324 3755:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 6989 .loc 1 3755 9 is_stmt 0 view .LVU2325 6990 001c FFF7FEFF bl get_fattime 6991 .LVL800: 6992 0020 0546 mov r5, r0 6993 .LVL801: 3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 6994 .loc 1 3785 5 is_stmt 1 view .LVU2326 ARM GAS /tmp/cczRNDQp.s page 262 3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 6995 .loc 1 3785 11 is_stmt 0 view .LVU2327 6996 0022 616A ldr r1, [r4, #36] 6997 0024 0198 ldr r0, [sp, #4] 6998 .LVL802: 3785:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 6999 .loc 1 3785 11 view .LVU2328 7000 0026 FFF7FEFF bl move_window 7001 .LVL803: 3786:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fp->dir_ptr; 7002 .loc 1 3786 5 is_stmt 1 view .LVU2329 3786:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fp->dir_ptr; 7003 .loc 1 3786 8 is_stmt 0 view .LVU2330 7004 002a 78B1 cbz r0, .L518 7005 .LVL804: 7006 .L513: 3802:Middlewares/Third_Party/FatFs/src/ff.c **** 7007 .loc 1 3802 1 view .LVU2331 7008 002c 02B0 add sp, sp, #8 7009 .LCFI65: 7010 .cfi_remember_state 7011 .cfi_def_cfa_offset 16 7012 @ sp needed 7013 002e 70BD pop {r4, r5, r6, pc} 7014 .LVL805: 7015 .L517: 7016 .LCFI66: 7017 .cfi_restore_state 3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7018 .loc 1 3750 5 is_stmt 1 view .LVU2332 3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7019 .loc 1 3750 9 is_stmt 0 view .LVU2333 7020 0030 0123 movs r3, #1 7021 0032 226A ldr r2, [r4, #32] 7022 0034 04F13001 add r1, r4, #48 7023 0038 0198 ldr r0, [sp, #4] 7024 003a 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 7025 003c FFF7FEFF bl disk_write 7026 .LVL806: 3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7027 .loc 1 3750 8 view .LVU2334 7028 0040 40BB cbnz r0, .L515 3751:Middlewares/Third_Party/FatFs/src/ff.c **** } 7029 .loc 1 3751 5 is_stmt 1 view .LVU2335 3751:Middlewares/Third_Party/FatFs/src/ff.c **** } 7030 .loc 1 3751 14 is_stmt 0 view .LVU2336 7031 0042 237D ldrb r3, [r4, #20] @ zero_extendqisi2 7032 0044 03F07F03 and r3, r3, #127 7033 0048 2375 strb r3, [r4, #20] 7034 004a E7E7 b .L514 7035 .LVL807: 7036 .L518: 3787:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] |= AM_ARC; /* Set archive bit */ 7037 .loc 1 3787 6 is_stmt 1 view .LVU2337 3787:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] |= AM_ARC; /* Set archive bit */ 7038 .loc 1 3787 10 is_stmt 0 view .LVU2338 7039 004c A66A ldr r6, [r4, #40] ARM GAS /tmp/cczRNDQp.s page 263 7040 .LVL808: 3788:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */ 7041 .loc 1 3788 6 is_stmt 1 view .LVU2339 3788:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */ 7042 .loc 1 3788 20 is_stmt 0 view .LVU2340 7043 004e F37A ldrb r3, [r6, #11] @ zero_extendqisi2 7044 0050 43F02003 orr r3, r3, #32 7045 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 */ 7046 .loc 1 3789 6 is_stmt 1 view .LVU2341 7047 0056 A268 ldr r2, [r4, #8] 7048 0058 3146 mov r1, r6 7049 005a 2068 ldr r0, [r4] 7050 .LVL809: 3789:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */ 7051 .loc 1 3789 6 is_stmt 0 view .LVU2342 7052 005c FFF7FEFF bl st_clust 7053 .LVL810: 3790:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Update modified time */ 7054 .loc 1 3790 6 is_stmt 1 view .LVU2343 7055 0060 E168 ldr r1, [r4, #12] 7056 0062 06F11C00 add r0, r6, #28 7057 0066 FFF7FEFF bl st_dword 7058 .LVL811: 3791:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(dir + DIR_LstAccDate, 0); 7059 .loc 1 3791 6 view .LVU2344 7060 006a 2946 mov r1, r5 7061 006c 06F11600 add r0, r6, #22 7062 0070 FFF7FEFF bl st_dword 7063 .LVL812: 3792:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 7064 .loc 1 3792 6 view .LVU2345 7065 0074 0021 movs r1, #0 7066 0076 06F11200 add r0, r6, #18 7067 007a FFF7FEFF bl st_word 7068 .LVL813: 3793:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); /* Restore it to the directory */ 7069 .loc 1 3793 6 view .LVU2346 3793:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); /* Restore it to the directory */ 7070 .loc 1 3793 16 is_stmt 0 view .LVU2347 7071 007e 019B ldr r3, [sp, #4] 7072 0080 0122 movs r2, #1 7073 0082 DA70 strb r2, [r3, #3] 3794:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED; 7074 .loc 1 3794 6 is_stmt 1 view .LVU2348 3794:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_MODIFIED; 7075 .loc 1 3794 12 is_stmt 0 view .LVU2349 7076 0084 0198 ldr r0, [sp, #4] 7077 0086 FFF7FEFF bl sync_fs 7078 .LVL814: 3795:Middlewares/Third_Party/FatFs/src/ff.c **** } 7079 .loc 1 3795 6 is_stmt 1 view .LVU2350 3795:Middlewares/Third_Party/FatFs/src/ff.c **** } 7080 .loc 1 3795 15 is_stmt 0 view .LVU2351 7081 008a 237D ldrb r3, [r4, #20] @ zero_extendqisi2 7082 008c 23F04003 bic r3, r3, #64 7083 0090 2375 strb r3, [r4, #20] ARM GAS /tmp/cczRNDQp.s page 264 7084 0092 CBE7 b .L513 7085 .LVL815: 7086 .L515: 3750:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7087 .loc 1 3750 62 view .LVU2352 7088 0094 0120 movs r0, #1 7089 0096 C9E7 b .L513 7090 .cfi_endproc 7091 .LFE1225: 7093 .section .text.f_close,"ax",%progbits 7094 .align 1 7095 .global f_close 7096 .syntax unified 7097 .thumb 7098 .thumb_func 7099 .fpu fpv5-d16 7101 f_close: 7102 .LVL816: 7103 .LFB1226: 3816:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7104 .loc 1 3816 1 is_stmt 1 view -0 7105 .cfi_startproc 7106 @ args = 0, pretend = 0, frame = 8 7107 @ frame_needed = 0, uses_anonymous_args = 0 3816:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7108 .loc 1 3816 1 is_stmt 0 view .LVU2354 7109 0000 10B5 push {r4, lr} 7110 .LCFI67: 7111 .cfi_def_cfa_offset 8 7112 .cfi_offset 4, -8 7113 .cfi_offset 14, -4 7114 0002 82B0 sub sp, sp, #8 7115 .LCFI68: 7116 .cfi_def_cfa_offset 16 7117 0004 0446 mov r4, r0 3817:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 7118 .loc 1 3817 2 is_stmt 1 view .LVU2355 3818:Middlewares/Third_Party/FatFs/src/ff.c **** 7119 .loc 1 3818 2 view .LVU2356 3821:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) 7120 .loc 1 3821 2 view .LVU2357 3821:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) 7121 .loc 1 3821 8 is_stmt 0 view .LVU2358 7122 0006 FFF7FEFF bl f_sync 7123 .LVL817: 3822:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7124 .loc 1 3822 2 is_stmt 1 view .LVU2359 3822:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7125 .loc 1 3822 5 is_stmt 0 view .LVU2360 7126 000a 08B1 cbz r0, .L522 7127 .L520: 7128 .LVL818: 3839:Middlewares/Third_Party/FatFs/src/ff.c **** } 7129 .loc 1 3839 2 is_stmt 1 view .LVU2361 3840:Middlewares/Third_Party/FatFs/src/ff.c **** 7130 .loc 1 3840 1 is_stmt 0 view .LVU2362 7131 000c 02B0 add sp, sp, #8 ARM GAS /tmp/cczRNDQp.s page 265 7132 .LCFI69: 7133 .cfi_remember_state 7134 .cfi_def_cfa_offset 8 7135 @ sp needed 7136 000e 10BD pop {r4, pc} 7137 .LVL819: 7138 .L522: 7139 .LCFI70: 7140 .cfi_restore_state 3825:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7141 .loc 1 3825 3 is_stmt 1 view .LVU2363 3825:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7142 .loc 1 3825 9 is_stmt 0 view .LVU2364 7143 0010 01A9 add r1, sp, #4 7144 0012 2046 mov r0, r4 7145 0014 FFF7FEFF bl validate 7146 .LVL820: 3826:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 7147 .loc 1 3826 3 is_stmt 1 view .LVU2365 3826:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 7148 .loc 1 3826 6 is_stmt 0 view .LVU2366 7149 0018 0028 cmp r0, #0 7150 001a F7D1 bne .L520 3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) 7151 .loc 1 3828 4 is_stmt 1 view .LVU2367 3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) 7152 .loc 1 3828 10 is_stmt 0 view .LVU2368 7153 001c 2069 ldr r0, [r4, #16] 7154 .LVL821: 3828:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) 7155 .loc 1 3828 10 view .LVU2369 7156 001e FFF7FEFF bl dec_lock 7157 .LVL822: 3829:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7158 .loc 1 3829 4 is_stmt 1 view .LVU2370 3829:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7159 .loc 1 3829 7 is_stmt 0 view .LVU2371 7160 0022 0028 cmp r0, #0 7161 0024 F2D1 bne .L520 3832:Middlewares/Third_Party/FatFs/src/ff.c **** } 7162 .loc 1 3832 5 is_stmt 1 view .LVU2372 3832:Middlewares/Third_Party/FatFs/src/ff.c **** } 7163 .loc 1 3832 16 is_stmt 0 view .LVU2373 7164 0026 2060 str r0, [r4] 7165 0028 F0E7 b .L520 7166 .cfi_endproc 7167 .LFE1226: 7169 .section .text.f_lseek,"ax",%progbits 7170 .align 1 7171 .global f_lseek 7172 .syntax unified 7173 .thumb 7174 .thumb_func 7175 .fpu fpv5-d16 7177 f_lseek: 7178 .LVL823: 7179 .LFB1227: ARM GAS /tmp/cczRNDQp.s page 266 4005:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7180 .loc 1 4005 1 is_stmt 1 view -0 7181 .cfi_startproc 7182 @ args = 0, pretend = 0, frame = 8 7183 @ frame_needed = 0, uses_anonymous_args = 0 4005:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7184 .loc 1 4005 1 is_stmt 0 view .LVU2375 7185 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 7186 .LCFI71: 7187 .cfi_def_cfa_offset 36 7188 .cfi_offset 4, -36 7189 .cfi_offset 5, -32 7190 .cfi_offset 6, -28 7191 .cfi_offset 7, -24 7192 .cfi_offset 8, -20 7193 .cfi_offset 9, -16 7194 .cfi_offset 10, -12 7195 .cfi_offset 11, -8 7196 .cfi_offset 14, -4 7197 0004 83B0 sub sp, sp, #12 7198 .LCFI72: 7199 .cfi_def_cfa_offset 48 7200 0006 0446 mov r4, r0 7201 0008 0E46 mov r6, r1 4006:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 7202 .loc 1 4006 2 is_stmt 1 view .LVU2376 4007:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD clst, bcs, nsect; 7203 .loc 1 4007 2 view .LVU2377 4008:Middlewares/Third_Party/FatFs/src/ff.c **** FSIZE_t ifptr; 7204 .loc 1 4008 2 view .LVU2378 4009:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_FASTSEEK 7205 .loc 1 4009 2 view .LVU2379 4011:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7206 .loc 1 4011 2 view .LVU2380 4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err; 7207 .loc 1 4014 2 view .LVU2381 4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err; 7208 .loc 1 4014 8 is_stmt 0 view .LVU2382 7209 000a 01A9 add r1, sp, #4 7210 .LVL824: 4014:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = (FRESULT)fp->err; 7211 .loc 1 4014 8 view .LVU2383 7212 000c FFF7FEFF bl validate 7213 .LVL825: 4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY 7214 .loc 1 4015 2 is_stmt 1 view .LVU2384 4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY 7215 .loc 1 4015 5 is_stmt 0 view .LVU2385 7216 0010 0546 mov r5, r0 7217 0012 00B9 cbnz r0, .L524 4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY 7218 .loc 1 4015 20 is_stmt 1 discriminator 1 view .LVU2386 4015:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT && !_FS_READONLY 7219 .loc 1 4015 24 is_stmt 0 discriminator 1 view .LVU2387 7220 0014 657D ldrb r5, [r4, #21] @ zero_extendqisi2 7221 .LVL826: 7222 .L524: ARM GAS /tmp/cczRNDQp.s page 267 4021:Middlewares/Third_Party/FatFs/src/ff.c **** 7223 .loc 1 4021 2 is_stmt 1 view .LVU2388 4021:Middlewares/Third_Party/FatFs/src/ff.c **** 7224 .loc 1 4021 5 is_stmt 0 view .LVU2389 7225 0016 6DB9 cbnz r5, .L525 4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */ 7226 .loc 1 4024 2 is_stmt 1 view .LVU2390 4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */ 7227 .loc 1 4024 8 is_stmt 0 view .LVU2391 7228 0018 E36A ldr r3, [r4, #44] 4024:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs == CREATE_LINKMAP) { /* Create CLMT */ 7229 .loc 1 4024 5 view .LVU2392 7230 001a 002B cmp r3, #0 7231 001c 00F08E80 beq .L526 4025:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl; 7232 .loc 1 4025 3 is_stmt 1 view .LVU2393 4025:Middlewares/Third_Party/FatFs/src/ff.c **** tbl = fp->cltbl; 7233 .loc 1 4025 6 is_stmt 0 view .LVU2394 7234 0020 B6F1FF3F cmp r6, #-1 7235 0024 0AD0 beq .L566 4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */ 7236 .loc 1 4051 4 is_stmt 1 view .LVU2395 4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */ 7237 .loc 1 4051 21 is_stmt 0 view .LVU2396 7238 0026 E768 ldr r7, [r4, #12] 4051:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = ofs; /* Set file pointer */ 7239 .loc 1 4051 7 view .LVU2397 7240 0028 B742 cmp r7, r6 7241 002a 00D3 bcc .L534 7242 002c 3746 mov r7, r6 7243 .L534: 7244 .LVL827: 4052:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7245 .loc 1 4052 4 is_stmt 1 view .LVU2398 4052:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7246 .loc 1 4052 13 is_stmt 0 view .LVU2399 7247 002e A761 str r7, [r4, #24] 4053:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clmt_clust(fp, ofs - 1); 7248 .loc 1 4053 4 is_stmt 1 view .LVU2400 4053:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clmt_clust(fp, ofs - 1); 7249 .loc 1 4053 7 is_stmt 0 view .LVU2401 7250 0030 002F cmp r7, #0 7251 0032 3FD1 bne .L567 7252 .LVL828: 7253 .L525: 4153:Middlewares/Third_Party/FatFs/src/ff.c **** 7254 .loc 1 4153 1 view .LVU2402 7255 0034 2846 mov r0, r5 7256 0036 03B0 add sp, sp, #12 7257 .LCFI73: 7258 .cfi_remember_state 7259 .cfi_def_cfa_offset 36 7260 @ sp needed 7261 0038 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 7262 .LVL829: 7263 .L566: 7264 .LCFI74: ARM GAS /tmp/cczRNDQp.s page 268 7265 .cfi_restore_state 4026:Middlewares/Third_Party/FatFs/src/ff.c **** tlen = *tbl++; ulen = 2; /* Given table size and required table size */ 7266 .loc 1 4026 4 is_stmt 1 view .LVU2403 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7267 .loc 1 4027 4 view .LVU2404 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7268 .loc 1 4027 15 is_stmt 0 view .LVU2405 7269 003c 9846 mov r8, r3 7270 .LVL830: 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7271 .loc 1 4027 9 view .LVU2406 7272 003e 58F804BB ldr fp, [r8], #4 7273 .LVL831: 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7274 .loc 1 4027 19 is_stmt 1 view .LVU2407 4028:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) { 7275 .loc 1 4028 4 view .LVU2408 4028:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl) { 7276 .loc 1 4028 7 is_stmt 0 view .LVU2409 7277 0042 D4F808A0 ldr r10, [r4, #8] 7278 .LVL832: 4029:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7279 .loc 1 4029 4 is_stmt 1 view .LVU2410 4029:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7280 .loc 1 4029 7 is_stmt 0 view .LVU2411 7281 0046 BAF1000F cmp r10, #0 7282 004a 27D0 beq .L559 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7283 .loc 1 4027 24 view .LVU2412 7284 004c 4FF00209 mov r9, #2 7285 .LVL833: 7286 .L533: 4030:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get a fragment */ 7287 .loc 1 4030 5 is_stmt 1 view .LVU2413 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7288 .loc 1 4032 6 view .LVU2414 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7289 .loc 1 4032 16 view .LVU2415 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7290 .loc 1 4032 25 view .LVU2416 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7291 .loc 1 4032 30 is_stmt 0 view .LVU2417 7292 0050 09F10209 add r9, r9, #2 7293 .LVL834: 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7294 .loc 1 4032 30 view .LVU2418 7295 0054 5146 mov r1, r10 4032:Middlewares/Third_Party/FatFs/src/ff.c **** do { 7296 .loc 1 4032 20 view .LVU2419 7297 0056 0027 movs r7, #0 7298 .LVL835: 7299 .L531: 4033:Middlewares/Third_Party/FatFs/src/ff.c **** pcl = cl; ncl++; 7300 .loc 1 4033 6 is_stmt 1 view .LVU2420 4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl); 7301 .loc 1 4034 7 view .LVU2421 4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl); ARM GAS /tmp/cczRNDQp.s page 269 7302 .loc 1 4034 17 view .LVU2422 4034:Middlewares/Third_Party/FatFs/src/ff.c **** cl = get_fat(&fp->obj, cl); 7303 .loc 1 4034 20 is_stmt 0 view .LVU2423 7304 0058 0137 adds r7, r7, #1 7305 .LVL836: 4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR); 7306 .loc 1 4035 7 is_stmt 1 view .LVU2424 7307 005a 0E46 mov r6, r1 4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR); 7308 .loc 1 4035 12 is_stmt 0 view .LVU2425 7309 005c 2046 mov r0, r4 7310 005e FFF7FEFF bl get_fat 7311 .LVL837: 4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR); 7312 .loc 1 4035 12 view .LVU2426 7313 0062 0146 mov r1, r0 7314 .LVL838: 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7315 .loc 1 4036 7 is_stmt 1 view .LVU2427 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7316 .loc 1 4036 10 is_stmt 0 view .LVU2428 7317 0064 0128 cmp r0, #1 7318 0066 13D9 bls .L568 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7319 .loc 1 4036 41 is_stmt 1 discriminator 2 view .LVU2429 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7320 .loc 1 4037 7 discriminator 2 view .LVU2430 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7321 .loc 1 4037 10 is_stmt 0 discriminator 2 view .LVU2431 7322 0068 B0F1FF3F cmp r0, #-1 7323 006c 13D0 beq .L569 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7324 .loc 1 4037 51 is_stmt 1 discriminator 2 view .LVU2432 4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */ 7325 .loc 1 4038 14 discriminator 2 view .LVU2433 4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */ 7326 .loc 1 4038 25 is_stmt 0 discriminator 2 view .LVU2434 7327 006e 0136 adds r6, r6, #1 7328 .LVL839: 4038:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { /* Store the length and top of the fragment */ 7329 .loc 1 4038 6 discriminator 2 view .LVU2435 7330 0070 8642 cmp r6, r0 7331 0072 F1D0 beq .L531 4039:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl++ = ncl; *tbl++ = tcl; 7332 .loc 1 4039 6 is_stmt 1 view .LVU2436 4039:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl++ = ncl; *tbl++ = tcl; 7333 .loc 1 4039 9 is_stmt 0 view .LVU2437 7334 0074 CB45 cmp fp, r9 7335 0076 05D3 bcc .L532 4040:Middlewares/Third_Party/FatFs/src/ff.c **** } 7336 .loc 1 4040 7 is_stmt 1 view .LVU2438 7337 .LVL840: 4040:Middlewares/Third_Party/FatFs/src/ff.c **** } 7338 .loc 1 4040 14 is_stmt 0 view .LVU2439 7339 0078 4346 mov r3, r8 7340 007a 43F8087B str r7, [r3], #8 4040:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 270 7341 .loc 1 4040 21 is_stmt 1 view .LVU2440 7342 .LVL841: 4040:Middlewares/Third_Party/FatFs/src/ff.c **** } 7343 .loc 1 4040 28 is_stmt 0 view .LVU2441 7344 007e C8F804A0 str r10, [r8, #4] 4040:Middlewares/Third_Party/FatFs/src/ff.c **** } 7345 .loc 1 4040 25 view .LVU2442 7346 0082 9846 mov r8, r3 7347 .LVL842: 7348 .L532: 4042:Middlewares/Third_Party/FatFs/src/ff.c **** } 7349 .loc 1 4042 13 is_stmt 1 view .LVU2443 4042:Middlewares/Third_Party/FatFs/src/ff.c **** } 7350 .loc 1 4042 21 is_stmt 0 view .LVU2444 7351 0084 019B ldr r3, [sp, #4] 7352 0086 9B69 ldr r3, [r3, #24] 4042:Middlewares/Third_Party/FatFs/src/ff.c **** } 7353 .loc 1 4042 5 view .LVU2445 7354 0088 8B42 cmp r3, r1 7355 008a 09D9 bls .L528 4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR); 7356 .loc 1 4035 12 view .LVU2446 7357 008c 8A46 mov r10, r1 7358 .LVL843: 4035:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl <= 1) ABORT(fs, FR_INT_ERR); 7359 .loc 1 4035 12 view .LVU2447 7360 008e DFE7 b .L533 7361 .LVL844: 7362 .L568: 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7363 .loc 1 4036 20 is_stmt 1 discriminator 1 view .LVU2448 7364 0090 0225 movs r5, #2 7365 .LVL845: 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7366 .loc 1 4036 20 is_stmt 0 discriminator 1 view .LVU2449 7367 0092 6575 strb r5, [r4, #21] 4036:Middlewares/Third_Party/FatFs/src/ff.c **** if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7368 .loc 1 4036 20 is_stmt 1 discriminator 1 view .LVU2450 7369 0094 CEE7 b .L525 7370 .LVL846: 7371 .L569: 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7372 .loc 1 4037 29 discriminator 1 view .LVU2451 7373 0096 0125 movs r5, #1 7374 .LVL847: 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7375 .loc 1 4037 29 is_stmt 0 discriminator 1 view .LVU2452 7376 0098 6575 strb r5, [r4, #21] 4037:Middlewares/Third_Party/FatFs/src/ff.c **** } while (cl == pcl + 1); 7377 .loc 1 4037 29 is_stmt 1 discriminator 1 view .LVU2453 7378 009a CBE7 b .L525 7379 .LVL848: 7380 .L559: 4027:Middlewares/Third_Party/FatFs/src/ff.c **** cl = fp->obj.sclust; /* Origin of the chain */ 7381 .loc 1 4027 24 is_stmt 0 view .LVU2454 7382 009c 4FF00209 mov r9, #2 7383 .LVL849: ARM GAS /tmp/cczRNDQp.s page 271 7384 .L528: 4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { 7385 .loc 1 4044 4 is_stmt 1 view .LVU2455 4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { 7386 .loc 1 4044 7 is_stmt 0 view .LVU2456 7387 00a0 E36A ldr r3, [r4, #44] 4044:Middlewares/Third_Party/FatFs/src/ff.c **** if (ulen <= tlen) { 7388 .loc 1 4044 15 view .LVU2457 7389 00a2 C3F80090 str r9, [r3] 4045:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl = 0; /* Terminate table */ 7390 .loc 1 4045 4 is_stmt 1 view .LVU2458 4045:Middlewares/Third_Party/FatFs/src/ff.c **** *tbl = 0; /* Terminate table */ 7391 .loc 1 4045 7 is_stmt 0 view .LVU2459 7392 00a6 D945 cmp r9, fp 7393 00a8 00F2FB80 bhi .L561 4046:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 7394 .loc 1 4046 5 is_stmt 1 view .LVU2460 4046:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 7395 .loc 1 4046 10 is_stmt 0 view .LVU2461 7396 00ac 0023 movs r3, #0 7397 00ae C8F80030 str r3, [r8] 7398 00b2 BFE7 b .L525 7399 .LVL850: 7400 .L567: 4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust); 7401 .loc 1 4054 5 is_stmt 1 view .LVU2462 4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust); 7402 .loc 1 4054 17 is_stmt 0 view .LVU2463 7403 00b4 7E1E subs r6, r7, #1 7404 00b6 3146 mov r1, r6 7405 00b8 2046 mov r0, r4 7406 00ba FFF7FEFF bl clmt_clust 7407 .LVL851: 7408 00be 0146 mov r1, r0 4054:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, fp->clust); 7409 .loc 1 4054 15 view .LVU2464 7410 00c0 E061 str r0, [r4, #28] 4055:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dsc) ABORT(fs, FR_INT_ERR); 7411 .loc 1 4055 5 is_stmt 1 view .LVU2465 4055:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dsc) ABORT(fs, FR_INT_ERR); 7412 .loc 1 4055 11 is_stmt 0 view .LVU2466 7413 00c2 DDF80480 ldr r8, [sp, #4] 7414 00c6 4046 mov r0, r8 7415 00c8 FFF7FEFF bl clust2sect 7416 .LVL852: 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7417 .loc 1 4056 5 is_stmt 1 view .LVU2467 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7418 .loc 1 4056 8 is_stmt 0 view .LVU2468 7419 00cc 00B3 cbz r0, .L570 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7420 .loc 1 4056 36 is_stmt 1 discriminator 2 view .LVU2469 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7421 .loc 1 4057 5 discriminator 2 view .LVU2470 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7422 .loc 1 4057 32 is_stmt 0 discriminator 2 view .LVU2471 7423 00ce B8F80C30 ldrh r3, [r8, #12] ARM GAS /tmp/cczRNDQp.s page 272 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7424 .loc 1 4057 12 discriminator 2 view .LVU2472 7425 00d2 B6FBF3F6 udiv r6, r6, r3 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7426 .loc 1 4057 45 discriminator 2 view .LVU2473 7427 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 */ 7428 .loc 1 4057 53 discriminator 2 view .LVU2474 7429 00da 013A subs r2, r2, #1 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7430 .loc 1 4057 40 discriminator 2 view .LVU2475 7431 00dc 1640 ands r6, r6, r2 4057:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ 7432 .loc 1 4057 9 discriminator 2 view .LVU2476 7433 00de 0644 add r6, r6, r0 7434 .LVL853: 4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7435 .loc 1 4058 5 is_stmt 1 discriminator 2 view .LVU2477 4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7436 .loc 1 4058 18 is_stmt 0 discriminator 2 view .LVU2478 7437 00e0 B7FBF3F2 udiv r2, r7, r3 7438 00e4 03FB1277 mls r7, r3, r2, r7 7439 .LVL854: 4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7440 .loc 1 4058 8 discriminator 2 view .LVU2479 7441 00e8 002F cmp r7, #0 7442 00ea A3D0 beq .L525 4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7443 .loc 1 4058 39 discriminator 1 view .LVU2480 7444 00ec 226A ldr r2, [r4, #32] 4058:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7445 .loc 1 4058 27 discriminator 1 view .LVU2481 7446 00ee B242 cmp r2, r6 7447 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); 7448 .loc 1 4061 6 is_stmt 1 view .LVU2482 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); 7449 .loc 1 4061 10 is_stmt 0 view .LVU2483 7450 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); 7451 .loc 1 4061 9 view .LVU2484 7452 00f6 002B cmp r3, #0 7453 00f8 0DDB blt .L571 7454 .L536: 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7455 .loc 1 4066 6 is_stmt 1 view .LVU2485 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7456 .loc 1 4066 10 is_stmt 0 view .LVU2486 7457 00fa 0123 movs r3, #1 7458 00fc 3246 mov r2, r6 7459 00fe 04F13001 add r1, r4, #48 7460 0102 0198 ldr r0, [sp, #4] 7461 0104 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 7462 0106 FFF7FEFF bl disk_read 7463 .LVL855: 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7464 .loc 1 4066 9 view .LVU2487 ARM GAS /tmp/cczRNDQp.s page 273 7465 010a A0B9 cbnz r0, .L572 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7466 .loc 1 4066 79 is_stmt 1 discriminator 2 view .LVU2488 4068:Middlewares/Third_Party/FatFs/src/ff.c **** } 7467 .loc 1 4068 6 discriminator 2 view .LVU2489 4068:Middlewares/Third_Party/FatFs/src/ff.c **** } 7468 .loc 1 4068 15 is_stmt 0 discriminator 2 view .LVU2490 7469 010c 2662 str r6, [r4, #32] 7470 010e 91E7 b .L525 7471 .LVL856: 7472 .L570: 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7473 .loc 1 4056 15 is_stmt 1 discriminator 1 view .LVU2491 7474 0110 0225 movs r5, #2 7475 .LVL857: 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7476 .loc 1 4056 15 is_stmt 0 discriminator 1 view .LVU2492 7477 0112 6575 strb r5, [r4, #21] 4056:Middlewares/Third_Party/FatFs/src/ff.c **** dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); 7478 .loc 1 4056 15 is_stmt 1 discriminator 1 view .LVU2493 7479 0114 8EE7 b .L525 7480 .LVL858: 7481 .L571: 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7482 .loc 1 4062 7 view .LVU2494 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7483 .loc 1 4062 11 is_stmt 0 view .LVU2495 7484 0116 0123 movs r3, #1 7485 0118 04F13001 add r1, r4, #48 7486 011c 98F80100 ldrb r0, [r8, #1] @ zero_extendqisi2 7487 0120 FFF7FEFF bl disk_write 7488 .LVL859: 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7489 .loc 1 4062 10 view .LVU2496 7490 0124 20B9 cbnz r0, .L573 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7491 .loc 1 4062 86 is_stmt 1 discriminator 2 view .LVU2497 4063:Middlewares/Third_Party/FatFs/src/ff.c **** } 7492 .loc 1 4063 7 discriminator 2 view .LVU2498 4063:Middlewares/Third_Party/FatFs/src/ff.c **** } 7493 .loc 1 4063 16 is_stmt 0 discriminator 2 view .LVU2499 7494 0126 237D ldrb r3, [r4, #20] @ zero_extendqisi2 7495 0128 03F07F03 and r3, r3, #127 7496 012c 2375 strb r3, [r4, #20] 7497 012e E4E7 b .L536 7498 .L573: 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7499 .loc 1 4062 64 is_stmt 1 discriminator 1 view .LVU2500 7500 0130 0125 movs r5, #1 7501 .LVL860: 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7502 .loc 1 4062 64 is_stmt 0 discriminator 1 view .LVU2501 7503 0132 6575 strb r5, [r4, #21] 4062:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7504 .loc 1 4062 64 is_stmt 1 discriminator 1 view .LVU2502 7505 0134 7EE7 b .L525 7506 .LVL861: ARM GAS /tmp/cczRNDQp.s page 274 7507 .L572: 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7508 .loc 1 4066 57 discriminator 1 view .LVU2503 7509 0136 0125 movs r5, #1 7510 .LVL862: 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7511 .loc 1 4066 57 is_stmt 0 discriminator 1 view .LVU2504 7512 0138 6575 strb r5, [r4, #21] 4066:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7513 .loc 1 4066 57 is_stmt 1 discriminator 1 view .LVU2505 7514 013a 7BE7 b .L525 7515 .LVL863: 7516 .L526: 4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize; 7517 .loc 1 4080 3 view .LVU2506 4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize; 7518 .loc 1 4080 20 is_stmt 0 view .LVU2507 7519 013c E368 ldr r3, [r4, #12] 4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize; 7520 .loc 1 4080 6 view .LVU2508 7521 013e B342 cmp r3, r6 7522 0140 04D2 bcs .L539 4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize; 7523 .loc 1 4080 53 discriminator 1 view .LVU2509 7524 0142 227D ldrb r2, [r4, #20] @ zero_extendqisi2 4080:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = fp->obj.objsize; 7525 .loc 1 4080 29 discriminator 1 view .LVU2510 7526 0144 12F0020F tst r2, #2 7527 0148 00D1 bne .L539 4081:Middlewares/Third_Party/FatFs/src/ff.c **** } 7528 .loc 1 4081 8 view .LVU2511 7529 014a 1E46 mov r6, r3 7530 .LVL864: 7531 .L539: 4083:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = nsect = 0; 7532 .loc 1 4083 3 is_stmt 1 view .LVU2512 4083:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = nsect = 0; 7533 .loc 1 4083 9 is_stmt 0 view .LVU2513 7534 014c A369 ldr r3, [r4, #24] 7535 .LVL865: 4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7536 .loc 1 4084 3 is_stmt 1 view .LVU2514 4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7537 .loc 1 4084 12 is_stmt 0 view .LVU2515 7538 014e 0022 movs r2, #0 7539 0150 A261 str r2, [r4, #24] 4085:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ 7540 .loc 1 4085 3 is_stmt 1 view .LVU2516 4085:Middlewares/Third_Party/FatFs/src/ff.c **** bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ 7541 .loc 1 4085 6 is_stmt 0 view .LVU2517 7542 0152 E6B1 cbz r6, .L540 4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 && 7543 .loc 1 4086 4 is_stmt 1 view .LVU2518 4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 && 7544 .loc 1 4086 19 is_stmt 0 view .LVU2519 7545 0154 019A ldr r2, [sp, #4] 7546 0156 B2F80A80 ldrh r8, [r2, #10] ARM GAS /tmp/cczRNDQp.s page 275 4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 && 7547 .loc 1 4086 29 view .LVU2520 7548 015a 9289 ldrh r2, [r2, #12] 4086:Middlewares/Third_Party/FatFs/src/ff.c **** if (ifptr > 0 && 7549 .loc 1 4086 8 view .LVU2521 7550 015c 02FB08F8 mul r8, r2, r8 7551 .LVL866: 4087:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ 7552 .loc 1 4087 4 is_stmt 1 view .LVU2522 4087:Middlewares/Third_Party/FatFs/src/ff.c **** (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ 7553 .loc 1 4087 7 is_stmt 0 view .LVU2523 7554 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 */ 7555 .loc 1 4088 10 discriminator 1 view .LVU2524 7556 0162 721E subs r2, r6, #1 4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */ 7557 .loc 1 4088 15 discriminator 1 view .LVU2525 7558 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 */ 7559 .loc 1 4088 31 discriminator 1 view .LVU2526 7560 0168 013B subs r3, r3, #1 7561 .LVL867: 4088:Middlewares/Third_Party/FatFs/src/ff.c **** fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */ 7562 .loc 1 4088 36 discriminator 1 view .LVU2527 7563 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, */ 7564 .loc 1 4087 18 discriminator 1 view .LVU2528 7565 016e 8A42 cmp r2, r1 7566 0170 06D3 bcc .L541 4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr; 7567 .loc 1 4089 5 is_stmt 1 view .LVU2529 4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr; 7568 .loc 1 4089 30 is_stmt 0 view .LVU2530 7569 0172 C8F10007 rsb r7, r8, #0 4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr; 7570 .loc 1 4089 28 view .LVU2531 7571 0176 1F40 ands r7, r7, r3 4089:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= fp->fptr; 7572 .loc 1 4089 14 view .LVU2532 7573 0178 A761 str r7, [r4, #24] 4090:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->clust; 7574 .loc 1 4090 5 is_stmt 1 view .LVU2533 4090:Middlewares/Third_Party/FatFs/src/ff.c **** clst = fp->clust; 7575 .loc 1 4090 9 is_stmt 0 view .LVU2534 7576 017a F71B subs r7, r6, r7 7577 .LVL868: 4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */ 7578 .loc 1 4091 5 is_stmt 1 view .LVU2535 4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */ 7579 .loc 1 4091 10 is_stmt 0 view .LVU2536 7580 017c E669 ldr r6, [r4, #28] 7581 .LVL869: 4091:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When seek to back cluster, */ 7582 .loc 1 4091 10 view .LVU2537 7583 017e 04E0 b .L542 7584 .LVL870: 7585 .L541: ARM GAS /tmp/cczRNDQp.s page 276 4093:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7586 .loc 1 4093 5 is_stmt 1 view .LVU2538 4093:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7587 .loc 1 4093 10 is_stmt 0 view .LVU2539 7588 0180 A068 ldr r0, [r4, #8] 7589 .LVL871: 4095:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); 7590 .loc 1 4095 5 is_stmt 1 view .LVU2540 4095:Middlewares/Third_Party/FatFs/src/ff.c **** clst = create_chain(&fp->obj, 0); 7591 .loc 1 4095 8 is_stmt 0 view .LVU2541 7592 0182 50B3 cbz r0, .L574 7593 .L543: 4102:Middlewares/Third_Party/FatFs/src/ff.c **** } 7594 .loc 1 4102 5 is_stmt 1 view .LVU2542 4102:Middlewares/Third_Party/FatFs/src/ff.c **** } 7595 .loc 1 4102 15 is_stmt 0 view .LVU2543 7596 0184 E061 str r0, [r4, #28] 7597 0186 3746 mov r7, r6 7598 0188 0646 mov r6, r0 7599 .LVL872: 7600 .L542: 4104:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs > bcs) { /* Cluster following loop */ 7601 .loc 1 4104 4 is_stmt 1 view .LVU2544 4104:Middlewares/Third_Party/FatFs/src/ff.c **** while (ofs > bcs) { /* Cluster following loop */ 7602 .loc 1 4104 7 is_stmt 0 view .LVU2545 7603 018a 002E cmp r6, #0 7604 018c 45D1 bne .L546 7605 .LVL873: 7606 .L540: 4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; 7607 .loc 1 4134 3 is_stmt 1 view .LVU2546 4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; 7608 .loc 1 4134 26 is_stmt 0 view .LVU2547 7609 018e A369 ldr r3, [r4, #24] 4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; 7610 .loc 1 4134 42 view .LVU2548 7611 0190 E268 ldr r2, [r4, #12] 4134:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; 7612 .loc 1 4134 6 view .LVU2549 7613 0192 9342 cmp r3, r2 7614 0194 04D9 bls .L555 4135:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; 7615 .loc 1 4135 4 is_stmt 1 view .LVU2550 4135:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; 7616 .loc 1 4135 20 is_stmt 0 view .LVU2551 7617 0196 E360 str r3, [r4, #12] 4136:Middlewares/Third_Party/FatFs/src/ff.c **** } 7618 .loc 1 4136 4 is_stmt 1 view .LVU2552 4136:Middlewares/Third_Party/FatFs/src/ff.c **** } 7619 .loc 1 4136 13 is_stmt 0 view .LVU2553 7620 0198 227D ldrb r2, [r4, #20] @ zero_extendqisi2 7621 019a 42F04002 orr r2, r2, #64 7622 019e 2275 strb r2, [r4, #20] 7623 .L555: 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7624 .loc 1 4138 3 is_stmt 1 view .LVU2554 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY ARM GAS /tmp/cczRNDQp.s page 277 7625 .loc 1 4138 18 is_stmt 0 view .LVU2555 7626 01a0 0198 ldr r0, [sp, #4] 7627 01a2 8289 ldrh r2, [r0, #12] 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7628 .loc 1 4138 16 view .LVU2556 7629 01a4 B3FBF2F1 udiv r1, r3, r2 7630 01a8 02FB1133 mls r3, r2, r1, r3 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7631 .loc 1 4138 6 view .LVU2557 7632 01ac 002B cmp r3, #0 7633 01ae 3FF441AF beq .L525 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7634 .loc 1 4138 39 discriminator 1 view .LVU2558 7635 01b2 226A ldr r2, [r4, #32] 4138:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 7636 .loc 1 4138 25 discriminator 1 view .LVU2559 7637 01b4 B242 cmp r2, r6 7638 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); 7639 .loc 1 4141 4 is_stmt 1 view .LVU2560 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); 7640 .loc 1 4141 8 is_stmt 0 view .LVU2561 7641 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); 7642 .loc 1 4141 7 view .LVU2562 7643 01be 002B cmp r3, #0 7644 01c0 5DDB blt .L575 7645 .L556: 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7646 .loc 1 4146 4 is_stmt 1 view .LVU2563 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7647 .loc 1 4146 8 is_stmt 0 view .LVU2564 7648 01c2 0123 movs r3, #1 7649 01c4 3246 mov r2, r6 7650 01c6 04F13001 add r1, r4, #48 7651 01ca 0198 ldr r0, [sp, #4] 7652 01cc 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 7653 01ce FFF7FEFF bl disk_read 7654 .LVL874: 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7655 .loc 1 4146 7 view .LVU2565 7656 01d2 0028 cmp r0, #0 7657 01d4 62D1 bne .L576 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7658 .loc 1 4146 79 is_stmt 1 discriminator 2 view .LVU2566 4148:Middlewares/Third_Party/FatFs/src/ff.c **** } 7659 .loc 1 4148 4 discriminator 2 view .LVU2567 4148:Middlewares/Third_Party/FatFs/src/ff.c **** } 7660 .loc 1 4148 13 is_stmt 0 discriminator 2 view .LVU2568 7661 01d6 2662 str r6, [r4, #32] 7662 01d8 2CE7 b .L525 7663 .LVL875: 7664 .L574: 4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR); 7665 .loc 1 4096 6 is_stmt 1 view .LVU2569 4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR); 7666 .loc 1 4096 13 is_stmt 0 view .LVU2570 ARM GAS /tmp/cczRNDQp.s page 278 7667 01da 0021 movs r1, #0 7668 01dc 2046 mov r0, r4 7669 .LVL876: 4096:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 1) ABORT(fs, FR_INT_ERR); 7670 .loc 1 4096 13 view .LVU2571 7671 01de FFF7FEFF bl create_chain 7672 .LVL877: 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7673 .loc 1 4097 6 is_stmt 1 view .LVU2572 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7674 .loc 1 4097 9 is_stmt 0 view .LVU2573 7675 01e2 0128 cmp r0, #1 7676 01e4 04D0 beq .L577 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7677 .loc 1 4097 42 is_stmt 1 discriminator 2 view .LVU2574 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7678 .loc 1 4098 6 discriminator 2 view .LVU2575 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7679 .loc 1 4098 9 is_stmt 0 discriminator 2 view .LVU2576 7680 01e6 B0F1FF3F cmp r0, #-1 7681 01ea 04D0 beq .L578 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7682 .loc 1 4098 52 is_stmt 1 discriminator 2 view .LVU2577 4099:Middlewares/Third_Party/FatFs/src/ff.c **** } 7683 .loc 1 4099 6 discriminator 2 view .LVU2578 4099:Middlewares/Third_Party/FatFs/src/ff.c **** } 7684 .loc 1 4099 21 is_stmt 0 discriminator 2 view .LVU2579 7685 01ec A060 str r0, [r4, #8] 7686 01ee C9E7 b .L543 7687 .L577: 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7688 .loc 1 4097 21 is_stmt 1 discriminator 1 view .LVU2580 7689 01f0 0225 movs r5, #2 7690 .LVL878: 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7691 .loc 1 4097 21 is_stmt 0 discriminator 1 view .LVU2581 7692 01f2 6575 strb r5, [r4, #21] 4097:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); 7693 .loc 1 4097 21 is_stmt 1 discriminator 1 view .LVU2582 7694 01f4 1EE7 b .L525 7695 .LVL879: 7696 .L578: 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7697 .loc 1 4098 30 discriminator 1 view .LVU2583 7698 01f6 0125 movs r5, #1 7699 .LVL880: 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7700 .loc 1 4098 30 is_stmt 0 discriminator 1 view .LVU2584 7701 01f8 6575 strb r5, [r4, #21] 4098:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = clst; 7702 .loc 1 4098 30 is_stmt 1 discriminator 1 view .LVU2585 7703 01fa 1BE7 b .L525 7704 .LVL881: 7705 .L547: 4120:Middlewares/Third_Party/FatFs/src/ff.c **** } 7706 .loc 1 4120 7 view .LVU2586 4120:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 279 7707 .loc 1 4120 14 is_stmt 0 view .LVU2587 7708 01fc 3146 mov r1, r6 7709 01fe 2046 mov r0, r4 7710 0200 FFF7FEFF bl get_fat 7711 .LVL882: 7712 0204 0646 mov r6, r0 7713 .LVL883: 7714 .L549: 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7715 .loc 1 4122 6 is_stmt 1 view .LVU2588 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7716 .loc 1 4122 9 is_stmt 0 view .LVU2589 7717 0206 B6F1FF3F cmp r6, #-1 7718 020a 2DD0 beq .L579 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7719 .loc 1 4122 52 is_stmt 1 discriminator 2 view .LVU2590 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7720 .loc 1 4123 6 discriminator 2 view .LVU2591 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7721 .loc 1 4123 9 is_stmt 0 discriminator 2 view .LVU2592 7722 020c 012E cmp r6, #1 7723 020e 2ED9 bls .L551 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7724 .loc 1 4123 33 discriminator 2 view .LVU2593 7725 0210 019B ldr r3, [sp, #4] 7726 0212 9B69 ldr r3, [r3, #24] 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7727 .loc 1 4123 20 discriminator 2 view .LVU2594 7728 0214 B342 cmp r3, r6 7729 0216 2AD9 bls .L551 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7730 .loc 1 4123 66 is_stmt 1 discriminator 4 view .LVU2595 4124:Middlewares/Third_Party/FatFs/src/ff.c **** } 7731 .loc 1 4124 6 discriminator 4 view .LVU2596 4124:Middlewares/Third_Party/FatFs/src/ff.c **** } 7732 .loc 1 4124 16 is_stmt 0 discriminator 4 view .LVU2597 7733 0218 E661 str r6, [r4, #28] 7734 .LVL884: 7735 .L546: 4105:Middlewares/Third_Party/FatFs/src/ff.c **** ofs -= bcs; fp->fptr += bcs; 7736 .loc 1 4105 11 is_stmt 1 view .LVU2598 7737 021a 4745 cmp r7, r8 7738 021c 10D9 bls .L548 4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7739 .loc 1 4106 6 view .LVU2599 4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7740 .loc 1 4106 10 is_stmt 0 view .LVU2600 7741 021e A7EB0807 sub r7, r7, r8 7742 .LVL885: 4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7743 .loc 1 4106 18 is_stmt 1 view .LVU2601 4106:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_READONLY 7744 .loc 1 4106 27 is_stmt 0 view .LVU2602 7745 0222 A369 ldr r3, [r4, #24] 7746 0224 4344 add r3, r3, r8 7747 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 ARM GAS /tmp/cczRNDQp.s page 280 7748 .loc 1 4108 6 is_stmt 1 view .LVU2603 4108:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize t 7749 .loc 1 4108 12 is_stmt 0 view .LVU2604 7750 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 7751 .loc 1 4108 9 view .LVU2605 7752 022a 13F0020F tst r3, #2 7753 022e E5D0 beq .L547 4109:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.objsize = fp->fptr; 7754 .loc 1 4109 7 is_stmt 1 view .LVU2606 4113:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Clip file size in case of disk full */ 7755 .loc 1 4113 7 view .LVU2607 4113:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst == 0) { /* Clip file size in case of disk full */ 7756 .loc 1 4113 14 is_stmt 0 view .LVU2608 7757 0230 3146 mov r1, r6 7758 0232 2046 mov r0, r4 7759 0234 FFF7FEFF bl create_chain 7760 .LVL886: 4114:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = 0; break; 7761 .loc 1 4114 7 is_stmt 1 view .LVU2609 4114:Middlewares/Third_Party/FatFs/src/ff.c **** ofs = 0; break; 7762 .loc 1 4114 10 is_stmt 0 view .LVU2610 7763 0238 0646 mov r6, r0 7764 023a 0028 cmp r0, #0 7765 023c E3D1 bne .L549 4115:Middlewares/Third_Party/FatFs/src/ff.c **** } 7766 .loc 1 4115 12 view .LVU2611 7767 023e 0746 mov r7, r0 7768 .LVL887: 7769 .L548: 4126:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) { 7770 .loc 1 4126 5 is_stmt 1 view .LVU2612 4126:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs % SS(fs)) { 7771 .loc 1 4126 14 is_stmt 0 view .LVU2613 7772 0240 A369 ldr r3, [r4, #24] 7773 0242 3B44 add r3, r3, r7 7774 0244 A361 str r3, [r4, #24] 4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */ 7775 .loc 1 4127 5 is_stmt 1 view .LVU2614 4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */ 7776 .loc 1 4127 15 is_stmt 0 view .LVU2615 7777 0246 0198 ldr r0, [sp, #4] 7778 0248 B0F80C80 ldrh r8, [r0, #12] 7779 .LVL888: 4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */ 7780 .loc 1 4127 13 view .LVU2616 7781 024c B7FBF8F3 udiv r3, r7, r8 7782 0250 08FB1373 mls r3, r8, r3, r7 4127:Middlewares/Third_Party/FatFs/src/ff.c **** nsect = clust2sect(fs, clst); /* Current sector */ 7783 .loc 1 4127 8 view .LVU2617 7784 0254 8BB1 cbz r3, .L564 4128:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nsect) ABORT(fs, FR_INT_ERR); 7785 .loc 1 4128 6 is_stmt 1 view .LVU2618 4128:Middlewares/Third_Party/FatFs/src/ff.c **** if (!nsect) ABORT(fs, FR_INT_ERR); 7786 .loc 1 4128 14 is_stmt 0 view .LVU2619 7787 0256 3146 mov r1, r6 7788 0258 FFF7FEFF bl clust2sect ARM GAS /tmp/cczRNDQp.s page 281 7789 .LVL889: 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7790 .loc 1 4129 6 is_stmt 1 view .LVU2620 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7791 .loc 1 4129 9 is_stmt 0 view .LVU2621 7792 025c 0646 mov r6, r0 7793 .LVL890: 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7794 .loc 1 4129 9 view .LVU2622 7795 025e 48B1 cbz r0, .L580 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7796 .loc 1 4129 39 is_stmt 1 discriminator 2 view .LVU2623 4130:Middlewares/Third_Party/FatFs/src/ff.c **** } 7797 .loc 1 4130 6 discriminator 2 view .LVU2624 4130:Middlewares/Third_Party/FatFs/src/ff.c **** } 7798 .loc 1 4130 15 is_stmt 0 discriminator 2 view .LVU2625 7799 0260 B7FBF8F7 udiv r7, r7, r8 7800 .LVL891: 4130:Middlewares/Third_Party/FatFs/src/ff.c **** } 7801 .loc 1 4130 12 discriminator 2 view .LVU2626 7802 0264 3E44 add r6, r6, r7 7803 .LVL892: 4130:Middlewares/Third_Party/FatFs/src/ff.c **** } 7804 .loc 1 4130 12 discriminator 2 view .LVU2627 7805 0266 92E7 b .L540 7806 .LVL893: 7807 .L579: 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7808 .loc 1 4122 30 is_stmt 1 discriminator 1 view .LVU2628 7809 0268 0125 movs r5, #1 7810 .LVL894: 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7811 .loc 1 4122 30 is_stmt 0 discriminator 1 view .LVU2629 7812 026a 6575 strb r5, [r4, #21] 4122:Middlewares/Third_Party/FatFs/src/ff.c **** if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); 7813 .loc 1 4122 30 is_stmt 1 discriminator 1 view .LVU2630 7814 026c E2E6 b .L525 7815 .LVL895: 7816 .L551: 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7817 .loc 1 4123 45 discriminator 3 view .LVU2631 7818 026e 0225 movs r5, #2 7819 .LVL896: 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7820 .loc 1 4123 45 is_stmt 0 discriminator 3 view .LVU2632 7821 0270 6575 strb r5, [r4, #21] 4123:Middlewares/Third_Party/FatFs/src/ff.c **** fp->clust = clst; 7822 .loc 1 4123 45 is_stmt 1 discriminator 3 view .LVU2633 7823 0272 DFE6 b .L525 7824 .LVL897: 7825 .L580: 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7826 .loc 1 4129 18 discriminator 1 view .LVU2634 7827 0274 0225 movs r5, #2 7828 .LVL898: 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7829 .loc 1 4129 18 is_stmt 0 discriminator 1 view .LVU2635 ARM GAS /tmp/cczRNDQp.s page 282 7830 0276 6575 strb r5, [r4, #21] 4129:Middlewares/Third_Party/FatFs/src/ff.c **** nsect += (DWORD)(ofs / SS(fs)); 7831 .loc 1 4129 18 is_stmt 1 discriminator 1 view .LVU2636 7832 0278 DCE6 b .L525 7833 .LVL899: 7834 .L564: 4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7835 .loc 1 4084 20 is_stmt 0 view .LVU2637 7836 027a 1E46 mov r6, r3 7837 .LVL900: 4084:Middlewares/Third_Party/FatFs/src/ff.c **** if (ofs) { 7838 .loc 1 4084 20 view .LVU2638 7839 027c 87E7 b .L540 7840 .LVL901: 7841 .L575: 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7842 .loc 1 4142 5 is_stmt 1 view .LVU2639 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7843 .loc 1 4142 9 is_stmt 0 view .LVU2640 7844 027e 0123 movs r3, #1 7845 0280 04F13001 add r1, r4, #48 7846 0284 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 7847 0286 FFF7FEFF bl disk_write 7848 .LVL902: 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7849 .loc 1 4142 8 view .LVU2641 7850 028a 20B9 cbnz r0, .L581 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7851 .loc 1 4142 84 is_stmt 1 discriminator 2 view .LVU2642 4143:Middlewares/Third_Party/FatFs/src/ff.c **** } 7852 .loc 1 4143 5 discriminator 2 view .LVU2643 4143:Middlewares/Third_Party/FatFs/src/ff.c **** } 7853 .loc 1 4143 14 is_stmt 0 discriminator 2 view .LVU2644 7854 028c 237D ldrb r3, [r4, #20] @ zero_extendqisi2 7855 028e 03F07F03 and r3, r3, #127 7856 0292 2375 strb r3, [r4, #20] 7857 0294 95E7 b .L556 7858 .L581: 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7859 .loc 1 4142 62 is_stmt 1 discriminator 1 view .LVU2645 7860 0296 0125 movs r5, #1 7861 .LVL903: 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7862 .loc 1 4142 62 is_stmt 0 discriminator 1 view .LVU2646 7863 0298 6575 strb r5, [r4, #21] 4142:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag &= (BYTE)~FA_DIRTY; 7864 .loc 1 4142 62 is_stmt 1 discriminator 1 view .LVU2647 7865 029a CBE6 b .L525 7866 .LVL904: 7867 .L576: 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7868 .loc 1 4146 57 discriminator 1 view .LVU2648 7869 029c 0125 movs r5, #1 7870 .LVL905: 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7871 .loc 1 4146 57 is_stmt 0 discriminator 1 view .LVU2649 7872 029e 6575 strb r5, [r4, #21] ARM GAS /tmp/cczRNDQp.s page 283 4146:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 7873 .loc 1 4146 57 is_stmt 1 discriminator 1 view .LVU2650 7874 02a0 C8E6 b .L525 7875 .LVL906: 7876 .L561: 4048:Middlewares/Third_Party/FatFs/src/ff.c **** } 7877 .loc 1 4048 9 is_stmt 0 view .LVU2651 7878 02a2 1125 movs r5, #17 7879 .LVL907: 4048:Middlewares/Third_Party/FatFs/src/ff.c **** } 7880 .loc 1 4048 9 view .LVU2652 7881 02a4 C6E6 b .L525 7882 .cfi_endproc 7883 .LFE1227: 7885 .section .text.f_opendir,"ax",%progbits 7886 .align 1 7887 .global f_opendir 7888 .syntax unified 7889 .thumb 7890 .thumb_func 7891 .fpu fpv5-d16 7893 f_opendir: 7894 .LVL908: 7895 .LFB1228: 4166:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7896 .loc 1 4166 1 is_stmt 1 view -0 7897 .cfi_startproc 7898 @ args = 0, pretend = 0, frame = 16 7899 @ frame_needed = 0, uses_anonymous_args = 0 4166:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 7900 .loc 1 4166 1 is_stmt 0 view .LVU2654 7901 0000 30B5 push {r4, r5, lr} 7902 .LCFI75: 7903 .cfi_def_cfa_offset 12 7904 .cfi_offset 4, -12 7905 .cfi_offset 5, -8 7906 .cfi_offset 14, -4 7907 0002 85B0 sub sp, sp, #20 7908 .LCFI76: 7909 .cfi_def_cfa_offset 32 7910 0004 0191 str r1, [sp, #4] 4167:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 7911 .loc 1 4167 2 is_stmt 1 view .LVU2655 4168:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID *obj; 7912 .loc 1 4168 2 view .LVU2656 4169:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF 7913 .loc 1 4169 2 view .LVU2657 4173:Middlewares/Third_Party/FatFs/src/ff.c **** 7914 .loc 1 4173 2 view .LVU2658 4173:Middlewares/Third_Party/FatFs/src/ff.c **** 7915 .loc 1 4173 5 is_stmt 0 view .LVU2659 7916 0006 0028 cmp r0, #0 7917 0008 3DD0 beq .L589 7918 000a 0546 mov r5, r0 4176:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path, &fs, 0); 7919 .loc 1 4176 2 is_stmt 1 view .LVU2660 7920 .LVL909: ARM GAS /tmp/cczRNDQp.s page 284 4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7921 .loc 1 4177 2 view .LVU2661 4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7922 .loc 1 4177 8 is_stmt 0 view .LVU2662 7923 000c 0022 movs r2, #0 7924 000e 03A9 add r1, sp, #12 7925 .LVL910: 4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7926 .loc 1 4177 8 view .LVU2663 7927 0010 01A8 add r0, sp, #4 7928 .LVL911: 4177:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 7929 .loc 1 4177 8 view .LVU2664 7930 0012 FFF7FEFF bl find_volume 7931 .LVL912: 4178:Middlewares/Third_Party/FatFs/src/ff.c **** obj->fs = fs; 7932 .loc 1 4178 2 is_stmt 1 view .LVU2665 4178:Middlewares/Third_Party/FatFs/src/ff.c **** obj->fs = fs; 7933 .loc 1 4178 5 is_stmt 0 view .LVU2666 7934 0016 0446 mov r4, r0 7935 0018 28B1 cbz r0, .L594 7936 .L584: 4220:Middlewares/Third_Party/FatFs/src/ff.c **** 7937 .loc 1 4220 2 is_stmt 1 view .LVU2667 4220:Middlewares/Third_Party/FatFs/src/ff.c **** 7938 .loc 1 4220 5 is_stmt 0 view .LVU2668 7939 001a 0CB1 cbz r4, .L583 7940 .L588: 4220:Middlewares/Third_Party/FatFs/src/ff.c **** 7941 .loc 1 4220 20 is_stmt 1 discriminator 1 view .LVU2669 4220:Middlewares/Third_Party/FatFs/src/ff.c **** 7942 .loc 1 4220 28 is_stmt 0 discriminator 1 view .LVU2670 7943 001c 0023 movs r3, #0 7944 001e 2B60 str r3, [r5] 7945 .LVL913: 7946 .L583: 4223:Middlewares/Third_Party/FatFs/src/ff.c **** 7947 .loc 1 4223 1 view .LVU2671 7948 0020 2046 mov r0, r4 7949 0022 05B0 add sp, sp, #20 7950 .LCFI77: 7951 .cfi_remember_state 7952 .cfi_def_cfa_offset 12 7953 @ sp needed 7954 0024 30BD pop {r4, r5, pc} 7955 .LVL914: 7956 .L594: 7957 .LCFI78: 7958 .cfi_restore_state 4179:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 7959 .loc 1 4179 3 is_stmt 1 view .LVU2672 4179:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 7960 .loc 1 4179 11 is_stmt 0 view .LVU2673 7961 0026 039B ldr r3, [sp, #12] 7962 0028 2B60 str r3, [r5] 4180:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(dp, path); /* Follow the path to the directory */ 7963 .loc 1 4180 18 is_stmt 1 view .LVU2674 ARM GAS /tmp/cczRNDQp.s page 285 4181:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */ 7964 .loc 1 4181 3 view .LVU2675 4181:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */ 7965 .loc 1 4181 9 is_stmt 0 view .LVU2676 7966 002a 0199 ldr r1, [sp, #4] 7967 002c 2846 mov r0, r5 7968 002e FFF7FEFF bl follow_path 7969 .LVL915: 4182:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */ 7970 .loc 1 4182 3 is_stmt 1 view .LVU2677 4182:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */ 7971 .loc 1 4182 6 is_stmt 0 view .LVU2678 7972 0032 0446 mov r4, r0 7973 0034 18BB cbnz r0, .L585 4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */ 7974 .loc 1 4183 4 is_stmt 1 view .LVU2679 4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */ 7975 .loc 1 4183 8 is_stmt 0 view .LVU2680 7976 0036 95F92F30 ldrsb r3, [r5, #47] 4183:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->attr & AM_DIR) { /* This object is a sub-directory */ 7977 .loc 1 4183 7 view .LVU2681 7978 003a 002B cmp r3, #0 7979 003c 08DB blt .L586 4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 7980 .loc 1 4184 5 is_stmt 1 view .LVU2682 4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 7981 .loc 1 4184 12 is_stmt 0 view .LVU2683 7982 003e AB79 ldrb r3, [r5, #6] @ zero_extendqisi2 4184:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 7983 .loc 1 4184 8 view .LVU2684 7984 0040 13F0100F tst r3, #16 7985 0044 1AD0 beq .L590 4196:Middlewares/Third_Party/FatFs/src/ff.c **** } 7986 .loc 1 4196 7 is_stmt 1 view .LVU2685 4196:Middlewares/Third_Party/FatFs/src/ff.c **** } 7987 .loc 1 4196 21 is_stmt 0 view .LVU2686 7988 0046 296A ldr r1, [r5, #32] 7989 0048 0398 ldr r0, [sp, #12] 7990 004a FFF7FEFF bl ld_clust 7991 .LVL916: 4196:Middlewares/Third_Party/FatFs/src/ff.c **** } 7992 .loc 1 4196 19 view .LVU2687 7993 004e A860 str r0, [r5, #8] 7994 .L586: 4202:Middlewares/Third_Party/FatFs/src/ff.c **** obj->id = fs->id; 7995 .loc 1 4202 4 is_stmt 1 view .LVU2688 4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */ 7996 .loc 1 4203 5 view .LVU2689 4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */ 7997 .loc 1 4203 17 is_stmt 0 view .LVU2690 7998 0050 039B ldr r3, [sp, #12] 7999 0052 DB88 ldrh r3, [r3, #6] 4203:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind directory */ 8000 .loc 1 4203 13 view .LVU2691 8001 0054 AB80 strh r3, [r5, #4] @ movhi 4204:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 8002 .loc 1 4204 5 is_stmt 1 view .LVU2692 ARM GAS /tmp/cczRNDQp.s page 286 4204:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 8003 .loc 1 4204 11 is_stmt 0 view .LVU2693 8004 0056 0021 movs r1, #0 8005 0058 2846 mov r0, r5 8006 005a FFF7FEFF bl dir_sdi 8007 .LVL917: 4206:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->sclust) { 8008 .loc 1 4206 5 is_stmt 1 view .LVU2694 4206:Middlewares/Third_Party/FatFs/src/ff.c **** if (obj->sclust) { 8009 .loc 1 4206 8 is_stmt 0 view .LVU2695 8010 005e 0446 mov r4, r0 8011 0060 68B9 cbnz r0, .L585 4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */ 8012 .loc 1 4207 6 is_stmt 1 view .LVU2696 4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */ 8013 .loc 1 4207 13 is_stmt 0 view .LVU2697 8014 0062 AB68 ldr r3, [r5, #8] 4207:Middlewares/Third_Party/FatFs/src/ff.c **** obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */ 8015 .loc 1 4207 9 view .LVU2698 8016 0064 13B9 cbnz r3, .L595 4211:Middlewares/Third_Party/FatFs/src/ff.c **** } 8017 .loc 1 4211 7 is_stmt 1 view .LVU2699 4211:Middlewares/Third_Party/FatFs/src/ff.c **** } 8018 .loc 1 4211 19 is_stmt 0 view .LVU2700 8019 0066 0023 movs r3, #0 8020 0068 2B61 str r3, [r5, #16] 8021 006a 08E0 b .L585 8022 .L595: 4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES; 8023 .loc 1 4208 7 is_stmt 1 view .LVU2701 4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES; 8024 .loc 1 4208 21 is_stmt 0 view .LVU2702 8025 006c 0021 movs r1, #0 8026 006e 2846 mov r0, r5 8027 0070 FFF7FEFF bl inc_lock 8028 .LVL918: 4208:Middlewares/Third_Party/FatFs/src/ff.c **** if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES; 8029 .loc 1 4208 19 view .LVU2703 8030 0074 2861 str r0, [r5, #16] 4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8031 .loc 1 4209 7 is_stmt 1 view .LVU2704 4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8032 .loc 1 4209 10 is_stmt 0 view .LVU2705 8033 0076 10B9 cbnz r0, .L585 8034 .LVL919: 4209:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8035 .loc 1 4209 29 view .LVU2706 8036 0078 1224 movs r4, #18 8037 007a CEE7 b .L584 8038 .LVL920: 8039 .L590: 4199:Middlewares/Third_Party/FatFs/src/ff.c **** } 8040 .loc 1 4199 10 view .LVU2707 8041 007c 0524 movs r4, #5 8042 .LVL921: 8043 .L585: 4217:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_NO_PATH; ARM GAS /tmp/cczRNDQp.s page 287 8044 .loc 1 4217 16 is_stmt 1 view .LVU2708 4218:Middlewares/Third_Party/FatFs/src/ff.c **** } 8045 .loc 1 4218 3 view .LVU2709 4218:Middlewares/Third_Party/FatFs/src/ff.c **** } 8046 .loc 1 4218 6 is_stmt 0 view .LVU2710 8047 007e 042C cmp r4, #4 8048 0080 CBD1 bne .L584 8049 .LVL922: 4218:Middlewares/Third_Party/FatFs/src/ff.c **** } 8050 .loc 1 4218 30 view .LVU2711 8051 0082 0524 movs r4, #5 8052 0084 CAE7 b .L588 8053 .LVL923: 8054 .L589: 4173:Middlewares/Third_Party/FatFs/src/ff.c **** 8055 .loc 1 4173 18 view .LVU2712 8056 0086 0924 movs r4, #9 8057 0088 CAE7 b .L583 8058 .cfi_endproc 8059 .LFE1228: 8061 .section .text.f_closedir,"ax",%progbits 8062 .align 1 8063 .global f_closedir 8064 .syntax unified 8065 .thumb 8066 .thumb_func 8067 .fpu fpv5-d16 8069 f_closedir: 8070 .LVL924: 8071 .LFB1229: 4235:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8072 .loc 1 4235 1 is_stmt 1 view -0 8073 .cfi_startproc 8074 @ args = 0, pretend = 0, frame = 8 8075 @ frame_needed = 0, uses_anonymous_args = 0 4235:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8076 .loc 1 4235 1 is_stmt 0 view .LVU2714 8077 0000 10B5 push {r4, lr} 8078 .LCFI79: 8079 .cfi_def_cfa_offset 8 8080 .cfi_offset 4, -8 8081 .cfi_offset 14, -4 8082 0002 82B0 sub sp, sp, #8 8083 .LCFI80: 8084 .cfi_def_cfa_offset 16 8085 0004 0446 mov r4, r0 4236:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8086 .loc 1 4236 2 is_stmt 1 view .LVU2715 4237:Middlewares/Third_Party/FatFs/src/ff.c **** 8087 .loc 1 4237 2 view .LVU2716 4240:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8088 .loc 1 4240 2 view .LVU2717 4240:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8089 .loc 1 4240 8 is_stmt 0 view .LVU2718 8090 0006 01A9 add r1, sp, #4 8091 0008 FFF7FEFF bl validate 8092 .LVL925: ARM GAS /tmp/cczRNDQp.s page 288 4241:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 8093 .loc 1 4241 2 is_stmt 1 view .LVU2719 4241:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 8094 .loc 1 4241 5 is_stmt 0 view .LVU2720 8095 000c 20B9 cbnz r0, .L597 4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid); 8096 .loc 1 4243 3 is_stmt 1 view .LVU2721 4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid); 8097 .loc 1 4243 14 is_stmt 0 view .LVU2722 8098 000e 2369 ldr r3, [r4, #16] 4243:Middlewares/Third_Party/FatFs/src/ff.c **** res = dec_lock(dp->obj.lockid); 8099 .loc 1 4243 6 view .LVU2723 8100 0010 23B9 cbnz r3, .L600 8101 .L598: 8102 .LVL926: 4246:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8103 .loc 1 4246 3 is_stmt 1 view .LVU2724 4246:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8104 .loc 1 4246 6 is_stmt 0 view .LVU2725 8105 0012 08B9 cbnz r0, .L597 4249:Middlewares/Third_Party/FatFs/src/ff.c **** } 8106 .loc 1 4249 4 is_stmt 1 view .LVU2726 4249:Middlewares/Third_Party/FatFs/src/ff.c **** } 8107 .loc 1 4249 15 is_stmt 0 view .LVU2727 8108 0014 0023 movs r3, #0 8109 0016 2360 str r3, [r4] 8110 .LVL927: 8111 .L597: 4255:Middlewares/Third_Party/FatFs/src/ff.c **** } 8112 .loc 1 4255 2 is_stmt 1 view .LVU2728 4256:Middlewares/Third_Party/FatFs/src/ff.c **** 8113 .loc 1 4256 1 is_stmt 0 view .LVU2729 8114 0018 02B0 add sp, sp, #8 8115 .LCFI81: 8116 .cfi_remember_state 8117 .cfi_def_cfa_offset 8 8118 @ sp needed 8119 001a 10BD pop {r4, pc} 8120 .LVL928: 8121 .L600: 8122 .LCFI82: 8123 .cfi_restore_state 4244:Middlewares/Third_Party/FatFs/src/ff.c **** } 8124 .loc 1 4244 4 is_stmt 1 view .LVU2730 4244:Middlewares/Third_Party/FatFs/src/ff.c **** } 8125 .loc 1 4244 10 is_stmt 0 view .LVU2731 8126 001c 1846 mov r0, r3 8127 001e FFF7FEFF bl dec_lock 8128 .LVL929: 4244:Middlewares/Third_Party/FatFs/src/ff.c **** } 8129 .loc 1 4244 10 view .LVU2732 8130 0022 F6E7 b .L598 8131 .cfi_endproc 8132 .LFE1229: 8134 .section .text.f_readdir,"ax",%progbits 8135 .align 1 8136 .global f_readdir ARM GAS /tmp/cczRNDQp.s page 289 8137 .syntax unified 8138 .thumb 8139 .thumb_func 8140 .fpu fpv5-d16 8142 f_readdir: 8143 .LVL930: 8144 .LFB1230: 4269:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8145 .loc 1 4269 1 is_stmt 1 view -0 8146 .cfi_startproc 8147 @ args = 0, pretend = 0, frame = 8 8148 @ frame_needed = 0, uses_anonymous_args = 0 4269:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8149 .loc 1 4269 1 is_stmt 0 view .LVU2734 8150 0000 70B5 push {r4, r5, r6, lr} 8151 .LCFI83: 8152 .cfi_def_cfa_offset 16 8153 .cfi_offset 4, -16 8154 .cfi_offset 5, -12 8155 .cfi_offset 6, -8 8156 .cfi_offset 14, -4 8157 0002 82B0 sub sp, sp, #8 8158 .LCFI84: 8159 .cfi_def_cfa_offset 24 8160 0004 0446 mov r4, r0 8161 0006 0D46 mov r5, r1 4270:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8162 .loc 1 4270 2 is_stmt 1 view .LVU2735 4271:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF 8163 .loc 1 4271 2 view .LVU2736 4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8164 .loc 1 4275 2 view .LVU2737 4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8165 .loc 1 4275 8 is_stmt 0 view .LVU2738 8166 0008 01A9 add r1, sp, #4 8167 .LVL931: 4275:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8168 .loc 1 4275 8 view .LVU2739 8169 000a FFF7FEFF bl validate 8170 .LVL932: 4276:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fno) { 8171 .loc 1 4276 2 is_stmt 1 view .LVU2740 4276:Middlewares/Third_Party/FatFs/src/ff.c **** if (!fno) { 8172 .loc 1 4276 5 is_stmt 0 view .LVU2741 8173 000e 0646 mov r6, r0 8174 0010 C0B9 cbnz r0, .L602 4277:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind the directory object */ 8175 .loc 1 4277 3 is_stmt 1 view .LVU2742 4277:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_sdi(dp, 0); /* Rewind the directory object */ 8176 .loc 1 4277 6 is_stmt 0 view .LVU2743 8177 0012 95B1 cbz r5, .L607 4280:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(dp, 0); /* Read an item */ 8178 .loc 1 4280 19 is_stmt 1 view .LVU2744 4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ 8179 .loc 1 4281 4 view .LVU2745 4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ 8180 .loc 1 4281 10 is_stmt 0 view .LVU2746 ARM GAS /tmp/cczRNDQp.s page 290 8181 0014 0021 movs r1, #0 8182 0016 2046 mov r0, r4 8183 .LVL933: 4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ 8184 .loc 1 4281 10 view .LVU2747 8185 0018 FFF7FEFF bl dir_read 8186 .LVL934: 4282:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A valid entry is found */ 8187 .loc 1 4282 4 is_stmt 1 view .LVU2748 4282:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* A valid entry is found */ 8188 .loc 1 4282 7 is_stmt 0 view .LVU2749 8189 001c 0428 cmp r0, #4 8190 001e 00D0 beq .L604 4283:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(dp, fno); /* Get the object information */ 8191 .loc 1 4283 4 is_stmt 1 view .LVU2750 4283:Middlewares/Third_Party/FatFs/src/ff.c **** get_fileinfo(dp, fno); /* Get the object information */ 8192 .loc 1 4283 7 is_stmt 0 view .LVU2751 8193 0020 98B9 cbnz r0, .L605 8194 .L604: 8195 .LVL935: 4284:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_next(dp, 0); /* Increment index for next */ 8196 .loc 1 4284 5 is_stmt 1 view .LVU2752 8197 0022 2946 mov r1, r5 8198 0024 2046 mov r0, r4 8199 0026 FFF7FEFF bl get_fileinfo 8200 .LVL936: 4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */ 8201 .loc 1 4285 5 view .LVU2753 4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */ 8202 .loc 1 4285 11 is_stmt 0 view .LVU2754 8203 002a 0021 movs r1, #0 8204 002c 2046 mov r0, r4 8205 002e FFF7FEFF bl dir_next 8206 .LVL937: 4286:Middlewares/Third_Party/FatFs/src/ff.c **** } 8207 .loc 1 4286 5 is_stmt 1 view .LVU2755 4286:Middlewares/Third_Party/FatFs/src/ff.c **** } 8208 .loc 1 4286 8 is_stmt 0 view .LVU2756 8209 0032 0428 cmp r0, #4 8210 0034 06D0 beq .L602 4285:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */ 8211 .loc 1 4285 11 view .LVU2757 8212 0036 0646 mov r6, r0 8213 0038 04E0 b .L602 8214 .L607: 4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8215 .loc 1 4278 4 is_stmt 1 view .LVU2758 4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8216 .loc 1 4278 10 is_stmt 0 view .LVU2759 8217 003a 0021 movs r1, #0 8218 003c 2046 mov r0, r4 8219 .LVL938: 4278:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8220 .loc 1 4278 10 view .LVU2760 8221 003e FFF7FEFF bl dir_sdi 8222 .LVL939: 8223 0042 0646 mov r6, r0 ARM GAS /tmp/cczRNDQp.s page 291 8224 .LVL940: 8225 .L602: 4288:Middlewares/Third_Party/FatFs/src/ff.c **** } 8226 .loc 1 4288 17 is_stmt 1 view .LVU2761 4291:Middlewares/Third_Party/FatFs/src/ff.c **** } 8227 .loc 1 4291 2 view .LVU2762 4292:Middlewares/Third_Party/FatFs/src/ff.c **** 8228 .loc 1 4292 1 is_stmt 0 view .LVU2763 8229 0044 3046 mov r0, r6 8230 0046 02B0 add sp, sp, #8 8231 .LCFI85: 8232 .cfi_remember_state 8233 .cfi_def_cfa_offset 16 8234 @ sp needed 8235 0048 70BD pop {r4, r5, r6, pc} 8236 .LVL941: 8237 .L605: 8238 .LCFI86: 8239 .cfi_restore_state 4281:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ 8240 .loc 1 4281 10 view .LVU2764 8241 004a 0646 mov r6, r0 8242 004c FAE7 b .L602 8243 .cfi_endproc 8244 .LFE1230: 8246 .section .text.f_stat,"ax",%progbits 8247 .align 1 8248 .global f_stat 8249 .syntax unified 8250 .thumb 8251 .thumb_func 8252 .fpu fpv5-d16 8254 f_stat: 8255 .LVL942: 8256 .LFB1231: 4357:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8257 .loc 1 4357 1 is_stmt 1 view -0 8258 .cfi_startproc 8259 @ args = 0, pretend = 0, frame = 56 8260 @ frame_needed = 0, uses_anonymous_args = 0 4357:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8261 .loc 1 4357 1 is_stmt 0 view .LVU2766 8262 0000 30B5 push {r4, r5, lr} 8263 .LCFI87: 8264 .cfi_def_cfa_offset 12 8265 .cfi_offset 4, -12 8266 .cfi_offset 5, -8 8267 .cfi_offset 14, -4 8268 0002 8FB0 sub sp, sp, #60 8269 .LCFI88: 8270 .cfi_def_cfa_offset 72 8271 0004 0190 str r0, [sp, #4] 8272 0006 0C46 mov r4, r1 4358:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj; 8273 .loc 1 4358 2 is_stmt 1 view .LVU2767 4359:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF 8274 .loc 1 4359 2 view .LVU2768 ARM GAS /tmp/cczRNDQp.s page 292 4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8275 .loc 1 4364 2 view .LVU2769 4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8276 .loc 1 4364 8 is_stmt 0 view .LVU2770 8277 0008 0022 movs r2, #0 8278 000a 02A9 add r1, sp, #8 8279 .LVL943: 4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8280 .loc 1 4364 8 view .LVU2771 8281 000c 01A8 add r0, sp, #4 8282 .LVL944: 4364:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8283 .loc 1 4364 8 view .LVU2772 8284 000e FFF7FEFF bl find_volume 8285 .LVL945: 4365:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(dj.obj.fs); 8286 .loc 1 4365 2 is_stmt 1 view .LVU2773 4365:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(dj.obj.fs); 8287 .loc 1 4365 5 is_stmt 0 view .LVU2774 8288 0012 0546 mov r5, r0 8289 0014 10B1 cbz r0, .L612 8290 .LVL946: 8291 .L609: 4375:Middlewares/Third_Party/FatFs/src/ff.c **** } 8292 .loc 1 4375 16 is_stmt 1 view .LVU2775 4378:Middlewares/Third_Party/FatFs/src/ff.c **** } 8293 .loc 1 4378 2 view .LVU2776 4379:Middlewares/Third_Party/FatFs/src/ff.c **** 8294 .loc 1 4379 1 is_stmt 0 view .LVU2777 8295 0016 2846 mov r0, r5 8296 0018 0FB0 add sp, sp, #60 8297 .LCFI89: 8298 .cfi_remember_state 8299 .cfi_def_cfa_offset 12 8300 @ sp needed 8301 001a 30BD pop {r4, r5, pc} 8302 .LVL947: 8303 .L612: 8304 .LCFI90: 8305 .cfi_restore_state 4366:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */ 8306 .loc 1 4366 25 is_stmt 1 view .LVU2778 4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */ 8307 .loc 1 4367 3 view .LVU2779 4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */ 8308 .loc 1 4367 9 is_stmt 0 view .LVU2780 8309 001c 0199 ldr r1, [sp, #4] 8310 001e 02A8 add r0, sp, #8 8311 .LVL948: 4367:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Follow completed */ 8312 .loc 1 4367 9 view .LVU2781 8313 0020 FFF7FEFF bl follow_path 8314 .LVL949: 4368:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */ 8315 .loc 1 4368 3 is_stmt 1 view .LVU2782 4368:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */ 8316 .loc 1 4368 6 is_stmt 0 view .LVU2783 ARM GAS /tmp/cczRNDQp.s page 293 8317 0024 0546 mov r5, r0 8318 0026 0028 cmp r0, #0 8319 0028 F5D1 bne .L609 4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 8320 .loc 1 4369 4 is_stmt 1 view .LVU2784 4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 8321 .loc 1 4369 8 is_stmt 0 view .LVU2785 8322 002a 9DF93730 ldrsb r3, [sp, #55] 4369:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 8323 .loc 1 4369 7 view .LVU2786 8324 002e 002B cmp r3, #0 8325 0030 06DB blt .L610 4372:Middlewares/Third_Party/FatFs/src/ff.c **** } 8326 .loc 1 4372 5 is_stmt 1 view .LVU2787 4372:Middlewares/Third_Party/FatFs/src/ff.c **** } 8327 .loc 1 4372 8 is_stmt 0 view .LVU2788 8328 0032 002C cmp r4, #0 8329 0034 EFD0 beq .L609 4372:Middlewares/Third_Party/FatFs/src/ff.c **** } 8330 .loc 1 4372 14 is_stmt 1 discriminator 1 view .LVU2789 8331 0036 2146 mov r1, r4 8332 0038 02A8 add r0, sp, #8 8333 .LVL950: 4372:Middlewares/Third_Party/FatFs/src/ff.c **** } 8334 .loc 1 4372 14 is_stmt 0 discriminator 1 view .LVU2790 8335 003a FFF7FEFF bl get_fileinfo 8336 .LVL951: 8337 003e EAE7 b .L609 8338 .LVL952: 8339 .L610: 4370:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* Found an object */ 8340 .loc 1 4370 9 view .LVU2791 8341 0040 0625 movs r5, #6 8342 0042 E8E7 b .L609 8343 .cfi_endproc 8344 .LFE1231: 8346 .section .text.f_getfree,"ax",%progbits 8347 .align 1 8348 .global f_getfree 8349 .syntax unified 8350 .thumb 8351 .thumb_func 8352 .fpu fpv5-d16 8354 f_getfree: 8355 .LVL953: 8356 .LFB1232: 4393:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8357 .loc 1 4393 1 is_stmt 1 view -0 8358 .cfi_startproc 8359 @ args = 0, pretend = 0, frame = 32 8360 @ frame_needed = 0, uses_anonymous_args = 0 4393:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8361 .loc 1 4393 1 is_stmt 0 view .LVU2793 8362 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8363 .LCFI91: 8364 .cfi_def_cfa_offset 36 8365 .cfi_offset 4, -36 ARM GAS /tmp/cczRNDQp.s page 294 8366 .cfi_offset 5, -32 8367 .cfi_offset 6, -28 8368 .cfi_offset 7, -24 8369 .cfi_offset 8, -20 8370 .cfi_offset 9, -16 8371 .cfi_offset 10, -12 8372 .cfi_offset 11, -8 8373 .cfi_offset 14, -4 8374 0004 89B0 sub sp, sp, #36 8375 .LCFI92: 8376 .cfi_def_cfa_offset 72 8377 0006 0190 str r0, [sp, #4] 8378 0008 8846 mov r8, r1 8379 000a 1446 mov r4, r2 4394:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8380 .loc 1 4394 2 is_stmt 1 view .LVU2794 4395:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD nfree, clst, sect, stat; 8381 .loc 1 4395 2 view .LVU2795 4396:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 8382 .loc 1 4396 2 view .LVU2796 4397:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *p; 8383 .loc 1 4397 2 view .LVU2797 4398:Middlewares/Third_Party/FatFs/src/ff.c **** _FDID obj; 8384 .loc 1 4398 2 view .LVU2798 4399:Middlewares/Third_Party/FatFs/src/ff.c **** 8385 .loc 1 4399 2 view .LVU2799 4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8386 .loc 1 4403 2 view .LVU2800 4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8387 .loc 1 4403 8 is_stmt 0 view .LVU2801 8388 000c 0022 movs r2, #0 8389 .LVL954: 4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8390 .loc 1 4403 8 view .LVU2802 8391 000e 07A9 add r1, sp, #28 8392 .LVL955: 4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8393 .loc 1 4403 8 view .LVU2803 8394 0010 01A8 add r0, sp, #4 8395 .LVL956: 4403:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8396 .loc 1 4403 8 view .LVU2804 8397 0012 FFF7FEFF bl find_volume 8398 .LVL957: 4404:Middlewares/Third_Party/FatFs/src/ff.c **** *fatfs = fs; /* Return ptr to the fs object */ 8399 .loc 1 4404 2 is_stmt 1 view .LVU2805 4404:Middlewares/Third_Party/FatFs/src/ff.c **** *fatfs = fs; /* Return ptr to the fs object */ 8400 .loc 1 4404 5 is_stmt 0 view .LVU2806 8401 0016 8146 mov r9, r0 8402 0018 0028 cmp r0, #0 8403 001a 59D1 bne .L614 4405:Middlewares/Third_Party/FatFs/src/ff.c **** /* If free_clst is valid, return it without full cluster scan */ 8404 .loc 1 4405 3 is_stmt 1 view .LVU2807 4405:Middlewares/Third_Party/FatFs/src/ff.c **** /* If free_clst is valid, return it without full cluster scan */ 8405 .loc 1 4405 10 is_stmt 0 view .LVU2808 8406 001c 079B ldr r3, [sp, #28] 8407 001e 2360 str r3, [r4] ARM GAS /tmp/cczRNDQp.s page 295 4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst; 8408 .loc 1 4407 3 is_stmt 1 view .LVU2809 4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst; 8409 .loc 1 4407 9 is_stmt 0 view .LVU2810 8410 0020 5A69 ldr r2, [r3, #20] 4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst; 8411 .loc 1 4407 26 view .LVU2811 8412 0022 9D69 ldr r5, [r3, #24] 4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst; 8413 .loc 1 4407 37 view .LVU2812 8414 0024 A91E subs r1, r5, #2 4407:Middlewares/Third_Party/FatFs/src/ff.c **** *nclst = fs->free_clst; 8415 .loc 1 4407 6 view .LVU2813 8416 0026 8A42 cmp r2, r1 8417 0028 02D8 bhi .L615 4408:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8418 .loc 1 4408 4 is_stmt 1 view .LVU2814 4408:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8419 .loc 1 4408 11 is_stmt 0 view .LVU2815 8420 002a C8F80020 str r2, [r8] 8421 002e 4FE0 b .L614 8422 .L615: 4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */ 8423 .loc 1 4411 4 is_stmt 1 view .LVU2816 8424 .LVL958: 4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs; 8425 .loc 1 4412 4 view .LVU2817 4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs; 8426 .loc 1 4412 10 is_stmt 0 view .LVU2818 8427 0030 1E78 ldrb r6, [r3] @ zero_extendqisi2 4412:Middlewares/Third_Party/FatFs/src/ff.c **** clst = 2; obj.fs = fs; 8428 .loc 1 4412 7 view .LVU2819 8429 0032 012E cmp r6, #1 8430 0034 05D0 beq .L629 4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0; 8431 .loc 1 4440 6 is_stmt 1 view .LVU2820 8432 .LVL959: 4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0; 8433 .loc 1 4440 27 view .LVU2821 4440:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; p = 0; 8434 .loc 1 4440 32 is_stmt 0 view .LVU2822 8435 0036 D3F824A0 ldr r10, [r3, #36] 8436 .LVL960: 4441:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8437 .loc 1 4441 6 is_stmt 1 view .LVU2823 4441:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8438 .loc 1 4441 13 view .LVU2824 4441:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8439 .loc 1 4441 15 is_stmt 0 view .LVU2825 8440 003a 0024 movs r4, #0 8441 .LVL961: 4441:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8442 .loc 1 4441 8 view .LVU2826 8443 003c 2646 mov r6, r4 4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */ 8444 .loc 1 4411 10 view .LVU2827 8445 003e 2746 mov r7, r4 ARM GAS /tmp/cczRNDQp.s page 296 8446 0040 2FE0 b .L625 8447 .LVL962: 8448 .L629: 4413:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8449 .loc 1 4413 5 is_stmt 1 view .LVU2828 4413:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8450 .loc 1 4413 15 view .LVU2829 4413:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8451 .loc 1 4413 22 is_stmt 0 view .LVU2830 8452 0042 0293 str r3, [sp, #8] 4413:Middlewares/Third_Party/FatFs/src/ff.c **** do { 8453 .loc 1 4413 10 view .LVU2831 8454 0044 0224 movs r4, #2 8455 .LVL963: 4411:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */ 8456 .loc 1 4411 10 view .LVU2832 8457 0046 0027 movs r7, #0 8458 0048 04E0 b .L619 8459 .LVL964: 8460 .L618: 4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8461 .loc 1 4419 13 is_stmt 1 view .LVU2833 4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8462 .loc 1 4419 5 is_stmt 0 view .LVU2834 8463 004a 0134 adds r4, r4, #1 8464 .LVL965: 4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8465 .loc 1 4419 25 view .LVU2835 8466 004c 079B ldr r3, [sp, #28] 8467 004e 9B69 ldr r3, [r3, #24] 4419:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8468 .loc 1 4419 5 view .LVU2836 8469 0050 A342 cmp r3, r4 8470 0052 35D9 bls .L617 8471 .LVL966: 8472 .L619: 4414:Middlewares/Third_Party/FatFs/src/ff.c **** stat = get_fat(&obj, clst); 8473 .loc 1 4414 5 is_stmt 1 view .LVU2837 4415:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } 8474 .loc 1 4415 6 view .LVU2838 4415:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } 8475 .loc 1 4415 13 is_stmt 0 view .LVU2839 8476 0054 2146 mov r1, r4 8477 0056 02A8 add r0, sp, #8 8478 0058 FFF7FEFF bl get_fat 8479 .LVL967: 4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; } 8480 .loc 1 4416 6 is_stmt 1 view .LVU2840 4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; } 8481 .loc 1 4416 9 is_stmt 0 view .LVU2841 8482 005c B0F1FF3F cmp r0, #-1 8483 0060 2DD0 beq .L626 4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++; 8484 .loc 1 4417 6 is_stmt 1 view .LVU2842 4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++; 8485 .loc 1 4417 9 is_stmt 0 view .LVU2843 8486 0062 0128 cmp r0, #1 ARM GAS /tmp/cczRNDQp.s page 297 8487 0064 38D0 beq .L627 4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent); 8488 .loc 1 4418 6 is_stmt 1 view .LVU2844 4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent); 8489 .loc 1 4418 9 is_stmt 0 view .LVU2845 8490 0066 0028 cmp r0, #0 8491 0068 EFD1 bne .L618 4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent); 8492 .loc 1 4418 21 is_stmt 1 discriminator 1 view .LVU2846 4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent); 8493 .loc 1 4418 26 is_stmt 0 discriminator 1 view .LVU2847 8494 006a 0137 adds r7, r7, #1 8495 .LVL968: 4418:Middlewares/Third_Party/FatFs/src/ff.c **** } while (++clst < fs->n_fatent); 8496 .loc 1 4418 26 discriminator 1 view .LVU2848 8497 006c EDE7 b .L618 8498 .LVL969: 8499 .L630: 4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 8500 .loc 1 4444 8 is_stmt 1 view .LVU2849 4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 8501 .loc 1 4444 14 is_stmt 0 view .LVU2850 8502 006e 0AF1010B add fp, r10, #1 8503 .LVL970: 4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 8504 .loc 1 4444 14 view .LVU2851 8505 0072 5146 mov r1, r10 8506 0074 0798 ldr r0, [sp, #28] 8507 0076 FFF7FEFF bl move_window 8508 .LVL971: 4445:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win; 8509 .loc 1 4445 8 is_stmt 1 view .LVU2852 4445:Middlewares/Third_Party/FatFs/src/ff.c **** p = fs->win; 8510 .loc 1 4445 11 is_stmt 0 view .LVU2853 8511 007a 8146 mov r9, r0 8512 007c 00BB cbnz r0, .L617 4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs); 8513 .loc 1 4446 8 is_stmt 1 view .LVU2854 4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs); 8514 .loc 1 4446 14 is_stmt 0 view .LVU2855 8515 007e 079B ldr r3, [sp, #28] 4446:Middlewares/Third_Party/FatFs/src/ff.c **** i = SS(fs); 8516 .loc 1 4446 10 view .LVU2856 8517 0080 03F13404 add r4, r3, #52 8518 .LVL972: 4447:Middlewares/Third_Party/FatFs/src/ff.c **** } 8519 .loc 1 4447 8 is_stmt 1 view .LVU2857 4447:Middlewares/Third_Party/FatFs/src/ff.c **** } 8520 .loc 1 4447 12 is_stmt 0 view .LVU2858 8521 0084 9E89 ldrh r6, [r3, #12] 8522 .LVL973: 4444:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 8523 .loc 1 4444 14 view .LVU2859 8524 0086 DA46 mov r10, fp 8525 0088 0DE0 b .L620 8526 .LVL974: 8527 .L631: ARM GAS /tmp/cczRNDQp.s page 298 4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2; 8528 .loc 1 4450 8 is_stmt 1 view .LVU2860 4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2; 8529 .loc 1 4450 12 is_stmt 0 view .LVU2861 8530 008a 2046 mov r0, r4 8531 008c FFF7FEFF bl ld_word 8532 .LVL975: 4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2; 8533 .loc 1 4450 11 view .LVU2862 8534 0090 00B9 cbnz r0, .L622 4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2; 8535 .loc 1 4450 29 is_stmt 1 discriminator 1 view .LVU2863 4450:Middlewares/Third_Party/FatFs/src/ff.c **** p += 2; i -= 2; 8536 .loc 1 4450 34 is_stmt 0 discriminator 1 view .LVU2864 8537 0092 0137 adds r7, r7, #1 8538 .LVL976: 8539 .L622: 4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8540 .loc 1 4451 8 is_stmt 1 view .LVU2865 4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8541 .loc 1 4451 10 is_stmt 0 view .LVU2866 8542 0094 0234 adds r4, r4, #2 8543 .LVL977: 4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8544 .loc 1 4451 16 is_stmt 1 view .LVU2867 4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8545 .loc 1 4451 18 is_stmt 0 view .LVU2868 8546 0096 023E subs r6, r6, #2 8547 .LVL978: 4451:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8548 .loc 1 4451 18 view .LVU2869 8549 0098 01E0 b .L623 8550 .L624: 4454:Middlewares/Third_Party/FatFs/src/ff.c **** } 8551 .loc 1 4454 8 is_stmt 1 view .LVU2870 4454:Middlewares/Third_Party/FatFs/src/ff.c **** } 8552 .loc 1 4454 10 is_stmt 0 view .LVU2871 8553 009a 0434 adds r4, r4, #4 8554 .LVL979: 4454:Middlewares/Third_Party/FatFs/src/ff.c **** } 8555 .loc 1 4454 16 is_stmt 1 view .LVU2872 4454:Middlewares/Third_Party/FatFs/src/ff.c **** } 8556 .loc 1 4454 18 is_stmt 0 view .LVU2873 8557 009c 043E subs r6, r6, #4 8558 .LVL980: 8559 .L623: 4456:Middlewares/Third_Party/FatFs/src/ff.c **** } 8560 .loc 1 4456 14 is_stmt 1 view .LVU2874 4456:Middlewares/Third_Party/FatFs/src/ff.c **** } 8561 .loc 1 4456 6 is_stmt 0 view .LVU2875 8562 009e 013D subs r5, r5, #1 8563 .LVL981: 4456:Middlewares/Third_Party/FatFs/src/ff.c **** } 8564 .loc 1 4456 6 view .LVU2876 8565 00a0 0ED0 beq .L617 8566 .LVL982: 8567 .L625: ARM GAS /tmp/cczRNDQp.s page 299 4442:Middlewares/Third_Party/FatFs/src/ff.c **** if (i == 0) { 8568 .loc 1 4442 6 is_stmt 1 view .LVU2877 4443:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, sect++); 8569 .loc 1 4443 7 view .LVU2878 4443:Middlewares/Third_Party/FatFs/src/ff.c **** res = move_window(fs, sect++); 8570 .loc 1 4443 10 is_stmt 0 view .LVU2879 8571 00a2 002E cmp r6, #0 8572 00a4 E3D0 beq .L630 8573 .LVL983: 8574 .L620: 4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++; 8575 .loc 1 4449 7 is_stmt 1 view .LVU2880 4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++; 8576 .loc 1 4449 13 is_stmt 0 view .LVU2881 8577 00a6 079B ldr r3, [sp, #28] 8578 00a8 1B78 ldrb r3, [r3] @ zero_extendqisi2 4449:Middlewares/Third_Party/FatFs/src/ff.c **** if (ld_word(p) == 0) nfree++; 8579 .loc 1 4449 10 view .LVU2882 8580 00aa 022B cmp r3, #2 8581 00ac EDD0 beq .L631 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8582 .loc 1 4453 8 is_stmt 1 view .LVU2883 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8583 .loc 1 4453 13 is_stmt 0 view .LVU2884 8584 00ae 2046 mov r0, r4 8585 00b0 FFF7FEFF bl ld_dword 8586 .LVL984: 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8587 .loc 1 4453 11 view .LVU2885 8588 00b4 30F07043 bics r3, r0, #-268435456 8589 00b8 EFD1 bne .L624 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8590 .loc 1 4453 45 is_stmt 1 discriminator 1 view .LVU2886 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8591 .loc 1 4453 50 is_stmt 0 discriminator 1 view .LVU2887 8592 00ba 0137 adds r7, r7, #1 8593 .LVL985: 4453:Middlewares/Third_Party/FatFs/src/ff.c **** p += 4; i -= 4; 8594 .loc 1 4453 50 discriminator 1 view .LVU2888 8595 00bc EDE7 b .L624 8596 .LVL986: 8597 .L626: 4416:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 1) { res = FR_INT_ERR; break; } 8598 .loc 1 4416 36 view .LVU2889 8599 00be B146 mov r9, r6 8600 .LVL987: 8601 .L617: 4459:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = nfree; /* Now free_clst is valid */ 8602 .loc 1 4459 4 is_stmt 1 view .LVU2890 4459:Middlewares/Third_Party/FatFs/src/ff.c **** fs->free_clst = nfree; /* Now free_clst is valid */ 8603 .loc 1 4459 11 is_stmt 0 view .LVU2891 8604 00c0 C8F80070 str r7, [r8] 4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */ 8605 .loc 1 4460 4 is_stmt 1 view .LVU2892 4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */ 8606 .loc 1 4460 6 is_stmt 0 view .LVU2893 8607 00c4 079B ldr r3, [sp, #28] ARM GAS /tmp/cczRNDQp.s page 300 4460:Middlewares/Third_Party/FatFs/src/ff.c **** fs->fsi_flag |= 1; /* FSInfo is to be updated */ 8608 .loc 1 4460 18 view .LVU2894 8609 00c6 5F61 str r7, [r3, #20] 4461:Middlewares/Third_Party/FatFs/src/ff.c **** } 8610 .loc 1 4461 4 is_stmt 1 view .LVU2895 4461:Middlewares/Third_Party/FatFs/src/ff.c **** } 8611 .loc 1 4461 17 is_stmt 0 view .LVU2896 8612 00c8 1A79 ldrb r2, [r3, #4] @ zero_extendqisi2 8613 00ca 42F00102 orr r2, r2, #1 8614 00ce 1A71 strb r2, [r3, #4] 8615 .LVL988: 8616 .L614: 4465:Middlewares/Third_Party/FatFs/src/ff.c **** } 8617 .loc 1 4465 2 is_stmt 1 view .LVU2897 4466:Middlewares/Third_Party/FatFs/src/ff.c **** 8618 .loc 1 4466 1 is_stmt 0 view .LVU2898 8619 00d0 4846 mov r0, r9 8620 00d2 09B0 add sp, sp, #36 8621 .LCFI93: 8622 .cfi_remember_state 8623 .cfi_def_cfa_offset 36 8624 @ sp needed 8625 00d4 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 8626 .LVL989: 8627 .L627: 8628 .LCFI94: 8629 .cfi_restore_state 4417:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat == 0) nfree++; 8630 .loc 1 4417 27 view .LVU2899 8631 00d8 4FF00209 mov r9, #2 8632 00dc F0E7 b .L617 8633 .cfi_endproc 8634 .LFE1232: 8636 .section .text.f_truncate,"ax",%progbits 8637 .align 1 8638 .global f_truncate 8639 .syntax unified 8640 .thumb 8641 .thumb_func 8642 .fpu fpv5-d16 8644 f_truncate: 8645 .LVL990: 8646 .LFB1233: 4478:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8647 .loc 1 4478 1 is_stmt 1 view -0 8648 .cfi_startproc 8649 @ args = 0, pretend = 0, frame = 8 8650 @ frame_needed = 0, uses_anonymous_args = 0 4478:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8651 .loc 1 4478 1 is_stmt 0 view .LVU2901 8652 0000 30B5 push {r4, r5, lr} 8653 .LCFI95: 8654 .cfi_def_cfa_offset 12 8655 .cfi_offset 4, -12 8656 .cfi_offset 5, -8 8657 .cfi_offset 14, -4 8658 0002 83B0 sub sp, sp, #12 ARM GAS /tmp/cczRNDQp.s page 301 8659 .LCFI96: 8660 .cfi_def_cfa_offset 24 8661 0004 0446 mov r4, r0 4479:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8662 .loc 1 4479 2 is_stmt 1 view .LVU2902 4480:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD ncl; 8663 .loc 1 4480 2 view .LVU2903 4481:Middlewares/Third_Party/FatFs/src/ff.c **** 8664 .loc 1 4481 2 view .LVU2904 4484:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); 8665 .loc 1 4484 2 view .LVU2905 4484:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); 8666 .loc 1 4484 8 is_stmt 0 view .LVU2906 8667 0006 01A9 add r1, sp, #4 8668 0008 FFF7FEFF bl validate 8669 .LVL991: 4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 8670 .loc 1 4485 2 is_stmt 1 view .LVU2907 4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 8671 .loc 1 4485 5 is_stmt 0 view .LVU2908 8672 000c 0546 mov r5, r0 8673 000e E8B9 cbnz r0, .L635 4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 8674 .loc 1 4485 27 discriminator 2 view .LVU2909 8675 0010 657D ldrb r5, [r4, #21] @ zero_extendqisi2 8676 .LVL992: 4485:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ 8677 .loc 1 4485 19 discriminator 2 view .LVU2910 8678 0012 DDB9 cbnz r5, .L635 4486:Middlewares/Third_Party/FatFs/src/ff.c **** 8679 .loc 1 4486 2 is_stmt 1 view .LVU2911 4486:Middlewares/Third_Party/FatFs/src/ff.c **** 8680 .loc 1 4486 10 is_stmt 0 view .LVU2912 8681 0014 237D ldrb r3, [r4, #20] @ zero_extendqisi2 4486:Middlewares/Third_Party/FatFs/src/ff.c **** 8682 .loc 1 4486 5 view .LVU2913 8683 0016 13F0020F tst r3, #2 8684 001a 45D0 beq .L641 4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ 8685 .loc 1 4488 2 is_stmt 1 view .LVU2914 4488:Middlewares/Third_Party/FatFs/src/ff.c **** if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ 8686 .loc 1 4488 8 is_stmt 0 view .LVU2915 8687 001c 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 */ 8688 .loc 1 4488 24 view .LVU2916 8689 001e 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 */ 8690 .loc 1 4488 5 view .LVU2917 8691 0020 9342 cmp r3, r2 8692 0022 13D2 bcs .L635 4489:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0); 8693 .loc 1 4489 3 is_stmt 1 view .LVU2918 4489:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, fp->obj.sclust, 0); 8694 .loc 1 4489 6 is_stmt 0 view .LVU2919 8695 0024 ABB9 cbnz r3, .L636 4490:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = 0; 8696 .loc 1 4490 4 is_stmt 1 view .LVU2920 ARM GAS /tmp/cczRNDQp.s page 302 4490:Middlewares/Third_Party/FatFs/src/ff.c **** fp->obj.sclust = 0; 8697 .loc 1 4490 10 is_stmt 0 view .LVU2921 8698 0026 0022 movs r2, #0 8699 0028 A168 ldr r1, [r4, #8] 8700 002a 2046 mov r0, r4 8701 002c FFF7FEFF bl remove_chain 8702 .LVL993: 8703 0030 0546 mov r5, r0 8704 .LVL994: 4491:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When truncate a part of the file, remove remaining clusters */ 8705 .loc 1 4491 4 is_stmt 1 view .LVU2922 4491:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* When truncate a part of the file, remove remaining clusters */ 8706 .loc 1 4491 19 is_stmt 0 view .LVU2923 8707 0032 0023 movs r3, #0 8708 0034 A360 str r3, [r4, #8] 8709 .LVL995: 8710 .L637: 4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; 8711 .loc 1 4501 3 is_stmt 1 view .LVU2924 4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; 8712 .loc 1 4501 23 is_stmt 0 view .LVU2925 8713 0036 A369 ldr r3, [r4, #24] 4501:Middlewares/Third_Party/FatFs/src/ff.c **** fp->flag |= FA_MODIFIED; 8714 .loc 1 4501 19 view .LVU2926 8715 0038 E360 str r3, [r4, #12] 4502:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 8716 .loc 1 4502 3 is_stmt 1 view .LVU2927 4502:Middlewares/Third_Party/FatFs/src/ff.c **** #if !_FS_TINY 8717 .loc 1 4502 12 is_stmt 0 view .LVU2928 8718 003a 237D ldrb r3, [r4, #20] @ zero_extendqisi2 8719 003c 43F04003 orr r3, r3, #64 8720 0040 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) { 8721 .loc 1 4504 3 is_stmt 1 view .LVU2929 4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) { 8722 .loc 1 4504 6 is_stmt 0 view .LVU2930 8723 0042 15B9 cbnz r5, .L639 4504:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) { 8724 .loc 1 4504 20 discriminator 1 view .LVU2931 8725 0044 13F0800F tst r3, #128 8726 0048 1DD1 bne .L646 8727 .L639: 4512:Middlewares/Third_Party/FatFs/src/ff.c **** } 8728 .loc 1 4512 3 is_stmt 1 view .LVU2932 4512:Middlewares/Third_Party/FatFs/src/ff.c **** } 8729 .loc 1 4512 6 is_stmt 0 view .LVU2933 8730 004a 5DBB cbnz r5, .L640 8731 .LVL996: 8732 .L635: 4516:Middlewares/Third_Party/FatFs/src/ff.c **** 8733 .loc 1 4516 1 view .LVU2934 8734 004c 2846 mov r0, r5 8735 004e 03B0 add sp, sp, #12 8736 .LCFI97: 8737 .cfi_remember_state 8738 .cfi_def_cfa_offset 12 8739 @ sp needed ARM GAS /tmp/cczRNDQp.s page 303 8740 0050 30BD pop {r4, r5, pc} 8741 .LVL997: 8742 .L636: 8743 .LCFI98: 8744 .cfi_restore_state 4493:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 8745 .loc 1 4493 4 is_stmt 1 view .LVU2935 4493:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 8746 .loc 1 4493 10 is_stmt 0 view .LVU2936 8747 0052 E169 ldr r1, [r4, #28] 8748 0054 2046 mov r0, r4 8749 0056 FFF7FEFF bl get_fat 8750 .LVL998: 4494:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR; 8751 .loc 1 4494 4 is_stmt 1 view .LVU2937 4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR; 8752 .loc 1 4495 4 view .LVU2938 4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR; 8753 .loc 1 4495 7 is_stmt 0 view .LVU2939 8754 005a B0F1FF3F cmp r0, #-1 8755 005e 0ED0 beq .L647 8756 .L638: 8757 .LVL999: 4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) { 8758 .loc 1 4496 4 is_stmt 1 view .LVU2940 4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) { 8759 .loc 1 4496 7 is_stmt 0 view .LVU2941 8760 0060 0128 cmp r0, #1 8761 0062 0ED0 beq .L643 4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust); 8762 .loc 1 4497 4 is_stmt 1 view .LVU2942 4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust); 8763 .loc 1 4497 7 is_stmt 0 view .LVU2943 8764 0064 002D cmp r5, #0 8765 0066 E6D1 bne .L637 4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust); 8766 .loc 1 4497 32 discriminator 1 view .LVU2944 8767 0068 019B ldr r3, [sp, #4] 8768 006a 9B69 ldr r3, [r3, #24] 4497:Middlewares/Third_Party/FatFs/src/ff.c **** res = remove_chain(&fp->obj, ncl, fp->clust); 8769 .loc 1 4497 21 discriminator 1 view .LVU2945 8770 006c 8342 cmp r3, r0 8771 006e E2D9 bls .L637 4498:Middlewares/Third_Party/FatFs/src/ff.c **** } 8772 .loc 1 4498 5 is_stmt 1 view .LVU2946 4498:Middlewares/Third_Party/FatFs/src/ff.c **** } 8773 .loc 1 4498 11 is_stmt 0 view .LVU2947 8774 0070 E269 ldr r2, [r4, #28] 8775 0072 0146 mov r1, r0 8776 0074 2046 mov r0, r4 8777 .LVL1000: 4498:Middlewares/Third_Party/FatFs/src/ff.c **** } 8778 .loc 1 4498 11 view .LVU2948 8779 0076 FFF7FEFF bl remove_chain 8780 .LVL1001: 4498:Middlewares/Third_Party/FatFs/src/ff.c **** } 8781 .loc 1 4498 11 view .LVU2949 ARM GAS /tmp/cczRNDQp.s page 304 8782 007a 0546 mov r5, r0 8783 .LVL1002: 4498:Middlewares/Third_Party/FatFs/src/ff.c **** } 8784 .loc 1 4498 11 view .LVU2950 8785 007c DBE7 b .L637 8786 .LVL1003: 8787 .L647: 4495:Middlewares/Third_Party/FatFs/src/ff.c **** if (ncl == 1) res = FR_INT_ERR; 8788 .loc 1 4495 31 view .LVU2951 8789 007e 0125 movs r5, #1 8790 0080 EEE7 b .L638 8791 .LVL1004: 8792 .L643: 4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) { 8793 .loc 1 4496 22 view .LVU2952 8794 0082 0225 movs r5, #2 8795 .LVL1005: 4496:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && ncl < fs->n_fatent) { 8796 .loc 1 4496 22 view .LVU2953 8797 0084 D7E7 b .L637 8798 .LVL1006: 8799 .L646: 4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 8800 .loc 1 4505 4 is_stmt 1 view .LVU2954 4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 8801 .loc 1 4505 8 is_stmt 0 view .LVU2955 8802 0086 0123 movs r3, #1 8803 0088 226A ldr r2, [r4, #32] 8804 008a 04F13001 add r1, r4, #48 8805 008e 0198 ldr r0, [sp, #4] 8806 0090 4078 ldrb r0, [r0, #1] @ zero_extendqisi2 8807 0092 FFF7FEFF bl disk_write 8808 .LVL1007: 4505:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DISK_ERR; 8809 .loc 1 4505 7 view .LVU2956 8810 0096 20B9 cbnz r0, .L644 4508:Middlewares/Third_Party/FatFs/src/ff.c **** } 8811 .loc 1 4508 5 is_stmt 1 view .LVU2957 4508:Middlewares/Third_Party/FatFs/src/ff.c **** } 8812 .loc 1 4508 14 is_stmt 0 view .LVU2958 8813 0098 237D ldrb r3, [r4, #20] @ zero_extendqisi2 8814 009a 03F07F03 and r3, r3, #127 8815 009e 2375 strb r3, [r4, #20] 8816 00a0 D3E7 b .L639 8817 .L644: 4506:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8818 .loc 1 4506 9 view .LVU2959 8819 00a2 0125 movs r5, #1 8820 .LVL1008: 8821 .L640: 4512:Middlewares/Third_Party/FatFs/src/ff.c **** } 8822 .loc 1 4512 21 is_stmt 1 discriminator 1 view .LVU2960 8823 00a4 6575 strb r5, [r4, #21] 4512:Middlewares/Third_Party/FatFs/src/ff.c **** } 8824 .loc 1 4512 21 discriminator 1 view .LVU2961 8825 00a6 D1E7 b .L635 8826 .LVL1009: ARM GAS /tmp/cczRNDQp.s page 305 8827 .L641: 4486:Middlewares/Third_Party/FatFs/src/ff.c **** 8828 .loc 1 4486 30 is_stmt 0 view .LVU2962 8829 00a8 0725 movs r5, #7 8830 .LVL1010: 4486:Middlewares/Third_Party/FatFs/src/ff.c **** 8831 .loc 1 4486 30 view .LVU2963 8832 00aa CFE7 b .L635 8833 .cfi_endproc 8834 .LFE1233: 8836 .section .text.f_unlink,"ax",%progbits 8837 .align 1 8838 .global f_unlink 8839 .syntax unified 8840 .thumb 8841 .thumb_func 8842 .fpu fpv5-d16 8844 f_unlink: 8845 .LVL1011: 8846 .LFB1234: 4528:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8847 .loc 1 4528 1 is_stmt 1 view -0 8848 .cfi_startproc 8849 @ args = 0, pretend = 0, frame = 112 8850 @ frame_needed = 0, uses_anonymous_args = 0 4528:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 8851 .loc 1 4528 1 is_stmt 0 view .LVU2965 8852 0000 F0B5 push {r4, r5, r6, r7, lr} 8853 .LCFI99: 8854 .cfi_def_cfa_offset 20 8855 .cfi_offset 4, -20 8856 .cfi_offset 5, -16 8857 .cfi_offset 6, -12 8858 .cfi_offset 7, -8 8859 .cfi_offset 14, -4 8860 0002 9DB0 sub sp, sp, #116 8861 .LCFI100: 8862 .cfi_def_cfa_offset 136 8863 0004 0190 str r0, [sp, #4] 4529:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj, sdj; 8864 .loc 1 4529 2 is_stmt 1 view .LVU2966 4530:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dclst = 0; 8865 .loc 1 4530 2 view .LVU2967 4531:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8866 .loc 1 4531 2 view .LVU2968 8867 .LVL1012: 4532:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 8868 .loc 1 4532 2 view .LVU2969 4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 8869 .loc 1 4540 2 view .LVU2970 4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 8870 .loc 1 4540 8 is_stmt 0 view .LVU2971 8871 0006 0222 movs r2, #2 8872 0008 03A9 add r1, sp, #12 8873 000a 01A8 add r0, sp, #4 8874 .LVL1013: 4540:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; ARM GAS /tmp/cczRNDQp.s page 306 8875 .loc 1 4540 8 view .LVU2972 8876 000c FFF7FEFF bl find_volume 8877 .LVL1014: 4541:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8878 .loc 1 4541 2 is_stmt 1 view .LVU2973 4541:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8879 .loc 1 4541 12 is_stmt 0 view .LVU2974 8880 0010 039B ldr r3, [sp, #12] 8881 0012 1093 str r3, [sp, #64] 4542:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 8882 .loc 1 4542 2 is_stmt 1 view .LVU2975 4542:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 8883 .loc 1 4542 5 is_stmt 0 view .LVU2976 8884 0014 0446 mov r4, r0 8885 0016 10B1 cbz r0, .L658 8886 .LVL1015: 8887 .L649: 4607:Middlewares/Third_Party/FatFs/src/ff.c **** } 8888 .loc 1 4607 16 is_stmt 1 view .LVU2977 4610:Middlewares/Third_Party/FatFs/src/ff.c **** } 8889 .loc 1 4610 2 view .LVU2978 4611:Middlewares/Third_Party/FatFs/src/ff.c **** 8890 .loc 1 4611 1 is_stmt 0 view .LVU2979 8891 0018 2046 mov r0, r4 8892 001a 1DB0 add sp, sp, #116 8893 .LCFI101: 8894 .cfi_remember_state 8895 .cfi_def_cfa_offset 20 8896 @ sp needed 8897 001c F0BD pop {r4, r5, r6, r7, pc} 8898 .LVL1016: 8899 .L658: 8900 .LCFI102: 8901 .cfi_restore_state 4543:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */ 8902 .loc 1 4543 18 is_stmt 1 view .LVU2980 4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { 8903 .loc 1 4544 3 view .LVU2981 4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { 8904 .loc 1 4544 9 is_stmt 0 view .LVU2982 8905 001e 0199 ldr r1, [sp, #4] 8906 0020 10A8 add r0, sp, #64 8907 .LVL1017: 4544:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { 8908 .loc 1 4544 9 view .LVU2983 8909 0022 FFF7FEFF bl follow_path 8910 .LVL1018: 4545:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove dot entry */ 8911 .loc 1 4545 3 is_stmt 1 view .LVU2984 4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8912 .loc 1 4549 3 view .LVU2985 4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8913 .loc 1 4549 6 is_stmt 0 view .LVU2986 8914 0026 0446 mov r4, r0 8915 0028 20B9 cbnz r0, .L650 4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8916 .loc 1 4549 21 is_stmt 1 discriminator 1 view .LVU2987 ARM GAS /tmp/cczRNDQp.s page 307 4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8917 .loc 1 4549 27 is_stmt 0 discriminator 1 view .LVU2988 8918 002a 0221 movs r1, #2 8919 002c 10A8 add r0, sp, #64 8920 .LVL1019: 4549:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 8921 .loc 1 4549 27 discriminator 1 view .LVU2989 8922 002e FFF7FEFF bl chk_lock 8923 .LVL1020: 8924 0032 0446 mov r4, r0 8925 .LVL1021: 8926 .L650: 4551:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { 8927 .loc 1 4551 3 is_stmt 1 view .LVU2990 4551:Middlewares/Third_Party/FatFs/src/ff.c **** if (dj.fn[NSFLAG] & NS_NONAME) { 8928 .loc 1 4551 6 is_stmt 0 view .LVU2991 8929 0034 002C cmp r4, #0 8930 0036 EFD1 bne .L649 4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */ 8931 .loc 1 4552 4 is_stmt 1 view .LVU2992 4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */ 8932 .loc 1 4552 8 is_stmt 0 view .LVU2993 8933 0038 9DF96F30 ldrsb r3, [sp, #111] 4552:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; /* Cannot remove the origin directory */ 8934 .loc 1 4552 7 view .LVU2994 8935 003c 002B cmp r3, #0 8936 003e 1EDB blt .L654 4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */ 8937 .loc 1 4555 5 is_stmt 1 view .LVU2995 4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */ 8938 .loc 1 4555 15 is_stmt 0 view .LVU2996 8939 0040 9DF84660 ldrb r6, [sp, #70] @ zero_extendqisi2 4555:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_DENIED; /* Cannot remove R/O object */ 8940 .loc 1 4555 8 view .LVU2997 8941 0044 16F0010F tst r6, #1 8942 0048 2FD1 bne .L655 4559:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 8943 .loc 1 4559 4 is_stmt 1 view .LVU2998 4569:Middlewares/Third_Party/FatFs/src/ff.c **** } 8944 .loc 1 4569 6 view .LVU2999 4569:Middlewares/Third_Party/FatFs/src/ff.c **** } 8945 .loc 1 4569 14 is_stmt 0 view .LVU3000 8946 004a 039F ldr r7, [sp, #12] 8947 004c 1899 ldr r1, [sp, #96] 8948 004e 3846 mov r0, r7 8949 0050 FFF7FEFF bl ld_clust 8950 .LVL1022: 8951 0054 0546 mov r5, r0 8952 .LVL1023: 4571:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0 8953 .loc 1 4571 5 is_stmt 1 view .LVU3001 4571:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_RPATH != 0 8954 .loc 1 4571 8 is_stmt 0 view .LVU3002 8955 0056 16F0100F tst r6, #16 8956 005a 12D0 beq .L651 4578:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.sclust = dclst; 8957 .loc 1 4578 7 is_stmt 1 view .LVU3003 ARM GAS /tmp/cczRNDQp.s page 308 4578:Middlewares/Third_Party/FatFs/src/ff.c **** sdj.obj.sclust = dclst; 8958 .loc 1 4578 18 is_stmt 0 view .LVU3004 8959 005c 0497 str r7, [sp, #16] 4579:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 8960 .loc 1 4579 7 is_stmt 1 view .LVU3005 4579:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 8961 .loc 1 4579 22 is_stmt 0 view .LVU3006 8962 005e 0690 str r0, [sp, #24] 4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8963 .loc 1 4586 7 is_stmt 1 view .LVU3007 4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8964 .loc 1 4586 13 is_stmt 0 view .LVU3008 8965 0060 0021 movs r1, #0 8966 0062 04A8 add r0, sp, #16 8967 .LVL1024: 4586:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 8968 .loc 1 4586 13 view .LVU3009 8969 0064 FFF7FEFF bl dir_sdi 8970 .LVL1025: 4587:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&sdj, 0); /* Read an item */ 8971 .loc 1 4587 7 is_stmt 1 view .LVU3010 4587:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_read(&sdj, 0); /* Read an item */ 8972 .loc 1 4587 10 is_stmt 0 view .LVU3011 8973 0068 0446 mov r4, r0 8974 006a 50B9 cbnz r0, .L651 4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */ 8975 .loc 1 4588 8 is_stmt 1 view .LVU3012 4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */ 8976 .loc 1 4588 14 is_stmt 0 view .LVU3013 8977 006c 0021 movs r1, #0 8978 006e 04A8 add r0, sp, #16 8979 .LVL1026: 4588:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_DENIED; /* Not empty? */ 8980 .loc 1 4588 14 view .LVU3014 8981 0070 FFF7FEFF bl dir_read 8982 .LVL1027: 4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ 8983 .loc 1 4589 8 is_stmt 1 view .LVU3015 4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ 8984 .loc 1 4589 11 is_stmt 0 view .LVU3016 8985 0074 0446 mov r4, r0 8986 0076 D8B1 cbz r0, .L656 4590:Middlewares/Third_Party/FatFs/src/ff.c **** } 8987 .loc 1 4590 8 is_stmt 1 view .LVU3017 4590:Middlewares/Third_Party/FatFs/src/ff.c **** } 8988 .loc 1 4590 11 is_stmt 0 view .LVU3018 8989 0078 0428 cmp r0, #4 8990 007a 02D1 bne .L651 8991 007c 03E0 b .L652 8992 .LVL1028: 8993 .L654: 4531:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 8994 .loc 1 4531 8 view .LVU3019 8995 007e 0025 movs r5, #0 4553:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 8996 .loc 1 4553 9 view .LVU3020 8997 0080 0624 movs r4, #6 ARM GAS /tmp/cczRNDQp.s page 309 8998 .LVL1029: 8999 .L651: 4595:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&dj); /* Remove the directory entry */ 9000 .loc 1 4595 4 is_stmt 1 view .LVU3021 4595:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&dj); /* Remove the directory entry */ 9001 .loc 1 4595 7 is_stmt 0 view .LVU3022 9002 0082 002C cmp r4, #0 9003 0084 C8D1 bne .L649 9004 .LVL1030: 9005 .L652: 4596:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */ 9006 .loc 1 4596 5 is_stmt 1 view .LVU3023 4596:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */ 9007 .loc 1 4596 11 is_stmt 0 view .LVU3024 9008 0086 10A8 add r0, sp, #64 9009 0088 FFF7FEFF bl dir_remove 9010 .LVL1031: 4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9011 .loc 1 4597 5 is_stmt 1 view .LVU3025 4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9012 .loc 1 4597 13 is_stmt 0 view .LVU3026 9013 008c 0446 mov r4, r0 4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9014 .loc 1 4597 22 view .LVU3027 9015 008e B0FA80F0 clz r0, r0 9016 .LVL1032: 4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9017 .loc 1 4597 22 view .LVU3028 9018 0092 4009 lsrs r0, r0, #5 9019 0094 002D cmp r5, #0 9020 0096 08BF it eq 9021 0098 0020 moveq r0, #0 4597:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9022 .loc 1 4597 8 view .LVU3029 9023 009a 58B9 cbnz r0, .L659 9024 .L653: 9025 .LVL1033: 4604:Middlewares/Third_Party/FatFs/src/ff.c **** } 9026 .loc 1 4604 5 is_stmt 1 view .LVU3030 4604:Middlewares/Third_Party/FatFs/src/ff.c **** } 9027 .loc 1 4604 8 is_stmt 0 view .LVU3031 9028 009c 002C cmp r4, #0 9029 009e BBD1 bne .L649 4604:Middlewares/Third_Party/FatFs/src/ff.c **** } 9030 .loc 1 4604 23 is_stmt 1 discriminator 1 view .LVU3032 4604:Middlewares/Third_Party/FatFs/src/ff.c **** } 9031 .loc 1 4604 29 is_stmt 0 discriminator 1 view .LVU3033 9032 00a0 0398 ldr r0, [sp, #12] 9033 00a2 FFF7FEFF bl sync_fs 9034 .LVL1034: 9035 00a6 0446 mov r4, r0 9036 .LVL1035: 4604:Middlewares/Third_Party/FatFs/src/ff.c **** } 9037 .loc 1 4604 29 discriminator 1 view .LVU3034 9038 00a8 B6E7 b .L649 9039 .LVL1036: 9040 .L655: ARM GAS /tmp/cczRNDQp.s page 310 4531:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 9041 .loc 1 4531 8 view .LVU3035 9042 00aa 0025 movs r5, #0 4556:Middlewares/Third_Party/FatFs/src/ff.c **** } 9043 .loc 1 4556 10 view .LVU3036 9044 00ac 0724 movs r4, #7 9045 .LVL1037: 4556:Middlewares/Third_Party/FatFs/src/ff.c **** } 9046 .loc 1 4556 10 view .LVU3037 9047 00ae E8E7 b .L651 9048 .LVL1038: 9049 .L656: 4589:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ 9050 .loc 1 4589 30 view .LVU3038 9051 00b0 0724 movs r4, #7 9052 00b2 E6E7 b .L651 9053 .LVL1039: 9054 .L659: 4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 9055 .loc 1 4601 6 is_stmt 1 view .LVU3039 4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 9056 .loc 1 4601 12 is_stmt 0 view .LVU3040 9057 00b4 0022 movs r2, #0 9058 00b6 2946 mov r1, r5 9059 00b8 10A8 add r0, sp, #64 9060 00ba FFF7FEFF bl remove_chain 9061 .LVL1040: 9062 00be 0446 mov r4, r0 9063 .LVL1041: 4601:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 9064 .loc 1 4601 12 view .LVU3041 9065 00c0 ECE7 b .L653 9066 .cfi_endproc 9067 .LFE1234: 9069 .section .text.f_mkdir,"ax",%progbits 9070 .align 1 9071 .global f_mkdir 9072 .syntax unified 9073 .thumb 9074 .thumb_func 9075 .fpu fpv5-d16 9077 f_mkdir: 9078 .LVL1042: 9079 .LFB1235: 4623:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 9080 .loc 1 4623 1 is_stmt 1 view -0 9081 .cfi_startproc 9082 @ args = 0, pretend = 0, frame = 64 9083 @ frame_needed = 0, uses_anonymous_args = 0 4623:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 9084 .loc 1 4623 1 is_stmt 0 view .LVU3043 9085 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9086 .LCFI103: 9087 .cfi_def_cfa_offset 36 9088 .cfi_offset 4, -36 9089 .cfi_offset 5, -32 9090 .cfi_offset 6, -28 ARM GAS /tmp/cczRNDQp.s page 311 9091 .cfi_offset 7, -24 9092 .cfi_offset 8, -20 9093 .cfi_offset 9, -16 9094 .cfi_offset 10, -12 9095 .cfi_offset 11, -8 9096 .cfi_offset 14, -4 9097 0004 91B0 sub sp, sp, #68 9098 .LCFI104: 9099 .cfi_def_cfa_offset 104 9100 0006 0190 str r0, [sp, #4] 4624:Middlewares/Third_Party/FatFs/src/ff.c **** DIR dj; 9101 .loc 1 4624 2 is_stmt 1 view .LVU3044 4625:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 9102 .loc 1 4625 2 view .LVU3045 4626:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE *dir; 9103 .loc 1 4626 2 view .LVU3046 4627:Middlewares/Third_Party/FatFs/src/ff.c **** UINT n; 9104 .loc 1 4627 2 view .LVU3047 4628:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dsc, dcl, pcl, tm; 9105 .loc 1 4628 2 view .LVU3048 4629:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF 9106 .loc 1 4629 2 view .LVU3049 4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 9107 .loc 1 4634 2 view .LVU3050 4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 9108 .loc 1 4634 8 is_stmt 0 view .LVU3051 9109 0008 0222 movs r2, #2 9110 000a 03A9 add r1, sp, #12 9111 000c 01A8 add r0, sp, #4 9112 .LVL1043: 4634:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.fs = fs; 9113 .loc 1 4634 8 view .LVU3052 9114 000e FFF7FEFF bl find_volume 9115 .LVL1044: 4635:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9116 .loc 1 4635 2 is_stmt 1 view .LVU3053 4635:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9117 .loc 1 4635 12 is_stmt 0 view .LVU3054 9118 0012 039B ldr r3, [sp, #12] 9119 0014 0493 str r3, [sp, #16] 4636:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 9120 .loc 1 4636 2 is_stmt 1 view .LVU3055 4636:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 9121 .loc 1 4636 5 is_stmt 0 view .LVU3056 9122 0016 0446 mov r4, r0 9123 0018 18B1 cbz r0, .L678 9124 .LVL1045: 9125 .L661: 4704:Middlewares/Third_Party/FatFs/src/ff.c **** } 9126 .loc 1 4704 16 is_stmt 1 view .LVU3057 4707:Middlewares/Third_Party/FatFs/src/ff.c **** } 9127 .loc 1 4707 2 view .LVU3058 4708:Middlewares/Third_Party/FatFs/src/ff.c **** 9128 .loc 1 4708 1 is_stmt 0 view .LVU3059 9129 001a 2046 mov r0, r4 9130 001c 11B0 add sp, sp, #68 9131 .LCFI105: ARM GAS /tmp/cczRNDQp.s page 312 9132 .cfi_remember_state 9133 .cfi_def_cfa_offset 36 9134 @ sp needed 9135 001e BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 9136 .LVL1046: 9137 .L678: 9138 .LCFI106: 9139 .cfi_restore_state 4637:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&dj, path); /* Follow the file path */ 9140 .loc 1 4637 18 is_stmt 1 view .LVU3060 4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ 9141 .loc 1 4638 3 view .LVU3061 4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ 9142 .loc 1 4638 9 is_stmt 0 view .LVU3062 9143 0022 0199 ldr r1, [sp, #4] 9144 0024 04A8 add r0, sp, #16 9145 .LVL1047: 4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ 9146 .loc 1 4638 9 view .LVU3063 9147 0026 FFF7FEFF bl follow_path 9148 .LVL1048: 4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { 9149 .loc 1 4639 3 is_stmt 1 view .LVU3064 4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { 9150 .loc 1 4639 6 is_stmt 0 view .LVU3065 9151 002a 0028 cmp r0, #0 9152 002c 00F09A80 beq .L671 4640:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INVALID_NAME; 9153 .loc 1 4640 3 is_stmt 1 view .LVU3066 4643:Middlewares/Third_Party/FatFs/src/ff.c **** dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */ 9154 .loc 1 4643 3 view .LVU3067 4643:Middlewares/Third_Party/FatFs/src/ff.c **** dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */ 9155 .loc 1 4643 6 is_stmt 0 view .LVU3068 9156 0030 0428 cmp r0, #4 9157 0032 01D0 beq .L679 4638:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ 9158 .loc 1 4638 9 view .LVU3069 9159 0034 0446 mov r4, r0 9160 0036 F0E7 b .L661 9161 .L679: 4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs); 9162 .loc 1 4644 4 is_stmt 1 view .LVU3070 4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs); 9163 .loc 1 4644 10 is_stmt 0 view .LVU3071 9164 0038 0021 movs r1, #0 9165 003a 04A8 add r0, sp, #16 9166 .LVL1049: 4644:Middlewares/Third_Party/FatFs/src/ff.c **** dj.obj.objsize = (DWORD)fs->csize * SS(fs); 9167 .loc 1 4644 10 view .LVU3072 9168 003c FFF7FEFF bl create_chain 9169 .LVL1050: 4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 9170 .loc 1 4645 4 is_stmt 1 view .LVU3073 4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 9171 .loc 1 4645 30 is_stmt 0 view .LVU3074 9172 0040 039A ldr r2, [sp, #12] 9173 0042 5389 ldrh r3, [r2, #10] ARM GAS /tmp/cczRNDQp.s page 313 4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 9174 .loc 1 4645 40 view .LVU3075 9175 0044 9189 ldrh r1, [r2, #12] 4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 9176 .loc 1 4645 38 view .LVU3076 9177 0046 01FB03F3 mul r3, r1, r3 4645:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_OK; 9178 .loc 1 4645 19 view .LVU3077 9179 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 */ 9180 .loc 1 4646 4 is_stmt 1 view .LVU3078 9181 .LVL1051: 4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR; 9182 .loc 1 4647 4 view .LVU3079 4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR; 9183 .loc 1 4647 7 is_stmt 0 view .LVU3080 9184 004c 8046 mov r8, r0 9185 004e 00B9 cbnz r0, .L662 4647:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 1) res = FR_INT_ERR; 9186 .loc 1 4647 22 view .LVU3081 9187 0050 0724 movs r4, #7 9188 .L662: 9189 .LVL1052: 4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; 9190 .loc 1 4648 4 is_stmt 1 view .LVU3082 4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; 9191 .loc 1 4648 7 is_stmt 0 view .LVU3083 9192 0052 B8F1010F cmp r8, #1 9193 0056 20D0 beq .L680 9194 .LVL1053: 9195 .L663: 4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ 9196 .loc 1 4649 4 is_stmt 1 view .LVU3084 4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ 9197 .loc 1 4649 7 is_stmt 0 view .LVU3085 9198 0058 B8F1FF3F cmp r8, #-1 9199 005c 24D0 beq .L675 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9200 .loc 1 4650 4 is_stmt 1 view .LVU3086 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9201 .loc 1 4650 7 is_stmt 0 view .LVU3087 9202 005e F4B1 cbz r4, .L681 9203 .LVL1054: 9204 .L664: 4651:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Initialize the new directory table */ 9205 .loc 1 4651 4 is_stmt 1 view .LVU3088 4651:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Initialize the new directory table */ 9206 .loc 1 4651 9 is_stmt 0 view .LVU3089 9207 0060 FFF7FEFF bl get_fattime 9208 .LVL1055: 9209 0064 8246 mov r10, r0 9210 .LVL1056: 4652:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, dcl); 9211 .loc 1 4652 4 is_stmt 1 view .LVU3090 4652:Middlewares/Third_Party/FatFs/src/ff.c **** dsc = clust2sect(fs, dcl); 9212 .loc 1 4652 7 is_stmt 0 view .LVU3091 9213 0066 0CB3 cbz r4, .L682 ARM GAS /tmp/cczRNDQp.s page 314 9214 .LVL1057: 9215 .L665: 4675:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj); /* Register the object to the directoy */ 9216 .loc 1 4675 4 is_stmt 1 view .LVU3092 4675:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&dj); /* Register the object to the directoy */ 9217 .loc 1 4675 7 is_stmt 0 view .LVU3093 9218 0068 002C cmp r4, #0 9219 006a 70D0 beq .L683 9220 .L669: 4678:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9221 .loc 1 4678 4 is_stmt 1 view .LVU3094 4678:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9222 .loc 1 4678 7 is_stmt 0 view .LVU3095 9223 006c 002C cmp r4, #0 9224 006e 73D1 bne .L670 4691:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Created time */ 9225 .loc 1 4691 6 is_stmt 1 view .LVU3096 4691:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); /* Created time */ 9226 .loc 1 4691 10 is_stmt 0 view .LVU3097 9227 0070 0C9C ldr r4, [sp, #48] 9228 .LVL1058: 4692:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl); /* Table start cluster */ 9229 .loc 1 4692 6 is_stmt 1 view .LVU3098 9230 0072 5146 mov r1, r10 9231 0074 04F11600 add r0, r4, #22 9232 0078 FFF7FEFF bl st_dword 9233 .LVL1059: 4693:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR; /* Attribute */ 9234 .loc 1 4693 6 view .LVU3099 9235 007c 4246 mov r2, r8 9236 007e 2146 mov r1, r4 9237 0080 0398 ldr r0, [sp, #12] 9238 0082 FFF7FEFF bl st_clust 9239 .LVL1060: 4694:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9240 .loc 1 4694 6 view .LVU3100 4694:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9241 .loc 1 4694 20 is_stmt 0 view .LVU3101 9242 0086 1023 movs r3, #16 9243 0088 E372 strb r3, [r4, #11] 4695:Middlewares/Third_Party/FatFs/src/ff.c **** } 9244 .loc 1 4695 6 is_stmt 1 view .LVU3102 4695:Middlewares/Third_Party/FatFs/src/ff.c **** } 9245 .loc 1 4695 16 is_stmt 0 view .LVU3103 9246 008a 039B ldr r3, [sp, #12] 9247 008c 0122 movs r2, #1 9248 008e DA70 strb r2, [r3, #3] 4697:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); 9249 .loc 1 4697 5 is_stmt 1 view .LVU3104 4698:Middlewares/Third_Party/FatFs/src/ff.c **** } 9250 .loc 1 4698 6 view .LVU3105 4698:Middlewares/Third_Party/FatFs/src/ff.c **** } 9251 .loc 1 4698 12 is_stmt 0 view .LVU3106 9252 0090 0398 ldr r0, [sp, #12] 9253 0092 FFF7FEFF bl sync_fs 9254 .LVL1061: 9255 0096 0446 mov r4, r0 ARM GAS /tmp/cczRNDQp.s page 315 9256 .LVL1062: 4698:Middlewares/Third_Party/FatFs/src/ff.c **** } 9257 .loc 1 4698 12 view .LVU3107 9258 0098 BFE7 b .L661 9259 .LVL1063: 9260 .L680: 4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; 9261 .loc 1 4648 22 view .LVU3108 9262 009a 0224 movs r4, #2 9263 .LVL1064: 4648:Middlewares/Third_Party/FatFs/src/ff.c **** if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; 9264 .loc 1 4648 22 view .LVU3109 9265 009c DCE7 b .L663 9266 .LVL1065: 9267 .L681: 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9268 .loc 1 4650 22 is_stmt 1 discriminator 1 view .LVU3110 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9269 .loc 1 4650 28 is_stmt 0 discriminator 1 view .LVU3111 9270 009e 1046 mov r0, r2 9271 .LVL1066: 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9272 .loc 1 4650 28 discriminator 1 view .LVU3112 9273 00a0 FFF7FEFF bl sync_window 9274 .LVL1067: 9275 00a4 0446 mov r4, r0 9276 .LVL1068: 4650:Middlewares/Third_Party/FatFs/src/ff.c **** tm = GET_FATTIME(); 9277 .loc 1 4650 28 discriminator 1 view .LVU3113 9278 00a6 DBE7 b .L664 9279 .LVL1069: 9280 .L675: 4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ 9281 .loc 1 4649 31 view .LVU3114 9282 00a8 0124 movs r4, #1 9283 .LVL1070: 4649:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ 9284 .loc 1 4649 31 view .LVU3115 9285 00aa D9E7 b .L664 9286 .LVL1071: 9287 .L682: 4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win; 9288 .loc 1 4653 5 is_stmt 1 view .LVU3116 4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win; 9289 .loc 1 4653 11 is_stmt 0 view .LVU3117 9290 00ac 039E ldr r6, [sp, #12] 9291 00ae 4146 mov r1, r8 9292 00b0 3046 mov r0, r6 9293 .LVL1072: 4653:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win; 9294 .loc 1 4653 11 view .LVU3118 9295 00b2 FFF7FEFF bl clust2sect 9296 .LVL1073: 9297 00b6 0546 mov r5, r0 9298 .LVL1074: 4654:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs)); 9299 .loc 1 4654 5 is_stmt 1 view .LVU3119 ARM GAS /tmp/cczRNDQp.s page 316 4654:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs)); 9300 .loc 1 4654 9 is_stmt 0 view .LVU3120 9301 00b8 06F13409 add r9, r6, #52 9302 .LVL1075: 4655:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 9303 .loc 1 4655 5 is_stmt 1 view .LVU3121 9304 00bc B289 ldrh r2, [r6, #12] 9305 00be 0021 movs r1, #0 9306 00c0 4846 mov r0, r9 9307 .LVL1076: 4655:Middlewares/Third_Party/FatFs/src/ff.c **** if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { 9308 .loc 1 4655 5 is_stmt 0 view .LVU3122 9309 00c2 FFF7FEFF bl mem_set 9310 .LVL1077: 4656:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir + DIR_Name, ' ', 11); /* Create "." entry */ 9311 .loc 1 4656 5 is_stmt 1 view .LVU3123 4657:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Name] = '.'; 9312 .loc 1 4657 6 view .LVU3124 9313 00c6 0B22 movs r2, #11 9314 00c8 2021 movs r1, #32 9315 00ca 4846 mov r0, r9 9316 00cc FFF7FEFF bl mem_set 9317 .LVL1078: 4658:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR; 9318 .loc 1 4658 6 view .LVU3125 4658:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = AM_DIR; 9319 .loc 1 4658 20 is_stmt 0 view .LVU3126 9320 00d0 4FF02E0B mov fp, #46 9321 00d4 86F834B0 strb fp, [r6, #52] 4659:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); 9322 .loc 1 4659 6 is_stmt 1 view .LVU3127 4659:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(dir + DIR_ModTime, tm); 9323 .loc 1 4659 20 is_stmt 0 view .LVU3128 9324 00d8 1023 movs r3, #16 9325 00da 86F83F30 strb r3, [r6, #63] 4660:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, dcl); 9326 .loc 1 4660 6 is_stmt 1 view .LVU3129 9327 00de 5146 mov r1, r10 9328 00e0 06F14A00 add r0, r6, #74 9329 00e4 FFF7FEFF bl st_dword 9330 .LVL1079: 4661:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */ 9331 .loc 1 4661 6 view .LVU3130 9332 00e8 4246 mov r2, r8 9333 00ea 4946 mov r1, r9 9334 00ec 0398 ldr r0, [sp, #12] 9335 00ee FFF7FEFF bl st_clust 9336 .LVL1080: 4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; 9337 .loc 1 4662 6 view .LVU3131 4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; 9338 .loc 1 4662 18 is_stmt 0 view .LVU3132 9339 00f2 06F15407 add r7, r6, #84 4662:Middlewares/Third_Party/FatFs/src/ff.c **** dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; 9340 .loc 1 4662 6 view .LVU3133 9341 00f6 2022 movs r2, #32 9342 00f8 4946 mov r1, r9 ARM GAS /tmp/cczRNDQp.s page 317 9343 00fa 3846 mov r0, r7 9344 00fc FFF7FEFF bl mem_cpy 9345 .LVL1081: 4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; 9346 .loc 1 4663 6 is_stmt 1 view .LVU3134 4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; 9347 .loc 1 4663 22 is_stmt 0 view .LVU3135 9348 0100 86F855B0 strb fp, [r6, #85] 4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; 9349 .loc 1 4663 29 is_stmt 1 view .LVU3136 4663:Middlewares/Third_Party/FatFs/src/ff.c **** if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; 9350 .loc 1 4663 33 is_stmt 0 view .LVU3137 9351 0104 069A ldr r2, [sp, #24] 9352 .LVL1082: 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9353 .loc 1 4664 6 is_stmt 1 view .LVU3138 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9354 .loc 1 4664 12 is_stmt 0 view .LVU3139 9355 0106 0398 ldr r0, [sp, #12] 9356 0108 0378 ldrb r3, [r0] @ zero_extendqisi2 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9357 .loc 1 4664 9 view .LVU3140 9358 010a 032B cmp r3, #3 9359 010c 1AD0 beq .L684 9360 .LVL1083: 9361 .L666: 4665:Middlewares/Third_Party/FatFs/src/ff.c **** } 9362 .loc 1 4665 6 is_stmt 1 view .LVU3141 9363 010e 3946 mov r1, r7 9364 0110 FFF7FEFF bl st_clust 9365 .LVL1084: 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9366 .loc 1 4667 5 view .LVU3142 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9367 .loc 1 4667 16 is_stmt 0 view .LVU3143 9368 0114 039B ldr r3, [sp, #12] 9369 0116 5E89 ldrh r6, [r3, #10] 9370 .LVL1085: 9371 .L667: 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9372 .loc 1 4667 25 is_stmt 1 discriminator 1 view .LVU3144 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9373 .loc 1 4667 5 is_stmt 0 discriminator 1 view .LVU3145 9374 0118 002E cmp r6, #0 9375 011a A5D0 beq .L665 4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9376 .loc 1 4668 6 is_stmt 1 view .LVU3146 4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9377 .loc 1 4668 23 is_stmt 0 view .LVU3147 9378 011c 6F1C adds r7, r5, #1 9379 .LVL1086: 4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9380 .loc 1 4668 8 view .LVU3148 9381 011e 039B ldr r3, [sp, #12] 4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9382 .loc 1 4668 18 view .LVU3149 9383 0120 1D63 str r5, [r3, #48] ARM GAS /tmp/cczRNDQp.s page 318 4669:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs); 9384 .loc 1 4669 6 is_stmt 1 view .LVU3150 4669:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_window(fs); 9385 .loc 1 4669 16 is_stmt 0 view .LVU3151 9386 0122 0122 movs r2, #1 9387 0124 DA70 strb r2, [r3, #3] 4670:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 9388 .loc 1 4670 6 is_stmt 1 view .LVU3152 4670:Middlewares/Third_Party/FatFs/src/ff.c **** if (res != FR_OK) break; 9389 .loc 1 4670 12 is_stmt 0 view .LVU3153 9390 0126 0398 ldr r0, [sp, #12] 9391 0128 FFF7FEFF bl sync_window 9392 .LVL1087: 4671:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs)); 9393 .loc 1 4671 6 is_stmt 1 view .LVU3154 4671:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(dir, 0, SS(fs)); 9394 .loc 1 4671 9 is_stmt 0 view .LVU3155 9395 012c 0446 mov r4, r0 9396 012e 0028 cmp r0, #0 9397 0130 9AD1 bne .L665 4672:Middlewares/Third_Party/FatFs/src/ff.c **** } 9398 .loc 1 4672 6 is_stmt 1 discriminator 2 view .LVU3156 9399 0132 039B ldr r3, [sp, #12] 9400 0134 9A89 ldrh r2, [r3, #12] 9401 0136 0021 movs r1, #0 9402 0138 4846 mov r0, r9 9403 .LVL1088: 4672:Middlewares/Third_Party/FatFs/src/ff.c **** } 9404 .loc 1 4672 6 is_stmt 0 discriminator 2 view .LVU3157 9405 013a FFF7FEFF bl mem_set 9406 .LVL1089: 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9407 .loc 1 4667 28 is_stmt 1 discriminator 2 view .LVU3158 4667:Middlewares/Third_Party/FatFs/src/ff.c **** fs->winsect = dsc++; 9408 .loc 1 4667 29 is_stmt 0 discriminator 2 view .LVU3159 9409 013e 013E subs r6, r6, #1 9410 .LVL1090: 4668:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9411 .loc 1 4668 23 discriminator 2 view .LVU3160 9412 0140 3D46 mov r5, r7 9413 0142 E9E7 b .L667 9414 .LVL1091: 9415 .L684: 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9416 .loc 1 4664 46 discriminator 1 view .LVU3161 9417 0144 836A ldr r3, [r0, #40] 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9418 .loc 1 4664 34 discriminator 1 view .LVU3162 9419 0146 9342 cmp r3, r2 9420 0148 E1D1 bne .L666 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9421 .loc 1 4664 61 view .LVU3163 9422 014a 0022 movs r2, #0 9423 .LVL1092: 4664:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir + SZDIRE, pcl); 9424 .loc 1 4664 61 view .LVU3164 9425 014c DFE7 b .L666 ARM GAS /tmp/cczRNDQp.s page 319 9426 .LVL1093: 9427 .L683: 4676:Middlewares/Third_Party/FatFs/src/ff.c **** } 9428 .loc 1 4676 5 is_stmt 1 view .LVU3165 4676:Middlewares/Third_Party/FatFs/src/ff.c **** } 9429 .loc 1 4676 11 is_stmt 0 view .LVU3166 9430 014e 04A8 add r0, sp, #16 9431 0150 FFF7FEFF bl dir_register 9432 .LVL1094: 9433 0154 0446 mov r4, r0 9434 .LVL1095: 4676:Middlewares/Third_Party/FatFs/src/ff.c **** } 9435 .loc 1 4676 11 view .LVU3167 9436 0156 89E7 b .L669 9437 .L670: 4701:Middlewares/Third_Party/FatFs/src/ff.c **** } 9438 .loc 1 4701 5 is_stmt 1 view .LVU3168 9439 0158 0022 movs r2, #0 9440 015a 4146 mov r1, r8 9441 015c 04A8 add r0, sp, #16 9442 015e FFF7FEFF bl remove_chain 9443 .LVL1096: 9444 0162 5AE7 b .L661 9445 .LVL1097: 9446 .L671: 4639:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { 9447 .loc 1 4639 25 is_stmt 0 view .LVU3169 9448 0164 0824 movs r4, #8 9449 0166 58E7 b .L661 9450 .cfi_endproc 9451 .LFE1235: 9453 .section .text.f_rename,"ax",%progbits 9454 .align 1 9455 .global f_rename 9456 .syntax unified 9457 .thumb 9458 .thumb_func 9459 .fpu fpv5-d16 9461 f_rename: 9462 .LVL1098: 9463 .LFB1236: 4721:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 9464 .loc 1 4721 1 is_stmt 1 view -0 9465 .cfi_startproc 9466 @ args = 0, pretend = 0, frame = 136 9467 @ frame_needed = 0, uses_anonymous_args = 0 4721:Middlewares/Third_Party/FatFs/src/ff.c **** FRESULT res; 9468 .loc 1 4721 1 is_stmt 0 view .LVU3171 9469 0000 30B5 push {r4, r5, lr} 9470 .LCFI107: 9471 .cfi_def_cfa_offset 12 9472 .cfi_offset 4, -12 9473 .cfi_offset 5, -8 9474 .cfi_offset 14, -4 9475 0002 A3B0 sub sp, sp, #140 9476 .LCFI108: 9477 .cfi_def_cfa_offset 152 ARM GAS /tmp/cczRNDQp.s page 320 9478 0004 0190 str r0, [sp, #4] 9479 0006 0091 str r1, [sp] 4722:Middlewares/Third_Party/FatFs/src/ff.c **** DIR djo, djn; 9480 .loc 1 4722 2 is_stmt 1 view .LVU3172 4723:Middlewares/Third_Party/FatFs/src/ff.c **** FATFS *fs; 9481 .loc 1 4723 2 view .LVU3173 4724:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE buf[_FS_EXFAT ? SZDIRE * 2 : 24], *dir; 9482 .loc 1 4724 2 view .LVU3174 4725:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD dw; 9483 .loc 1 4725 2 view .LVU3175 4726:Middlewares/Third_Party/FatFs/src/ff.c **** DEF_NAMBUF 9484 .loc 1 4726 2 view .LVU3176 4730:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ 9485 .loc 1 4730 2 view .LVU3177 9486 0008 6846 mov r0, sp 9487 .LVL1099: 4730:Middlewares/Third_Party/FatFs/src/ff.c **** res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ 9488 .loc 1 4730 2 is_stmt 0 view .LVU3178 9489 000a FFF7FEFF bl get_ldnumber 9490 .LVL1100: 4731:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9491 .loc 1 4731 2 is_stmt 1 view .LVU3179 4731:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9492 .loc 1 4731 8 is_stmt 0 view .LVU3180 9493 000e 0222 movs r2, #2 9494 0010 09A9 add r1, sp, #36 9495 0012 01A8 add r0, sp, #4 9496 0014 FFF7FEFF bl find_volume 9497 .LVL1101: 4732:Middlewares/Third_Party/FatFs/src/ff.c **** djo.obj.fs = fs; 9498 .loc 1 4732 2 is_stmt 1 view .LVU3181 4732:Middlewares/Third_Party/FatFs/src/ff.c **** djo.obj.fs = fs; 9499 .loc 1 4732 5 is_stmt 0 view .LVU3182 9500 0018 0446 mov r4, r0 9501 001a 10B1 cbz r0, .L696 9502 .LVL1102: 9503 .L686: 4807:Middlewares/Third_Party/FatFs/src/ff.c **** } 9504 .loc 1 4807 16 is_stmt 1 view .LVU3183 4810:Middlewares/Third_Party/FatFs/src/ff.c **** } 9505 .loc 1 4810 2 view .LVU3184 4811:Middlewares/Third_Party/FatFs/src/ff.c **** 9506 .loc 1 4811 1 is_stmt 0 view .LVU3185 9507 001c 2046 mov r0, r4 9508 001e 23B0 add sp, sp, #140 9509 .LCFI109: 9510 .cfi_remember_state 9511 .cfi_def_cfa_offset 12 9512 @ sp needed 9513 0020 30BD pop {r4, r5, pc} 9514 .LVL1103: 9515 .L696: 9516 .LCFI110: 9517 .cfi_restore_state 4733:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); 9518 .loc 1 4733 3 is_stmt 1 view .LVU3186 4733:Middlewares/Third_Party/FatFs/src/ff.c **** INIT_NAMBUF(fs); ARM GAS /tmp/cczRNDQp.s page 321 9519 .loc 1 4733 14 is_stmt 0 view .LVU3187 9520 0022 099B ldr r3, [sp, #36] 9521 0024 1693 str r3, [sp, #88] 4734:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djo, path_old); /* Check old object */ 9522 .loc 1 4734 18 is_stmt 1 view .LVU3188 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 9523 .loc 1 4735 3 view .LVU3189 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 9524 .loc 1 4735 9 is_stmt 0 view .LVU3190 9525 0026 0199 ldr r1, [sp, #4] 9526 0028 16A8 add r0, sp, #88 9527 .LVL1104: 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 9528 .loc 1 4735 9 view .LVU3191 9529 002a FFF7FEFF bl follow_path 9530 .LVL1105: 4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 9531 .loc 1 4736 3 is_stmt 1 view .LVU3192 4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 9532 .loc 1 4736 6 is_stmt 0 view .LVU3193 9533 002e 0446 mov r4, r0 9534 0030 20B9 cbnz r0, .L687 4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 9535 .loc 1 4736 30 discriminator 1 view .LVU3194 9536 0032 9DF88730 ldrb r3, [sp, #135] @ zero_extendqisi2 4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 9537 .loc 1 4736 20 discriminator 1 view .LVU3195 9538 0036 13F0A00F tst r3, #160 9539 003a 1ED1 bne .L692 9540 .L687: 9541 .LVL1106: 4738:Middlewares/Third_Party/FatFs/src/ff.c **** res = chk_lock(&djo, 2); 9542 .loc 1 4738 3 is_stmt 1 view .LVU3196 4738:Middlewares/Third_Party/FatFs/src/ff.c **** res = chk_lock(&djo, 2); 9543 .loc 1 4738 6 is_stmt 0 view .LVU3197 9544 003c 24B9 cbnz r4, .L688 4739:Middlewares/Third_Party/FatFs/src/ff.c **** } 9545 .loc 1 4739 4 is_stmt 1 view .LVU3198 4739:Middlewares/Third_Party/FatFs/src/ff.c **** } 9546 .loc 1 4739 10 is_stmt 0 view .LVU3199 9547 003e 0221 movs r1, #2 9548 0040 16A8 add r0, sp, #88 9549 0042 FFF7FEFF bl chk_lock 9550 .LVL1107: 9551 0046 0446 mov r4, r0 9552 .LVL1108: 9553 .L688: 4742:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9554 .loc 1 4742 3 is_stmt 1 view .LVU3200 4742:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_EXFAT 9555 .loc 1 4742 6 is_stmt 0 view .LVU3201 9556 0048 002C cmp r4, #0 9557 004a E7D1 bne .L686 4769:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */ 9558 .loc 1 4769 5 is_stmt 1 view .LVU3202 9559 004c 1522 movs r2, #21 9560 004e 1E99 ldr r1, [sp, #120] ARM GAS /tmp/cczRNDQp.s page 322 9561 0050 0B31 adds r1, r1, #11 9562 0052 03A8 add r0, sp, #12 9563 0054 FFF7FEFF bl mem_cpy 9564 .LVL1109: 4770:Middlewares/Third_Party/FatFs/src/ff.c **** res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ 9565 .loc 1 4770 5 view .LVU3203 9566 0058 3022 movs r2, #48 9567 005a 16A9 add r1, sp, #88 9568 005c 0AA8 add r0, sp, #40 9569 005e FFF7FEFF bl mem_cpy 9570 .LVL1110: 4771:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */ 9571 .loc 1 4771 5 view .LVU3204 4771:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { /* Is new name already in use by any other object? */ 9572 .loc 1 4771 11 is_stmt 0 view .LVU3205 9573 0062 0099 ldr r1, [sp] 9574 0064 0AA8 add r0, sp, #40 9575 0066 FFF7FEFF bl follow_path 9576 .LVL1111: 4772:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; 9577 .loc 1 4772 5 is_stmt 1 view .LVU3206 4772:Middlewares/Third_Party/FatFs/src/ff.c **** res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; 9578 .loc 1 4772 8 is_stmt 0 view .LVU3207 9579 006a 0446 mov r4, r0 9580 006c 68B9 cbnz r0, .L689 4773:Middlewares/Third_Party/FatFs/src/ff.c **** } 9581 .loc 1 4773 6 is_stmt 1 view .LVU3208 4773:Middlewares/Third_Party/FatFs/src/ff.c **** } 9582 .loc 1 4773 84 is_stmt 0 view .LVU3209 9583 006e 0C9A ldr r2, [sp, #48] 9584 0070 189B ldr r3, [sp, #96] 9585 0072 9A42 cmp r2, r3 9586 0074 03D0 beq .L697 9587 0076 0824 movs r4, #8 9588 0078 09E0 b .L690 9589 .L692: 4736:Middlewares/Third_Party/FatFs/src/ff.c **** #if _FS_LOCK != 0 9590 .loc 1 4736 68 view .LVU3210 9591 007a 0624 movs r4, #6 9592 007c E4E7 b .L688 9593 .L697: 4773:Middlewares/Third_Party/FatFs/src/ff.c **** } 9594 .loc 1 4773 46 discriminator 1 view .LVU3211 9595 007e 0F9A ldr r2, [sp, #60] 9596 0080 1B9B ldr r3, [sp, #108] 9597 0082 9A42 cmp r2, r3 9598 0084 10D0 beq .L691 4773:Middlewares/Third_Party/FatFs/src/ff.c **** } 9599 .loc 1 4773 84 view .LVU3212 9600 0086 0824 movs r4, #8 9601 0088 01E0 b .L690 9602 .L689: 4775:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */ 9603 .loc 1 4775 5 is_stmt 1 view .LVU3213 4775:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_register(&djn); /* Register the new entry */ 9604 .loc 1 4775 8 is_stmt 0 view .LVU3214 9605 008a 0428 cmp r0, #4 ARM GAS /tmp/cczRNDQp.s page 323 9606 008c 0CD0 beq .L691 9607 .LVL1112: 9608 .L690: 4799:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&djo); /* Remove old entry */ 9609 .loc 1 4799 4 is_stmt 1 view .LVU3215 4799:Middlewares/Third_Party/FatFs/src/ff.c **** res = dir_remove(&djo); /* Remove old entry */ 9610 .loc 1 4799 7 is_stmt 0 view .LVU3216 9611 008e 002C cmp r4, #0 9612 0090 C4D1 bne .L686 4800:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9613 .loc 1 4800 5 is_stmt 1 view .LVU3217 4800:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9614 .loc 1 4800 11 is_stmt 0 view .LVU3218 9615 0092 16A8 add r0, sp, #88 9616 0094 FFF7FEFF bl dir_remove 9617 .LVL1113: 4801:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); 9618 .loc 1 4801 5 is_stmt 1 view .LVU3219 4801:Middlewares/Third_Party/FatFs/src/ff.c **** res = sync_fs(fs); 9619 .loc 1 4801 8 is_stmt 0 view .LVU3220 9620 0098 0446 mov r4, r0 9621 009a 0028 cmp r0, #0 9622 009c BED1 bne .L686 4802:Middlewares/Third_Party/FatFs/src/ff.c **** } 9623 .loc 1 4802 6 is_stmt 1 view .LVU3221 4802:Middlewares/Third_Party/FatFs/src/ff.c **** } 9624 .loc 1 4802 12 is_stmt 0 view .LVU3222 9625 009e 0998 ldr r0, [sp, #36] 9626 .LVL1114: 4802:Middlewares/Third_Party/FatFs/src/ff.c **** } 9627 .loc 1 4802 12 view .LVU3223 9628 00a0 FFF7FEFF bl sync_fs 9629 .LVL1115: 9630 00a4 0446 mov r4, r0 9631 .LVL1116: 4802:Middlewares/Third_Party/FatFs/src/ff.c **** } 9632 .loc 1 4802 12 view .LVU3224 9633 00a6 B9E7 b .L686 9634 .LVL1117: 9635 .L691: 4776:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9636 .loc 1 4776 6 is_stmt 1 view .LVU3225 4776:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK) { 9637 .loc 1 4776 12 is_stmt 0 view .LVU3226 9638 00a8 0AA8 add r0, sp, #40 9639 00aa FFF7FEFF bl dir_register 9640 .LVL1118: 4777:Middlewares/Third_Party/FatFs/src/ff.c **** dir = djn.dir; /* Copy information about object except name */ 9641 .loc 1 4777 6 is_stmt 1 view .LVU3227 4777:Middlewares/Third_Party/FatFs/src/ff.c **** dir = djn.dir; /* Copy information about object except name */ 9642 .loc 1 4777 9 is_stmt 0 view .LVU3228 9643 00ae 0446 mov r4, r0 9644 00b0 0028 cmp r0, #0 9645 00b2 ECD1 bne .L690 4778:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + 13, buf + 2, 19); 9646 .loc 1 4778 7 is_stmt 1 view .LVU3229 4778:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(dir + 13, buf + 2, 19); ARM GAS /tmp/cczRNDQp.s page 324 9647 .loc 1 4778 11 is_stmt 0 view .LVU3230 9648 00b4 129D ldr r5, [sp, #72] 9649 .LVL1119: 4779:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = buf[0] | AM_ARC; 9650 .loc 1 4779 7 is_stmt 1 view .LVU3231 9651 00b6 1322 movs r2, #19 9652 00b8 0DF10E01 add r1, sp, #14 9653 00bc 05F10D00 add r0, r5, #13 9654 .LVL1120: 4779:Middlewares/Third_Party/FatFs/src/ff.c **** dir[DIR_Attr] = buf[0] | AM_ARC; 9655 .loc 1 4779 7 is_stmt 0 view .LVU3232 9656 00c0 FFF7FEFF bl mem_cpy 9657 .LVL1121: 4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9658 .loc 1 4780 7 is_stmt 1 view .LVU3233 4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9659 .loc 1 4780 26 is_stmt 0 view .LVU3234 9660 00c4 9DF80C30 ldrb r3, [sp, #12] @ zero_extendqisi2 4780:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9661 .loc 1 4780 21 view .LVU3235 9662 00c8 43F02003 orr r3, r3, #32 9663 00cc 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 9664 .loc 1 4781 7 is_stmt 1 view .LVU3236 4781:Middlewares/Third_Party/FatFs/src/ff.c **** if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the 9665 .loc 1 4781 17 is_stmt 0 view .LVU3237 9666 00ce 099B ldr r3, [sp, #36] 9667 00d0 0122 movs r2, #1 9668 00d2 DA70 strb r2, [r3, #3] 4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir)); 9669 .loc 1 4782 7 is_stmt 1 view .LVU3238 4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir)); 9670 .loc 1 4782 15 is_stmt 0 view .LVU3239 9671 00d4 EB7A ldrb r3, [r5, #11] @ zero_extendqisi2 4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir)); 9672 .loc 1 4782 10 view .LVU3240 9673 00d6 13F0100F tst r3, #16 9674 00da D8D0 beq .L690 4782:Middlewares/Third_Party/FatFs/src/ff.c **** dw = clust2sect(fs, ld_clust(fs, dir)); 9675 .loc 1 4782 36 discriminator 1 view .LVU3241 9676 00dc 189A ldr r2, [sp, #96] 9677 00de 0C9B ldr r3, [sp, #48] 9678 00e0 9A42 cmp r2, r3 9679 00e2 D4D0 beq .L690 4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) { 9680 .loc 1 4783 8 is_stmt 1 view .LVU3242 4783:Middlewares/Third_Party/FatFs/src/ff.c **** if (!dw) { 9681 .loc 1 4783 13 is_stmt 0 view .LVU3243 9682 00e4 099C ldr r4, [sp, #36] 9683 00e6 2946 mov r1, r5 9684 00e8 2046 mov r0, r4 9685 00ea FFF7FEFF bl ld_clust 9686 .LVL1122: 9687 00ee 0146 mov r1, r0 9688 00f0 2046 mov r0, r4 9689 00f2 FFF7FEFF bl clust2sect 9690 .LVL1123: ARM GAS /tmp/cczRNDQp.s page 325 4784:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; 9691 .loc 1 4784 8 is_stmt 1 view .LVU3244 4784:Middlewares/Third_Party/FatFs/src/ff.c **** res = FR_INT_ERR; 9692 .loc 1 4784 11 is_stmt 0 view .LVU3245 9693 00f6 0146 mov r1, r0 9694 00f8 08B9 cbnz r0, .L698 4785:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 9695 .loc 1 4785 13 view .LVU3246 9696 00fa 0224 movs r4, #2 9697 00fc 8EE7 b .L686 9698 .L698: 4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ 9699 .loc 1 4788 9 is_stmt 1 view .LVU3247 4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ 9700 .loc 1 4788 15 is_stmt 0 view .LVU3248 9701 00fe 2046 mov r0, r4 9702 .LVL1124: 4788:Middlewares/Third_Party/FatFs/src/ff.c **** dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ 9703 .loc 1 4788 15 view .LVU3249 9704 0100 FFF7FEFF bl move_window 9705 .LVL1125: 4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') { 9706 .loc 1 4789 9 is_stmt 1 view .LVU3250 4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') { 9707 .loc 1 4789 17 is_stmt 0 view .LVU3251 9708 0104 099B ldr r3, [sp, #36] 4789:Middlewares/Third_Party/FatFs/src/ff.c **** if (res == FR_OK && dir[1] == '.') { 9709 .loc 1 4789 13 view .LVU3252 9710 0106 03F15401 add r1, r3, #84 9711 .LVL1126: 4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust); 9712 .loc 1 4790 9 is_stmt 1 view .LVU3253 4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust); 9713 .loc 1 4790 12 is_stmt 0 view .LVU3254 9714 010a 0446 mov r4, r0 9715 010c 0028 cmp r0, #0 9716 010e BED1 bne .L690 4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust); 9717 .loc 1 4790 32 discriminator 1 view .LVU3255 9718 0110 93F85520 ldrb r2, [r3, #85] @ zero_extendqisi2 4790:Middlewares/Third_Party/FatFs/src/ff.c **** st_clust(fs, dir, djn.obj.sclust); 9719 .loc 1 4790 26 discriminator 1 view .LVU3256 9720 0114 2E2A cmp r2, #46 9721 0116 BAD1 bne .L690 4791:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9722 .loc 1 4791 10 is_stmt 1 view .LVU3257 9723 0118 0C9A ldr r2, [sp, #48] 9724 011a 1846 mov r0, r3 9725 .LVL1127: 4791:Middlewares/Third_Party/FatFs/src/ff.c **** fs->wflag = 1; 9726 .loc 1 4791 10 is_stmt 0 view .LVU3258 9727 011c FFF7FEFF bl st_clust 9728 .LVL1128: 4792:Middlewares/Third_Party/FatFs/src/ff.c **** } 9729 .loc 1 4792 10 is_stmt 1 view .LVU3259 4792:Middlewares/Third_Party/FatFs/src/ff.c **** } 9730 .loc 1 4792 20 is_stmt 0 view .LVU3260 ARM GAS /tmp/cczRNDQp.s page 326 9731 0120 099B ldr r3, [sp, #36] 9732 0122 0122 movs r2, #1 9733 0124 DA70 strb r2, [r3, #3] 9734 0126 B2E7 b .L690 9735 .cfi_endproc 9736 .LFE1236: 9738 .section .rodata.f_mkfs.str1.4,"aMS",%progbits,1 9739 .align 2 9740 .LC1: 9741 0000 EBFE904D .ascii "\353\376\220MSDOS5.0\000" 9741 53444F53 9741 352E3000 9742 .align 2 9743 .LC2: 9744 000c 4E4F204E .ascii "NO NAME FAT32 \000" 9744 414D4520 9744 20202046 9744 41543332 9744 20202000 9745 .align 2 9746 .LC3: 9747 0020 4E4F204E .ascii "NO NAME FAT \000" 9747 414D4520 9747 20202046 9747 41542020 9747 20202000 9748 .section .text.f_mkfs,"ax",%progbits 9749 .align 1 9750 .global f_mkfs 9751 .syntax unified 9752 .thumb 9753 .thumb_func 9754 .fpu fpv5-d16 9756 f_mkfs: 9757 .LVL1129: 9758 .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) */ 9759 .loc 1 5308 1 is_stmt 1 view -0 9760 .cfi_startproc 9761 @ args = 4, pretend = 0, frame = 48 9762 @ 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) */ 9763 .loc 1 5308 1 is_stmt 0 view .LVU3262 9764 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9765 .LCFI111: 9766 .cfi_def_cfa_offset 36 9767 .cfi_offset 4, -36 9768 .cfi_offset 5, -32 9769 .cfi_offset 6, -28 9770 .cfi_offset 7, -24 9771 .cfi_offset 8, -20 9772 .cfi_offset 9, -16 9773 .cfi_offset 10, -12 9774 .cfi_offset 11, -8 9775 .cfi_offset 14, -4 9776 0004 8DB0 sub sp, sp, #52 9777 .LCFI112: ARM GAS /tmp/cczRNDQp.s page 327 9778 .cfi_def_cfa_offset 88 9779 0006 0790 str r0, [sp, #28] 9780 0008 8846 mov r8, r1 9781 000a 1546 mov r5, r2 9782 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 */ 9783 .loc 1 5309 2 is_stmt 1 view .LVU3263 9784 .LVL1130: 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 9785 .loc 1 5310 2 view .LVU3264 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 9786 .loc 1 5311 2 view .LVU3265 5312:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE fmt, sys, *buf, *pte, pdrv, part; 9787 .loc 1 5312 2 view .LVU3266 5313:Middlewares/Third_Party/FatFs/src/ff.c **** WORD ss; 9788 .loc 1 5313 2 view .LVU3267 5314:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n; 9789 .loc 1 5314 2 view .LVU3268 5315:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */ 9790 .loc 1 5315 2 view .LVU3269 5316:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */ 9791 .loc 1 5316 2 view .LVU3270 5317:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i; 9792 .loc 1 5317 2 view .LVU3271 5318:Middlewares/Third_Party/FatFs/src/ff.c **** int vol; 9793 .loc 1 5318 2 view .LVU3272 5319:Middlewares/Third_Party/FatFs/src/ff.c **** DSTATUS stat; 9794 .loc 1 5319 2 view .LVU3273 5320:Middlewares/Third_Party/FatFs/src/ff.c **** #if _USE_TRIM || _FS_EXFAT 9795 .loc 1 5320 2 view .LVU3274 5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 9796 .loc 1 5327 2 view .LVU3275 5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 9797 .loc 1 5327 8 is_stmt 0 view .LVU3276 9798 000e 07A8 add r0, sp, #28 9799 .LVL1131: 5327:Middlewares/Third_Party/FatFs/src/ff.c **** if (vol < 0) return FR_INVALID_DRIVE; 9800 .loc 1 5327 8 view .LVU3277 9801 0010 FFF7FEFF bl get_ldnumber 9802 .LVL1132: 5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ 9803 .loc 1 5328 2 is_stmt 1 view .LVU3278 5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ 9804 .loc 1 5328 5 is_stmt 0 view .LVU3279 9805 0014 0028 cmp r0, #0 5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ 9806 .loc 1 5328 5 view .LVU3280 9807 0016 C0F2F982 blt .L743 5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */ 9808 .loc 1 5329 2 is_stmt 1 view .LVU3281 5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */ 9809 .loc 1 5329 11 is_stmt 0 view .LVU3282 9810 001a A74B ldr r3, .L796 9811 001c 53F82030 ldr r3, [r3, r0, lsl #2] 5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */ 9812 .loc 1 5329 5 view .LVU3283 9813 0020 0BB1 cbz r3, .L701 ARM GAS /tmp/cczRNDQp.s page 328 5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */ 9814 .loc 1 5329 18 is_stmt 1 discriminator 1 view .LVU3284 5329:Middlewares/Third_Party/FatFs/src/ff.c **** pdrv = LD2PD(vol); /* Physical drive */ 9815 .loc 1 5329 38 is_stmt 0 discriminator 1 view .LVU3285 9816 0022 0022 movs r2, #0 9817 0024 1A70 strb r2, [r3] 9818 .L701: 5330:Middlewares/Third_Party/FatFs/src/ff.c **** part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ 9819 .loc 1 5330 2 is_stmt 1 view .LVU3286 5330:Middlewares/Third_Party/FatFs/src/ff.c **** part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ 9820 .loc 1 5330 7 is_stmt 0 view .LVU3287 9821 0026 C4B2 uxtb r4, r0 9822 .LVL1133: 5331:Middlewares/Third_Party/FatFs/src/ff.c **** 9823 .loc 1 5331 2 is_stmt 1 view .LVU3288 5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY; 9824 .loc 1 5334 2 view .LVU3289 5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY; 9825 .loc 1 5334 9 is_stmt 0 view .LVU3290 9826 0028 2046 mov r0, r4 9827 .LVL1134: 5334:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_NOINIT) return FR_NOT_READY; 9828 .loc 1 5334 9 view .LVU3291 9829 002a FFF7FEFF bl disk_initialize 9830 .LVL1135: 5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; 9831 .loc 1 5335 2 is_stmt 1 view .LVU3292 5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; 9832 .loc 1 5335 5 is_stmt 0 view .LVU3293 9833 002e 10F0010F tst r0, #1 9834 0032 40F0ED82 bne .L744 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 & 9835 .loc 1 5336 2 is_stmt 1 view .LVU3294 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 & 9836 .loc 1 5336 5 is_stmt 0 view .LVU3295 9837 0036 10F0040F tst r0, #4 9838 003a 40F0EB82 bne .L745 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9839 .loc 1 5337 2 is_stmt 1 view .LVU3296 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9840 .loc 1 5337 6 is_stmt 0 view .LVU3297 9841 003e 0AAA add r2, sp, #40 9842 0040 0321 movs r1, #3 9843 0042 2046 mov r0, r4 9844 .LVL1136: 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9845 .loc 1 5337 6 view .LVU3298 9846 0044 FFF7FEFF bl disk_ioctl 9847 .LVL1137: 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9848 .loc 1 5337 5 view .LVU3299 9849 0048 38B9 cbnz r0, .L702 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9850 .loc 1 5337 61 discriminator 2 view .LVU3300 9851 004a 0A9B ldr r3, [sp, #40] 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9852 .loc 1 5337 58 discriminator 2 view .LVU3301 ARM GAS /tmp/cczRNDQp.s page 329 9853 004c 2BB1 cbz r3, .L702 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9854 .loc 1 5337 69 discriminator 4 view .LVU3302 9855 004e B3F5004F cmp r3, #32768 9856 0052 02D8 bhi .L702 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9857 .loc 1 5337 108 discriminator 6 view .LVU3303 9858 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. */ 9859 .loc 1 5337 87 discriminator 6 view .LVU3304 9860 0056 1342 tst r3, r2 9861 0058 01D0 beq .L703 9862 .L702: 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9863 .loc 1 5337 115 is_stmt 1 discriminator 7 view .LVU3305 5337:Middlewares/Third_Party/FatFs/src/ff.c **** #if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ 9864 .loc 1 5337 122 is_stmt 0 discriminator 7 view .LVU3306 9865 005a 0123 movs r3, #1 9866 005c 0A93 str r3, [sp, #40] 9867 .L703: 5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; 9868 .loc 1 5339 2 is_stmt 1 view .LVU3307 5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; 9869 .loc 1 5339 6 is_stmt 0 view .LVU3308 9870 005e 0DF12E02 add r2, sp, #46 9871 0062 0221 movs r1, #2 9872 0064 2046 mov r0, r4 9873 0066 FFF7FEFF bl disk_ioctl 9874 .LVL1138: 5339:Middlewares/Third_Party/FatFs/src/ff.c **** if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; 9875 .loc 1 5339 5 view .LVU3309 9876 006a 0028 cmp r0, #0 9877 006c 40F0D682 bne .L746 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 9878 .loc 1 5340 2 is_stmt 1 view .LVU3310 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 9879 .loc 1 5340 19 is_stmt 0 view .LVU3311 9880 0070 BDF82E70 ldrh r7, [sp, #46] 9881 0074 A7F50073 sub r3, r7, #512 9882 0078 9BB2 uxth r3, r3 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 9883 .loc 1 5340 5 view .LVU3312 9884 007a B3F5606F cmp r3, #3584 9885 007e 00F2CF82 bhi .L747 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 9886 .loc 1 5340 48 discriminator 2 view .LVU3313 9887 0082 7B1E subs r3, r7, #1 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 9888 .loc 1 5340 35 discriminator 2 view .LVU3314 9889 0084 1F42 tst r7, r3 9890 0086 40F0CD82 bne .L748 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 9891 .loc 1 5344 2 is_stmt 1 view .LVU3315 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 9892 .loc 1 5344 5 is_stmt 0 view .LVU3316 9893 008a 15B1 cbz r5, .L704 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ ARM GAS /tmp/cczRNDQp.s page 330 9894 .loc 1 5344 15 discriminator 1 view .LVU3317 9895 008c AF42 cmp r7, r5 9896 008e 00F2CB82 bhi .L749 9897 .L704: 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 9898 .loc 1 5344 27 discriminator 4 view .LVU3318 9899 0092 B5F1807F cmp r5, #16777216 9900 0096 00F2C982 bhi .L750 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 9901 .loc 1 5344 58 discriminator 6 view .LVU3319 9902 009a 6B1E subs r3, r5, #1 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 9903 .loc 1 5344 45 discriminator 6 view .LVU3320 9904 009c 2B40 ands r3, r3, r5 9905 009e 0193 str r3, [sp, #4] 9906 00a0 40F0C682 bne .L751 5345:Middlewares/Third_Party/FatFs/src/ff.c **** 9907 .loc 1 5345 2 is_stmt 1 view .LVU3321 5345:Middlewares/Third_Party/FatFs/src/ff.c **** 9908 .loc 1 5345 5 is_stmt 0 view .LVU3322 9909 00a4 B5FBF7F5 udiv r5, r5, r7 9910 .LVL1139: 5348:Middlewares/Third_Party/FatFs/src/ff.c **** sz_buf = len / ss; /* Size of working buffer (sector) */ 9911 .loc 1 5348 2 is_stmt 1 view .LVU3323 5349:Middlewares/Third_Party/FatFs/src/ff.c **** szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ 9912 .loc 1 5349 2 view .LVU3324 5349:Middlewares/Third_Party/FatFs/src/ff.c **** szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ 9913 .loc 1 5349 9 is_stmt 0 view .LVU3325 9914 00a8 169B ldr r3, [sp, #88] 9915 00aa B3FBF7F9 udiv r9, r3, r7 9916 .LVL1140: 5350:Middlewares/Third_Party/FatFs/src/ff.c **** if (!szb_buf) return FR_MKFS_ABORTED; 9917 .loc 1 5350 2 is_stmt 1 view .LVU3326 5350:Middlewares/Third_Party/FatFs/src/ff.c **** if (!szb_buf) return FR_MKFS_ABORTED; 9918 .loc 1 5350 10 is_stmt 0 view .LVU3327 9919 00ae 09FB07F7 mul r7, r9, r7 9920 .LVL1141: 5351:Middlewares/Third_Party/FatFs/src/ff.c **** 9921 .loc 1 5351 2 is_stmt 1 view .LVU3328 5351:Middlewares/Third_Party/FatFs/src/ff.c **** 9922 .loc 1 5351 5 is_stmt 0 view .LVU3329 9923 00b2 002F cmp r7, #0 9924 00b4 00F0BE82 beq .L752 5354:Middlewares/Third_Party/FatFs/src/ff.c **** /* Get partition information from partition table in the MBR */ 9925 .loc 1 5354 2 is_stmt 1 view .LVU3330 5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ 9926 .loc 1 5364 3 view .LVU3331 5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ 9927 .loc 1 5364 7 is_stmt 0 view .LVU3332 9928 00b8 09AA add r2, sp, #36 9929 00ba 0121 movs r1, #1 9930 00bc 2046 mov r0, r4 9931 00be FFF7FEFF bl disk_ioctl 9932 .LVL1142: 5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ 9933 .loc 1 5364 6 view .LVU3333 9934 00c2 0028 cmp r0, #0 ARM GAS /tmp/cczRNDQp.s page 331 9935 00c4 40F0B882 bne .L753 5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED; 9936 .loc 1 5365 3 is_stmt 1 view .LVU3334 5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED; 9937 .loc 1 5365 30 is_stmt 0 view .LVU3335 9938 00c8 18F00802 ands r2, r8, #8 9939 00cc 0292 str r2, [sp, #8] 9940 00ce 7AD0 beq .L754 9941 00d0 019B ldr r3, [sp, #4] 9942 00d2 0093 str r3, [sp] 9943 .L705: 9944 .LVL1143: 5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */ 9945 .loc 1 5366 3 is_stmt 1 discriminator 4 view .LVU3336 5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */ 9946 .loc 1 5366 14 is_stmt 0 discriminator 4 view .LVU3337 9947 00d4 099A ldr r2, [sp, #36] 5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */ 9948 .loc 1 5366 6 discriminator 4 view .LVU3338 9949 00d6 009B ldr r3, [sp] 9950 00d8 9A42 cmp r2, r3 9951 00da C0F0AF82 bcc .L755 5367:Middlewares/Third_Party/FatFs/src/ff.c **** } 9952 .loc 1 5367 3 is_stmt 1 view .LVU3339 5367:Middlewares/Third_Party/FatFs/src/ff.c **** } 9953 .loc 1 5367 10 is_stmt 0 view .LVU3340 9954 00de D21A subs r2, r2, r3 9955 00e0 0992 str r2, [sp, #36] 5369:Middlewares/Third_Party/FatFs/src/ff.c **** 9956 .loc 1 5369 2 is_stmt 1 view .LVU3341 5369:Middlewares/Third_Party/FatFs/src/ff.c **** 9957 .loc 1 5369 5 is_stmt 0 view .LVU3342 9958 00e2 7F2A cmp r2, #127 9959 00e4 40F2AC82 bls .L756 5372:Middlewares/Third_Party/FatFs/src/ff.c **** if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */ 9960 .loc 1 5372 2 is_stmt 1 view .LVU3343 5373:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms 9961 .loc 1 5373 3 view .LVU3344 5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */ 9962 .loc 1 5378 3 view .LVU3345 5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */ 9963 .loc 1 5378 6 is_stmt 0 view .LVU3346 9964 00e8 802D cmp r5, #128 9965 00ea 00F2AB82 bhi .L757 5379:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */ 9966 .loc 1 5379 3 is_stmt 1 view .LVU3347 5379:Middlewares/Third_Party/FatFs/src/ff.c **** if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */ 9967 .loc 1 5379 6 is_stmt 0 view .LVU3348 9968 00ee 18F00201 ands r1, r8, #2 9969 00f2 06D0 beq .L706 5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break; 9970 .loc 1 5380 4 is_stmt 1 view .LVU3349 5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break; 9971 .loc 1 5380 7 is_stmt 0 view .LVU3350 9972 00f4 08F00703 and r3, r8, #7 9973 00f8 022B cmp r3, #2 9974 00fa 67D0 beq .L758 ARM GAS /tmp/cczRNDQp.s page 332 5380:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; break; 9975 .loc 1 5380 35 discriminator 1 view .LVU3351 9976 00fc 18F0010F tst r8, #1 9977 0100 6AD0 beq .L759 9978 .L706: 5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16; 9979 .loc 1 5384 3 is_stmt 1 view .LVU3352 5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16; 9980 .loc 1 5384 6 is_stmt 0 view .LVU3353 9981 0102 18F0010F tst r8, #1 9982 0106 00F09F82 beq .L760 5385:Middlewares/Third_Party/FatFs/src/ff.c **** } while (0); 9983 .loc 1 5385 7 view .LVU3354 9984 010a 4FF0020B mov fp, #2 9985 010e 0394 str r4, [sp, #12] 9986 0110 CDF81090 str r9, [sp, #16] 9987 .LVL1144: 9988 .L708: 5386:Middlewares/Third_Party/FatFs/src/ff.c **** 9989 .loc 1 5386 10 is_stmt 1 view .LVU3355 5552:Middlewares/Third_Party/FatFs/src/ff.c **** pau = au; 9990 .loc 1 5552 3 view .LVU3356 5553:Middlewares/Third_Party/FatFs/src/ff.c **** /* Pre-determine number of clusters and FAT sub-type */ 9991 .loc 1 5553 4 view .LVU3357 5555:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */ 9992 .loc 1 5555 4 view .LVU3358 5555:Middlewares/Third_Party/FatFs/src/ff.c **** if (!pau) { /* au auto-selection */ 9993 .loc 1 5555 7 is_stmt 0 view .LVU3359 9994 0114 BBF1030F cmp fp, #3 9995 0118 68D0 beq .L726 5566:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x1000; /* Volume size in unit of 4KS */ 9996 .loc 1 5566 5 is_stmt 1 view .LVU3360 5566:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x1000; /* Volume size in unit of 4KS */ 9997 .loc 1 5566 8 is_stmt 0 view .LVU3361 9998 011a 002D cmp r5, #0 9999 011c 00F08F80 beq .L785 10000 0120 AA46 mov r10, r5 10001 .LVL1145: 10002 .L714: 5570:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT12) { 10003 .loc 1 5570 5 is_stmt 1 view .LVU3362 5570:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT12) { 10004 .loc 1 5570 12 is_stmt 0 view .LVU3363 10005 0122 B2FBFAF3 udiv r3, r2, r10 10006 .LVL1146: 5571:Middlewares/Third_Party/FatFs/src/ff.c **** n = n_clst * 2 + 4; /* FAT size [byte] */ 10007 .loc 1 5571 5 is_stmt 1 view .LVU3364 5571:Middlewares/Third_Party/FatFs/src/ff.c **** n = n_clst * 2 + 4; /* FAT size [byte] */ 10008 .loc 1 5571 8 is_stmt 0 view .LVU3365 10009 0126 40F6F570 movw r0, #4085 10010 012a 8342 cmp r3, r0 10011 012c 40F29880 bls .L717 5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10012 .loc 1 5572 6 is_stmt 1 view .LVU3366 5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10013 .loc 1 5572 21 is_stmt 0 view .LVU3367 10014 0130 03F10208 add r8, r3, #2 ARM GAS /tmp/cczRNDQp.s page 333 5572:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10015 .loc 1 5572 8 view .LVU3368 10016 0134 4FEA4808 lsl r8, r8, #1 10017 .LVL1147: 10018 .L718: 5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */ 10019 .loc 1 5577 5 is_stmt 1 view .LVU3369 5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */ 10020 .loc 1 5577 17 is_stmt 0 view .LVU3370 10021 0138 BDF82E30 ldrh r3, [sp, #46] 10022 013c 9844 add r8, r8, r3 10023 .LVL1148: 5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */ 10024 .loc 1 5577 22 view .LVU3371 10025 013e 08F1FF38 add r8, r8, #-1 5577:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 1; /* Number of reserved sectors */ 10026 .loc 1 5577 12 view .LVU3372 10027 0142 B8FBF3F8 udiv r8, r8, r3 10028 .LVL1149: 5578:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */ 10029 .loc 1 5578 5 is_stmt 1 view .LVU3373 5579:Middlewares/Third_Party/FatFs/src/ff.c **** } 10030 .loc 1 5579 5 view .LVU3374 5579:Middlewares/Third_Party/FatFs/src/ff.c **** } 10031 .loc 1 5579 12 is_stmt 0 view .LVU3375 10032 0146 4FF4804C mov ip, #16384 10033 014a BCFBF3FC udiv ip, ip, r3 10034 .LVL1150: 5578:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */ 10035 .loc 1 5578 12 view .LVU3376 10036 014e 4FF0010E mov lr, #1 10037 .LVL1151: 10038 .L713: 5581:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */ 10039 .loc 1 5581 4 is_stmt 1 view .LVU3377 5581:Middlewares/Third_Party/FatFs/src/ff.c **** b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */ 10040 .loc 1 5581 10 is_stmt 0 view .LVU3378 10041 0152 009B ldr r3, [sp] 10042 0154 0EEB0309 add r9, lr, r3 10043 .LVL1152: 5582:Middlewares/Third_Party/FatFs/src/ff.c **** 10044 .loc 1 5582 4 is_stmt 1 view .LVU3379 5582:Middlewares/Third_Party/FatFs/src/ff.c **** 10045 .loc 1 5582 19 is_stmt 0 view .LVU3380 10046 0158 08EB0903 add r3, r8, r9 5582:Middlewares/Third_Party/FatFs/src/ff.c **** 10047 .loc 1 5582 11 view .LVU3381 10048 015c 6344 add r3, r3, ip 10049 .LVL1153: 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10050 .loc 1 5585 4 is_stmt 1 view .LVU3382 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10051 .loc 1 5585 17 is_stmt 0 view .LVU3383 10052 015e 0A9C ldr r4, [sp, #40] 10053 0160 E018 adds r0, r4, r3 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10054 .loc 1 5585 26 view .LVU3384 ARM GAS /tmp/cczRNDQp.s page 334 10055 0162 0138 subs r0, r0, #1 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10056 .loc 1 5585 33 view .LVU3385 10057 0164 6442 rsbs r4, r4, #0 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10058 .loc 1 5585 31 view .LVU3386 10059 0166 0440 ands r4, r4, r0 5585:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ 10060 .loc 1 5585 6 view .LVU3387 10061 0168 E41A subs r4, r4, r3 10062 .LVL1154: 5586:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv += n; b_fat += n; 10063 .loc 1 5586 4 is_stmt 1 view .LVU3388 5586:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv += n; b_fat += n; 10064 .loc 1 5586 7 is_stmt 0 view .LVU3389 10065 016a BBF1030F cmp fp, #3 10066 016e 00F08280 beq .L786 5589:Middlewares/Third_Party/FatFs/src/ff.c **** } 10067 .loc 1 5589 5 is_stmt 1 view .LVU3390 5589:Middlewares/Third_Party/FatFs/src/ff.c **** } 10068 .loc 1 5589 12 is_stmt 0 view .LVU3391 10069 0172 A044 add r8, r8, r4 10070 .LVL1155: 10071 .L720: 5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; 10072 .loc 1 5593 4 is_stmt 1 view .LVU3392 5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; 10073 .loc 1 5593 24 is_stmt 0 view .LVU3393 10074 0174 03EB0A13 add r3, r3, r10, lsl #4 10075 .LVL1156: 5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; 10076 .loc 1 5593 35 view .LVU3394 10077 0178 0098 ldr r0, [sp] 10078 017a 1B1A subs r3, r3, r0 5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; 10079 .loc 1 5593 7 view .LVU3395 10080 017c 9A42 cmp r2, r3 10081 017e C0F07382 bcc .L764 5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10082 .loc 1 5594 4 is_stmt 1 view .LVU3396 5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10083 .loc 1 5594 21 is_stmt 0 view .LVU3397 10084 0182 A2EB0E03 sub r3, r2, lr 5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10085 .loc 1 5594 30 view .LVU3398 10086 0186 A3EB0803 sub r3, r3, r8 5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10087 .loc 1 5594 48 view .LVU3399 10088 018a A3EB0C03 sub r3, r3, ip 5594:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10089 .loc 1 5594 11 view .LVU3400 10090 018e B3FBFAF3 udiv r3, r3, r10 10091 .LVL1157: 5595:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */ 10092 .loc 1 5595 4 is_stmt 1 view .LVU3401 5595:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */ 10093 .loc 1 5595 7 is_stmt 0 view .LVU3402 ARM GAS /tmp/cczRNDQp.s page 335 10094 0192 BBF1030F cmp fp, #3 10095 0196 71D0 beq .L787 10096 .L721: 5601:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */ 10097 .loc 1 5601 4 is_stmt 1 view .LVU3403 5601:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */ 10098 .loc 1 5601 7 is_stmt 0 view .LVU3404 10099 0198 BBF1020F cmp fp, #2 10100 019c 40F09680 bne .L723 5602:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (pau * 2) <= 64) { 10101 .loc 1 5602 5 is_stmt 1 view .LVU3405 5602:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (pau * 2) <= 64) { 10102 .loc 1 5602 8 is_stmt 0 view .LVU3406 10103 01a0 4FF6F570 movw r0, #65525 10104 01a4 8342 cmp r3, r0 10105 01a6 78D9 bls .L724 5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */ 10106 .loc 1 5603 6 is_stmt 1 view .LVU3407 5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */ 10107 .loc 1 5603 9 is_stmt 0 view .LVU3408 10108 01a8 1DB9 cbnz r5, .L725 5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */ 10109 .loc 1 5603 22 discriminator 1 view .LVU3409 10110 01aa 4FEA4A03 lsl r3, r10, #1 10111 .LVL1158: 5603:Middlewares/Third_Party/FatFs/src/ff.c **** au = pau * 2; continue; /* Adjust cluster size and retry */ 10112 .loc 1 5603 14 discriminator 1 view .LVU3410 10113 01ae 402B cmp r3, #64 10114 01b0 18D9 bls .L766 10115 .L725: 5606:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */ 10116 .loc 1 5606 6 is_stmt 1 view .LVU3411 5606:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */ 10117 .loc 1 5606 9 is_stmt 0 view .LVU3412 10118 01b2 C9B9 cbnz r1, .L767 5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10119 .loc 1 5609 6 is_stmt 1 view .LVU3413 5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10120 .loc 1 5609 9 is_stmt 0 view .LVU3414 10121 01b4 002D cmp r5, #0 10122 01b6 40F05B82 bne .L768 5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10123 .loc 1 5609 21 discriminator 1 view .LVU3415 10124 01ba 4FEA4A05 lsl r5, r10, #1 10125 .LVL1159: 5609:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10126 .loc 1 5609 14 discriminator 1 view .LVU3416 10127 01be 802D cmp r5, #128 10128 01c0 A8D9 bls .L708 5610:Middlewares/Third_Party/FatFs/src/ff.c **** } 10129 .loc 1 5610 13 view .LVU3417 10130 01c2 0E20 movs r0, #14 10131 01c4 27E2 b .L700 10132 .LVL1160: 10133 .L754: 5365:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < b_vol) return FR_MKFS_ABORTED; 10134 .loc 1 5365 30 view .LVU3418 ARM GAS /tmp/cczRNDQp.s page 336 10135 01c6 3F23 movs r3, #63 10136 01c8 0093 str r3, [sp] 10137 01ca 83E7 b .L705 10138 .LVL1161: 10139 .L758: 5381:Middlewares/Third_Party/FatFs/src/ff.c **** } 10140 .loc 1 5381 9 view .LVU3419 10141 01cc 4FF0030B mov fp, #3 10142 01d0 0394 str r4, [sp, #12] 10143 01d2 CDF81090 str r9, [sp, #16] 10144 01d6 9DE7 b .L708 10145 .L759: 5381:Middlewares/Third_Party/FatFs/src/ff.c **** } 10146 .loc 1 5381 9 view .LVU3420 10147 01d8 4FF0030B mov fp, #3 10148 01dc 0394 str r4, [sp, #12] 10149 01de CDF81090 str r9, [sp, #16] 10150 01e2 97E7 b .L708 10151 .LVL1162: 10152 .L766: 5604:Middlewares/Third_Party/FatFs/src/ff.c **** } 10153 .loc 1 5604 10 view .LVU3421 10154 01e4 1D46 mov r5, r3 10155 01e6 95E7 b .L708 10156 .L767: 5607:Middlewares/Third_Party/FatFs/src/ff.c **** } 10157 .loc 1 5607 11 view .LVU3422 10158 01e8 4FF0030B mov fp, #3 10159 .LVL1163: 10160 .L726: 5556:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x20000; /* Volume size in unit of 128KS */ 10161 .loc 1 5556 5 is_stmt 1 view .LVU3423 5556:Middlewares/Third_Party/FatFs/src/ff.c **** n = sz_vol / 0x20000; /* Volume size in unit of 128KS */ 10162 .loc 1 5556 8 is_stmt 0 view .LVU3424 10163 01ec BDB1 cbz r5, .L788 10164 01ee AA46 mov r10, r5 10165 .L710: 10166 .LVL1164: 5560:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */ 10167 .loc 1 5560 5 is_stmt 1 view .LVU3425 5560:Middlewares/Third_Party/FatFs/src/ff.c **** sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */ 10168 .loc 1 5560 12 is_stmt 0 view .LVU3426 10169 01f0 B2FBFAF3 udiv r3, r2, r10 10170 .LVL1165: 5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */ 10171 .loc 1 5561 5 is_stmt 1 view .LVU3427 5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */ 10172 .loc 1 5561 26 is_stmt 0 view .LVU3428 10173 01f4 03F10208 add r8, r3, #2 5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */ 10174 .loc 1 5561 30 view .LVU3429 10175 01f8 BDF82E00 ldrh r0, [sp, #46] 10176 01fc 00EB8808 add r8, r0, r8, lsl #2 5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */ 10177 .loc 1 5561 35 view .LVU3430 10178 0200 08F1FF38 add r8, r8, #-1 5561:Middlewares/Third_Party/FatFs/src/ff.c **** sz_rsv = 32; /* Number of reserved sectors */ ARM GAS /tmp/cczRNDQp.s page 337 10179 .loc 1 5561 12 view .LVU3431 10180 0204 B8FBF0F8 udiv r8, r8, r0 10181 .LVL1166: 5562:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = 0; /* No static directory */ 10182 .loc 1 5562 5 is_stmt 1 view .LVU3432 5563:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED; 10183 .loc 1 5563 5 view .LVU3433 5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */ 10184 .loc 1 5564 5 view .LVU3434 5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */ 10185 .loc 1 5564 29 is_stmt 0 view .LVU3435 10186 0208 2C48 ldr r0, .L796+4 10187 020a 1844 add r0, r0, r3 5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */ 10188 .loc 1 5564 8 view .LVU3436 10189 020c 2C4B ldr r3, .L796+8 10190 .LVL1167: 5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */ 10191 .loc 1 5564 8 view .LVU3437 10192 020e 9842 cmp r0, r3 10193 0210 00F22882 bhi .L762 5563:Middlewares/Third_Party/FatFs/src/ff.c **** if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED; 10194 .loc 1 5563 12 view .LVU3438 10195 0214 DDF804C0 ldr ip, [sp, #4] 5562:Middlewares/Third_Party/FatFs/src/ff.c **** sz_dir = 0; /* No static directory */ 10196 .loc 1 5562 12 view .LVU3439 10197 0218 4FF0200E mov lr, #32 10198 021c 99E7 b .L713 10199 .LVL1168: 10200 .L788: 5557:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */ 10201 .loc 1 5557 6 is_stmt 1 view .LVU3440 5557:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */ 10202 .loc 1 5557 8 is_stmt 0 view .LVU3441 10203 021e 540C lsrs r4, r2, #17 10204 .LVL1169: 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10205 .loc 1 5558 6 is_stmt 1 view .LVU3442 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10206 .loc 1 5558 13 is_stmt 0 view .LVU3443 10207 0220 2846 mov r0, r5 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10208 .loc 1 5558 22 view .LVU3444 10209 0222 4FF0010A mov r10, #1 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10210 .loc 1 5558 6 view .LVU3445 10211 0226 02E0 b .L711 10212 .LVL1170: 10213 .L712: 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10214 .loc 1 5558 70 is_stmt 1 discriminator 4 view .LVU3446 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10215 .loc 1 5558 54 discriminator 4 view .LVU3447 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10216 .loc 1 5558 55 is_stmt 0 discriminator 4 view .LVU3448 10217 0228 0130 adds r0, r0, #1 10218 .LVL1171: ARM GAS /tmp/cczRNDQp.s page 338 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10219 .loc 1 5558 63 discriminator 4 view .LVU3449 10220 022a 4FEA4A0A lsl r10, r10, #1 10221 .LVL1172: 10222 .L711: 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10223 .loc 1 5558 27 is_stmt 1 discriminator 1 view .LVU3450 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10224 .loc 1 5558 32 is_stmt 0 discriminator 1 view .LVU3451 10225 022e 254B ldr r3, .L796+12 10226 0230 33F81030 ldrh r3, [r3, r0, lsl #1] 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10227 .loc 1 5558 6 discriminator 1 view .LVU3452 10228 0234 002B cmp r3, #0 10229 0236 DBD0 beq .L710 5558:Middlewares/Third_Party/FatFs/src/ff.c **** } 10230 .loc 1 5558 36 discriminator 3 view .LVU3453 10231 0238 A342 cmp r3, r4 10232 023a F5D9 bls .L712 10233 023c D8E7 b .L710 10234 .LVL1173: 10235 .L785: 5567:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */ 10236 .loc 1 5567 6 is_stmt 1 view .LVU3454 5567:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */ 10237 .loc 1 5567 8 is_stmt 0 view .LVU3455 10238 023e 140B lsrs r4, r2, #12 10239 .LVL1174: 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10240 .loc 1 5568 6 is_stmt 1 view .LVU3456 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10241 .loc 1 5568 13 is_stmt 0 view .LVU3457 10242 0240 2846 mov r0, r5 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10243 .loc 1 5568 22 view .LVU3458 10244 0242 4FF0010A mov r10, #1 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10245 .loc 1 5568 6 view .LVU3459 10246 0246 02E0 b .L715 10247 .LVL1175: 10248 .L716: 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10249 .loc 1 5568 66 is_stmt 1 discriminator 4 view .LVU3460 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10250 .loc 1 5568 50 discriminator 4 view .LVU3461 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10251 .loc 1 5568 51 is_stmt 0 discriminator 4 view .LVU3462 10252 0248 0130 adds r0, r0, #1 10253 .LVL1176: 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10254 .loc 1 5568 59 discriminator 4 view .LVU3463 10255 024a 4FEA4A0A lsl r10, r10, #1 10256 .LVL1177: 10257 .L715: 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10258 .loc 1 5568 27 is_stmt 1 discriminator 1 view .LVU3464 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 339 10259 .loc 1 5568 30 is_stmt 0 discriminator 1 view .LVU3465 10260 024e 1E4B ldr r3, .L796+16 10261 0250 33F81030 ldrh r3, [r3, r0, lsl #1] 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10262 .loc 1 5568 6 discriminator 1 view .LVU3466 10263 0254 002B cmp r3, #0 10264 0256 3FF464AF beq .L714 5568:Middlewares/Third_Party/FatFs/src/ff.c **** } 10265 .loc 1 5568 34 discriminator 3 view .LVU3467 10266 025a A342 cmp r3, r4 10267 025c F4D9 bls .L716 10268 025e 60E7 b .L714 10269 .LVL1178: 10270 .L717: 5574:Middlewares/Third_Party/FatFs/src/ff.c **** n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */ 10271 .loc 1 5574 6 is_stmt 1 view .LVU3468 5575:Middlewares/Third_Party/FatFs/src/ff.c **** } 10272 .loc 1 5575 6 view .LVU3469 5575:Middlewares/Third_Party/FatFs/src/ff.c **** } 10273 .loc 1 5575 18 is_stmt 0 view .LVU3470 10274 0260 03EB4303 add r3, r3, r3, lsl #1 10275 .LVL1179: 5575:Middlewares/Third_Party/FatFs/src/ff.c **** } 10276 .loc 1 5575 22 view .LVU3471 10277 0264 03F10108 add r8, r3, #1 5575:Middlewares/Third_Party/FatFs/src/ff.c **** } 10278 .loc 1 5575 27 view .LVU3472 10279 0268 4FEA5808 lsr r8, r8, #1 5575:Middlewares/Third_Party/FatFs/src/ff.c **** } 10280 .loc 1 5575 8 view .LVU3473 10281 026c 08F10308 add r8, r8, #3 10282 .LVL1180: 5574:Middlewares/Third_Party/FatFs/src/ff.c **** n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */ 10283 .loc 1 5574 10 view .LVU3474 10284 0270 4FF0010B mov fp, #1 10285 0274 60E7 b .L718 10286 .LVL1181: 10287 .L786: 5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */ 10288 .loc 1 5587 5 is_stmt 1 view .LVU3475 5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */ 10289 .loc 1 5587 12 is_stmt 0 view .LVU3476 10290 0276 A644 add lr, lr, r4 10291 .LVL1182: 5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */ 10292 .loc 1 5587 18 is_stmt 1 view .LVU3477 5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */ 10293 .loc 1 5587 24 is_stmt 0 view .LVU3478 10294 0278 A144 add r9, r9, r4 10295 .LVL1183: 5587:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16: Expand FAT size */ 10296 .loc 1 5587 24 view .LVU3479 10297 027a 7BE7 b .L720 10298 .LVL1184: 10299 .L787: 5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ 10300 .loc 1 5596 5 is_stmt 1 view .LVU3480 ARM GAS /tmp/cczRNDQp.s page 340 5596:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ 10301 .loc 1 5596 8 is_stmt 0 view .LVU3481 10302 027c 4FF6F570 movw r0, #65525 10303 0280 8342 cmp r3, r0 10304 0282 89D8 bhi .L721 5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10305 .loc 1 5597 6 is_stmt 1 view .LVU3482 5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10306 .loc 1 5597 9 is_stmt 0 view .LVU3483 10307 0284 002D cmp r5, #0 10308 0286 40F0F181 bne .L765 5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10309 .loc 1 5597 21 discriminator 1 view .LVU3484 10310 028a 4FEA5A05 lsr r5, r10, #1 10311 .LVL1185: 5597:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10312 .loc 1 5597 14 discriminator 1 view .LVU3485 10313 028e BAF1010F cmp r10, #1 10314 0292 3FF63FAF bhi .L708 5598:Middlewares/Third_Party/FatFs/src/ff.c **** } 10315 .loc 1 5598 13 view .LVU3486 10316 0296 0E20 movs r0, #14 10317 0298 BDE1 b .L700 10318 .LVL1186: 10319 .L724: 5612:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ 10320 .loc 1 5612 5 is_stmt 1 view .LVU3487 5612:Middlewares/Third_Party/FatFs/src/ff.c **** if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ 10321 .loc 1 5612 9 is_stmt 0 view .LVU3488 10322 029a 40F6F570 movw r0, #4085 10323 029e 8342 cmp r3, r0 10324 02a0 14D8 bhi .L723 5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10325 .loc 1 5613 6 is_stmt 1 view .LVU3489 5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10326 .loc 1 5613 9 is_stmt 0 view .LVU3490 10327 02a2 002D cmp r5, #0 10328 02a4 40F0E681 bne .L769 5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10329 .loc 1 5613 21 discriminator 1 view .LVU3491 10330 02a8 4FEA4A05 lsl r5, r10, #1 10331 .LVL1187: 5613:Middlewares/Third_Party/FatFs/src/ff.c **** return FR_MKFS_ABORTED; 10332 .loc 1 5613 14 discriminator 1 view .LVU3492 10333 02ac 802D cmp r5, #128 10334 02ae 7FF631AF bls .L708 5614:Middlewares/Third_Party/FatFs/src/ff.c **** } 10335 .loc 1 5614 13 view .LVU3493 10336 02b2 0E20 movs r0, #14 10337 02b4 AFE1 b .L700 10338 .L797: 10339 02b6 00BF .align 2 10340 .L796: 10341 02b8 00000000 .word .LANCHOR2 10342 02bc 0A00FFFF .word -65526 10343 02c0 FFFFFE0F .word 268369919 10344 02c4 00000000 .word .LANCHOR4 ARM GAS /tmp/cczRNDQp.s page 341 10345 02c8 00000000 .word .LANCHOR5 10346 .LVL1188: 10347 .L723: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10348 .loc 1 5617 24 view .LVU3494 10349 02cc CDF818C0 str ip, [sp, #24] 10350 02d0 7546 mov r5, lr 10351 02d2 CDF81490 str r9, [sp, #20] 10352 02d6 039C ldr r4, [sp, #12] 10353 .LVL1189: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10354 .loc 1 5617 24 view .LVU3495 10355 02d8 DDF81090 ldr r9, [sp, #16] 10356 .LVL1190: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10357 .loc 1 5617 24 view .LVU3496 10358 02dc 0493 str r3, [sp, #16] 10359 .LVL1191: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10360 .loc 1 5617 4 is_stmt 1 view .LVU3497 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10361 .loc 1 5617 24 is_stmt 0 view .LVU3498 10362 02de 40F6F572 movw r2, #4085 10363 02e2 1946 mov r1, r3 10364 02e4 BBF1010F cmp fp, #1 10365 02e8 14BF ite ne 10366 02ea 0023 movne r3, #0 10367 .LVL1192: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10368 .loc 1 5617 24 view .LVU3499 10369 02ec 0123 moveq r3, #1 10370 02ee 9142 cmp r1, r2 10371 02f0 98BF it ls 10372 02f2 0023 movls r3, #0 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 10373 .loc 1 5617 7 view .LVU3500 10374 02f4 002B cmp r3, #0 10375 02f6 40F0BF81 bne .L770 10376 .LVL1193: 5620:Middlewares/Third_Party/FatFs/src/ff.c **** } while (1); 10377 .loc 1 5620 4 is_stmt 1 view .LVU3501 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 */ 10378 .loc 1 5628 3 view .LVU3502 10379 02fa BDF82E20 ldrh r2, [sp, #46] 10380 02fe 0021 movs r1, #0 10381 .LVL1194: 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 */ 10382 .loc 1 5628 3 is_stmt 0 view .LVU3503 10383 0300 3046 mov r0, r6 10384 0302 FFF7FEFF bl mem_set 10385 .LVL1195: 5629:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */ 10386 .loc 1 5629 3 is_stmt 1 view .LVU3504 10387 0306 0B22 movs r2, #11 10388 0308 D049 ldr r1, .L798 10389 030a 3046 mov r0, r6 10390 030c FFF7FEFF bl mem_cpy ARM GAS /tmp/cczRNDQp.s page 342 10391 .LVL1196: 5630:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */ 10392 .loc 1 5630 3 view .LVU3505 10393 0310 BDF82E10 ldrh r1, [sp, #46] 10394 0314 06F10B00 add r0, r6, #11 10395 0318 FFF7FEFF bl st_word 10396 .LVL1197: 5631:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */ 10397 .loc 1 5631 3 view .LVU3506 5631:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */ 10398 .loc 1 5631 23 is_stmt 0 view .LVU3507 10399 031c 86F80DA0 strb r10, [r6, #13] 5632:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BPB_NumFATs] = (BYTE)n_fats; /* Number of FATs */ 10400 .loc 1 5632 3 is_stmt 1 view .LVU3508 10401 0320 A9B2 uxth r1, r5 10402 0322 06F10E00 add r0, r6, #14 10403 0326 FFF7FEFF bl st_word 10404 .LVL1198: 5633:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root direc 10405 .loc 1 5633 3 view .LVU3509 5633:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root direc 10406 .loc 1 5633 20 is_stmt 0 view .LVU3510 10407 032a 0123 movs r3, #1 10408 032c 3374 strb r3, [r6, #16] 5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) { 10409 .loc 1 5634 3 is_stmt 1 view .LVU3511 10410 032e 06F11100 add r0, r6, #17 10411 0332 BBF1030F cmp fp, #3 10412 0336 7DD0 beq .L789 10413 0338 4FF40071 mov r1, #512 10414 .L727: 5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) { 10415 .loc 1 5634 3 is_stmt 0 discriminator 4 view .LVU3512 10416 033c FFF7FEFF bl st_word 10417 .LVL1199: 5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ 10418 .loc 1 5635 3 is_stmt 1 discriminator 4 view .LVU3513 5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ 10419 .loc 1 5635 14 is_stmt 0 discriminator 4 view .LVU3514 10420 0340 0999 ldr r1, [sp, #36] 5635:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ 10421 .loc 1 5635 6 discriminator 4 view .LVU3515 10422 0342 B1F5803F cmp r1, #65536 10423 0346 77D2 bcs .L728 5636:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10424 .loc 1 5636 4 is_stmt 1 view .LVU3516 10425 0348 89B2 uxth r1, r1 10426 034a 06F11300 add r0, r6, #19 10427 034e FFF7FEFF bl st_word 10428 .LVL1200: 10429 .L729: 5640:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */ 10430 .loc 1 5640 3 view .LVU3517 5640:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */ 10431 .loc 1 5640 18 is_stmt 0 view .LVU3518 10432 0352 F823 movs r3, #248 10433 0354 7375 strb r3, [r6, #21] ARM GAS /tmp/cczRNDQp.s page 343 5641:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */ 10434 .loc 1 5641 3 is_stmt 1 view .LVU3519 10435 0356 3F21 movs r1, #63 10436 0358 06F11800 add r0, r6, #24 10437 035c FFF7FEFF bl st_word 10438 .LVL1201: 5642:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_HiddSec, b_vol); /* Volume offset in the physical drive [sector] */ 10439 .loc 1 5642 3 view .LVU3520 10440 0360 FF21 movs r1, #255 10441 0362 06F11A00 add r0, r6, #26 10442 0366 FFF7FEFF bl st_word 10443 .LVL1202: 5643:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10444 .loc 1 5643 3 view .LVU3521 10445 036a 0099 ldr r1, [sp] 10446 036c 06F11C00 add r0, r6, #28 10447 0370 FFF7FEFF bl st_dword 10448 .LVL1203: 5644:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */ 10449 .loc 1 5644 3 view .LVU3522 5644:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */ 10450 .loc 1 5644 6 is_stmt 0 view .LVU3523 10451 0374 BBF1030F cmp fp, #3 10452 0378 63D0 beq .L790 5654:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */ 10453 .loc 1 5654 4 is_stmt 1 view .LVU3524 10454 037a FFF7FEFF bl get_fattime 10455 .LVL1204: 10456 037e 0146 mov r1, r0 10457 0380 06F12700 add r0, r6, #39 10458 0384 FFF7FEFF bl st_dword 10459 .LVL1205: 5655:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum] = 0x80; /* Drive number (for int13) */ 10460 .loc 1 5655 4 view .LVU3525 10461 0388 1FFA88F1 uxth r1, r8 10462 038c 06F11600 add r0, r6, #22 10463 0390 FFF7FEFF bl st_word 10464 .LVL1206: 5656:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig] = 0x29; /* Extended boot signature */ 10465 .loc 1 5656 4 view .LVU3526 5656:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig] = 0x29; /* Extended boot signature */ 10466 .loc 1 5656 19 is_stmt 0 view .LVU3527 10467 0394 8023 movs r3, #128 10468 0396 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 */ 10469 .loc 1 5657 4 is_stmt 1 view .LVU3528 5657:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */ 10470 .loc 1 5657 20 is_stmt 0 view .LVU3529 10471 039a 2923 movs r3, #41 10472 039c 86F82630 strb r3, [r6, #38] 5658:Middlewares/Third_Party/FatFs/src/ff.c **** } 10473 .loc 1 5658 4 is_stmt 1 view .LVU3530 10474 03a0 1322 movs r2, #19 10475 03a2 AB49 ldr r1, .L798+4 10476 03a4 06F12B00 add r0, r6, #43 10477 03a8 FFF7FEFF bl mem_cpy 10478 .LVL1207: ARM GAS /tmp/cczRNDQp.s page 344 10479 .L731: 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 10480 .loc 1 5660 3 view .LVU3531 10481 03ac 06F5FF73 add r3, r6, #510 10482 03b0 0393 str r3, [sp, #12] 10483 .LVL1208: 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 10484 .loc 1 5660 3 is_stmt 0 view .LVU3532 10485 03b2 4AF65521 movw r1, #43605 10486 03b6 1846 mov r0, r3 10487 03b8 FFF7FEFF bl st_word 10488 .LVL1209: 5661:Middlewares/Third_Party/FatFs/src/ff.c **** 10489 .loc 1 5661 3 is_stmt 1 view .LVU3533 5661:Middlewares/Third_Party/FatFs/src/ff.c **** 10490 .loc 1 5661 7 is_stmt 0 view .LVU3534 10491 03bc 0123 movs r3, #1 10492 03be 009A ldr r2, [sp] 10493 03c0 3146 mov r1, r6 10494 03c2 2046 mov r0, r4 10495 03c4 FFF7FEFF bl disk_write 10496 .LVL1210: 5661:Middlewares/Third_Party/FatFs/src/ff.c **** 10497 .loc 1 5661 6 view .LVU3535 10498 03c8 0028 cmp r0, #0 10499 03ca 40F05781 bne .L772 5664:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */ 10500 .loc 1 5664 3 is_stmt 1 view .LVU3536 5664:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */ 10501 .loc 1 5664 6 is_stmt 0 view .LVU3537 10502 03ce BBF1030F cmp fp, #3 10503 03d2 5ED0 beq .L791 10504 .LVL1211: 10505 .L732: 5677:Middlewares/Third_Party/FatFs/src/ff.c **** sect = b_fat; /* FAT start sector */ 10506 .loc 1 5677 3 is_stmt 1 view .LVU3538 10507 03d4 3A46 mov r2, r7 10508 03d6 0021 movs r1, #0 10509 03d8 3046 mov r0, r6 10510 03da FFF7FEFF bl mem_set 10511 .LVL1212: 5678:Middlewares/Third_Party/FatFs/src/ff.c **** for (i = 0; i < n_fats; i++) { /* Initialize FATs each */ 10512 .loc 1 5678 3 view .LVU3539 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10513 .loc 1 5679 3 view .LVU3540 10514 .L733: 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10515 .loc 1 5679 15 discriminator 1 view .LVU3541 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10516 .loc 1 5679 3 is_stmt 0 discriminator 1 view .LVU3542 10517 03de 019B ldr r3, [sp, #4] 10518 03e0 002B cmp r3, #0 10519 03e2 00F08980 beq .L738 5697:Middlewares/Third_Party/FatFs/src/ff.c **** do { 10520 .loc 1 5697 3 is_stmt 1 view .LVU3543 5697:Middlewares/Third_Party/FatFs/src/ff.c **** do { 10521 .loc 1 5697 35 is_stmt 0 view .LVU3544 ARM GAS /tmp/cczRNDQp.s page 345 10522 03e6 BBF1030F cmp fp, #3 10523 03ea 00F0C080 beq .L792 10524 03ee 069F ldr r7, [sp, #24] 10525 03f0 DDF81480 ldr r8, [sp, #20] 10526 .LVL1213: 10527 .L740: 5698:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect; 10528 .loc 1 5698 3 is_stmt 1 view .LVU3545 5699:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; 10529 .loc 1 5699 4 view .LVU3546 5699:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; 10530 .loc 1 5699 6 is_stmt 0 view .LVU3547 10531 03f4 3D46 mov r5, r7 10532 03f6 4F45 cmp r7, r9 10533 03f8 28BF it cs 10534 03fa 4D46 movcs r5, r9 10535 .LVL1214: 5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n; 10536 .loc 1 5700 4 is_stmt 1 view .LVU3548 5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n; 10537 .loc 1 5700 8 is_stmt 0 view .LVU3549 10538 03fc 2B46 mov r3, r5 10539 03fe 4246 mov r2, r8 10540 0400 3146 mov r1, r6 10541 0402 2046 mov r0, r4 10542 0404 FFF7FEFF bl disk_write 10543 .LVL1215: 5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n; 10544 .loc 1 5700 7 view .LVU3550 10545 0408 0028 cmp r0, #0 10546 040a 40F03B81 bne .L775 5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10547 .loc 1 5701 4 is_stmt 1 view .LVU3551 5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10548 .loc 1 5701 9 is_stmt 0 view .LVU3552 10549 040e A844 add r8, r8, r5 10550 .LVL1216: 5701:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10551 .loc 1 5701 15 is_stmt 1 view .LVU3553 5702:Middlewares/Third_Party/FatFs/src/ff.c **** } 10552 .loc 1 5702 11 view .LVU3554 5702:Middlewares/Third_Party/FatFs/src/ff.c **** } 10553 .loc 1 5702 3 is_stmt 0 view .LVU3555 10554 0410 7F1B subs r7, r7, r5 10555 .LVL1217: 5702:Middlewares/Third_Party/FatFs/src/ff.c **** } 10556 .loc 1 5702 3 view .LVU3556 10557 0412 EFD1 bne .L740 5706:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x07; /* HPFS/NTFS/exFAT */ 10558 .loc 1 5706 2 is_stmt 1 view .LVU3557 5709:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */ 10559 .loc 1 5709 3 view .LVU3558 5709:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x0C; /* FAT32X */ 10560 .loc 1 5709 6 is_stmt 0 view .LVU3559 10561 0414 BBF1030F cmp fp, #3 10562 0418 00F0B080 beq .L776 5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */ ARM GAS /tmp/cczRNDQp.s page 346 10563 .loc 1 5712 4 is_stmt 1 view .LVU3560 5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */ 10564 .loc 1 5712 15 is_stmt 0 view .LVU3561 10565 041c 099B ldr r3, [sp, #36] 5712:Middlewares/Third_Party/FatFs/src/ff.c **** sys = 0x06; /* FAT12/16 (>=64KS) */ 10566 .loc 1 5712 7 view .LVU3562 10567 041e B3F5803F cmp r3, #65536 10568 0422 80F0F080 bcs .L777 5715:Middlewares/Third_Party/FatFs/src/ff.c **** } 10569 .loc 1 5715 5 is_stmt 1 view .LVU3563 5715:Middlewares/Third_Party/FatFs/src/ff.c **** } 10570 .loc 1 5715 9 is_stmt 0 view .LVU3564 10571 0426 BBF1020F cmp fp, #2 10572 042a 00F0A480 beq .L793 10573 042e 4FF00108 mov r8, #1 10574 .LVL1218: 5715:Middlewares/Third_Party/FatFs/src/ff.c **** } 10575 .loc 1 5715 9 view .LVU3565 10576 0432 A5E0 b .L741 10577 .LVL1219: 10578 .L789: 5634:Middlewares/Third_Party/FatFs/src/ff.c **** if (sz_vol < 0x10000) { 10579 .loc 1 5634 3 view .LVU3566 10580 0434 0021 movs r1, #0 10581 0436 81E7 b .L727 10582 .L728: 5638:Middlewares/Third_Party/FatFs/src/ff.c **** } 10583 .loc 1 5638 4 is_stmt 1 view .LVU3567 10584 0438 06F12000 add r0, r6, #32 10585 043c FFF7FEFF bl st_dword 10586 .LVL1220: 10587 0440 87E7 b .L729 10588 .L790: 5645:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */ 10589 .loc 1 5645 4 view .LVU3568 10590 0442 FFF7FEFF bl get_fattime 10591 .LVL1221: 10592 0446 0146 mov r1, r0 10593 0448 06F14300 add r0, r6, #67 10594 044c FFF7FEFF bl st_dword 10595 .LVL1222: 5646:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + BPB_RootClus32, 2); /* Root directory cluster # (2) */ 10596 .loc 1 5646 4 view .LVU3569 10597 0450 4146 mov r1, r8 10598 0452 06F12400 add r0, r6, #36 10599 0456 FFF7FEFF bl st_dword 10600 .LVL1223: 5647:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_FSInfo32, 1); /* Offset of FSINFO sector (VBR + 1) */ 10601 .loc 1 5647 4 view .LVU3570 10602 045a 0221 movs r1, #2 10603 045c 06F12C00 add r0, r6, #44 10604 0460 FFF7FEFF bl st_dword 10605 .LVL1224: 5648:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BPB_BkBootSec32, 6); /* Offset of backup VBR (VBR + 6) */ 10606 .loc 1 5648 4 view .LVU3571 10607 0464 0121 movs r1, #1 10608 0466 06F13000 add r0, r6, #48 ARM GAS /tmp/cczRNDQp.s page 347 10609 046a FFF7FEFF bl st_word 10610 .LVL1225: 5649:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_DrvNum32] = 0x80; /* Drive number (for int13) */ 10611 .loc 1 5649 4 view .LVU3572 10612 046e 0621 movs r1, #6 10613 0470 06F13200 add r0, r6, #50 10614 0474 FFF7FEFF bl st_word 10615 .LVL1226: 5650:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig32] = 0x29; /* Extended boot signature */ 10616 .loc 1 5650 4 view .LVU3573 5650:Middlewares/Third_Party/FatFs/src/ff.c **** buf[BS_BootSig32] = 0x29; /* Extended boot signature */ 10617 .loc 1 5650 21 is_stmt 0 view .LVU3574 10618 0478 8023 movs r3, #128 10619 047a 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 */ 10620 .loc 1 5651 4 is_stmt 1 view .LVU3575 5651:Middlewares/Third_Party/FatFs/src/ff.c **** mem_cpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */ 10621 .loc 1 5651 22 is_stmt 0 view .LVU3576 10622 047e 2923 movs r3, #41 10623 0480 86F84230 strb r3, [r6, #66] 5652:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10624 .loc 1 5652 4 is_stmt 1 view .LVU3577 10625 0484 1322 movs r2, #19 10626 0486 7349 ldr r1, .L798+8 10627 0488 06F14700 add r0, r6, #71 10628 048c FFF7FEFF bl mem_cpy 10629 .LVL1227: 10630 0490 8CE7 b .L731 10631 .LVL1228: 10632 .L791: 5665:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10633 .loc 1 5665 4 view .LVU3578 10634 0492 0123 movs r3, #1 10635 0494 009D ldr r5, [sp] 10636 .LVL1229: 5665:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10637 .loc 1 5665 4 is_stmt 0 view .LVU3579 10638 0496 AA1D adds r2, r5, #6 10639 0498 3146 mov r1, r6 10640 049a 2046 mov r0, r4 10641 049c FFF7FEFF bl disk_write 10642 .LVL1230: 5666:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_LeadSig, 0x41615252); 10643 .loc 1 5666 4 is_stmt 1 view .LVU3580 10644 04a0 BDF82E20 ldrh r2, [sp, #46] 10645 04a4 0021 movs r1, #0 10646 04a6 3046 mov r0, r6 10647 04a8 FFF7FEFF bl mem_set 10648 .LVL1231: 5667:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_StrucSig, 0x61417272); 10649 .loc 1 5667 4 view .LVU3581 10650 04ac 6A49 ldr r1, .L798+12 10651 04ae 3046 mov r0, r6 10652 04b0 FFF7FEFF bl st_dword 10653 .LVL1232: 5668:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Free_Count, n_clst - 1); /* Number of free clusters */ 10654 .loc 1 5668 4 view .LVU3582 ARM GAS /tmp/cczRNDQp.s page 348 10655 04b4 6949 ldr r1, .L798+16 10656 04b6 06F5F270 add r0, r6, #484 10657 04ba FFF7FEFF bl st_dword 10658 .LVL1233: 5669:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + FSI_Nxt_Free, 2); /* Last allocated cluster# */ 10659 .loc 1 5669 4 view .LVU3583 10660 04be 049B ldr r3, [sp, #16] 10661 04c0 591E subs r1, r3, #1 10662 04c2 06F5F470 add r0, r6, #488 10663 04c6 FFF7FEFF bl st_dword 10664 .LVL1234: 5670:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); 10665 .loc 1 5670 4 view .LVU3584 10666 04ca 0221 movs r1, #2 10667 04cc 06F5F670 add r0, r6, #492 10668 04d0 FFF7FEFF bl st_dword 10669 .LVL1235: 5671:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 7, 1); /* Write backup FSINFO (VBR + 7) */ 10670 .loc 1 5671 4 view .LVU3585 10671 04d4 4AF65521 movw r1, #43605 10672 04d8 0398 ldr r0, [sp, #12] 10673 04da FFF7FEFF bl st_word 10674 .LVL1236: 5672:Middlewares/Third_Party/FatFs/src/ff.c **** disk_write(pdrv, buf, b_vol + 1, 1); /* Write original FSINFO (VBR + 1) */ 10675 .loc 1 5672 4 view .LVU3586 10676 04de 0123 movs r3, #1 10677 04e0 EA1D adds r2, r5, #7 10678 04e2 3146 mov r1, r6 10679 04e4 2046 mov r0, r4 10680 04e6 FFF7FEFF bl disk_write 10681 .LVL1237: 5673:Middlewares/Third_Party/FatFs/src/ff.c **** } 10682 .loc 1 5673 4 view .LVU3587 10683 04ea 0123 movs r3, #1 10684 04ec EA18 adds r2, r5, r3 10685 04ee 3146 mov r1, r6 10686 04f0 2046 mov r0, r4 10687 04f2 FFF7FEFF bl disk_write 10688 .LVL1238: 10689 04f6 6DE7 b .L732 10690 .LVL1239: 10691 .L738: 5680:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */ 10692 .loc 1 5680 4 view .LVU3588 5680:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */ 10693 .loc 1 5680 7 is_stmt 0 view .LVU3589 10694 04f8 BBF1030F cmp fp, #3 10695 04fc 24D0 beq .L794 5685:Middlewares/Third_Party/FatFs/src/ff.c **** } 10696 .loc 1 5685 5 is_stmt 1 view .LVU3590 10697 04fe BBF1010F cmp fp, #1 10698 0502 32D0 beq .L795 10699 0504 6FF00701 mvn r1, #7 10700 .L736: 5685:Middlewares/Third_Party/FatFs/src/ff.c **** } 10701 .loc 1 5685 5 is_stmt 0 discriminator 4 view .LVU3591 10702 0508 3046 mov r0, r6 ARM GAS /tmp/cczRNDQp.s page 349 10703 050a FFF7FEFF bl st_dword 10704 .LVL1240: 10705 .L735: 5685:Middlewares/Third_Party/FatFs/src/ff.c **** } 10706 .loc 1 5685 5 view .LVU3592 10707 050e 4546 mov r5, r8 10708 .L737: 10709 .LVL1241: 5688:Middlewares/Third_Party/FatFs/src/ff.c **** n = (nsect > sz_buf) ? sz_buf : nsect; 10710 .loc 1 5688 4 is_stmt 1 view .LVU3593 5689:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; 10711 .loc 1 5689 5 view .LVU3594 5689:Middlewares/Third_Party/FatFs/src/ff.c **** if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; 10712 .loc 1 5689 7 is_stmt 0 view .LVU3595 10713 0510 2F46 mov r7, r5 10714 0512 4D45 cmp r5, r9 10715 0514 28BF it cs 10716 0516 4F46 movcs r7, r9 10717 .LVL1242: 5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10718 .loc 1 5690 5 is_stmt 1 view .LVU3596 5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10719 .loc 1 5690 9 is_stmt 0 view .LVU3597 10720 0518 3B46 mov r3, r7 10721 051a 059A ldr r2, [sp, #20] 10722 051c 3146 mov r1, r6 10723 051e 2046 mov r0, r4 10724 0520 FFF7FEFF bl disk_write 10725 .LVL1243: 5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10726 .loc 1 5690 8 view .LVU3598 10727 0524 0028 cmp r0, #0 10728 0526 40F0AB80 bne .L774 5691:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n; 10729 .loc 1 5691 5 is_stmt 1 view .LVU3599 10730 052a BDF82E20 ldrh r2, [sp, #46] 10731 052e 0021 movs r1, #0 10732 0530 3046 mov r0, r6 10733 0532 FFF7FEFF bl mem_set 10734 .LVL1244: 5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10735 .loc 1 5692 5 view .LVU3600 5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10736 .loc 1 5692 10 is_stmt 0 view .LVU3601 10737 0536 059B ldr r3, [sp, #20] 10738 0538 3B44 add r3, r3, r7 10739 053a 0593 str r3, [sp, #20] 10740 .LVL1245: 5692:Middlewares/Third_Party/FatFs/src/ff.c **** } while (nsect); 10741 .loc 1 5692 16 is_stmt 1 view .LVU3602 5693:Middlewares/Third_Party/FatFs/src/ff.c **** } 10742 .loc 1 5693 12 view .LVU3603 5693:Middlewares/Third_Party/FatFs/src/ff.c **** } 10743 .loc 1 5693 4 is_stmt 0 view .LVU3604 10744 053c ED1B subs r5, r5, r7 10745 .LVL1246: 5693:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 350 10746 .loc 1 5693 4 view .LVU3605 10747 053e E7D1 bne .L737 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10748 .loc 1 5679 27 is_stmt 1 discriminator 2 view .LVU3606 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10749 .loc 1 5679 28 is_stmt 0 discriminator 2 view .LVU3607 10750 0540 019B ldr r3, [sp, #4] 10751 .LVL1247: 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10752 .loc 1 5679 28 discriminator 2 view .LVU3608 10753 0542 0133 adds r3, r3, #1 10754 0544 0193 str r3, [sp, #4] 10755 .LVL1248: 5679:Middlewares/Third_Party/FatFs/src/ff.c **** if (fmt == FS_FAT32) { 10756 .loc 1 5679 28 discriminator 2 view .LVU3609 10757 0546 4AE7 b .L733 10758 .LVL1249: 10759 .L794: 5681:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 4, 0xFFFFFFFF); /* Entry 1 */ 10760 .loc 1 5681 5 is_stmt 1 view .LVU3610 10761 0548 6FF00701 mvn r1, #7 10762 054c 3046 mov r0, r6 10763 054e FFF7FEFF bl st_dword 10764 .LVL1250: 5682:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(buf + 8, 0x0FFFFFFF); /* Entry 2 (root directory) */ 10765 .loc 1 5682 5 view .LVU3611 10766 0552 4FF0FF31 mov r1, #-1 10767 0556 301D adds r0, r6, #4 10768 0558 FFF7FEFF bl st_dword 10769 .LVL1251: 5683:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10770 .loc 1 5683 5 view .LVU3612 10771 055c 6FF07041 mvn r1, #-268435456 10772 0560 06F10800 add r0, r6, #8 10773 0564 FFF7FEFF bl st_dword 10774 .LVL1252: 10775 0568 D1E7 b .L735 10776 .LVL1253: 10777 .L795: 5685:Middlewares/Third_Party/FatFs/src/ff.c **** } 10778 .loc 1 5685 5 is_stmt 0 view .LVU3613 10779 056a 3D49 ldr r1, .L798+20 10780 056c CCE7 b .L736 10781 .L792: 5697:Middlewares/Third_Party/FatFs/src/ff.c **** do { 10782 .loc 1 5697 35 view .LVU3614 10783 056e 5746 mov r7, r10 10784 0570 DDF81480 ldr r8, [sp, #20] 10785 .LVL1254: 5697:Middlewares/Third_Party/FatFs/src/ff.c **** do { 10786 .loc 1 5697 35 view .LVU3615 10787 0574 3EE7 b .L740 10788 .LVL1255: 10789 .L793: 5715:Middlewares/Third_Party/FatFs/src/ff.c **** } 10790 .loc 1 5715 9 view .LVU3616 10791 0576 4FF00408 mov r8, #4 ARM GAS /tmp/cczRNDQp.s page 351 10792 .LVL1256: 5715:Middlewares/Third_Party/FatFs/src/ff.c **** } 10793 .loc 1 5715 9 view .LVU3617 10794 057a 01E0 b .L741 10795 .LVL1257: 10796 .L776: 5710:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10797 .loc 1 5710 8 view .LVU3618 10798 057c 4FF00C08 mov r8, #12 10799 .LVL1258: 10800 .L741: 5721:Middlewares/Third_Party/FatFs/src/ff.c **** /* Update system ID in the partition table */ 10801 .loc 1 5721 2 is_stmt 1 view .LVU3619 5727:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10802 .loc 1 5727 3 view .LVU3620 5727:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 10803 .loc 1 5727 6 is_stmt 0 view .LVU3621 10804 0580 029B ldr r3, [sp, #8] 10805 0582 C3BB cbnz r3, .L742 5728:Middlewares/Third_Party/FatFs/src/ff.c **** st_word(buf + BS_55AA, 0xAA55); /* MBR signature */ 10806 .loc 1 5728 4 is_stmt 1 view .LVU3622 10807 0584 BDF82E20 ldrh r2, [sp, #46] 10808 0588 0021 movs r1, #0 10809 058a 3046 mov r0, r6 10810 058c FFF7FEFF bl mem_set 10811 .LVL1259: 5729:Middlewares/Third_Party/FatFs/src/ff.c **** pte = buf + MBR_Table; /* Create partition table for single partition in the drive */ 10812 .loc 1 5729 4 view .LVU3623 10813 0590 4AF65521 movw r1, #43605 10814 0594 0398 ldr r0, [sp, #12] 10815 0596 FFF7FEFF bl st_word 10816 .LVL1260: 5730:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_Boot] = 0; /* Boot indicator */ 10817 .loc 1 5730 4 view .LVU3624 5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */ 10818 .loc 1 5731 4 view .LVU3625 5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */ 10819 .loc 1 5731 18 is_stmt 0 view .LVU3626 10820 059a 0025 movs r5, #0 10821 .LVL1261: 5731:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StHead] = 1; /* Start head */ 10822 .loc 1 5731 18 view .LVU3627 10823 059c 86F8BE51 strb r5, [r6, #446] 5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */ 10824 .loc 1 5732 4 is_stmt 1 view .LVU3628 5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */ 10825 .loc 1 5732 20 is_stmt 0 view .LVU3629 10826 05a0 0127 movs r7, #1 10827 .LVL1262: 5732:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StSec] = 1; /* Start sector */ 10828 .loc 1 5732 20 view .LVU3630 10829 05a2 86F8BF71 strb r7, [r6, #447] 5733:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StCyl] = 0; /* Start cylinder */ 10830 .loc 1 5733 4 is_stmt 1 view .LVU3631 5733:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_StCyl] = 0; /* Start cylinder */ 10831 .loc 1 5733 19 is_stmt 0 view .LVU3632 10832 05a6 86F8C071 strb r7, [r6, #448] ARM GAS /tmp/cczRNDQp.s page 352 5734:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_System] = sys; /* System type */ 10833 .loc 1 5734 4 is_stmt 1 view .LVU3633 5734:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_System] = sys; /* System type */ 10834 .loc 1 5734 19 is_stmt 0 view .LVU3634 10835 05aa 86F8C151 strb r5, [r6, #449] 5735:Middlewares/Third_Party/FatFs/src/ff.c **** n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */ 10836 .loc 1 5735 4 is_stmt 1 view .LVU3635 5735:Middlewares/Third_Party/FatFs/src/ff.c **** n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */ 10837 .loc 1 5735 20 is_stmt 0 view .LVU3636 10838 05ae 86F8C281 strb r8, [r6, #450] 5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */ 10839 .loc 1 5736 4 is_stmt 1 view .LVU3637 5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */ 10840 .loc 1 5736 15 is_stmt 0 view .LVU3638 10841 05b2 099B ldr r3, [sp, #36] 10842 05b4 0099 ldr r1, [sp] 10843 05b6 0B44 add r3, r3, r1 5736:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdHead] = 254; /* End head */ 10844 .loc 1 5736 6 view .LVU3639 10845 05b8 43F6C162 movw r2, #16065 10846 05bc B3FBF2F3 udiv r3, r3, r2 10847 .LVL1263: 5737:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ 10848 .loc 1 5737 4 is_stmt 1 view .LVU3640 5737:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ 10849 .loc 1 5737 20 is_stmt 0 view .LVU3641 10850 05c0 FE22 movs r2, #254 10851 05c2 86F8C321 strb r2, [r6, #451] 5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ 10852 .loc 1 5738 4 is_stmt 1 view .LVU3642 5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ 10853 .loc 1 5738 30 is_stmt 0 view .LVU3643 10854 05c6 9A08 lsrs r2, r3, #2 5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ 10855 .loc 1 5738 21 view .LVU3644 10856 05c8 42F03F02 orr r2, r2, #63 5738:Middlewares/Third_Party/FatFs/src/ff.c **** pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ 10857 .loc 1 5738 19 view .LVU3645 10858 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 */ 10859 .loc 1 5739 4 is_stmt 1 view .LVU3646 5739:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */ 10860 .loc 1 5739 19 is_stmt 0 view .LVU3647 10861 05d0 86F8C531 strb r3, [r6, #453] 5740:Middlewares/Third_Party/FatFs/src/ff.c **** st_dword(pte + PTE_SizLba, sz_vol); /* Size in sectors */ 10862 .loc 1 5740 4 is_stmt 1 view .LVU3648 10863 05d4 06F5E370 add r0, r6, #454 10864 05d8 FFF7FEFF bl st_dword 10865 .LVL1264: 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 */ 10866 .loc 1 5741 4 view .LVU3649 10867 05dc 0999 ldr r1, [sp, #36] 10868 05de 06F5E570 add r0, r6, #458 10869 05e2 FFF7FEFF bl st_dword 10870 .LVL1265: 5742:Middlewares/Third_Party/FatFs/src/ff.c **** } 10871 .loc 1 5742 4 view .LVU3650 ARM GAS /tmp/cczRNDQp.s page 353 5742:Middlewares/Third_Party/FatFs/src/ff.c **** } 10872 .loc 1 5742 8 is_stmt 0 view .LVU3651 10873 05e6 3B46 mov r3, r7 10874 05e8 2A46 mov r2, r5 10875 05ea 3146 mov r1, r6 10876 05ec 2046 mov r0, r4 10877 05ee FFF7FEFF bl disk_write 10878 .LVL1266: 5742:Middlewares/Third_Party/FatFs/src/ff.c **** } 10879 .loc 1 5742 7 view .LVU3652 10880 05f2 0028 cmp r0, #0 10881 05f4 48D1 bne .L779 10882 .LVL1267: 10883 .L742: 5746:Middlewares/Third_Party/FatFs/src/ff.c **** 10884 .loc 1 5746 2 is_stmt 1 view .LVU3653 5746:Middlewares/Third_Party/FatFs/src/ff.c **** 10885 .loc 1 5746 6 is_stmt 0 view .LVU3654 10886 05f6 0022 movs r2, #0 10887 05f8 1146 mov r1, r2 10888 05fa 2046 mov r0, r4 10889 05fc FFF7FEFF bl disk_ioctl 10890 .LVL1268: 5746:Middlewares/Third_Party/FatFs/src/ff.c **** 10891 .loc 1 5746 5 view .LVU3655 10892 0600 48B1 cbz r0, .L700 5746:Middlewares/Third_Party/FatFs/src/ff.c **** 10893 .loc 1 5746 55 view .LVU3656 10894 0602 0120 movs r0, #1 10895 0604 07E0 b .L700 10896 .LVL1269: 10897 .L777: 5713:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10898 .loc 1 5713 9 view .LVU3657 10899 0606 4FF00608 mov r8, #6 10900 .LVL1270: 5713:Middlewares/Third_Party/FatFs/src/ff.c **** } else { 10901 .loc 1 5713 9 view .LVU3658 10902 060a B9E7 b .L741 10903 .LVL1271: 10904 .L743: 5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ 10905 .loc 1 5328 22 view .LVU3659 10906 060c 0B20 movs r0, #11 10907 .LVL1272: 5328:Middlewares/Third_Party/FatFs/src/ff.c **** if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ 10908 .loc 1 5328 22 view .LVU3660 10909 060e 02E0 b .L700 10910 .LVL1273: 10911 .L744: 5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; 10912 .loc 1 5335 32 view .LVU3661 10913 0610 0320 movs r0, #3 10914 .LVL1274: 5335:Middlewares/Third_Party/FatFs/src/ff.c **** if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; 10915 .loc 1 5335 32 view .LVU3662 10916 0612 00E0 b .L700 ARM GAS /tmp/cczRNDQp.s page 354 10917 .LVL1275: 10918 .L745: 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 & 10919 .loc 1 5336 33 view .LVU3663 10920 0614 0A20 movs r0, #10 10921 .LVL1276: 10922 .L700: 5749:Middlewares/Third_Party/FatFs/src/ff.c **** 10923 .loc 1 5749 1 view .LVU3664 10924 0616 0DB0 add sp, sp, #52 10925 .LCFI113: 10926 .cfi_remember_state 10927 .cfi_def_cfa_offset 36 10928 @ sp needed 10929 0618 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 10930 .LVL1277: 10931 .L746: 10932 .LCFI114: 10933 .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; 10934 .loc 1 5339 63 view .LVU3665 10935 061c 0120 movs r0, #1 10936 061e FAE7 b .L700 10937 .L747: 5340:Middlewares/Third_Party/FatFs/src/ff.c **** #else 10938 .loc 1 5340 62 view .LVU3666 10939 0620 0120 movs r0, #1 10940 0622 F8E7 b .L700 10941 .L748: 10942 0624 0120 movs r0, #1 10943 0626 F6E7 b .L700 10944 .L749: 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 10945 .loc 1 5344 72 view .LVU3667 10946 0628 1320 movs r0, #19 10947 062a F4E7 b .L700 10948 .L750: 5344:Middlewares/Third_Party/FatFs/src/ff.c **** au /= ss; /* Cluster size in unit of sector */ 10949 .loc 1 5344 72 view .LVU3668 10950 062c 1320 movs r0, #19 10951 062e F2E7 b .L700 10952 .L751: 10953 0630 1320 movs r0, #19 10954 0632 F0E7 b .L700 10955 .LVL1278: 10956 .L752: 5351:Middlewares/Third_Party/FatFs/src/ff.c **** 10957 .loc 1 5351 23 view .LVU3669 10958 0634 0E20 movs r0, #14 10959 0636 EEE7 b .L700 10960 .L753: 5364:Middlewares/Third_Party/FatFs/src/ff.c **** b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ 10961 .loc 1 5364 69 view .LVU3670 10962 0638 0120 movs r0, #1 10963 063a ECE7 b .L700 10964 .LVL1279: 10965 .L755: ARM GAS /tmp/cczRNDQp.s page 355 5366:Middlewares/Third_Party/FatFs/src/ff.c **** sz_vol -= b_vol; /* Volume size */ 10966 .loc 1 5366 30 view .LVU3671 10967 063c 0E20 movs r0, #14 10968 063e EAE7 b .L700 10969 .L756: 5369:Middlewares/Third_Party/FatFs/src/ff.c **** 10970 .loc 1 5369 27 view .LVU3672 10971 0640 0E20 movs r0, #14 10972 0642 E8E7 b .L700 10973 .L757: 5378:Middlewares/Third_Party/FatFs/src/ff.c **** if (opt & FM_FAT32) { /* FAT32 possible? */ 10974 .loc 1 5378 24 view .LVU3673 10975 0644 1320 movs r0, #19 10976 0646 E6E7 b .L700 10977 .LVL1280: 10978 .L760: 5384:Middlewares/Third_Party/FatFs/src/ff.c **** fmt = FS_FAT16; 10979 .loc 1 5384 31 view .LVU3674 10980 0648 1320 movs r0, #19 10981 064a E4E7 b .L700 10982 .L799: 10983 .align 2 10984 .L798: 10985 064c 00000000 .word .LC1 10986 0650 20000000 .word .LC3 10987 0654 0C000000 .word .LC2 10988 0658 52526141 .word 1096897106 10989 065c 72724161 .word 1631679090 10990 0660 F8FFFF00 .word 16777208 10991 .LVL1281: 10992 .L762: 5564:Middlewares/Third_Party/FatFs/src/ff.c **** } else { /* FAT12/16 volume */ 10993 .loc 1 5564 59 view .LVU3675 10994 0664 0E20 movs r0, #14 10995 0666 D6E7 b .L700 10996 .LVL1282: 10997 .L764: 5593:Middlewares/Third_Party/FatFs/src/ff.c **** n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; 10998 .loc 1 5593 51 view .LVU3676 10999 0668 0E20 movs r0, #14 11000 066a D4E7 b .L700 11001 .LVL1283: 11002 .L765: 5598:Middlewares/Third_Party/FatFs/src/ff.c **** } 11003 .loc 1 5598 13 view .LVU3677 11004 066c 0E20 movs r0, #14 11005 066e D2E7 b .L700 11006 .LVL1284: 11007 .L768: 5610:Middlewares/Third_Party/FatFs/src/ff.c **** } 11008 .loc 1 5610 13 view .LVU3678 11009 0670 0E20 movs r0, #14 11010 0672 D0E7 b .L700 11011 .LVL1285: 11012 .L769: 5614:Middlewares/Third_Party/FatFs/src/ff.c **** } 11013 .loc 1 5614 13 view .LVU3679 ARM GAS /tmp/cczRNDQp.s page 356 11014 0674 0E20 movs r0, #14 11015 0676 CEE7 b .L700 11016 .LVL1286: 11017 .L770: 5617:Middlewares/Third_Party/FatFs/src/ff.c **** 11018 .loc 1 5617 54 view .LVU3680 11019 0678 0E20 movs r0, #14 11020 067a CCE7 b .L700 11021 .LVL1287: 11022 .L772: 5661:Middlewares/Third_Party/FatFs/src/ff.c **** 11023 .loc 1 5661 57 view .LVU3681 11024 067c 0120 movs r0, #1 11025 067e CAE7 b .L700 11026 .LVL1288: 11027 .L774: 5690:Middlewares/Third_Party/FatFs/src/ff.c **** mem_set(buf, 0, ss); 11028 .loc 1 5690 64 view .LVU3682 11029 0680 0120 movs r0, #1 11030 0682 C8E7 b .L700 11031 .LVL1289: 11032 .L775: 5700:Middlewares/Third_Party/FatFs/src/ff.c **** sect += n; nsect -= n; 11033 .loc 1 5700 63 view .LVU3683 11034 0684 0120 movs r0, #1 11035 0686 C6E7 b .L700 11036 .LVL1290: 11037 .L779: 5742:Middlewares/Third_Party/FatFs/src/ff.c **** } 11038 .loc 1 5742 54 view .LVU3684 11039 0688 0120 movs r0, #1 11040 068a C4E7 b .L700 11041 .cfi_endproc 11042 .LFE1237: 11044 .section .text.f_gets,"ax",%progbits 11045 .align 1 11046 .global f_gets 11047 .syntax unified 11048 .thumb 11049 .thumb_func 11050 .fpu fpv5-d16 11052 f_gets: 11053 .LVL1291: 11054 .LFB1238: 5835:Middlewares/Third_Party/FatFs/src/ff.c **** int n = 0; 11055 .loc 1 5835 1 is_stmt 1 view -0 11056 .cfi_startproc 11057 @ args = 0, pretend = 0, frame = 8 11058 @ frame_needed = 0, uses_anonymous_args = 0 5835:Middlewares/Third_Party/FatFs/src/ff.c **** int n = 0; 11059 .loc 1 5835 1 is_stmt 0 view .LVU3686 11060 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 11061 .LCFI115: 11062 .cfi_def_cfa_offset 24 11063 .cfi_offset 4, -24 11064 .cfi_offset 5, -20 11065 .cfi_offset 6, -16 ARM GAS /tmp/cczRNDQp.s page 357 11066 .cfi_offset 7, -12 11067 .cfi_offset 8, -8 11068 .cfi_offset 14, -4 11069 0004 82B0 sub sp, sp, #8 11070 .LCFI116: 11071 .cfi_def_cfa_offset 32 11072 0006 8046 mov r8, r0 11073 0008 0E46 mov r6, r1 11074 000a 1746 mov r7, r2 5836:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, *p = buff; 11075 .loc 1 5836 2 is_stmt 1 view .LVU3687 11076 .LVL1292: 5837:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s[2]; 11077 .loc 1 5837 2 view .LVU3688 5838:Middlewares/Third_Party/FatFs/src/ff.c **** UINT rc; 11078 .loc 1 5838 2 view .LVU3689 5839:Middlewares/Third_Party/FatFs/src/ff.c **** 11079 .loc 1 5839 2 view .LVU3690 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11080 .loc 1 5842 2 view .LVU3691 5837:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE s[2]; 11081 .loc 1 5837 12 is_stmt 0 view .LVU3692 11082 000c 0446 mov r4, r0 5836:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, *p = buff; 11083 .loc 1 5836 6 view .LVU3693 11084 000e 0025 movs r5, #0 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11085 .loc 1 5842 8 view .LVU3694 11086 0010 01E0 b .L801 11087 .LVL1293: 11088 .L806: 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11089 .loc 1 5842 8 view .LVU3695 11090 0012 A446 mov ip, r4 11091 .LVL1294: 11092 .L803: 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11093 .loc 1 5842 8 view .LVU3696 11094 0014 6446 mov r4, ip 11095 .LVL1295: 11096 .L801: 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11097 .loc 1 5842 8 is_stmt 1 view .LVU3697 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11098 .loc 1 5842 17 is_stmt 0 view .LVU3698 11099 0016 731E subs r3, r6, #1 5842:Middlewares/Third_Party/FatFs/src/ff.c **** #if _LFN_UNICODE 11100 .loc 1 5842 8 view .LVU3699 11101 0018 AB42 cmp r3, r5 11102 001a 13DD ble .L802 5887:Middlewares/Third_Party/FatFs/src/ff.c **** if (rc != 1) break; 11103 .loc 1 5887 3 is_stmt 1 view .LVU3700 11104 001c 6B46 mov r3, sp 11105 001e 0122 movs r2, #1 11106 0020 01A9 add r1, sp, #4 11107 0022 3846 mov r0, r7 11108 0024 FFF7FEFF bl f_read ARM GAS /tmp/cczRNDQp.s page 358 11109 .LVL1296: 5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0]; 11110 .loc 1 5888 3 view .LVU3701 5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0]; 11111 .loc 1 5888 10 is_stmt 0 view .LVU3702 11112 0028 009B ldr r3, [sp] 5888:Middlewares/Third_Party/FatFs/src/ff.c **** c = s[0]; 11113 .loc 1 5888 6 view .LVU3703 11114 002a 012B cmp r3, #1 11115 002c 0AD1 bne .L802 5889:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 11116 .loc 1 5889 3 is_stmt 1 view .LVU3704 5889:Middlewares/Third_Party/FatFs/src/ff.c **** #endif 11117 .loc 1 5889 5 is_stmt 0 view .LVU3705 11118 002e 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 11119 .LVL1297: 5891:Middlewares/Third_Party/FatFs/src/ff.c **** *p++ = c; 11120 .loc 1 5891 3 is_stmt 1 view .LVU3706 5891:Middlewares/Third_Party/FatFs/src/ff.c **** *p++ = c; 11121 .loc 1 5891 6 is_stmt 0 view .LVU3707 11122 0032 0D2B cmp r3, #13 11123 0034 EDD0 beq .L806 5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++; 11124 .loc 1 5892 3 is_stmt 1 view .LVU3708 5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++; 11125 .loc 1 5892 5 is_stmt 0 view .LVU3709 11126 0036 A446 mov ip, r4 11127 .LVL1298: 5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++; 11128 .loc 1 5892 8 view .LVU3710 11129 0038 0CF8013B strb r3, [ip], #1 11130 .LVL1299: 5893:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '\n') break; /* Break on EOL */ 11131 .loc 1 5893 3 is_stmt 1 view .LVU3711 5893:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '\n') break; /* Break on EOL */ 11132 .loc 1 5893 4 is_stmt 0 view .LVU3712 11133 003c 0135 adds r5, r5, #1 11134 .LVL1300: 5894:Middlewares/Third_Party/FatFs/src/ff.c **** } 11135 .loc 1 5894 3 is_stmt 1 view .LVU3713 5894:Middlewares/Third_Party/FatFs/src/ff.c **** } 11136 .loc 1 5894 6 is_stmt 0 view .LVU3714 11137 003e 0A2B cmp r3, #10 11138 0040 E8D1 bne .L803 5892:Middlewares/Third_Party/FatFs/src/ff.c **** n++; 11139 .loc 1 5892 5 view .LVU3715 11140 0042 6446 mov r4, ip 11141 .LVL1301: 11142 .L802: 5896:Middlewares/Third_Party/FatFs/src/ff.c **** return n ? buff : 0; /* When no data read (eof or error), return with error. */ 11143 .loc 1 5896 2 is_stmt 1 view .LVU3716 5896:Middlewares/Third_Party/FatFs/src/ff.c **** return n ? buff : 0; /* When no data read (eof or error), return with error. */ 11144 .loc 1 5896 5 is_stmt 0 view .LVU3717 11145 0044 0023 movs r3, #0 11146 0046 2370 strb r3, [r4] 5897:Middlewares/Third_Party/FatFs/src/ff.c **** } 11147 .loc 1 5897 2 is_stmt 1 view .LVU3718 ARM GAS /tmp/cczRNDQp.s page 359 5897:Middlewares/Third_Party/FatFs/src/ff.c **** } 11148 .loc 1 5897 18 is_stmt 0 view .LVU3719 11149 0048 1DB1 cbz r5, .L808 5897:Middlewares/Third_Party/FatFs/src/ff.c **** } 11150 .loc 1 5897 18 view .LVU3720 11151 004a 4046 mov r0, r8 11152 .L800: 5898:Middlewares/Third_Party/FatFs/src/ff.c **** 11153 .loc 1 5898 1 view .LVU3721 11154 004c 02B0 add sp, sp, #8 11155 .LCFI117: 11156 .cfi_remember_state 11157 .cfi_def_cfa_offset 24 11158 @ sp needed 11159 004e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 11160 .LVL1302: 11161 .L808: 11162 .LCFI118: 11163 .cfi_restore_state 5897:Middlewares/Third_Party/FatFs/src/ff.c **** } 11164 .loc 1 5897 18 view .LVU3722 11165 0052 0020 movs r0, #0 11166 0054 FAE7 b .L800 11167 .cfi_endproc 11168 .LFE1238: 11170 .section .text.f_putc,"ax",%progbits 11171 .align 1 11172 .global f_putc 11173 .syntax unified 11174 .thumb 11175 .thumb_func 11176 .fpu fpv5-d16 11178 f_putc: 11179 .LVL1303: 11180 .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 **** { 11181 .loc 1 6002 1 is_stmt 1 view -0 11182 .cfi_startproc 11183 @ args = 0, pretend = 0, frame = 80 11184 @ frame_needed = 0, uses_anonymous_args = 0 11185 .loc 1 6002 1 is_stmt 0 view .LVU3724 11186 0000 10B5 push {r4, lr} 11187 .LCFI119: 11188 .cfi_def_cfa_offset 8 11189 .cfi_offset 4, -8 11190 .cfi_offset 14, -4 11191 0002 94B0 sub sp, sp, #80 11192 .LCFI120: 11193 .cfi_def_cfa_offset 88 11194 0004 0446 mov r4, r0 ARM GAS /tmp/cczRNDQp.s page 360 6003:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb; 11195 .loc 1 6003 2 is_stmt 1 view .LVU3725 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); 11196 .loc 1 6006 2 view .LVU3726 11197 0006 01A8 add r0, sp, #4 11198 .LVL1304: 11199 .loc 1 6006 2 is_stmt 0 view .LVU3727 11200 0008 FFF7FEFF bl putc_init 11201 .LVL1305: 6007:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, c); /* Put the character */ 11202 .loc 1 6007 2 is_stmt 1 view .LVU3728 11203 000c 2146 mov r1, r4 11204 000e 01A8 add r0, sp, #4 11205 0010 FFF7FEFF bl putc_bfd 11206 .LVL1306: 6008:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb); 11207 .loc 1 6008 2 view .LVU3729 11208 .loc 1 6008 9 is_stmt 0 view .LVU3730 11209 0014 01A8 add r0, sp, #4 11210 0016 FFF7FEFF bl putc_flush 11211 .LVL1307: 6009:Middlewares/Third_Party/FatFs/src/ff.c **** } 11212 .loc 1 6009 1 view .LVU3731 11213 001a 14B0 add sp, sp, #80 11214 .LCFI121: 11215 .cfi_def_cfa_offset 8 11216 @ sp needed 11217 001c 10BD pop {r4, pc} 11218 .cfi_endproc 11219 .LFE1242: 11221 .section .text.f_puts,"ax",%progbits 11222 .align 1 11223 .global f_puts 11224 .syntax unified 11225 .thumb 11226 .thumb_func 11227 .fpu fpv5-d16 11229 f_puts: 11230 .LVL1308: 11231 .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 **** 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 **** { 11232 .loc 1 6022 1 is_stmt 1 view -0 11233 .cfi_startproc ARM GAS /tmp/cczRNDQp.s page 361 11234 @ args = 0, pretend = 0, frame = 80 11235 @ frame_needed = 0, uses_anonymous_args = 0 11236 .loc 1 6022 1 is_stmt 0 view .LVU3733 11237 0000 10B5 push {r4, lr} 11238 .LCFI122: 11239 .cfi_def_cfa_offset 8 11240 .cfi_offset 4, -8 11241 .cfi_offset 14, -4 11242 0002 94B0 sub sp, sp, #80 11243 .LCFI123: 11244 .cfi_def_cfa_offset 88 11245 0004 0446 mov r4, r0 6023:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb; 11246 .loc 1 6023 2 is_stmt 1 view .LVU3734 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); 11247 .loc 1 6026 2 view .LVU3735 11248 0006 01A8 add r0, sp, #4 11249 .LVL1309: 11250 .loc 1 6026 2 is_stmt 0 view .LVU3736 11251 0008 FFF7FEFF bl putc_init 11252 .LVL1310: 6027:Middlewares/Third_Party/FatFs/src/ff.c **** while (*str) putc_bfd(&pb, *str++); /* Put the string */ 11253 .loc 1 6027 2 is_stmt 1 view .LVU3737 11254 .loc 1 6027 8 is_stmt 0 view .LVU3738 11255 000c 03E0 b .L813 11256 .L814: 11257 .loc 1 6027 15 is_stmt 1 discriminator 2 view .LVU3739 11258 .loc 1 6027 33 is_stmt 0 discriminator 2 view .LVU3740 11259 000e 0134 adds r4, r4, #1 11260 .LVL1311: 11261 .loc 1 6027 15 discriminator 2 view .LVU3741 11262 0010 01A8 add r0, sp, #4 11263 0012 FFF7FEFF bl putc_bfd 11264 .LVL1312: 11265 .L813: 11266 .loc 1 6027 8 is_stmt 1 discriminator 1 view .LVU3742 11267 .loc 1 6027 9 is_stmt 0 discriminator 1 view .LVU3743 11268 0016 2178 ldrb r1, [r4] @ zero_extendqisi2 11269 .loc 1 6027 8 discriminator 1 view .LVU3744 11270 0018 0029 cmp r1, #0 11271 001a F8D1 bne .L814 6028:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb); 11272 .loc 1 6028 2 is_stmt 1 view .LVU3745 11273 .loc 1 6028 9 is_stmt 0 view .LVU3746 11274 001c 01A8 add r0, sp, #4 11275 001e FFF7FEFF bl putc_flush 11276 .LVL1313: 6029:Middlewares/Third_Party/FatFs/src/ff.c **** } 11277 .loc 1 6029 1 view .LVU3747 11278 0022 14B0 add sp, sp, #80 11279 .LCFI124: 11280 .cfi_def_cfa_offset 8 11281 @ sp needed 11282 0024 10BD pop {r4, pc} 11283 .loc 1 6029 1 view .LVU3748 ARM GAS /tmp/cczRNDQp.s page 362 11284 .cfi_endproc 11285 .LFE1243: 11287 .section .text.f_printf,"ax",%progbits 11288 .align 1 11289 .global f_printf 11290 .syntax unified 11291 .thumb 11292 .thumb_func 11293 .fpu fpv5-d16 11295 f_printf: 11296 .LVL1314: 11297 .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 **** { 11298 .loc 1 6043 1 is_stmt 1 view -0 11299 .cfi_startproc 11300 @ args = 4, pretend = 12, frame = 112 11301 @ frame_needed = 0, uses_anonymous_args = 1 11302 .loc 1 6043 1 is_stmt 0 view .LVU3750 11303 0000 0EB4 push {r1, r2, r3} 11304 .LCFI125: 11305 .cfi_def_cfa_offset 12 11306 .cfi_offset 1, -12 11307 .cfi_offset 2, -8 11308 .cfi_offset 3, -4 11309 0002 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 11310 .LCFI126: 11311 .cfi_def_cfa_offset 44 11312 .cfi_offset 4, -44 11313 .cfi_offset 5, -40 11314 .cfi_offset 6, -36 11315 .cfi_offset 7, -32 11316 .cfi_offset 8, -28 11317 .cfi_offset 9, -24 11318 .cfi_offset 10, -20 11319 .cfi_offset 14, -16 11320 0006 9DB0 sub sp, sp, #116 11321 .LCFI127: 11322 .cfi_def_cfa_offset 160 11323 0008 0146 mov r1, r0 11324 000a 25AC add r4, sp, #148 11325 000c 54F8045B ldr r5, [r4], #4 6044:Middlewares/Third_Party/FatFs/src/ff.c **** va_list arp; 11326 .loc 1 6044 2 is_stmt 1 view .LVU3751 6045:Middlewares/Third_Party/FatFs/src/ff.c **** putbuff pb; ARM GAS /tmp/cczRNDQp.s page 363 11327 .loc 1 6045 2 view .LVU3752 6046:Middlewares/Third_Party/FatFs/src/ff.c **** BYTE f, r; 11328 .loc 1 6046 2 view .LVU3753 6047:Middlewares/Third_Party/FatFs/src/ff.c **** UINT i, j, w; 11329 .loc 1 6047 2 view .LVU3754 6048:Middlewares/Third_Party/FatFs/src/ff.c **** DWORD v; 11330 .loc 1 6048 2 view .LVU3755 6049:Middlewares/Third_Party/FatFs/src/ff.c **** TCHAR c, d, str[32], *p; 11331 .loc 1 6049 2 view .LVU3756 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); 11332 .loc 1 6052 2 view .LVU3757 11333 0010 08A8 add r0, sp, #32 11334 0012 FFF7FEFF bl putc_init 11335 .LVL1315: 6053:Middlewares/Third_Party/FatFs/src/ff.c **** 6054:Middlewares/Third_Party/FatFs/src/ff.c **** va_start(arp, fmt); 11336 .loc 1 6054 2 view .LVU3758 11337 0016 1B94 str r4, [sp, #108] 11338 .LVL1316: 11339 .L817: 6055:Middlewares/Third_Party/FatFs/src/ff.c **** 6056:Middlewares/Third_Party/FatFs/src/ff.c **** for (;;) { 11340 .loc 1 6056 2 view .LVU3759 6057:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++; 11341 .loc 1 6057 3 view .LVU3760 11342 .loc 1 6057 11 is_stmt 0 view .LVU3761 11343 0018 2C46 mov r4, r5 11344 .LVL1317: 11345 .loc 1 6057 5 view .LVU3762 11346 001a 14F8011B ldrb r1, [r4], #1 @ zero_extendqisi2 11347 .LVL1318: 6058:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) break; /* End of string */ 11348 .loc 1 6058 3 is_stmt 1 view .LVU3763 11349 .loc 1 6058 6 is_stmt 0 view .LVU3764 11350 001e 0029 cmp r1, #0 11351 0020 00F00481 beq .L818 6059:Middlewares/Third_Party/FatFs/src/ff.c **** if (c != '%') { /* Non escape character */ 11352 .loc 1 6059 3 is_stmt 1 view .LVU3765 11353 .loc 1 6059 6 is_stmt 0 view .LVU3766 11354 0024 2529 cmp r1, #37 11355 0026 04D0 beq .L819 6060:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, c); 11356 .loc 1 6060 4 is_stmt 1 view .LVU3767 11357 0028 08A8 add r0, sp, #32 11358 002a FFF7FEFF bl putc_bfd 11359 .LVL1319: 6061:Middlewares/Third_Party/FatFs/src/ff.c **** continue; 11360 .loc 1 6061 4 view .LVU3768 6057:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == 0) break; /* End of string */ 11361 .loc 1 6057 11 is_stmt 0 view .LVU3769 11362 002e 2546 mov r5, r4 11363 .loc 1 6061 4 view .LVU3770 11364 0030 F2E7 b .L817 11365 .LVL1320: 11366 .L819: ARM GAS /tmp/cczRNDQp.s page 364 6062:Middlewares/Third_Party/FatFs/src/ff.c **** } 6063:Middlewares/Third_Party/FatFs/src/ff.c **** w = f = 0; 11367 .loc 1 6063 3 is_stmt 1 view .LVU3771 6064:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++; 11368 .loc 1 6064 3 view .LVU3772 11369 .loc 1 6064 11 is_stmt 0 view .LVU3773 11370 0032 0235 adds r5, r5, #2 11371 .LVL1321: 11372 .loc 1 6064 5 view .LVU3774 11373 0034 2178 ldrb r1, [r4] @ zero_extendqisi2 11374 .LVL1322: 6065:Middlewares/Third_Party/FatFs/src/ff.c **** if (c == '0') { /* Flag: '0' padding */ 11375 .loc 1 6065 3 is_stmt 1 view .LVU3775 11376 .loc 1 6065 6 is_stmt 0 view .LVU3776 11377 0036 3029 cmp r1, #48 11378 0038 04D0 beq .L866 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 */ 11379 .loc 1 6068 4 is_stmt 1 view .LVU3777 11380 .loc 1 6068 7 is_stmt 0 view .LVU3778 11381 003a 2D29 cmp r1, #45 11382 003c 06D0 beq .L867 6063:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++; 11383 .loc 1 6063 9 view .LVU3779 11384 003e 0026 movs r6, #0 11385 .LVL1323: 11386 .L822: 6063:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++; 11387 .loc 1 6063 9 view .LVU3780 11388 0040 0024 movs r4, #0 11389 0042 0EE0 b .L823 11390 .LVL1324: 11391 .L866: 6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++; 11392 .loc 1 6066 4 is_stmt 1 view .LVU3781 6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++; 11393 .loc 1 6066 11 view .LVU3782 6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++; 11394 .loc 1 6066 19 is_stmt 0 view .LVU3783 11395 0044 A51C adds r5, r4, #2 11396 .LVL1325: 6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++; 11397 .loc 1 6066 13 view .LVU3784 11398 0046 6178 ldrb r1, [r4, #1] @ zero_extendqisi2 11399 .LVL1326: 6066:Middlewares/Third_Party/FatFs/src/ff.c **** f = 1; c = *fmt++; 11400 .loc 1 6066 6 view .LVU3785 11401 0048 0126 movs r6, #1 11402 004a F9E7 b .L822 11403 .LVL1327: 11404 .L867: 6069:Middlewares/Third_Party/FatFs/src/ff.c **** f = 2; c = *fmt++; 11405 .loc 1 6069 5 is_stmt 1 view .LVU3786 11406 .loc 1 6069 12 view .LVU3787 11407 .loc 1 6069 20 is_stmt 0 view .LVU3788 11408 004c A51C adds r5, r4, #2 ARM GAS /tmp/cczRNDQp.s page 365 11409 .LVL1328: 11410 .loc 1 6069 14 view .LVU3789 11411 004e 6178 ldrb r1, [r4, #1] @ zero_extendqisi2 11412 .LVL1329: 11413 .loc 1 6069 7 view .LVU3790 11414 0050 0226 movs r6, #2 11415 0052 F5E7 b .L822 11416 .LVL1330: 11417 .L824: 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'; 11418 .loc 1 6073 4 is_stmt 1 view .LVU3791 11419 .loc 1 6073 10 is_stmt 0 view .LVU3792 11420 0054 04EB8404 add r4, r4, r4, lsl #2 11421 .LVL1331: 11422 .loc 1 6073 15 view .LVU3793 11423 0058 01EB4404 add r4, r1, r4, lsl #1 11424 .loc 1 6073 6 view .LVU3794 11425 005c 303C subs r4, r4, #48 11426 .LVL1332: 6074:Middlewares/Third_Party/FatFs/src/ff.c **** c = *fmt++; 11427 .loc 1 6074 4 is_stmt 1 view .LVU3795 11428 .loc 1 6074 6 is_stmt 0 view .LVU3796 11429 005e 15F8011B ldrb r1, [r5], #1 @ zero_extendqisi2 11430 .LVL1333: 11431 .L823: 6072:Middlewares/Third_Party/FatFs/src/ff.c **** w = w * 10 + c - '0'; 11432 .loc 1 6072 9 is_stmt 1 view .LVU3797 6072:Middlewares/Third_Party/FatFs/src/ff.c **** w = w * 10 + c - '0'; 11433 .loc 1 6072 10 is_stmt 0 view .LVU3798 11434 0062 A1F13003 sub r3, r1, #48 11435 0066 DBB2 uxtb r3, r3 6072:Middlewares/Third_Party/FatFs/src/ff.c **** w = w * 10 + c - '0'; 11436 .loc 1 6072 9 view .LVU3799 11437 0068 092B cmp r3, #9 11438 006a F3D9 bls .L824 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 */ 11439 .loc 1 6076 3 is_stmt 1 view .LVU3800 11440 .loc 1 6076 6 is_stmt 0 view .LVU3801 11441 006c 4C29 cmp r1, #76 11442 006e 18BF it ne 11443 0070 6C29 cmpne r1, #108 11444 0072 03D1 bne .L825 6077:Middlewares/Third_Party/FatFs/src/ff.c **** f |= 4; c = *fmt++; 11445 .loc 1 6077 4 is_stmt 1 view .LVU3802 11446 .loc 1 6077 6 is_stmt 0 view .LVU3803 11447 0074 46F00406 orr r6, r6, #4 11448 .LVL1334: 11449 .loc 1 6077 12 is_stmt 1 view .LVU3804 11450 .loc 1 6077 14 is_stmt 0 view .LVU3805 11451 0078 15F8011B ldrb r1, [r5], #1 @ zero_extendqisi2 11452 .LVL1335: 11453 .L825: 6078:Middlewares/Third_Party/FatFs/src/ff.c **** } ARM GAS /tmp/cczRNDQp.s page 366 6079:Middlewares/Third_Party/FatFs/src/ff.c **** if (!c) break; 11454 .loc 1 6079 3 is_stmt 1 view .LVU3806 11455 .loc 1 6079 6 is_stmt 0 view .LVU3807 11456 007c 0029 cmp r1, #0 11457 007e 00F0D580 beq .L818 6080:Middlewares/Third_Party/FatFs/src/ff.c **** d = c; 11458 .loc 1 6080 3 is_stmt 1 view .LVU3808 11459 .LVL1336: 6081:Middlewares/Third_Party/FatFs/src/ff.c **** if (IsLower(d)) d -= 0x20; 11460 .loc 1 6081 3 view .LVU3809 11461 .loc 1 6081 7 is_stmt 0 view .LVU3810 11462 0082 A1F16103 sub r3, r1, #97 11463 0086 DBB2 uxtb r3, r3 11464 .loc 1 6081 6 view .LVU3811 11465 0088 192B cmp r3, #25 11466 008a 14D8 bhi .L860 11467 .loc 1 6081 19 is_stmt 1 discriminator 1 view .LVU3812 11468 .loc 1 6081 21 is_stmt 0 discriminator 1 view .LVU3813 11469 008c A1F12003 sub r3, r1, #32 11470 0090 DBB2 uxtb r3, r3 11471 .LVL1337: 11472 .L826: 6082:Middlewares/Third_Party/FatFs/src/ff.c **** switch (d) { /* Type is... */ 11473 .loc 1 6082 3 is_stmt 1 view .LVU3814 11474 0092 A3F14202 sub r2, r3, #66 11475 0096 162A cmp r2, #22 11476 0098 5DD8 bhi .L827 11477 009a DFE802F0 tbb [pc, r2] 11478 .L829: 11479 009e 60 .byte (.L834-.L829)/2 11480 009f 3D .byte (.L833-.L829)/2 11481 00a0 45 .byte (.L830-.L829)/2 11482 00a1 5C .byte (.L827-.L829)/2 11483 00a2 5C .byte (.L827-.L829)/2 11484 00a3 5C .byte (.L827-.L829)/2 11485 00a4 5C .byte (.L827-.L829)/2 11486 00a5 5C .byte (.L827-.L829)/2 11487 00a6 5C .byte (.L827-.L829)/2 11488 00a7 5C .byte (.L827-.L829)/2 11489 00a8 5C .byte (.L827-.L829)/2 11490 00a9 5C .byte (.L827-.L829)/2 11491 00aa 5C .byte (.L827-.L829)/2 11492 00ab 62 .byte (.L861-.L829)/2 11493 00ac 5C .byte (.L827-.L829)/2 11494 00ad 5C .byte (.L827-.L829)/2 11495 00ae 5C .byte (.L827-.L829)/2 11496 00af 0E .byte (.L831-.L829)/2 11497 00b0 5C .byte (.L827-.L829)/2 11498 00b1 45 .byte (.L830-.L829)/2 11499 00b2 5C .byte (.L827-.L829)/2 11500 00b3 5C .byte (.L827-.L829)/2 11501 00b4 5A .byte (.L828-.L829)/2 11502 .LVL1338: 11503 00b5 00 .p2align 1 11504 .L860: 6080:Middlewares/Third_Party/FatFs/src/ff.c **** d = c; 11505 .loc 1 6080 5 is_stmt 0 view .LVU3815 ARM GAS /tmp/cczRNDQp.s page 367 11506 00b6 0B46 mov r3, r1 11507 00b8 EBE7 b .L826 11508 .LVL1339: 11509 .L831: 6083:Middlewares/Third_Party/FatFs/src/ff.c **** case 'S' : /* String */ 6084:Middlewares/Third_Party/FatFs/src/ff.c **** p = va_arg(arp, TCHAR*); 11510 .loc 1 6084 4 is_stmt 1 view .LVU3816 11511 .loc 1 6084 6 is_stmt 0 view .LVU3817 11512 00ba 1B9B ldr r3, [sp, #108] 11513 .LVL1340: 11514 .loc 1 6084 6 view .LVU3818 11515 00bc 1A1D adds r2, r3, #4 11516 00be 1B92 str r2, [sp, #108] 11517 00c0 D3F80080 ldr r8, [r3] 6085:Middlewares/Third_Party/FatFs/src/ff.c **** for (j = 0; p[j]; j++) ; 11518 .loc 1 6085 4 is_stmt 1 view .LVU3819 11519 .LVL1341: 11520 .loc 1 6085 11 is_stmt 0 view .LVU3820 11521 00c4 0027 movs r7, #0 11522 .loc 1 6085 4 view .LVU3821 11523 00c6 00E0 b .L835 11524 .LVL1342: 11525 .L836: 11526 .loc 1 6085 27 is_stmt 1 discriminator 3 view .LVU3822 11527 .loc 1 6085 22 discriminator 3 view .LVU3823 11528 .loc 1 6085 23 is_stmt 0 discriminator 3 view .LVU3824 11529 00c8 0137 adds r7, r7, #1 11530 .LVL1343: 11531 .L835: 11532 .loc 1 6085 16 is_stmt 1 discriminator 1 view .LVU3825 11533 .loc 1 6085 17 is_stmt 0 discriminator 1 view .LVU3826 11534 00ca 18F80730 ldrb r3, [r8, r7] @ zero_extendqisi2 11535 .loc 1 6085 4 discriminator 1 view .LVU3827 11536 00ce 002B cmp r3, #0 11537 00d0 FAD1 bne .L836 6086:Middlewares/Third_Party/FatFs/src/ff.c **** if (!(f & 2)) { 11538 .loc 1 6086 4 is_stmt 1 view .LVU3828 11539 .loc 1 6086 7 is_stmt 0 view .LVU3829 11540 00d2 16F0020F tst r6, #2 11541 00d6 10D1 bne .L840 11542 00d8 05E0 b .L837 11543 .LVL1344: 11544 .L839: 6087:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, ' '); 11545 .loc 1 6087 21 is_stmt 1 discriminator 2 view .LVU3830 11546 00da 2021 movs r1, #32 11547 00dc 0DEB0100 add r0, sp, r1 11548 00e0 FFF7FEFF bl putc_bfd 11549 .LVL1345: 11550 .loc 1 6087 13 is_stmt 0 discriminator 2 view .LVU3831 11551 00e4 3746 mov r7, r6 11552 .LVL1346: 11553 .L837: 11554 .loc 1 6087 11 is_stmt 1 discriminator 1 view .LVU3832 11555 .loc 1 6087 13 is_stmt 0 discriminator 1 view .LVU3833 11556 00e6 7E1C adds r6, r7, #1 11557 .LVL1347: ARM GAS /tmp/cczRNDQp.s page 368 11558 .loc 1 6087 11 discriminator 1 view .LVU3834 11559 00e8 A742 cmp r7, r4 11560 00ea F6D3 bcc .L839 11561 .loc 1 6087 13 view .LVU3835 11562 00ec 3746 mov r7, r6 11563 00ee 04E0 b .L840 11564 .LVL1348: 11565 .L841: 6088:Middlewares/Third_Party/FatFs/src/ff.c **** } 6089:Middlewares/Third_Party/FatFs/src/ff.c **** while (*p) putc_bfd(&pb, *p++); 11566 .loc 1 6089 15 is_stmt 1 discriminator 2 view .LVU3836 11567 .loc 1 6089 31 is_stmt 0 discriminator 2 view .LVU3837 11568 00f0 08F10108 add r8, r8, #1 11569 .LVL1349: 11570 .loc 1 6089 15 discriminator 2 view .LVU3838 11571 00f4 08A8 add r0, sp, #32 11572 00f6 FFF7FEFF bl putc_bfd 11573 .LVL1350: 11574 .L840: 11575 .loc 1 6089 10 is_stmt 1 discriminator 1 view .LVU3839 11576 .loc 1 6089 11 is_stmt 0 discriminator 1 view .LVU3840 11577 00fa 98F80010 ldrb r1, [r8] @ zero_extendqisi2 11578 .loc 1 6089 10 discriminator 1 view .LVU3841 11579 00fe 0029 cmp r1, #0 11580 0100 F6D1 bne .L841 11581 .loc 1 6089 10 discriminator 1 view .LVU3842 11582 0102 05E0 b .L842 11583 .LVL1351: 11584 .L843: 6090:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, ' '); 11585 .loc 1 6090 20 is_stmt 1 discriminator 2 view .LVU3843 11586 0104 2021 movs r1, #32 11587 0106 0DEB0100 add r0, sp, r1 11588 010a FFF7FEFF bl putc_bfd 11589 .LVL1352: 11590 .loc 1 6090 12 is_stmt 0 discriminator 2 view .LVU3844 11591 010e 3746 mov r7, r6 11592 .LVL1353: 11593 .L842: 11594 .loc 1 6090 10 is_stmt 1 discriminator 1 view .LVU3845 11595 .loc 1 6090 12 is_stmt 0 discriminator 1 view .LVU3846 11596 0110 7E1C adds r6, r7, #1 11597 .LVL1354: 11598 .loc 1 6090 10 discriminator 1 view .LVU3847 11599 0112 A742 cmp r7, r4 11600 0114 F6D3 bcc .L843 11601 0116 7FE7 b .L817 11602 .LVL1355: 11603 .L833: 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; 11604 .loc 1 6094 4 is_stmt 1 view .LVU3848 11605 .loc 1 6094 25 is_stmt 0 view .LVU3849 11606 0118 1B9B ldr r3, [sp, #108] 11607 .LVL1356: ARM GAS /tmp/cczRNDQp.s page 369 11608 .loc 1 6094 25 view .LVU3850 11609 011a 1A1D adds r2, r3, #4 11610 011c 1B92 str r2, [sp, #108] 11611 .loc 1 6094 4 view .LVU3851 11612 011e 1978 ldrb r1, [r3] @ zero_extendqisi2 11613 .LVL1357: 11614 .loc 1 6094 4 view .LVU3852 11615 0120 08A8 add r0, sp, #32 11616 0122 FFF7FEFF bl putc_bfd 11617 .LVL1358: 11618 .loc 1 6094 44 is_stmt 1 view .LVU3853 11619 .loc 1 6094 4 is_stmt 0 view .LVU3854 11620 0126 77E7 b .L817 11621 .LVL1359: 11622 .L830: 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; 11623 .loc 1 6104 4 is_stmt 1 view .LVU3855 11624 .loc 1 6104 12 view .LVU3856 11625 .loc 1 6104 6 is_stmt 0 view .LVU3857 11626 0128 0A20 movs r0, #10 11627 .LVL1360: 11628 .L832: 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_ 11629 .loc 1 6114 3 is_stmt 1 view .LVU3858 11630 .loc 1 6114 42 is_stmt 0 view .LVU3859 11631 012a 16F0040F tst r6, #4 11632 012e 1AD0 beq .L844 11633 .loc 1 6114 24 view .LVU3860 11634 0130 1B9A ldr r2, [sp, #108] 11635 0132 171D adds r7, r2, #4 11636 0134 1B97 str r7, [sp, #108] 11637 0136 1268 ldr r2, [r2] 11638 .L845: 11639 .LVL1361: 6115:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) { 11640 .loc 1 6115 3 is_stmt 1 discriminator 8 view .LVU3861 11641 .loc 1 6115 16 is_stmt 0 discriminator 8 view .LVU3862 11642 0138 D70F lsrs r7, r2, #31 11643 013a 442B cmp r3, #68 ARM GAS /tmp/cczRNDQp.s page 370 11644 013c 14BF ite ne 11645 013e 0027 movne r7, #0 11646 0140 07F00107 andeq r7, r7, #1 11647 .loc 1 6115 6 discriminator 8 view .LVU3863 11648 0144 17B1 cbz r7, .L847 6116:Middlewares/Third_Party/FatFs/src/ff.c **** v = 0 - v; 11649 .loc 1 6116 4 is_stmt 1 view .LVU3864 11650 .loc 1 6116 6 is_stmt 0 view .LVU3865 11651 0146 5242 rsbs r2, r2, #0 11652 .LVL1362: 6117:Middlewares/Third_Party/FatFs/src/ff.c **** f |= 8; 11653 .loc 1 6117 4 is_stmt 1 view .LVU3866 11654 .loc 1 6117 6 is_stmt 0 view .LVU3867 11655 0148 46F00806 orr r6, r6, #8 11656 .LVL1363: 11657 .L847: 6118:Middlewares/Third_Party/FatFs/src/ff.c **** } 6119:Middlewares/Third_Party/FatFs/src/ff.c **** i = 0; 11658 .loc 1 6119 3 is_stmt 1 view .LVU3868 11659 .loc 1 6119 5 is_stmt 0 view .LVU3869 11660 014c 4FF0000C mov ip, #0 11661 0150 25E0 b .L850 11662 .LVL1364: 11663 .L828: 6107:Middlewares/Third_Party/FatFs/src/ff.c **** 11664 .loc 1 6107 4 is_stmt 1 view .LVU3870 6107:Middlewares/Third_Party/FatFs/src/ff.c **** 11665 .loc 1 6107 12 view .LVU3871 6107:Middlewares/Third_Party/FatFs/src/ff.c **** 11666 .loc 1 6107 6 is_stmt 0 view .LVU3872 11667 0152 1020 movs r0, #16 6107:Middlewares/Third_Party/FatFs/src/ff.c **** 11668 .loc 1 6107 4 view .LVU3873 11669 0154 E9E7 b .L832 11670 .LVL1365: 11671 .L827: 6110:Middlewares/Third_Party/FatFs/src/ff.c **** } 11672 .loc 1 6110 4 is_stmt 1 view .LVU3874 11673 0156 08A8 add r0, sp, #32 11674 0158 FFF7FEFF bl putc_bfd 11675 .LVL1366: 6110:Middlewares/Third_Party/FatFs/src/ff.c **** } 11676 .loc 1 6110 22 view .LVU3875 6110:Middlewares/Third_Party/FatFs/src/ff.c **** } 11677 .loc 1 6110 4 is_stmt 0 view .LVU3876 11678 015c 5CE7 b .L817 11679 .LVL1367: 11680 .L834: 6082:Middlewares/Third_Party/FatFs/src/ff.c **** case 'S' : /* String */ 11681 .loc 1 6082 3 view .LVU3877 11682 015e 0220 movs r0, #2 11683 0160 E3E7 b .L832 11684 .L861: 6100:Middlewares/Third_Party/FatFs/src/ff.c **** 11685 .loc 1 6100 6 view .LVU3878 11686 0162 0820 movs r0, #8 11687 0164 E1E7 b .L832 ARM GAS /tmp/cczRNDQp.s page 371 11688 .LVL1368: 11689 .L844: 6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) { 11690 .loc 1 6114 88 discriminator 2 view .LVU3879 11691 0166 442B cmp r3, #68 11692 0168 04D0 beq .L868 6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) { 11693 .loc 1 6114 88 view .LVU3880 11694 016a 1B9A ldr r2, [sp, #108] 11695 016c 171D adds r7, r2, #4 11696 016e 1B97 str r7, [sp, #108] 11697 0170 1268 ldr r2, [r2] 11698 0172 E1E7 b .L845 11699 .L868: 6114:Middlewares/Third_Party/FatFs/src/ff.c **** if (d == 'D' && (v & 0x80000000)) { 11700 .loc 1 6114 71 view .LVU3881 11701 0174 1B9A ldr r2, [sp, #108] 11702 0176 171D adds r7, r2, #4 11703 0178 1B97 str r7, [sp, #108] 11704 017a 1268 ldr r2, [r2] 11705 017c DCE7 b .L845 11706 .LVL1369: 11707 .L870: 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; 11708 .loc 1 6122 17 view .LVU3882 11709 017e 2727 movs r7, #39 11710 .L849: 11711 .loc 1 6122 17 discriminator 5 view .LVU3883 11712 0180 3B44 add r3, r3, r7 11713 .LVL1370: 11714 .loc 1 6122 17 discriminator 5 view .LVU3884 11715 0182 DBB2 uxtb r3, r3 11716 .LVL1371: 11717 .L848: 6123:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11718 .loc 1 6123 4 is_stmt 1 view .LVU3885 11719 .loc 1 6123 9 is_stmt 0 view .LVU3886 11720 0184 0CF10107 add r7, ip, #1 11721 .LVL1372: 11722 .loc 1 6123 17 view .LVU3887 11723 0188 3033 adds r3, r3, #48 11724 .LVL1373: 11725 .loc 1 6123 13 view .LVU3888 11726 018a 0CF17009 add r9, ip, #112 11727 018e E944 add r9, sp, r9 11728 0190 09F8703C strb r3, [r9, #-112] 6124:Middlewares/Third_Party/FatFs/src/ff.c **** } while (v && i < sizeof str / sizeof str[0]); 11729 .loc 1 6124 11 is_stmt 1 view .LVU3889 11730 .loc 1 6124 3 is_stmt 0 view .LVU3890 11731 0194 C645 cmp lr, r8 11732 0196 98BF it ls 11733 0198 1F2F cmpls r7, #31 11734 019a 0ED8 bhi .L869 6123:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11735 .loc 1 6123 9 view .LVU3891 ARM GAS /tmp/cczRNDQp.s page 372 11736 019c BC46 mov ip, r7 11737 .LVL1374: 11738 .L850: 6120:Middlewares/Third_Party/FatFs/src/ff.c **** do { 11739 .loc 1 6120 3 is_stmt 1 view .LVU3892 6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07; 11740 .loc 1 6121 4 view .LVU3893 6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07; 11741 .loc 1 6121 18 is_stmt 0 view .LVU3894 11742 019e 8646 mov lr, r0 11743 01a0 B2FBF0F7 udiv r7, r2, r0 11744 01a4 00FB1723 mls r3, r0, r7, r2 6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07; 11745 .loc 1 6121 6 view .LVU3895 11746 01a8 DBB2 uxtb r3, r3 11747 .LVL1375: 6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07; 11748 .loc 1 6121 24 is_stmt 1 view .LVU3896 11749 01aa 9046 mov r8, r2 6121:Middlewares/Third_Party/FatFs/src/ff.c **** if (d > 9) d += (c == 'x') ? 0x27 : 0x07; 11750 .loc 1 6121 26 is_stmt 0 view .LVU3897 11751 01ac 3A46 mov r2, r7 11752 .LVL1376: 6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11753 .loc 1 6122 4 is_stmt 1 view .LVU3898 6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11754 .loc 1 6122 7 is_stmt 0 view .LVU3899 11755 01ae 092B cmp r3, #9 11756 01b0 E8D9 bls .L848 6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11757 .loc 1 6122 15 is_stmt 1 discriminator 1 view .LVU3900 6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11758 .loc 1 6122 17 is_stmt 0 discriminator 1 view .LVU3901 11759 01b2 7829 cmp r1, #120 11760 01b4 E3D0 beq .L870 6122:Middlewares/Third_Party/FatFs/src/ff.c **** str[i++] = d + '0'; 11761 .loc 1 6122 17 view .LVU3902 11762 01b6 0727 movs r7, #7 11763 01b8 E2E7 b .L849 11764 .LVL1377: 11765 .L869: 6125:Middlewares/Third_Party/FatFs/src/ff.c **** if (f & 8) str[i++] = '-'; 11766 .loc 1 6125 3 is_stmt 1 view .LVU3903 11767 .loc 1 6125 6 is_stmt 0 view .LVU3904 11768 01ba 16F0080F tst r6, #8 11769 01be 08D0 beq .L851 11770 .loc 1 6125 14 is_stmt 1 discriminator 1 view .LVU3905 11771 .LVL1378: 11772 .loc 1 6125 23 is_stmt 0 discriminator 1 view .LVU3906 11773 01c0 07F17003 add r3, r7, #112 11774 01c4 0DEB0307 add r7, sp, r3 11775 01c8 2D23 movs r3, #45 11776 01ca 07F8703C strb r3, [r7, #-112] 11777 .loc 1 6125 19 discriminator 1 view .LVU3907 11778 01ce 0CF10207 add r7, ip, #2 11779 .LVL1379: 11780 .L851: ARM GAS /tmp/cczRNDQp.s page 373 6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' '; 11781 .loc 1 6126 3 is_stmt 1 view .LVU3908 11782 .loc 1 6126 10 view .LVU3909 11783 .loc 1 6126 12 is_stmt 0 view .LVU3910 11784 01d2 16F0010F tst r6, #1 11785 01d6 03D0 beq .L864 11786 .loc 1 6126 12 view .LVU3911 11787 01d8 4FF0300A mov r10, #48 11788 .L852: 11789 .LVL1380: 6127:Middlewares/Third_Party/FatFs/src/ff.c **** while (!(f & 2) && j++ < w) putc_bfd(&pb, d); 11790 .loc 1 6127 3 is_stmt 1 discriminator 4 view .LVU3912 6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' '; 11791 .loc 1 6126 5 is_stmt 0 discriminator 4 view .LVU3913 11792 01dc B846 mov r8, r7 11793 .loc 1 6127 9 discriminator 4 view .LVU3914 11794 01de 07E0 b .L853 11795 .LVL1381: 11796 .L864: 6126:Middlewares/Third_Party/FatFs/src/ff.c **** j = i; d = (f & 1) ? '0' : ' '; 11797 .loc 1 6126 12 view .LVU3915 11798 01e0 4FF0200A mov r10, #32 11799 01e4 FAE7 b .L852 11800 .LVL1382: 11801 .L855: 11802 .loc 1 6127 31 is_stmt 1 discriminator 3 view .LVU3916 11803 01e6 5146 mov r1, r10 11804 01e8 08A8 add r0, sp, #32 11805 01ea FFF7FEFF bl putc_bfd 11806 .LVL1383: 11807 .loc 1 6127 23 is_stmt 0 discriminator 3 view .LVU3917 11808 01ee C846 mov r8, r9 11809 .LVL1384: 11810 .L853: 11811 .loc 1 6127 9 is_stmt 1 discriminator 1 view .LVU3918 11812 01f0 16F0020F tst r6, #2 11813 01f4 04D1 bne .L856 11814 .loc 1 6127 23 is_stmt 0 discriminator 2 view .LVU3919 11815 01f6 08F10109 add r9, r8, #1 11816 .LVL1385: 11817 .loc 1 6127 19 discriminator 2 view .LVU3920 11818 01fa A045 cmp r8, r4 11819 01fc F3D3 bcc .L855 11820 .loc 1 6127 23 view .LVU3921 11821 01fe C846 mov r8, r9 11822 .LVL1386: 11823 .L856: 6128:Middlewares/Third_Party/FatFs/src/ff.c **** do { 11824 .loc 1 6128 3 is_stmt 1 discriminator 1 view .LVU3922 6129:Middlewares/Third_Party/FatFs/src/ff.c **** putc_bfd(&pb, str[--i]); 11825 .loc 1 6129 4 discriminator 1 view .LVU3923 11826 0200 013F subs r7, r7, #1 11827 .LVL1387: 11828 .loc 1 6129 4 is_stmt 0 discriminator 1 view .LVU3924 11829 0202 07F17003 add r3, r7, #112 11830 0206 6B44 add r3, sp, r3 11831 0208 13F8701C ldrb r1, [r3, #-112] @ zero_extendqisi2 ARM GAS /tmp/cczRNDQp.s page 374 11832 020c 08A8 add r0, sp, #32 11833 020e FFF7FEFF bl putc_bfd 11834 .LVL1388: 6130:Middlewares/Third_Party/FatFs/src/ff.c **** } while (i); 11835 .loc 1 6130 11 is_stmt 1 discriminator 1 view .LVU3925 11836 .loc 1 6130 3 is_stmt 0 discriminator 1 view .LVU3926 11837 0212 002F cmp r7, #0 11838 0214 F4D1 bne .L856 11839 .LVL1389: 11840 .L857: 6131:Middlewares/Third_Party/FatFs/src/ff.c **** while (j++ < w) putc_bfd(&pb, d); 11841 .loc 1 6131 9 is_stmt 1 discriminator 1 view .LVU3927 11842 .loc 1 6131 11 is_stmt 0 discriminator 1 view .LVU3928 11843 0216 08F10106 add r6, r8, #1 11844 .LVL1390: 11845 .loc 1 6131 9 discriminator 1 view .LVU3929 11846 021a A045 cmp r8, r4 11847 021c BFF4FCAE bcs .L817 11848 .loc 1 6131 19 is_stmt 1 discriminator 2 view .LVU3930 11849 0220 5146 mov r1, r10 11850 0222 08A8 add r0, sp, #32 11851 0224 FFF7FEFF bl putc_bfd 11852 .LVL1391: 11853 .loc 1 6131 11 is_stmt 0 discriminator 2 view .LVU3931 11854 0228 B046 mov r8, r6 11855 022a F4E7 b .L857 11856 .LVL1392: 11857 .L818: 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); 11858 .loc 1 6134 2 is_stmt 1 view .LVU3932 6135:Middlewares/Third_Party/FatFs/src/ff.c **** 6136:Middlewares/Third_Party/FatFs/src/ff.c **** return putc_flush(&pb); 11859 .loc 1 6136 2 view .LVU3933 11860 .loc 1 6136 9 is_stmt 0 view .LVU3934 11861 022c 08A8 add r0, sp, #32 11862 022e FFF7FEFF bl putc_flush 11863 .LVL1393: 6137:Middlewares/Third_Party/FatFs/src/ff.c **** } 11864 .loc 1 6137 1 view .LVU3935 11865 0232 1DB0 add sp, sp, #116 11866 .LCFI128: 11867 .cfi_def_cfa_offset 44 11868 @ sp needed 11869 0234 BDE8F047 pop {r4, r5, r6, r7, r8, r9, r10, lr} 11870 .LCFI129: 11871 .cfi_restore 14 11872 .cfi_restore 10 11873 .cfi_restore 9 11874 .cfi_restore 8 11875 .cfi_restore 7 11876 .cfi_restore 6 11877 .cfi_restore 5 11878 .cfi_restore 4 11879 .cfi_def_cfa_offset 12 11880 0238 03B0 add sp, sp, #12 ARM GAS /tmp/cczRNDQp.s page 375 11881 .LCFI130: 11882 .cfi_restore 3 11883 .cfi_restore 2 11884 .cfi_restore 1 11885 .cfi_def_cfa_offset 0 11886 023a 7047 bx lr 11887 .cfi_endproc 11888 .LFE1244: 11890 .section .bss.FatFs,"aw",%nobits 11891 .align 2 11892 .set .LANCHOR2,. + 0 11895 FatFs: 11896 0000 00000000 .space 4 11897 .section .bss.Files,"aw",%nobits 11898 .align 2 11899 .set .LANCHOR0,. + 0 11902 Files: 11903 0000 00000000 .space 32 11903 00000000 11903 00000000 11903 00000000 11903 00000000 11904 .section .bss.Fsid,"aw",%nobits 11905 .align 1 11906 .set .LANCHOR3,. + 0 11909 Fsid: 11910 0000 0000 .space 2 11911 .section .rodata.ExCvt,"a" 11912 .align 2 11913 .set .LANCHOR1,. + 0 11916 ExCvt: 11917 0000 43554541 .ascii "CUEAAAACEEEIIIAAE\222\222OOOUUYOUO\234O\236\237AIOU" 11917 41414143 11917 45454549 11917 49494141 11917 4592924F 11918 0024 A5A5A6A7 .ascii "\245\245\246\247\250\251\252\253\254\255\256\257\260" 11918 A8A9AAAB 11918 ACADAEAF 11918 B0 11919 0031 B1B2B3B4 .ascii "\261\262\263\264AAA\270\271\272\273\274\275\276\277" 11919 414141B8 11919 B9BABBBC 11919 BDBEBF 11920 0040 C0C1C2C3 .ascii "\300\301\302\303\304\305AA\310\311\312\313\314\315\316" 11920 C4C54141 11920 C8C9CACB 11920 CCCDCE 11921 004f CFD1D145 .ascii "\317\321\321EEEIIII\331\332\333\334\335I\337O\341OO" 11921 45454949 11921 4949D9DA 11921 DBDCDD49 11921 DF4FE14F 11922 0064 4F4FE6E8 .ascii "OO\346\350\350UUUYY\356\357\360\361\362\363\364\365" 11922 E8555555 11922 5959EEEF 11922 F0F1F2F3 ARM GAS /tmp/cczRNDQp.s page 376 11922 F4F5 11923 0076 F6F7F8F9 .ascii "\366\367\370\371\372\373\374\375\376\377" 11923 FAFBFCFD 11923 FEFF 11924 .section .rodata.cst.0,"a" 11925 .align 2 11926 .set .LANCHOR5,. + 0 11929 cst.0: 11930 0000 0100 .short 1 11931 0002 0400 .short 4 11932 0004 1000 .short 16 11933 0006 4000 .short 64 11934 0008 0001 .short 256 11935 000a 0002 .short 512 11936 000c 0000 .short 0 11937 .section .rodata.cst32.1,"a" 11938 .align 2 11939 .set .LANCHOR4,. + 0 11942 cst32.1: 11943 0000 0100 .short 1 11944 0002 0200 .short 2 11945 0004 0400 .short 4 11946 0006 0800 .short 8 11947 0008 1000 .short 16 11948 000a 2000 .short 32 11949 000c 0000 .short 0 11950 .text 11951 .Letext0: 11952 .file 2 "Middlewares/Third_Party/FatFs/src/integer.h" 11953 .file 3 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h" 11954 .file 4 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_dma.h" 11955 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_tim.h" 11956 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_rcc.h" 11957 .file 7 "Middlewares/Third_Party/FatFs/src/ff.h" 11958 .file 8 "Middlewares/Third_Party/FatFs/src/diskio.h" 11959 .file 9 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h" 11960 .file 10 "" ARM GAS /tmp/cczRNDQp.s page 377 DEFINED SYMBOLS *ABS*:0000000000000000 ff.c /tmp/cczRNDQp.s:17 .text.ld_word:0000000000000000 $t /tmp/cczRNDQp.s:24 .text.ld_word:0000000000000000 ld_word /tmp/cczRNDQp.s:52 .text.ld_dword:0000000000000000 $t /tmp/cczRNDQp.s:58 .text.ld_dword:0000000000000000 ld_dword /tmp/cczRNDQp.s:97 .text.st_word:0000000000000000 $t /tmp/cczRNDQp.s:103 .text.st_word:0000000000000000 st_word /tmp/cczRNDQp.s:128 .text.st_dword:0000000000000000 $t /tmp/cczRNDQp.s:134 .text.st_dword:0000000000000000 st_dword /tmp/cczRNDQp.s:173 .text.mem_cpy:0000000000000000 $t /tmp/cczRNDQp.s:179 .text.mem_cpy:0000000000000000 mem_cpy /tmp/cczRNDQp.s:219 .text.mem_set:0000000000000000 $t /tmp/cczRNDQp.s:225 .text.mem_set:0000000000000000 mem_set /tmp/cczRNDQp.s:252 .text.mem_cmp:0000000000000000 $t /tmp/cczRNDQp.s:258 .text.mem_cmp:0000000000000000 mem_cmp /tmp/cczRNDQp.s:301 .text.chk_chr:0000000000000000 $t /tmp/cczRNDQp.s:307 .text.chk_chr:0000000000000000 chk_chr /tmp/cczRNDQp.s:343 .text.chk_lock:0000000000000000 $t /tmp/cczRNDQp.s:349 .text.chk_lock:0000000000000000 chk_lock /tmp/cczRNDQp.s:487 .text.chk_lock:0000000000000078 $d /tmp/cczRNDQp.s:492 .text.enq_lock:0000000000000000 $t /tmp/cczRNDQp.s:498 .text.enq_lock:0000000000000000 enq_lock /tmp/cczRNDQp.s:545 .text.enq_lock:000000000000001c $d /tmp/cczRNDQp.s:550 .text.inc_lock:0000000000000000 $t /tmp/cczRNDQp.s:556 .text.inc_lock:0000000000000000 inc_lock /tmp/cczRNDQp.s:735 .text.inc_lock:00000000000000a0 $d /tmp/cczRNDQp.s:740 .text.dec_lock:0000000000000000 $t /tmp/cczRNDQp.s:746 .text.dec_lock:0000000000000000 dec_lock /tmp/cczRNDQp.s:829 .text.dec_lock:000000000000003c $d /tmp/cczRNDQp.s:834 .text.clear_lock:0000000000000000 $t /tmp/cczRNDQp.s:840 .text.clear_lock:0000000000000000 clear_lock /tmp/cczRNDQp.s:921 .text.clear_lock:0000000000000038 $d /tmp/cczRNDQp.s:926 .text.clust2sect:0000000000000000 $t /tmp/cczRNDQp.s:932 .text.clust2sect:0000000000000000 clust2sect /tmp/cczRNDQp.s:972 .text.clmt_clust:0000000000000000 $t /tmp/cczRNDQp.s:978 .text.clmt_clust:0000000000000000 clmt_clust /tmp/cczRNDQp.s:1049 .text.ld_clust:0000000000000000 $t /tmp/cczRNDQp.s:1055 .text.ld_clust:0000000000000000 ld_clust /tmp/cczRNDQp.s:1111 .text.st_clust:0000000000000000 $t /tmp/cczRNDQp.s:1117 .text.st_clust:0000000000000000 st_clust /tmp/cczRNDQp.s:1166 .text.get_fileinfo:0000000000000000 $t /tmp/cczRNDQp.s:1172 .text.get_fileinfo:0000000000000000 get_fileinfo /tmp/cczRNDQp.s:1312 .rodata.create_name.str1.4:0000000000000000 $d /tmp/cczRNDQp.s:1316 .text.create_name:0000000000000000 $t /tmp/cczRNDQp.s:1322 .text.create_name:0000000000000000 create_name /tmp/cczRNDQp.s:1552 .text.create_name:00000000000000c8 $d /tmp/cczRNDQp.s:1558 .text.get_ldnumber:0000000000000000 $t /tmp/cczRNDQp.s:1564 .text.get_ldnumber:0000000000000000 get_ldnumber /tmp/cczRNDQp.s:1666 .text.putc_init:0000000000000000 $t /tmp/cczRNDQp.s:1672 .text.putc_init:0000000000000000 putc_init /tmp/cczRNDQp.s:1695 .text.validate:0000000000000000 $t /tmp/cczRNDQp.s:1701 .text.validate:0000000000000000 validate /tmp/cczRNDQp.s:1810 .text.sync_window:0000000000000000 $t /tmp/cczRNDQp.s:1816 .text.sync_window:0000000000000000 sync_window /tmp/cczRNDQp.s:1925 .text.move_window:0000000000000000 $t /tmp/cczRNDQp.s:1931 .text.move_window:0000000000000000 move_window ARM GAS /tmp/cczRNDQp.s page 378 /tmp/cczRNDQp.s:2002 .text.check_fs:0000000000000000 $t /tmp/cczRNDQp.s:2008 .text.check_fs:0000000000000000 check_fs /tmp/cczRNDQp.s:2104 .text.check_fs:000000000000006c $d /tmp/cczRNDQp.s:2111 .text.find_volume:0000000000000000 $t /tmp/cczRNDQp.s:2117 .text.find_volume:0000000000000000 find_volume /tmp/cczRNDQp.s:2796 .text.find_volume:0000000000000318 $d /tmp/cczRNDQp.s:2803 .text.find_volume:0000000000000328 $t /tmp/cczRNDQp.s:2847 .text.put_fat:0000000000000000 $t /tmp/cczRNDQp.s:2853 .text.put_fat:0000000000000000 put_fat /tmp/cczRNDQp.s:3141 .text.get_fat:0000000000000000 $t /tmp/cczRNDQp.s:3147 .text.get_fat:0000000000000000 get_fat /tmp/cczRNDQp.s:3395 .text.dir_sdi:0000000000000000 $t /tmp/cczRNDQp.s:3401 .text.dir_sdi:0000000000000000 dir_sdi /tmp/cczRNDQp.s:3608 .text.create_chain:0000000000000000 $t /tmp/cczRNDQp.s:3614 .text.create_chain:0000000000000000 create_chain /tmp/cczRNDQp.s:3847 .text.remove_chain:0000000000000000 $t /tmp/cczRNDQp.s:3853 .text.remove_chain:0000000000000000 remove_chain /tmp/cczRNDQp.s:4014 .text.dir_remove:0000000000000000 $t /tmp/cczRNDQp.s:4020 .text.dir_remove:0000000000000000 dir_remove /tmp/cczRNDQp.s:4071 .text.dir_next:0000000000000000 $t /tmp/cczRNDQp.s:4077 .text.dir_next:0000000000000000 dir_next /tmp/cczRNDQp.s:4386 .text.dir_find:0000000000000000 $t /tmp/cczRNDQp.s:4392 .text.dir_find:0000000000000000 dir_find /tmp/cczRNDQp.s:4499 .text.follow_path:0000000000000000 $t /tmp/cczRNDQp.s:4505 .text.follow_path:0000000000000000 follow_path /tmp/cczRNDQp.s:4673 .text.dir_alloc:0000000000000000 $t /tmp/cczRNDQp.s:4679 .text.dir_alloc:0000000000000000 dir_alloc /tmp/cczRNDQp.s:4791 .text.dir_register:0000000000000000 $t /tmp/cczRNDQp.s:4797 .text.dir_register:0000000000000000 dir_register /tmp/cczRNDQp.s:4871 .text.dir_read:0000000000000000 $t /tmp/cczRNDQp.s:4877 .text.dir_read:0000000000000000 dir_read /tmp/cczRNDQp.s:4999 .text.sync_fs:0000000000000000 $t /tmp/cczRNDQp.s:5005 .text.sync_fs:0000000000000000 sync_fs /tmp/cczRNDQp.s:5119 .text.sync_fs:0000000000000080 $d /tmp/cczRNDQp.s:5125 .text.f_mount:0000000000000000 $t /tmp/cczRNDQp.s:5132 .text.f_mount:0000000000000000 f_mount /tmp/cczRNDQp.s:5248 .text.f_mount:000000000000005c $d /tmp/cczRNDQp.s:5253 .text.f_open:0000000000000000 $t /tmp/cczRNDQp.s:5260 .text.f_open:0000000000000000 f_open /tmp/cczRNDQp.s:5819 .text.f_read:0000000000000000 $t /tmp/cczRNDQp.s:5826 .text.f_read:0000000000000000 f_read /tmp/cczRNDQp.s:6256 .text.f_write:0000000000000000 $t /tmp/cczRNDQp.s:6263 .text.f_write:0000000000000000 f_write /tmp/cczRNDQp.s:6737 .text.putc_bfd:0000000000000000 $t /tmp/cczRNDQp.s:6743 .text.putc_bfd:0000000000000000 putc_bfd /tmp/cczRNDQp.s:6854 .text.putc_flush:0000000000000000 $t /tmp/cczRNDQp.s:6860 .text.putc_flush:0000000000000000 putc_flush /tmp/cczRNDQp.s:6939 .text.f_sync:0000000000000000 $t /tmp/cczRNDQp.s:6946 .text.f_sync:0000000000000000 f_sync /tmp/cczRNDQp.s:7094 .text.f_close:0000000000000000 $t /tmp/cczRNDQp.s:7101 .text.f_close:0000000000000000 f_close /tmp/cczRNDQp.s:7170 .text.f_lseek:0000000000000000 $t /tmp/cczRNDQp.s:7177 .text.f_lseek:0000000000000000 f_lseek /tmp/cczRNDQp.s:7886 .text.f_opendir:0000000000000000 $t /tmp/cczRNDQp.s:7893 .text.f_opendir:0000000000000000 f_opendir /tmp/cczRNDQp.s:8062 .text.f_closedir:0000000000000000 $t /tmp/cczRNDQp.s:8069 .text.f_closedir:0000000000000000 f_closedir ARM GAS /tmp/cczRNDQp.s page 379 /tmp/cczRNDQp.s:8135 .text.f_readdir:0000000000000000 $t /tmp/cczRNDQp.s:8142 .text.f_readdir:0000000000000000 f_readdir /tmp/cczRNDQp.s:8247 .text.f_stat:0000000000000000 $t /tmp/cczRNDQp.s:8254 .text.f_stat:0000000000000000 f_stat /tmp/cczRNDQp.s:8347 .text.f_getfree:0000000000000000 $t /tmp/cczRNDQp.s:8354 .text.f_getfree:0000000000000000 f_getfree /tmp/cczRNDQp.s:8637 .text.f_truncate:0000000000000000 $t /tmp/cczRNDQp.s:8644 .text.f_truncate:0000000000000000 f_truncate /tmp/cczRNDQp.s:8837 .text.f_unlink:0000000000000000 $t /tmp/cczRNDQp.s:8844 .text.f_unlink:0000000000000000 f_unlink /tmp/cczRNDQp.s:9070 .text.f_mkdir:0000000000000000 $t /tmp/cczRNDQp.s:9077 .text.f_mkdir:0000000000000000 f_mkdir /tmp/cczRNDQp.s:9454 .text.f_rename:0000000000000000 $t /tmp/cczRNDQp.s:9461 .text.f_rename:0000000000000000 f_rename /tmp/cczRNDQp.s:9739 .rodata.f_mkfs.str1.4:0000000000000000 $d /tmp/cczRNDQp.s:9749 .text.f_mkfs:0000000000000000 $t /tmp/cczRNDQp.s:9756 .text.f_mkfs:0000000000000000 f_mkfs /tmp/cczRNDQp.s:10341 .text.f_mkfs:00000000000002b8 $d /tmp/cczRNDQp.s:10349 .text.f_mkfs:00000000000002cc $t /tmp/cczRNDQp.s:10985 .text.f_mkfs:000000000000064c $d /tmp/cczRNDQp.s:10994 .text.f_mkfs:0000000000000664 $t /tmp/cczRNDQp.s:11045 .text.f_gets:0000000000000000 $t /tmp/cczRNDQp.s:11052 .text.f_gets:0000000000000000 f_gets /tmp/cczRNDQp.s:11171 .text.f_putc:0000000000000000 $t /tmp/cczRNDQp.s:11178 .text.f_putc:0000000000000000 f_putc /tmp/cczRNDQp.s:11222 .text.f_puts:0000000000000000 $t /tmp/cczRNDQp.s:11229 .text.f_puts:0000000000000000 f_puts /tmp/cczRNDQp.s:11288 .text.f_printf:0000000000000000 $t /tmp/cczRNDQp.s:11295 .text.f_printf:0000000000000000 f_printf /tmp/cczRNDQp.s:11479 .text.f_printf:000000000000009e $d /tmp/cczRNDQp.s:11891 .bss.FatFs:0000000000000000 $d /tmp/cczRNDQp.s:11895 .bss.FatFs:0000000000000000 FatFs /tmp/cczRNDQp.s:11898 .bss.Files:0000000000000000 $d /tmp/cczRNDQp.s:11902 .bss.Files:0000000000000000 Files /tmp/cczRNDQp.s:11905 .bss.Fsid:0000000000000000 $d /tmp/cczRNDQp.s:11909 .bss.Fsid:0000000000000000 Fsid /tmp/cczRNDQp.s:11912 .rodata.ExCvt:0000000000000000 $d /tmp/cczRNDQp.s:11916 .rodata.ExCvt:0000000000000000 ExCvt /tmp/cczRNDQp.s:11925 .rodata.cst.0:0000000000000000 $d /tmp/cczRNDQp.s:11929 .rodata.cst.0:0000000000000000 cst.0 /tmp/cczRNDQp.s:11938 .rodata.cst32.1:0000000000000000 $d /tmp/cczRNDQp.s:11942 .rodata.cst32.1:0000000000000000 cst32.1 /tmp/cczRNDQp.s:11503 .text.f_printf:00000000000000b5 $d /tmp/cczRNDQp.s:11503 .text.f_printf:00000000000000b6 $t UNDEFINED SYMBOLS disk_status disk_write disk_read disk_initialize disk_ioctl get_fattime