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

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

2013-01-04 
求助:更新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);
}
[解决办法]
顶一下,楼上的帖子很纠结,共同学习中!

热点排行