CH573 IAP校验问题

Hi

    我的项目正在使用CH573的USB HOST检测U盘中的BIN文件对固件做更新,目前升级功能测试正常,但是有遇到一些问题没有解决。


1.我想法是在对FLASH内容擦除更新完成后,将写入的地址内容全部读取出来后对比做CRC校验,但是我调用这个函数接口无法读取到地址内的数据结果,请问是什么原因?有按照4Bytes方式读取。

#define CMD_FLASH_ROM_VERIFY      0x03  // read FlashROM data block, minimal block is dword, return 0 if success, parameter @StartAddr,Buffer,Length

/**
 * @brief   verify FlashROM data block, minimal block is dword.
 *
 * @param   StartAddr   - Address of the data to verify.
 * @param   Buffer      - Pointer to the source buffer, Must be aligned to 4 bytes.
 * @param   Length      - Size of data to verify, in bytes.
 *
 * @return  0-SUCCESS  (!0)-FAILURE
 */
#define FLASH_ROM_VERIFY(StartAddr, Buffer, Length)    FLASH_EEPROM_CMD(CMD_FLASH_ROM_VERIFY, StartAddr, Buffer, Length)

您好,您是如何调用FLASH_ROM_VERIFY接口的,可以参考EVT中的flash例程。

除了Buffer需要4字节对齐外,还要注意①第一个参数要求是codeflash的起始地址,直接在codeflash中寻址。

②flash校验接口不会读出数据,返回结果只有0和非0,返回0表示StartAddr指定的地址起,往后Length字节长度的内容,和Buffer中的内容一致。


只有登录才能回复,可以选择微信账号登录