打印
[STM32F1]

STM32 KEIL 编译器

[复制链接]
1529|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用keil编译,怎么结果编译出的HEX文件,每次不同~  
Program Size: Code=35002 RO-data=2754 RW-data=176 ZI-data=16152  
Program Size: Code=34990 RO-data=2754 RW-data=176 ZI-data=16152  
结果运行也不同,一个正常,一个有点小问题~  
我**插,查查查,查了好久,一会好一会坏,结果看到编译器竟然这样,各位大侠,指点迷津~~
现在怕怕的,不知道以后还会出什么问题。v

沙发
dudongdao|  楼主 | 2014-2-10 20:00 | 只看该作者
用的是rebuild all target files

使用特权

评论回复
板凳
airwill| | 2014-2-10 22:04 | 只看该作者
如果相同的设置, 编译结果应该不会有差别.
不知道更改了什么编译设置?

使用特权

评论回复
地板
dudongdao|  楼主 | 2014-2-10 23:24 | 只看该作者
我发誓,什么都没改。   

使用特权

评论回复
5
dudongdao|  楼主 | 2014-2-10 23:25 | 只看该作者
就是连续编译两次

使用特权

评论回复
6
fhliujie| | 2014-2-11 08:22 | 只看该作者
从来没有遇见过这种问题

使用特权

评论回复
7
dudongdao|  楼主 | 2014-2-11 10:00 | 只看该作者
可能找到问题了,是一个优化设置闹的。如果要程序优化,就要对下面的选项进行设置

我是想让程序运行最快,根据官方的推荐:

选择这三个选项,其中有一个选项要注意:
Cross-Module Optimization
Cross-Module Optimization takes information from a prior build and uses it to place UNUSED functions into their own ELF section in the corresponding object file. This option is also known as Linker Feedback, and requires you to build your application twice to take advantage of it for reduced code size.  
Cross-Module Optimization has been shown to reduce code size, by removing unused functions from your application. It can also improve the performance of your application, by allowing modules to share inline code.
这里提到要编译两次才能使用这个优化设置。
我不选择这个优化,生成HEX是固定的,但是大了好多。

使用特权

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

本版积分规则

90

主题

413

帖子

1

粉丝