我们通过bootloader来实现OTA的时候, 升级的版本文件需要放在外部flash,后面会copy到内部flash。按照《PSoC 6 MCU Device Firmware Update Software Development Kit Guide 》文档,我们生成了cyacd2 文件。我们有两个问题:
1,是不是把这个文件存到外部flash,然后copy到内部flash,通过bootloader跳转到起始地址就可以了?
2,我们生成的cyacd2 文件很大,2M左右,能不能生成只包含code段的二进制文件?
已解决! 转到解答。
可以参考采取类似方式的参考代码 - ce220959-psoc-6-mcu-ble-bootloader-external-memory.
OTA过程中通过SMIF先将app1存储到外部flash,之后再拷贝至内部flash。
降低cyacd2文件大小,或许可以通过更换编译工具,以及选择release而不是debug模式生成烧录文件。
可以参考采取类似方式的参考代码 - ce220959-psoc-6-mcu-ble-bootloader-external-memory.
OTA过程中通过SMIF先将app1存储到外部flash,之后再拷贝至内部flash。
降低cyacd2文件大小,或许可以通过更换编译工具,以及选择release而不是debug模式生成烧录文件。
release模式下生成的烧录模式比debug下小多少呢?我改成release模式后,编译的一些属性要重新设置(头文件之类的)?
release模式下会对code进行优化,但没有确切的数字指示生成的文件小多少。
“编译的一些属性要重新设置(头文件之类的)”,能否具体描述下?是报错还是其他提示?
在debug模式,编译时我们添加了头文件的路径;切换到release模式后,这些头文件要重新添加
这些头文件是加在什么地方的?如果是自定义的文件中加入头文件,一般是不会受编译模式影响的。
方便的话,附上你的工程看一下。
請教一下如何切换到release模式生成cyacd2文件呢?
我也遇到相似的問題,非常感謝
你需要用post build script。用cymcuelftool这个tool。