完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好, 我司ch563q的案子,目前正参考/exam/IAP_DEMO 在做 软件升级功能,
数据是从主板(usb host)传送到ch563(usb device), 每次数据长度是500 Bytes, FLASH_ROM_ERASE是没问题的,但是第一个FLASH_ROM_WRITE就一直是返回 0xFC, 不晓得这个返回值是什么意思 ? 麻烦帮忙看下,谢谢。 以下是我们代码和打印信息: { 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; } 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%02Xn", 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 一直重复. |
|
相关推荐
3个回答
|
|
在执行写操作之前时候有FLASH_LOCK的相关动作?确保在操作flash的时候flash处于解锁状态。
|
|
|
|
你好,
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是没问题的, 先做了erase, 之后才调用的 FLASH_ROM_WRITE, 从打印信息看传入的参数应该没问题啊,但始终是返回 0xFC, FLASH_ROM_WRITE 的调用是你们封装的 ISPXT56X.O, 应该能看到为什么返回这个(0xFC代表什么意义)? |
|
|
|
在实际实现IAP功能的时候,建议保留第一个4K不要擦除来实现。
|
|
|
|
只有小组成员才能发言,加入小组>>
435 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2847 浏览 2 评论
2340 浏览 1 评论
788浏览 2评论
CH565W以太网,是必须有SKCKET中断才能发送数据吗?
415浏览 1评论
321浏览 1评论
用DVP采集图像,用UDP传给PC端,采集两帧后图像报错是什么原因?
457浏览 1评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
605浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 18:31 , Processed in 1.086122 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号