77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
#include "app_config.h"
|
||
#include "system/includes.h"
|
||
#include "device/device.h"
|
||
#include "fs/fs.h"
|
||
|
||
#ifdef USE_SD_TEST_DEMO
|
||
|
||
static void sd_fs_test(void)
|
||
{
|
||
puts("-------sd_fs_test--------");
|
||
|
||
extern int storage_device_ready(void);
|
||
|
||
while (!storage_device_ready()) {//等待sd文件系统挂载完成
|
||
os_time_dly(2);
|
||
}
|
||
|
||
//读写测试
|
||
u8 *test_data = "sd test 123456";
|
||
u8 read_buf[32];
|
||
int wlen;
|
||
int rlen;
|
||
int ret;
|
||
FILE *newFile = NULL; //保存移动文件操作成功后文件在新路径的文件流指针
|
||
|
||
memset(read_buf, 0, sizeof(read_buf));
|
||
|
||
//1.创建文件
|
||
FILE *fd = fopen(CONFIG_ROOT_PATH"111/test.txt", "w+");
|
||
if (fd) {
|
||
fwrite(test_data, 1, strlen(test_data), fd);
|
||
wlen = flen(fd);
|
||
fclose(fd);
|
||
printf("write file len: %d \n", wlen);
|
||
}
|
||
|
||
//2.读取文件
|
||
fd = fopen(CONFIG_ROOT_PATH"111/test.txt", "r");
|
||
if (fd) {
|
||
rlen = flen(fd);//获取整个文件大小
|
||
fread(read_buf, 1, rlen, fd);
|
||
fclose(fd);
|
||
printf("read file : %s rlen : %d\n", read_buf, rlen);
|
||
}
|
||
|
||
//3.创建目录storage/sd0/C/222,并将storage/sd0/C/111/test.txt文件移动过来
|
||
ret = fmk_dir(CONFIG_ROOT_PATH, "/222", 0);
|
||
if (!ret) {
|
||
fd = fopen(CONFIG_ROOT_PATH"111/test.txt", "r");
|
||
if (fd) {
|
||
ret = fmove(fd, "/222/", &newFile, 0, 5); //第二个参数是目标目录,由根目录开始,比如目录是storage/sd0/C/222,则填/222/
|
||
}
|
||
|
||
if (newFile) {
|
||
memset(read_buf, 0, sizeof(read_buf));
|
||
rlen = flen(newFile);
|
||
fread(read_buf, 1, rlen, newFile);
|
||
fclose(newFile);
|
||
printf("move read file : %s rlen : %d\n", read_buf, rlen);
|
||
|
||
}
|
||
}
|
||
|
||
|
||
while (1) {
|
||
os_time_dly(2);
|
||
}
|
||
|
||
}
|
||
static int c_main(void)
|
||
{
|
||
os_task_create(sd_fs_test, NULL, 12, 1000, 0, "sd_fs_test");
|
||
return 0;
|
||
}
|
||
late_initcall(c_main);
|
||
#endif
|