Files

48 lines
1.0 KiB
C
Raw Permalink Normal View History

2018-09-28 00:50:46 -04:00
#include "../fatfs/ff.h"
#include "../kmalloc.h"
2018-09-28 00:50:46 -04:00
#include <common.h>
#include <stdio.h>
2018-09-28 00:50:46 -04:00
bool fatfs_test() {
FATFS fs;
FRESULT ret;
FILINFO info;
FIL file;
char *buff = NULL;
uint32_t read = 0;
printf("Mounting drive 0... ");
2018-09-28 00:50:46 -04:00
ret = f_mount(&fs, "", 1);
if (ret != FR_OK) goto fail;
printf("OK\n");
2018-09-28 00:50:46 -04:00
ret = f_stat("README", &info);
if (ret != FR_OK || !info.fsize) goto fail;
printf("Opening README with size %llu... \n", info.fsize);
2018-09-28 00:50:46 -04:00
ret = f_open(&file, "README", FA_READ);
if (ret != FR_OK) goto fail;
printf("OK\n");
2018-09-28 00:50:46 -04:00
buff = kmalloc((size_t) info.fsize + 1);
2018-09-28 00:50:46 -04:00
if (buff == NULL) goto fail;
ret = f_read(&file, buff, (uint32_t) info.fsize, &read);
if (ret != FR_OK || read != info.fsize) goto fail;
printf("File read successfully.\n\n");
2018-09-28 00:50:46 -04:00
// buff[read] = 0;
// printf("%s\n", (char *) buff);
2018-09-28 00:50:46 -04:00
goto end;
fail:
printf("fatfs fail %d\n", ret);
2018-09-28 00:50:46 -04:00
end:
kfree(buff);
2018-09-28 00:50:46 -04:00
f_close(&file);
f_unmount("");
return ret == FR_OK;
}