谷动谷力

标题: 代码优化 USE MICROLIB [打印本页]

作者: sunsili    时间: 2024-4-2 21:33
标题: 代码优化 USE MICROLIB
代码优化 USE MICROLIB


1.Microlib与标准库的差异
不勾选情况下,keil使用的是 ISO C 库标准。勾选情况下,使用keil的精简microlib。
Microlib 与ISO C library 区别如下:
l Microlib不符合ISO C library,部分ISO C library特性未实现。
l Microlib不符合IEEE 754 的二进制浮点运算标准。
l Microlib会对代码进行高度优化,以获得更小的代码量
l 选用microlib,main()函数不允许带有形参,同时main函数不准又返回值。
l Microlib 提供有限的C99函数。
l Microlib不支持C++环境
l Microlib不支持操作系统功能
l Microlib不支持位置独立的代码段。
l Microlib 不提供互斥锁来保护线程不安全的代码
l Microlib 不支持宽字符或多字节字符串
l Microlib不支持位对齐内存函数,如_membitcpy() 和 membitmove().
l 其它区别,可以参见keil帮助中的2.2 Differences between microlib and the default C library


2. 实测Microlib对程序的影响
在一些情况下,我们会勾选USE Microlib,使代码量减小。
在实际操作中,勾选use microlib 会缩减代码量,同时ram的空间占用也会小。但是在缩减代码的时候,会影响某些函数的运行时序,和逻辑顺序,会出现异常。
案例:滑板车控制器,为了节省ram的空间,本人勾选了microlib,ram的空间占用确是缩减下来,但是在后面的测试过程中,在负电流刹车的时候,出现明显的震动,其它功能都运行正常,取消勾选use microlib后,负电流刹车也恢复正常。








欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2