芯片CH32V305RBT6,USB的IAP升级问题。已经参考CH32V307EVT\EVT\EXAM\IAP\USB_UART。例程成功,但是自己写的一个工程则失败。
例程成功:烧写CH32V307EVT\EVT\EXAM\IAP\USB_UART目录下的CHV30x_IAP工程到芯片,然后CHV30x_APP编译出bin固件,可以使用WCHMcuIAP_WinAPP.exe成功烧录并在烧录完之后自动跳转到app
自己写的一个工程失败:烧写CH32V307EVT\EVT\EXAM\IAP\USB_UART目录下的CHV30x_IAP到芯片,然后自己的一个工程(这个工程是在CH32V307EVT\EVT\EXAM\USB\USBFS\DEVICE\CompositeKM的基础上改的),编译出bin固件,使用WCHMcuIAP_WinAPP.exe成功烧录并在烧录完之后自动跳转到CHV30x_IAP工程(通过打印可知是跳转到CHV30x_IAP),也就是烧完的结果是,开机运行CHV30x_IAP然后跳转到CHV30x_IAP。如果将PA0接GND(代表运行app),那么将会不断地从CHV30x_IAP跳转到CHV30x_IAP,无限循环。
注意:我已经将我自己写的工程的.LD文件修改成和CH32V307EVT\EVT\EXAM\IAP\USB_UART\CHV30x_APP的.ld文件是一样的,这样FLASH (rx) : ORIGIN = 0x00005000, LENGTH = 228K,依然不行。
FLASH (rx) : ORIGIN = 0x00005000, LENGTH = 44K也不行
FLASH (rx) : ORIGIN = 0x0000A000, LENGTH = 228K也不行
我自己的工程编译出的bin文件大小是28KB。