新手上路
- 积分
- 49
- 金钱
- 49
- 注册时间
- 2020-9-10
- 在线时间
- 21 小时
|
2金钱
照着原子哥的例程,自己写的程序,只涉及sdio驱动8Gsd卡,代码应该差不多。发现问题如下:
f_mount和f_mkfs没问题,f_open和f_putc,f_close没问题。
f_write永远卡死,应该是内存分配问题,但显示不是NULL,我看了内存地址,是4字节对齐的。实在不知道怎么办了。
顺便问一下align怎么用的。
FATFS *fs[1];
FIL *file;
FIL *ftemp;
UINT br,bw;
FILINFO fileinfo;
DIR dir;
__align(4) u8 fatbuf[512];
u8 exf_init()
{
fs[0] = (FATFS * )malloc(sizeof(FATFS));
file = (FIL*) malloc(sizeof(FIL));
ftemp = (FIL*)malloc(sizeof(FIL));
if(fs[0] == NULL) return exf_init_fail;
if(file == NULL) return exf_init_fail;
if((ftemp == NULL) ) return exf_init_fail;
return exf_init_ok;
}
sd卡f_write单步跟踪,每次执行到 res = validate(fp); /* Check validity */就进入HardFault_Handler
|
|