KEIL工具之编译优化选项

来源:互联网 发布:hp m1216nfh 网络驱动 编辑:程序博客网 时间:2024/05/29 19:57


KEIL工具之编译优化选项


use cross-module optimization//跨模块优化

说明:使能链接器反馈文件,从而能够更深层次的代码优化

use microLIB//微型库

说明:改变C run-rime库设置以产生更小巧的代码,它不完全兼容ANSI,但已能满足大多数的应用。


==========================================

use cross-module optimization//跨模块优化
这个选项我勾选了,一下子代码生成量小了50%~60%,厉害。就是不知道有没有副作用啊,比如运行/调试不稳定之类的?我用的是JLINK V8调试仿真器。

至于microLIB,谷歌了一下,发现以下解释:

microlib是缺省C库的备选库,功能较少,不具备某些ISO C特性,只适用于需要极少量内存的、不在操作系统运行的深层嵌入式应用程序。microLIB不能将main声明为使用函数,不能返回内容。不支持stdio,不提供互斥锁来防止非线程安全的代码。


真是令人吐血啊!岂不是为了一个区区的printf函数,而舍弃了我现在要用的UCOS操作系统?而且居然不支持stdio?岂不是N多通用函数不能用?

不知道我的理解对不对,如果真的是这样,请问高手有没有什么办法在不勾选microlib的情况下而使用printf函数呢?


自己搞定了。定义以下结构体以及函数:
struct __FILE {int handle;/* Add whatever you need here */} __stdout, __stdin;

int fputc(int ch, struct __FILE *f);
这样就能在不使用MicroLIB的情况下使printf函数能用于调试及烧写


==========================================================

0 0
原创粉丝点击