今天尝试分段下载bin文件到sd卡中,sd卡是带了FATFS文件系统的。
SD_fsize = f_size(&gf_OTAFile);
发现下载过程中f_size的大小不对劲,然后自己写一个1024的11进去,发现增加的两也不是1024。
了解到扇区为512B之后将1024的数组分成512后,发现f_size大小增加正常。再次尝试下载bin文件,发现还是不对,后来发现写全1能写入,写全0无法写入,才发现原来是wirte函数,传入长的参数是由strlen得到的,而strlen遇到0x00之后就会停止计算后面的大小,
比如说u8 test[8]={0x11,0x00, 0x11, 0x11, 0x11};strlen(test)就会等于1,不会等于5.直接传入下载的大小后,变得正常。