当前位置: 首页 > news >正文

Keil微库 vs 标准C库

关注+星标公众,不错过精彩内容

d04e777d4c7f0de0473de9355e0894de.gif

作者 | strongerHuang

微信公众号 | strongerHuang

初学者使用 Keil 学习单片机,用串口printf打印输出时,通常都会使能Keil工具自带的微库(MicroLib):

fa5a4507d331a28df204c4e229d92837.png

最近看到有读者在讨论Keil的MicroLib微库和标准C库的话题,今天就来给大家简单分享一下相关内容。

什么是MicroLib?

MicroLib是针对以C语言编写的基于ARM嵌入式应用程序的高度优化的库

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

cb55c8ecd6a076578d324d4c0181d1cf.png

上图是一个性能基准测试代码,通过上图可以发现,微库在不同内核下代码量明显少很多。

补充:

C语言标准库,我们经常都会调用,比如:<stdio.h>、 <stdlib.h>、 <string.h>、 <math.h>、 <error.h>、 <assert.h>等库文件。

在这些文件下还有很多各类库函数,比如:printf()、 malloc()、 memcpy()、 strncpy()等。

微库与标准C库区别

因为针对Arm的嵌入式系统,通常存储(代码)资源相对较小,为了使其能用上标准函数,工程师就针对Arm嵌入式系统,对标准C库进行了优化,以减小代码量。

优化标准库,肯定会带来一些差异,下面分享几点主要的差异:

1.代码(数据)量更小(对比上图)

2.缺少一些不常用标准库函数,比如:文件 I/O 的库函数。

3.微库最大程度优化代码量,可能会导致有些库代码运行速度更慢。

4.可用于RTOS这类系统中,但不支持在像Windosw这类系统中。

总结

微库函数也是一种函数,其很多库函数原型在网上都能找到,如果你有特殊需求,可以不用微库,在库函数原型的基础上进行修改。

比如:你的项目经过验证,发现微库的代码量,或者运行速度都不理想的情况下,可以自己修改原型函数。

当然,在万不得已的情况下才建议修改原型函数。通常还是建议直接使用微库,毕竟经过别人多次验证的库,出现bug的概率更小。

------------ END ------------

7254de1536870281452c93e78544fa97.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

74067747d062b16fb3a91e72338000a4.jpeg

5e7101633eb0666c63b84f2e00b840ed.png

点击“阅读原文”查看更多分享。

http://www.xdnf.cn/news/820027.html

相关文章:

  • 42丨深度学习:使用GAN生成手写数字样本
  • RubyOnRails终极部署
  • 开源.net框架的CMS
  • 网页设计零基础教程:快速掌握制作技巧
  • 黑莓手机刷linux,【教程】黑莓手机 BlackBerry DM6.0 完整刷机教程 含瘦身方法...
  • 看懂影片标题,各种电影视频格式标题的含义
  • 语音编程之Speech SDK概述(1)
  • PLSQL专项学习之SYS_CONTEXT
  • 【转】OrCAD 16.3安装和破解方法
  • 第五届管理科学与工程管理国际学术会议 2024 5th International Conference on Management Science and Engineering Manage
  • 电脑桌面图标变大了怎么恢复?5种简单方法帮你恢复正常
  • 不得不知的3个现货白银的基本规则!第3个很多人都忽略了
  • PKI/CA与数字证书学习笔记
  • c语言编程题经典100例
  • SmartUpload组件实现文件上传
  • 数据库是什么
  • 网页三剑客
  • 一步一步指导 车机的备份 掌迅92XX系列固件导出步骤
  • codejock中托盘的实现
  • 一步一步搭建11gR2 rac+dg之安装rac出现问题解决(六)
  • Android 初始化Setup Wizard——Provision
  • 软考 | 2012年上半年 软件设计师 下午试卷
  • 个人博客论坛系统测试报告
  • 高等数学基础篇(数二)之二重积分(解析版)
  • Zero Sum 和为零
  • 【AI】2114- 汇总 11 个 AI 领域的优质飞书知识库,完全免费,赶紧收藏起来!
  • 【高校主办!国际高级别组委加入!EIScopus检索】2024年经济决策与人工智能国际学术会议 (EDAI 2024)
  • 什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!
  • centos7下升级openssh9.6版本以上远程连接报ssh服务器不能连接错误
  • Windows运行命令大全