初级会员

- 积分
- 60
- 金钱
- 60
- 注册时间
- 2020-10-30
- 在线时间
- 15 小时
|
1金钱
for(i3=2;i3<7;i3++)
{
for(cv=0;cv<500;cv++)
{
databuf1[cv]=databuf[cb];
cb=cb+1;;
}
if(cb==2499)
{
cb=0;
}
if(FTL_WriteSectors(databuf1,i3,500,1)==0)
{
printf("写入成功\r\n");
}
else
{
printf("写入失败\r\n");
}
}
代码如上,想写入2500个数据分为5个扇区到起始扇区号为2的扇区里,程序会卡死,写到一个固定的扇区里则不会。函数如下,其中NAND_ECC_SECTOR_SIZE为512,求助各位大佬
//写扇区(支持多扇区写),FATFS文件系统使用
//pBuffer:要写入的数据
//SectorNo:起始扇区号
//SectorSize:扇区大小(不能大于NAND_ECC_SECTOR_SIZE定义的大小,否则会出错!!)
//SectorCount:要写入的扇区数量
//返回值:0,成功
// 其他,失败
u8 FTL_WriteSectors(u8 *pBuffer,u32 SectorNo,u16 SectorSize,u32 SectorCount)
{
u8 flag=0;
u16 temp;
u32 i=0;
u16 wsecs; //写页大小
u32 wlen; //写入长度
u32 LBNNo; //逻辑块号
u32 PBNNo; //物理块号
u32 PhyPageNo; //物理页号
|
|