芯片CH32V305RBT6,USB的IAP升级问题。已经参考CH32V307EVT\EVT\EXAM\IAP\USB_UART。例程成功,但是自己写的一个工程则失败

芯片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。

尝试了直接修改例程:\CH32V307EVT\EVT\EXAM\GPIO\GPIO_Toggle  将这个的ld文件改成和\CH32V307EVT\EVT\EXAM\IAP\USB_UART\CHV30x_APP的.ld文件是一样的。然后编译出bin文件,也是一样的结果,不知道还需要修改哪里?


已解决了,我是模仿\CH32V307EVT\EVT\EXAM\IAP\USB_UART\CHV30x_APP将他的LD文件夹复制到我的工程的目录下,打开工程之后就会自动将LD文件夹添加到工程里,导致我以为已经使用了这个LD文件夹,实际上现在有2个LD文件夹,一个是Ld文件夹,一个是新自动增加的LD文件夹,实际上只用了旧的那个,新的这个即使加入了工程,也没有起作用


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