在keil (我用的是realview mdk3.11)树立ARM的工程时
其间有一项是选 use MicroLIB
因为对KEIL不是很熟悉,于是就查了查,得到了以下信息:
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。根据需求,编译器、汇编程序或链接器可运用此选项处理不同的文件。 将此选项与链接器合作运用时,将掩盖一切其他选项。