freertos的fatfs文件系统资料下载.pdf
《freertos的fatfs文件系统资料下载.pdf》由会员分享,可在线阅读,更多相关《freertos的fatfs文件系统资料下载.pdf(4页珍藏版)》请在冰豆网上搜索。
![freertos的fatfs文件系统资料下载.pdf](https://file1.bdocx.com/fileroot1/2022-10/7/cea1ef79-78eb-476f-aa19-4357c55a84b4/cea1ef79-78eb-476f-aa19-4357c55a84b41.gif)
ff.c:
文件系统的文件,无需修改。
MYFF.c:
自定义的读写文件。
FREERTOS系统,本人一般是分为四条任务:
MAINTask,放一些文件读取之类的迚程USBTask,freertos系统里面的USB迚程的任务,一般是读取flash文件,SD卡文件,等等TickTask,定时处理的一些函数。
TESTTask,预留的控制程序任务。
FATFS文件系统是直接放到MAINTask中,开机直接挂载到系统中去。
县长家兔子县长家兔子MountDriver(DRV_SPI_FLASH);
挂载SPIFLASH,SD卡,放在之后吧。
FRESULTMountDriver(u8pdrv)u32free_size;
FATFS*fs=&
FAT_Fspdrv;
FRESULTrt=f_mount(fs,0:
1);
/挂载if(rt=FR_OK)Printf(nNumberofdriver:
%c,A+fs-drv);
Printf(nFilesystem:
%s,FatTypefs-fs_type);
Printf(nAmountoffats:
%d,fs-n_fats);
Printf(nSectorsperclust:
%d,fs-csize);
rt=f_getfree(0:
&
free_size,&
fs);
if(rt=FR_OK)free_size*=fs-csize;
/getfreesectorsfree_size*=512u;
/getfreebytesPrintf(nFreesize:
%d,free_size);
else县长家兔子县长家兔子Printf(nGetfreeclustfailed:
%d,rt);
elsePrintf(nAddfiledriver%dfailed:
%d,0,rt);
returnrt;
直接挂载SPIFLASH,并且把flash的信息打印到串口上去,这里的Printf全是我自己写的带信号量的打印函数。
不会在打印过程中遭受别的迚程影响。
以我自己写程序习惯,我会去保存开机信息,包括时间啊,开机啊,之类的。
SaveLog(开机重启,8);
保存开机重启这几个字,还有就是当时的开机时间voidSaveLog(char*date,u16len)PFILEfp;
UINTlength;
charhead10;
charpath22;
县长家兔子县长家兔子sprintf(path,0:
/d.d.d.txt,rtctime.Year,rtctime.Month,rtctime.Date);
/时间path用来创建TXT文件fp=FileOpen(path,FA_WRITE);
if(fp=NULL)fp=FileOpen(path,FA_CREATE_NEW|FA_WRITE);
/自己的freertos的创建函数sprintf(head,d:
d:
d,rtctime.Hours,rtctime.Minutes,rtctime.Seconds);
if(fp!
=NULL)f_lseek(fp,f_size(fp);
/文件系统上一个地址开始f_write(fp,rn,2,&
length);
f_write(fp,head,10,&
f_write(fp,date,len,&
FileClose(fp);
/自己的关闭函数,里面要归还申请的内存的。
把重启信息保存可以保存重启信息,也可以保存别的任何信息。