Files
99_7018_lmx/apps/common/test/fs_test.c
2025-10-29 13:10:02 +08:00

235 lines
5.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "system/includes.h"
#include "app_config.h"
#define SD_DEV "sd0"
#define SD_MOUNT_PATH "storage/sd0"
#define SD_ROOT_PATH "storage/sd0/C/"
/**********************ac697n 添加SD卡写 配置*******************************
1.配置板级xxx.h, 对比ad697n_demo.h文件添加TCFG_SD0_ENABLE宏包住的内容。
2.配置板级xxx.c, 对比ad697n_demo.c文件添加TCFG_SD0_ENABLE宏包住的内容。注sd_set_power 接口里面内容,如有需要自己配置。
3.配置earphone/music.c ,避免编译不过。注key_table内容如有需要自己配置。
4.SD卡检测上线和挂载接口在default_event_handler.c文件中.dev_manager_mount("sd0")接口挂载SD卡。如果已经挂载了可以不用测试demo中的mount接口。
5.如下面测试demo调用接口读写即可。
***********************************************************************/
struct imount *mount(const char *dev_name, const char *path,
const char *fs_type, int cache_num, void *dev_arg);
#if 1
int SD_test(void)
{
#define FILE_NAME SD_ROOT_PATH"abc.txt"
log_d("SD driver test >>>> path: %s", FILE_NAME);
void *mnt = mount(SD_DEV, SD_MOUNT_PATH, "fat", 3, NULL);
if (mnt) {
log_d("sd mount fat succ");
} else {
log_d("sd mount fat failed");
return -1;
}
FILE *fp = NULL;
u8 str[] = "This is a test string.";
u8 buf[100];
u8 len;
fp = fopen(FILE_NAME, "w+");
if (!fp) {
log_d("open file ERR!");
return -1;
}
len = fwrite(fp, str, sizeof(str));
if (len != sizeof(str)) {
log_d("write file ERR!");
goto _end;
}
#if 1
fseek(fp, 0, SEEK_SET);
len = fread(fp, buf, sizeof(str));
if (len != sizeof(str)) {
log_d("read file ERR!");
goto _end;
}
put_buf(buf, sizeof(str));
#endif
log_d("SD ok!");
_end:
if (fp) {
fclose(fp);
}
return 0;
}
#endif
#if 0
#define SDFILE_NEW_FILE1 SDFILE_RES_ROOT_PATH"tone/bt.wtg"
#define SDFILE_NEW_FILE2 SDFILE_RES_ROOT_PATH"cfg_tool.bin"
#if (USE_SDFILE_NEW == 1)
#define SDFILE_NEW_FILE3 SDFILE_RES_ROOT_PATH"btif"
#else
#define SDFILE_NEW_FILE3 SDFILE_RES_ROOT_PATH"RESERVED_CONFIG/btif"
#endif
#define SDFILE_NEW_FILE4 SDFILE_RES_ROOT_PATH"cfg_tool.bin"
#define SDFILE_READ_LEN 0x20
void sdfile_test(void)
{
FILE *fp = NULL;
u8 buf[SDFILE_READ_LEN];
u32 len;
int ret;
printf("sdfile test >>>>>>>>");
fp = fopen(SDFILE_NEW_FILE1, "r");
if (!fp) {
printf("file open fail");
}
printf("file open succ");
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ");
put_buf(buf, SDFILE_READ_LEN);
}
fclose(fp);
fp = fopen(SDFILE_NEW_FILE4, "r");
if (!fp) {
printf("file open fail");
}
printf("file open succ4444");
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ444");
put_buf(buf, SDFILE_READ_LEN);
}
fclose(fp);
//////////////////////////////////
fp = fopen(SDFILE_NEW_FILE2, "r");
if (!fp) {
printf("file open fail2");
}
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ2");
put_buf(buf, SDFILE_READ_LEN);
}
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ2");
put_buf(buf, SDFILE_READ_LEN);
}
fseek(fp, 0x200, SEEK_SET);
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ3");
put_buf(buf, SDFILE_READ_LEN);
}
printf("file open succ2");
fclose(fp);
//////////////////////////////////
fp = fopen(SDFILE_NEW_FILE3, "r");
if (!fp) {
printf("file open fail3");
}
printf("file open succ3");
ret = fread(fp, buf, SDFILE_READ_LEN);
if (ret == SDFILE_READ_LEN) {
printf("file read succ4");
put_buf(buf, SDFILE_READ_LEN);
}
char str_buf[] = "test btif write";
fseek(fp, 0, SEEK_SET);
ret = fwrite(fp, str_buf, sizeof(str_buf));
if (ret == sizeof(str_buf)) {
printf("file write succ");
}
fseek(fp, 0, SEEK_SET);
printf("file will read");
ret = fread(fp, buf, sizeof(str_buf));
if (ret == sizeof(str_buf)) {
printf("file read succ5");
put_buf(buf, sizeof(str_buf));
}
fclose(fp);
}
#endif
#if 0
void m_1() ;
void m_2() ;
void movefun_test()
{
extern u32 moveable_addr ;
extern u32 m_code_addr ;
extern u32 m_code_size ;
extern u32 moveable_slot_addr ;
extern u32 moveable_slot_begin ;
extern u32 moveable_slot_size ;
u32 *a = &moveable_slot_addr ;
u32 *b = &moveable_slot_begin ;
for (int i = 0 ; i < (u32) &moveable_slot_size ; i += 4) {
*a = *b - (u32)&m_code_addr + (u32) &moveable_addr ;
printf("index %d = %x %x \r\n", i, *a, *b) ;
a++ ;
b++ ;
}
printf("sdram addr= %x flash addr=%x size =%x \r\n", (u32)&moveable_addr, (u32)&m_code_addr, (u32)&m_code_size);
memcpy(&moveable_addr, &m_code_addr, (u32)&m_code_size) ;
m_1() ;
}
void fun_test()
{
m_1() ;
m_2() ;
}
__attribute__((movable_region(2)))
void m_1() AT(.m.code)
{
printf("movable_regin fun test 1") ;
m_2() ;
}
__attribute__((movable_region(2)))
void m_2()AT(.m.code)
{
printf("movable_regin fun test 2") ;
}
#endif