在写一个函数的时候遇到个这样的问题:
FRESULT CreateONEFile(const char *filename)
{
FATFS fs_cre; // Work area (file system object) for logical drive
FIL fsrc; // file objects
FRESULT res; // FatFs function common result code
//
// Register a work area for logical drive 0
//
f_mount(0, &fs_cre);
// Create file
res = f_open(&fsrc, filename, FA_CREATE_ALWAYS | FA_WRITE);
f_close(&fsrc);
return (res);
}
这是一个用 FATFS 系统写的一个生成一个文件的函数,写好了,语法没有错误,通过编译下载到 ARM 上,没想到,程序卡死了.但是如果把FATFS fs_cre 定义成 static FATFS fs_cre 或者 定义成全局变量就会很顺利,也能实现预想的功能!
我在调试的时候,它们的区别就是初始化和未被初始化.但是我又不想把把定义成静态或者全局的,剩下的就只有初始化为0,但是 FATFS 是文件系统自己定义的一个结构体,具体的成员我也不知道,所以初始化也不行.这便令我很纠结啊! 不知道有哪位大虾能帮小弟解决一下... |