anyone have

cancel
Showing results for 
Search instead for 
Did you mean: 

anyone have

818 Views
randyseedle
Contributor III

Anyone have an example of f_size. The file size function on the Kinetic 64 board (Freescale) . The reference manual doesn't want download over my phone .

Labels (1)
0 Kudos
5 Replies

696 Views
randyseedle
Contributor III

After making some changes to my f_stat function I got a FR_NOT_ENABLED. What do you suppose that means ?

Randy

0 Kudos

696 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Randy:

Please refer to the error code

/* File function return code (FRESULT) */

typedef enum {
    FR_OK = 0,                /* (0) Succeeded */
    FR_DISK_ERR,            /* (1) A hard error occurred in the low level disk I/O layer */
    FR_INT_ERR,                /* (2) Assertion failed */
    FR_NOT_READY,            /* (3) The physical drive cannot work */
    FR_NO_FILE,                /* (4) Could not find the file */
    FR_NO_PATH,                /* (5) Could not find the path */
    FR_INVALID_NAME,        /* (6) The path name format is invalid */
    FR_DENIED,                /* (7) Access denied due to prohibited access or directory full */
    FR_EXIST,                /* (8) Access denied due to prohibited access */
    FR_INVALID_OBJECT,        /* (9) The file/directory object is invalid */
    FR_WRITE_PROTECTED,        /* (10) The physical drive is write protected */
    FR_INVALID_DRIVE,        /* (11) The logical drive number is invalid */
    FR_NOT_ENABLED,            /* (12) The volume has no work area */
    FR_NO_FILESYSTEM,        /* (13) There is no valid FAT volume */
    FR_MKFS_ABORTED,        /* (14) The f_mkfs() aborted due to any problem */
    FR_TIMEOUT,                /* (15) Could not get a grant to access the volume within defined period */
    FR_LOCKED,                /* (16) The operation is rejected according to the file sharing policy */
    FR_NOT_ENOUGH_CORE,        /* (17) LFN working buffer could not be allocated */
    FR_TOO_MANY_OPEN_FILES,    /* (18) Number of open files > FF_FS_LOCK */
    FR_INVALID_PARAMETER    /* (19) Given parameter is invalid */
} FRESULT;

Regards

Daniel

0 Kudos

696 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Randy:

You refer to below code for the usage of f_size

middleware/fatfs/documents/res/app1.c

FRESULT open_append (
    FIL* fp,            /* [OUT] File object to create */
    const char* path    /* [IN]  File name to be opened */
)
{
    FRESULT fr;

    /* Opens an existing file. If not exist, creates a new file. */
    fr = f_open(fp, path, FA_WRITE | FA_OPEN_ALWAYS);
    if (fr == FR_OK) {
        /* Seek to end of the file to append data */
        fr = f_lseek(fp, f_size(fp));
        if (fr != FR_OK)
            f_close(fp);
    }
    return fr;
}

Regards

Daniel

0 Kudos

696 Views
randyseedle
Contributor III

The f_stat function doesn't seem to work either. Drilling down into the file info shows that the size is always zero.

0 Kudos

696 Views
danielchen
NXP TechSupport
NXP TechSupport

For f_stat, you can refer to usb_examples

/usb_host_msd_fatfs/bm/host_msd_fatfs.c

...

   fatfsCode = f_stat(_T("1:/dir_1"), &fileInfo);

...

I did a quick check and it could work on my side.

Regards

Daniel

0 Kudos