MRS 烧录擦除问题

ch32v203c8t6, ROM大小64K,已经在link.ld文件中,设置了LENGTH = 60K。最后4k准备用作保存一些参数。发现每次用MRS烧录时,最后的4K区域总是会被擦除掉。已经在配置里将【Erase All】取消掉了,但还是已经会把最后4K擦除掉,怎么解决啊

有大佬解答么。。


你好,可以将你工程发给我测试一下zdg@wch.cn


理论来看取消“Erase all”全擦,使用的就是部分擦除,会根据你的实际下载bin文件大小擦除对应的flash数据。你取消erase all不成功,建议可以查看下bin文件大小,bin文件不能超过60K。另外可能你的MRS版本是老版本,没支持部分擦除的这个功能,建议可以更新最新MRS版本测试下。另外可以导出Link的上位机工具,通过上位机工具测试下,取消“erase all”再下载,同理建议使用最新的工具版本。

image.png


问题依旧存在,我做了以下测试:

step1:  测试代码里,在地址0x800F000处写入数据0x12345678,观察memory窗口看到数据确实已经写入进去了

image.png


step2:  将写入数据相关的代码注释掉之后,重新编译烧录,并观察memory窗口,发现之前写入的数据已经被擦掉了。

image.png


您好,我这边测试是没问题的,如下图,你可以直接使用WCH-LinkUtility工具直接读FLASH内容看一下,参考下图,看一看该地址的值是否是写入的值。WCH-LinkUtility工具下载链接如下。后续若有问题,可邮箱(lzs@wch.cn)沟通

https://www.wch.cn/downloads/WCH-LinkUserManual_PDF.html 

image.png


您好,还需要注意,调试默认是全擦的,可以按照下图修改为非全擦,添加-c page_erase

image.png


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