标题: CX32L003不能chip擦除,如何把擦除指令放在RAM中执行? [打印本页]

作者: 明日之星8    时间: 2024-3-10 20:15
标题: CX32L003不能chip擦除,如何把擦除指令放在RAM中执行?
最近在玩CX32L003,手头没有官方的link,用的是通用的DAPlink。
它的IO口有限,想把SWD口改成普通IO口,但是很遗憾,关闭了
SWD口之后就不能更新它的程序了(除了官方的link)。
原先的想法是,可以通过UART口发送特殊指令执行chip擦除操作,
这样就可以再次打开SWD调试口,就又可以刷程序进去了,在其它
单片机上这一操作很容易实现,但这个CX32怎么都不能整片擦除,
最后打开FLASH中断,发现是“擦写PC地址”错误,然后在它的参考
手册上发现下面一段:



仔细想一想,擦除的指令就在FLASH上,很显然它是不能自己擦除
自己的,控制器自动屏蔽也是合理的,现在就想着怎么样把擦除指
令放在RAM中再执行,哪位高手能指点一下吗?



作者: hange_v    时间: 2024-3-11 08:38
做个BOOT和APP,APP链接地址为RAM,通过串口把APP发给BOOT,BOOT把APP拷贝到RAM并运行,APP擦除FLASH
作者: Hephaestus    时间: 2024-3-11 13:30
放bootloader的做法,把app单独做一个工程放在RAM地址上,然后bootloader把app的二进制拷贝到RAM中,跳转执行。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1