新手做U盘升级(USB HOST+IAP),出现问题:U盘中.BIN文件小于12K,正常升级。大于12K只更新12K代码,MDK4,查看flash内容,只写了12K内容,不管每次写FLASH内容,为 512,1024,还是4096.都是这样。部分代码如下:
IAP_PrepareSec(FlashSector_i, FlashSector_i); // 选择扇区
IAP_EraseSec(FlashSector_i,FlashSector_i); // 擦除扇区
do {
bytes_read = FILE_Read(fdr, UserBuffer, MAX_BUFFER_SIZE); //从U盘中,读.BIN文件每次最大4096;#define MAX_BUFFER_SIZE (4096)
for(i=0;i<MAX_BUFFER_SIZE;i++)
{
UART1Buffer[i]=*UserBuffer++;
}
IAP_PrepareSec(FlashSector_i, FlashSector_i); // 选择扇区
IAP_CopyRAMToFlash(User_HIGH+num , (DWORD)UART1Buffer, 4096);//从U盘中读bytes_read字节,就写到FLASH中
num=num+bytes_read;
} while (bytes_read);
|