电子产业一站式赋能平台

PCB联盟网

搜索
查看: 127|回复: 0
收起左侧

Keil工具【微库】和【标准库】的一点区别

[复制链接]

471

主题

471

帖子

5135

积分

四级会员

Rank: 4

积分
5135
发表于 2024-8-25 11:45:00 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容
作者 | strongerHuang
微信公众号 | strongerHuang

我们在学习或者用单片机做开发的时候,输出信息以及打印调试基本都会有用的 printf 函数,那么,这个时候基本都会用到【微库】。
如果使用 Keil 软件,就会勾选配置中的微库(MicroLib),如下图:

cqxvzmsiar264015548011.png

cqxvzmsiar264015548011.png

同样,在IAR、 e2 studio等开发单片机的集成开发环境中,也有类似的配置选项。
那么,今天就来简单展开说下MicroLib微库和标准C库的相关内容。
什么是MicroLib?
MicroLib是针对以C语言编写的基于ARM嵌入式应用程序的高度优化的库

与ARM Compiler工具链附带的标准C库相比,MicroLib具有明显的代码大小优势。

k3yqscfeyac64015548111.png

k3yqscfeyac64015548111.png

上图是一个性能基准测试代码,通过上图可以发现,微库在不同内核下代码量明显少很多。
补充:C语言标准库,我们经常都会调用,比如:、 、 、 、 、 等库文件。
在这些文件下还有很多各类库函数,比如:printf()、 malloc()、 memcpy()、 strncpy()等。
微库与标准C库区别
因为针对Arm的嵌入式系统,通常存储(代码)资源相对较小,为了使其能用上标准函数,工程师就针对Arm嵌入式系统,对标准C库进行了优化,以减小代码量。
优化标准库,肯定会带来一些差异,下面分享几点主要的差异:1.代码(数据)量更小(对比上图)2.缺少一些不常用标准库函数,比如:文件 I/O 的库函数。3.微库最大程度优化代码量,可能会导致有些库代码运行速度更慢。4.可用于RTOS这类系统中,但不支持在像Windosw这类系统中。
总结
微库函数也是一种函数,其很多库函数原型在网上都能找到,如果你有特殊需求,可以不用微库,在库函数原型的基础上进行修改。
比如:你的项目经过验证,发现微库的代码量,或者运行速度都不理想的情况下,可以自己修改原型函数。
当然,在万不得已的情况下才建议修改原型函数。通常还是建议直接使用微库,毕竟经过别人多次验证的库,出现bug的概率更小。------------ END ------------

smznx0vseik64015548211.gif

smznx0vseik64015548211.gif


●专栏《嵌入式工具
●专栏《嵌入式开发》
●专栏《Keil教程》
●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表