需要注意的是对一个文件做md5校验 实际上是对文件的数据区做校验,所以要做的就是把文件的数据区读取出来并对其做校验
并且 在FatFS中读取一个fat格式的文件 f_open函数需要一个实体文件存储空间,而不是一个文件指针
FIL fp;
INT32U iTime,bw;
FRESULT res;
INT8U im[32]={0};
INT8U *pbuf;
memset(&im,0,sizeof(im));
iTime = My_OSTimeGet();
res = f_open(&fp,"0:/test.exe",FA_OPEN_ALWAYS | FA_READ);
if(res) Debugout("Ores=%d \r\n",res);
pbuf = (INT8U*)malloc(fp.fsize);
res = f_read(&fp,pbuf,fp.fsize,&bw);
if(res) Debugout("Rres=%d \r\n",res);
f_close(&fp);
md5(pbuf,fp.fsize,im);
Debugout("CostTIME==%d\r\n",My_OSTimeGet()-iTime);
ps_debugout("tTD=md5:\r\n");
for (iTime = 0; iTime < 32; ++iTime) {
Debugout("%02x ",im[iTime]);
}
free(pbuf);