WCH沁恒单片机
直播中

李晓鹏

7年用户 1263经验值
私信 关注
[问答]

请问CH32v307中的代码是否从RAM运行?

CH32v307 中的代码是否从 RAM 运行?程序可以在FLASH中删除自己并上传新代码吗?我想实现 IAP 但没有单独的区域(没有第二个应用程序)。我希望应用程序自行更新。
可能吗 ?
STM32 中,我将升级过程复制到 RAM(设置适当的函数属性)并从 RAM 启动。


是否有如何从 RAM 运行代码的示例?


谢谢你。

回帖(1)

王君凯

2022-10-20 09:28:32
您好,
1、CH32V307可以配置从RAM启动运行,从RAM启动需要注意以下几点:
(1)需要配置BOOT为RAM启动(BOOT0接VCC,BOOT1接VCC)
(2)需要修改ld文件,使得编译器编译的代码位置为RAM,如下图1,修改了FLASH的起始地址
(3)需要修改启动文件,如下图2圈出位置
(4)此外,程序若要下载到RAM运行,需要进调试模式下载,勾选debug in RAM,且添加配置操作,如下图3
-c "wlink_set_address 0x08000000"

2、关于IAP升级,建议你直接将FLASH分成两块区域,一块给IAP使用,一块给APP使用,通过IAP程序接收APP程序固件进行升级。

附件为从RAM启动运行的例程,你可以参考一下。后续若有问题,可通过邮箱和我沟通(lzs@wch.cn)。
CH32V307 从RAM启动.zip

图1

图2

图3
举报

更多回帖

发帖
×
20
完善资料,
赚取积分