LAOXU 发表于 2024-12-5 04:33:22

大家碰到过吗? Keil C51 的怪现象



下图左边是 Keil C51 V9.6版本, 左边是 Keil C51 V8.09版本,
同一个项目, 同样的编译优先级, 编译后的代码长度不回.
明显 Keil C51 V8.09 (低版本) 胜出. {:shengli:}



soma 发表于 2024-12-5 06:28:19

这个要看产生的汇编指令吧。

小飞侠 发表于 2024-12-5 07:18:15

不同版本的编译器,生成的目标代码不同很正常,要是一样的话那就不叫升级了,有可能新版本重点优化的运行速度,低版本重点优化代码大小

LAOXU 发表于 2024-12-5 08:03:17

小飞侠 发表于 2024-12-5 07:18
不同版本的编译器,生成的目标代码不同很正常,要是一样的话那就不叫升级了,有可能新版本重点优化的运行速 ...

都是 9级优级, 代码长度优先

LAOXU 发表于 2024-12-5 08:07:29

问题是, Flash 为 16k, 用老版本, 能正常编译使用.

用新版本, ROM编译长度超差(大于 16K), 已不能正常写入芯片使用了. :liulei:

_奶咖君_ 发表于 2024-12-5 08:49:34

个人感觉要是低版本的编译出来的工程你这里的用的没事,,而且也不需要升级版本带来的功能变化,或者BUG的修复。那你就继续用低版本呗。我们自己工作用的东西,不出现严重bug的情况下,什么都不升级。。:xiaoku:

DebugLab 发表于 2024-12-5 09:10:56

遇到过,当时用15W100,低版本编译器,正好一个字节不多一个字节不少,换新版编译器多了一个字节,下载进去不工作

_奶咖君_ 发表于 2024-12-5 10:02:01

DebugLab 发表于 2024-12-5 09:10
遇到过,当时用15W100,低版本编译器,正好一个字节不多一个字节不少,换新版编译器多了一个字节,下载进去 ...

总感觉如果用到这种程度的话,,,还有重新编译的需求么。。。(捂脸笑哭)

奇怪了这个回复里面不能打表情。,

VCC 发表于 2024-12-5 10:32:16

楼主如果没试过REMOVEUNUSED大法,可以用起来

Yim_Hom 发表于 2024-12-5 11:27:52

keil内部的升级和改变是咱们不知道的,但是实际应用可以根据升级的readme来做一些调整。如果影响不大可以不理,如果影响大,那就针对代码做一些优化。
不用过于纠结。
页: [1] 2
查看完整版本: 大家碰到过吗? Keil C51 的怪现象