打印
[其他]

资源受限MCU Flash空间占用优化

[复制链接]
2022|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2023-11-13 09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
资源受限MCU Flash空间占用优化步骤:

避免重复功能,排查软件工程中,重复功能的代码片段,抽象出来,重新进行封装;
减少内联函数inline,内联函数过大且过多的调用无疑会增加代码量,占用过多的flash,如果代码运行速度要求不高类似这样的内联函数,尽量改成函数调用;
开启最高优化,优化时应倾向于速度和代码量的平衡,不能一味地缩小代码量,因为这很可能会出现意想不到的问题,特殊源文件也可开局部优化功能;
减少运行库调用,编译器自带的运行库一般都过大而复杂,例如常用的printf调试打印,将会占用大量flash空间,因此设计代码时,应通过宏配置可禁掉类似printf的调试代码或直接通过UART发送字符功能打印调试信息;
自行实现标准库函数,简单的库功能如:memcpy、memset等功能自行实现也会减少标准库调用而导致占用过多的flash空间;
使用MCU本身的硬件特性,如果支持,尽量使用MCU的硬件乘法器或者浮点运算单元,这样会比直接进行乘法或者浮点运算运行减少很多代码量;
定义恰当的变量类型:C编译器支持变量的类有char、int、long等,定义恰当的变量类型,可以有效的减少代码和数据的长度,同时也能提高运行效率。
————————————————
版权声明:本文为CSDN博主「wangYH.air」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40297883/article/details/133872625

使用特权

评论回复
沙发
yangxiaor520| | 2023-11-14 07:47 | 只看该作者
代码优化,减少不必要的存储空间占用。

使用特权

评论回复
板凳
tpgf|  楼主 | 2023-12-5 12:50 | 只看该作者
给大家分享的这个方法应该适用于所有单片机

使用特权

评论回复
地板
nawu| | 2023-12-5 15:13 | 只看该作者
如果开启最高优化 很多结果就不可测了

使用特权

评论回复
5
tfqi| | 2023-12-5 15:54 | 只看该作者
无关紧要的调试用的代码完全可以去掉了

使用特权

评论回复
6
gwsan| | 2023-12-6 09:07 | 只看该作者
是调用库函数节省空间还是自己写的函数节省空间呢

使用特权

评论回复
7
aoyi| | 2023-12-6 10:00 | 只看该作者
这个问题在选型的时候就应该考虑到

使用特权

评论回复
8
zljiu| | 2023-12-6 11:01 | 只看该作者
请问一下什么叫做内联函数的  它的作用是什么呢

使用特权

评论回复
9
caigang13| | 2023-12-6 11:13 | 只看该作者
所以软件架构设计很重要。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1923

主题

15596

帖子

11

粉丝