想实现CH32V307的IAP升级固件功能,发现直接从内部Flash某个区读出数据再写入内部Flash的起始为0的地址不成功,是写不成功。不知道是否有示例代码可供参考?
你好,IAP升级一般都是将IAP区放0地址,APP放flash后面,通过IAP升级APP,这样也能避免升级变砖的风险。所以如果你直接对0地址以及之后的flash进行擦除编程,会将你本身的应用程序给擦掉。另外读写flash建议使用256字节的快速编程,快速编程函数可以参考CH32V307EVT的flash例程,普通编程和快速编程的参数如下图所示:
我的邮箱是wangyy@wch.cn,可以将你的邮箱发给我,前期我可以先提供一个我们103芯片的IAP升级例程,可以先参考一下。V307的IAPdemo后续会更新发布。
你好?
V307的IAP的示例demo有吗,我这需要通过网口UDP升级,谢谢!
你好?
例程上用的最大app是32K,用到地址0x0002 0000,32K可以加大吗,我看手册上code flash是从0x800 0000开始的480KB呢
您好,可以的,例程只是参考,可以根据自己需求进行修改。
想问一下,IAP程序中占用的RAM空间会影响APP程序中的RAM空间吗?
您好,正常不会的,下载APP后上电后会检测对应标志判断直接跳转到APP程序运行,不会再运行一遍IAP的这个过程