ch32 编译选项

我想用CH32V203G6U6弄个bootloader。由于这颗料flash只有32k,所以想最大程度压缩boot程序flash使用量,在编译器选项中用了 optimize size ,还是不能满足要求,于是试了一下编译器的其它选项,当把 link-time optimizer 选中后,编译后的flash大小相比以前就下降了16%,但是把程序下载到单片机后,程序无法正常运行(源码没有改变,在未选 link-time optimizer时是能正常运行的),请帮忙看一下,还能用什么方法来压缩flash使用量,谢谢! 

image.png

您好,减少代码尺寸可从以下几方面入手:

1、可启用(-msave-restore)优化;

image.png

2、使用wch提供的打印库,或在最后版本的工程中去掉所有打印调试;

image.png

3、如果是V4的内核,可以在前面的基础上使用我们自定义扩展压缩指令;

image.png

4、除了以上可以较明显的改变代码外,多使用结构体指针,减少传入参数的个数等也可以带来一定的尺寸上的优化。

ps:

–flto选项

开启后,将在编译的中间二进制文件中保存额外信息,使得连接时进行更全面的优化。但是开启此选项后有可能会优化过度引起一些未知的错误。



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