CH32V20xEVT中的IAP DEMO存在bug,HEX文件下载偏移出错,无法执行APP

使用CH32V20xEVT.ZIP中的IAP示例程序CH32V20x_IAP编译完下载进入官方的CH32V203C8T6-R0评估板,在WIN10下使用WCHMcuIAP_WinAPP.exe进行下载,按照软件默认选择了编译完APP的hex文件,发现下载成功,但是APP不运行。

折腾了两天,最终发现使用HEX格式的app被下载到了0x800A000处,而不是IAP之前默认的0x8005000处,APP能运行才怪呢。但是看芯片端iap程序没发现什么大问题,考虑到这个IAP一切都靠事先约定,芯片端的IAP代码就是直接执行,问题很可能出现在PC端的WCHMcuIAP_WinAPP.exe上,苦于没有源码,没有通信协议说明,只能打算重写整套工具。

突然脑子一动,会不会PC端这个程序解析HEX文件出错了呢,再次打开下载文件选择框,改选bin格式文件,点程序下载,然后居然APP运行起来了!


把FLASH内容dump出来对比,果然是HEX文件下载的出了问题


使用HEX文件下载完5000偏移处的内容截图

1700582015909186.png

A000偏移处内容截图

1700581978101003.png

改用BIN文件来下载,5000偏移处内容截图,显然已经是固件的中断向量表内容

1700581978161595.png

而A000偏移处则恢复了空白

1700581978943979.png



附上两次IAP下载试验后的FALSH内容

icon_rar.gifHEX-FlashData.zip

icon_rar.gifBIN-FlashData.zip



您好,感谢你的反馈。关于IAP升级,在EVT对应IAP文件夹内,有关于IAP使用说明,如下图1.里面有介绍进行IAP升级时,需要将Hex文件转换成BIN文件,如下图2,你可以看一下那使用说明。

image.png

图1

image.png

图2


哈哈!确实没看使用说明,这个老毛病总是改不了


软件里直接默认选择HEX,就想都没想直接下载了


感谢回复答疑!


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