打印
[开发工具]

为什么CubeMX生成的keil工程都选中了MicroLIB呢?

[复制链接]
1308|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
选择了MicroLIB,有些代码的执行不是变得更慢吗?
ST是出于什么考虑把这个选项默认选上呢?

如附件显示。

沙发
zhuotuzi| | 2017-12-4 20:07 | 只看该作者
这就是人家的喜好了,没啥特别原因。

使用特权

评论回复
板凳
mmuuss586| | 2017-12-4 20:07 | 只看该作者
你也不选啊;
microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,例如,memcpy()。
与缺省 C 库之间的差异
microlib 与缺省 C 库之间的主要差异是:
microlib 不符合 ISO C 库标准。 不支持某些 ISO 特性,并且其他特性具有的功能也较少。
microlib 不符合 IEEE 754 二进制浮点算法标准。
microlib 进行了高度优化以使代码变得很小。
无法对区域设置进行配置。 缺省 C 区域设置是唯一可用的区域设置。
不能将 main() 声明为使用参数,并且不能返回内容。
不支持 stdio,但未缓冲的 stdin、stdout 和 stderr 除外。
microlib 对 C99 函数提供有限的支持。
microlib 不支持操作系统函数。
microlib 不支持与位置无关的代码。
microlib 不提供互斥锁来防止非线程安全的代码。
microlib 不支持宽字符或多字节字符串。
与 stdlib 不同,microlib 不支持可选择的单或双区内存模型。 microlib 只提供双区内存模型,即单独的堆栈和堆区。
可以合理地将 microlib 与 --fpmode=std 或 --fpmode=fast 配合使用。
microlib 中的函数负责:
创建一个可在其中执行 C 程序的环境。 这包括:
创建一个堆栈
创建一个堆(如果需要)
初始化程序所用的库的部分组成内容。
调用 main() 以开始执行程序。
要使用 microlib 构建程序,必须使用命令行选项 ??library_type=microlib。 根据需要,编译器、汇编程序或链接器可使用此选项处理不同的文件。 将此选项与链接器配合使用时,将覆盖所有其他选项。

使用特权

评论回复
地板
gujiamao12345| | 2017-12-4 20:20 | 只看该作者
可能小

使用特权

评论回复
5
jimmhu| | 2017-12-4 22:21 | 只看该作者
为了串口输出吧。

使用特权

评论回复
6
jimmhu| | 2017-12-4 22:26 | 只看该作者
microlib 是缺省 C 库的备选库。

使用特权

评论回复
7
husoffer| | 2017-12-5 08:39 | 只看该作者
mmuuss586 发表于 2017-12-4 20:07
你也不选啊;
microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使 ...

感谢解惑

使用特权

评论回复
8
qqatscau| | 2017-12-5 09:58 | 只看该作者
MARK

使用特权

评论回复
9
Atom2004|  楼主 | 2017-12-6 19:29 | 只看该作者
mmuuss586 发表于 2017-12-4 20:07
你也不选啊;
microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使 ...

嗯嗯,主要是为了空间变小一点吧。但貌似某些操作上,运行速度会慢一点的。

对于一些容量比较大的MCU,其实我觉得用空间来换运行时间,不是更好吗?

使用特权

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

本版积分规则

28

主题

85

帖子

0

粉丝