使用Clion开发stm32或其他单片机时,更换标准库节省空间

本文探讨了在开发过程中如何选择合适的库,如keil中的microlib和clion中的精简C库,以减少printf重定向后Flash占用。通过启用微库或修改makifile,避免了不必要的资源浪费,尤其对于资源受限的单片机项目。
摘要由CSDN通过智能技术生成

在开发中我一直遇到一个百思不得其解的问题:

为什么在keil中要选择启用microlib,为什么我在用clion开发时,一旦引入了标准库在对printf进行重定向之后,flash占用几乎爆满?

后来在向大佬请教之后理解了这个问题:

原来我们在开发的时候,引入的stdio就是c语言的标准输入输出库,这个库功能齐全且占用巨大,但我们发现其中很多内容其实是给更高级的计算机使用的,我们单片机根本用不到,然而如果使用了这个库,这些含有大量冗余内容的库会参与我们的编译,最后生成的文件会占用很多空间

所以我们在keil进行开发,重定向printf实现串口输出时,要在设置中勾选启用microlib,因为microlib便是一个标准库的精简库,这样能把更多flash留给我们的程序

而在clion中我们没有这个选项,况且clion使用GCC编译并没有使用到keil所用的库,那么怎么解决呢?

我们可以在makifile中修改参与编译的c语言标准库,只需要加入这一条:

add_link_options(-specs=nano.specs)

便可以使用精简版的C库替代标准C库,从而大幅节省我们珍贵的flash空间,适用于使用makifile编译开发的一切单片机工程(不过像esp32那种动辄几mb的flash是不是加不加也就无所谓了?)

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值