首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

更新APP FLASH中存放的文件,哪位高手帮看一下这个程序

2012-03-08 
求助:更新APP FLASH中存放的文件,谁帮看一下这个程序啊INT32 drv_update_app_flash_file ( UINT8 *pucFile

求助:更新APP FLASH中存放的文件,谁帮看一下这个程序啊
INT32 drv_update_app_flash_file ( UINT8 *pucFileBuf, UINT32 ulFileLen, char *szTFFSFileName )
{
  char szTargetFile[ FILE_NAME_LENGTH ]; /* 写入到TFFS文件系统中的文件名 */
  FILE *fd; /* 文件描述符 */
  UINT32 ulCount = 0;
  UINT32 i = 0;
  INT8 ret = 2;

printf("Write file: %23s %7dByte..................................................", szTFFSFileName, ulFileLen);
  if ( tffsDrv () != OK )
{
printf ("[Could not initialize]\n");
return (ERROR);
}

  dosFsInit (NUM_DOSFS_FILES); /* initialize DOS-FS */

  /* 配置初始化TFFS */
  usrTffsConfig ( 0, 0, "/tffs" );

  /* 组合文件名/tffs/.. */
  strcpy ( szTargetFile, "/tffs" );
  strcat ( szTargetFile, "/");
  strcat ( szTargetFile, szTFFSFileName);  
  if( ( fd = fopen( (char *)szTargetFile, "wb+" ) ) == NULL )
  {
  printf("[DRV]ERROR: cannot open file");
  return -1;
  }

  ulCount = (ulFileLen+512-1)/512;  

  for(i = 0; i<ulCount; i++)
  {
  ret = fwrite((void *)( pucFileBuf+i*512 ), 512, 1, fd );
  if( ret != 1 )
  {
  printf("[ERROR]: file write error \n");
  return -1;
  }

  if((i % 32 ) == 0 )  
  {
  printf("\b\b\b\b%3d%%",i*100/ulCount);  
  }
  }
  printf("\b\b\b\b%3d%%",i*100/ulCount);
  fclose(fd);
printf("[completed]\n");
  return (OK);
}

[解决办法]
顶一下,楼上的帖子很纠结,共同学习中!

热点排行