CH32V003实现BootLoader+APP问题

你好,打算在CH32V003实现如下功能:

自己实现的BootLoader存放在Flash起始地址,APP存放在指定地址。MCU上电先运行的BootLoader,若检测到特定标志位则进入APP升级模式(接收串口数据写入Flash),未检测的标志位跳转运行APP。

有如下问题麻烦解答:

  1. BootLoader工程中如何设置跳转到指定地址(代码中设置?编译器中设置?)

  2. 有一个普通的APP工程,如何修改/设置将APP固件存放的Flash地址?(下图类似keil中修改中断向量表偏移地址0x2000和编译配置)

  3. 通过Mounriver studio能否直接将上述BootLoader和APP下载到MCU运行。(先下载BL再下载APP,Keil修改配置后可以)

  4. CH32V003_IAP/CH32V003_APP的工程按F8下载代码提示hex不存在。为何设置不生成hex?如何设置生成hex?



image.png


image.png

您好,关于地址的跳转,可参考下图1。关于设置APP固件存放的FLASH地址,在ld文件中配置FLASH地址,如下图2。关于生成hex文件,MounRiver参考下图3配置。关于003的IAP升级,可参考CH32V103的,在CH32V103 EVT中,有IAP升级例程和讲解,如下图4,V003基本和V103差不多,可以参考一下。后续若有问题,可通过邮箱和我沟通(lzs@wch.cn).

image.png

图1

image.png

图2

image.png

图3

image.png

图4


你好。

将IAP固件下载到MCU后,能否通过Mounriver studio再将APP下载到指定地址而不擦除IAP固件

将APP固件通过Mounriver studio可直接下载到Flash的0x1000,但IAP固件(0x0000起始)区域被擦除了。去掉全片擦除勾选也没用。(图1-2)

另外,SW_Handler函数编译出错,请问如何处理?(图3)


图1:

image.png

图2:

image.png


图3:

image.png


您好,若你想下载完IAP程序后再通过MounRiver下载APP程序,目前无法直接下载,APP程序可通过调试方式下载进去,需按照下图配置一下。关于SW_Handler函数编译报错,可将a6改成a5即可,如下图2。关于IAP升级,CH32V003的BOOT区是开放的,可将IAP程序放在BOOT区内。在CH32V003 EVT中有串口IAP升级的例程,如下图3,可以参考一下。下面链接为CH32V003 EVT下载链接。后续问题可继续通过邮箱(lzs@wch.cn)和我沟通。

/downloads/CH32V003EVT_ZIP.html 

image.png

图1

image.png

图2

image.png

图3


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