代码优化 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后,负电流刹车也恢复正常。
|