Files
99_7018_lmx/apps/common/test/fs_test.c

235 lines
5.4 KiB
C
Raw Normal View History

2025-10-29 13:10:02 +08:00
#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