[STM32F1] STM32 KEIL 编译器

[复制链接]
1927|6
 楼主| dudongdao 发表于 2014-2-10 19:59 | 显示全部楼层 |阅读模式
用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 | 显示全部楼层
我发誓,什么都没改。   
 楼主| dudongdao 发表于 2014-2-10 23:25 | 显示全部楼层
就是连续编译两次
fhliujie 发表于 2014-2-11 08:22 | 显示全部楼层
从来没有遇见过这种问题
 楼主| dudongdao 发表于 2014-2-11 10:00 | 显示全部楼层
可能找到问题了,是一个优化设置闹的。如果要程序优化,就要对下面的选项进行设置
QQ图片20140211091930.jpg
我是想让程序运行最快,根据官方的推荐:
QQ图片20140211095536.jpg
选择这三个选项,其中有一个选项要注意:
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

粉丝
快速回复 在线客服 返回列表 返回顶部