CH563Q IAP FLASH_ROM_WRITE 問(wèn)題。

你好, 我司ch563q的案子,目前正參考/exam/IAP_DEMO 在做 軟件升級(jí)功能,

數(shù)據(jù)是從主板(usb host)傳送到ch563(usb device), 每次數(shù)據(jù)長(zhǎng)度是500 Bytes,

FLASH_ROM_ERASE是沒(méi)問(wèn)題的,但是第一個(gè)FLASH_ROM_WRITE就一直是返回 0xFC,

不曉得這個(gè)返回值是什么意思 ?? 麻煩幫忙看下,謝謝。


以下是我們代碼和打印信息:

{
???STEBMSG_IAP_PROM *p = (STEBMSG_IAP_PROM *)pstMsg->pBuf;
???unsigned int nSz = pstMsg->stHdr.nSz - MAX_EXBRD_HDR - 4;
???UINT32 nAddr;
???int i;
???char nChkSum = 0;

???for(i=0;i < nSz;i++)
???{
??????nChkSum += p->pData[i];
???}
???if(nChkSum != p->nChkSum)
???{
??????gstRespMsg.stHdr.nMsgId = pstMsg->stHdr.nMsgId;
???}
???else
???{
??????nAddr = (p->pAddr[0] | ((UINT32)p->pAddr[1] << 8) | ((UINT32)p->pAddr[2] << 16));
??????i = FLASH_ROM_WRITE(nAddr, (PVOID)&p->pData[0], nSz);
??????if(i? !=? 0)
??????{
?????????gstRespMsg.stHdr.nMsgId = pstMsg->stHdr.nMsgId;
??????}
???}
???printf("[test]IAPPGM i:0x%X, nSz:%d, Sum:0x%02X, 0x%02X, nAddr:%d, MsgId:0x%02X\n", i, nSz, nChkSum,??? p->nChkSum, nAddr, gstRespMsg.stHdr.nMsgId);
}


打印信息:

[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0
RMsgId:0xD0
[test]IAPPGM i:0xFC, nSz:500, Sum:0x3E, 0x3E, nAddr:0, MsgId:0xD0

一直重復(fù).


熱門(mén)產(chǎn)品 : USB3.0 HUB控制器:CH634

在執(zhí)行寫(xiě)操作之前時(shí)候有FLASH_LOCK的相關(guān)動(dòng)作?確保在操作flash的時(shí)候flash處于解鎖狀態(tài)。


你好,

FLASH_ROM_ERASE代碼段如下:

FLASH_ROM_LOCK(0x00);
if(FLASH_ROM_ERASE(0, Length *1024) != 0)
{
??? FLASH_ROM_LOCK(FLASH_ROM_LOCK_AUTO);
??? gstRespMsg.stHdr.nMsgId = pstMsg->stHdr.nMsgId;
}


FLASH_ROM_ERASE是沒(méi)問(wèn)題的,? 先做了erase, 之后才調(diào)用的 FLASH_ROM_WRITE,

從打印信息看傳入的參數(shù)應(yīng)該沒(méi)問(wèn)題啊,但始終是返回 0xFC,

FLASH_ROM_WRITE 的調(diào)用是你們封裝的 ISPXT56X.O, 應(yīng)該能看到為什么返回這個(gè)(0xFC代表什么意義)?



在實(shí)際實(shí)現(xiàn)IAP功能的時(shí)候,建議保留第一個(gè)4K不要擦除來(lái)實(shí)現(xiàn)。

參考以下代碼:http://www.findthetime.net/bbs/thread-71433-1.html


參考 CH563-IAP-1v1, 功能已經(jīng)實(shí)現(xiàn)了,謝謝。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频