[求助]编译生成文件过大,如何优化?

2020-02-20 20:27发布

各位好

K60的工程转K64工程,工程编译报错:region `rom' overflowed by 4944 bytes。

K60板子,调试接口:OSBDM/OSJTAG,下载程序:.afx文件。
K64板子,调试接口:OpenSDA,          下载程序:.elf文件。

经验证,相同的工程:
Codewarrior10.5 编译后生成文件是.afx文件,文件大小较小。
Codewarrior10.6 编译后生成文件是.elf文件,文件大小较大。
两种文件大小相差较大,修改user_config.h效果不佳。

想问一下:
1. afx和elf分别是什么格式文件?
2. K64板子,OpenSDA接口能不能下载.afx文件?如果可以,CW10.6怎么能生成.afx文件?

请各位大神指点。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
ly830102624
1楼-- · 2020-02-21 19:08
 精彩回答 2  元偷偷看……
ly830102624
2楼-- · 2020-02-21 23:35
mfketggo111 发表于 2014-12-10 15:01
1)首先从你的代码部分优化,有些重复的函数是否能合并,是否可以把一些常数设置为const类型
2)修改编译器 ...

代码优化,这一块的确需要继续努力,我对自己编写的代码有而不是很满意,回头会去优化优化。

修改编译器优化等级,因为我对CW使用还不熟练,网上CW10.x以上版本的使用教程很少,没有很详细。请问你有没有相关文档?

关于.afx和.elf文件都可以down进芯片执行,且文件大小差异很大。所以我现在想把工程编译生成.afx文件,但是不知道如何实现?你觉得我这样的想法可行吗?
fengyunyu
3楼-- · 2020-02-22 02:46
ly830102624 发表于 2014-12-10 15:16
代码优化,这一块的确需要继续努力,我对自己编写的代码有而不是很满意,回头会去优化优化。

修改编译器 ...

是文件本身大小有差异,还是rom占用有差异?这两个文件和bin文件不同,都含有调试信息。
fengyunyu
4楼-- · 2020-02-22 08:31
ly830102624 发表于 2014-12-10 15:09
谢谢你的指点,CW10.6中setting菜单如附件所示:
我还不太清楚如何设置。
你有没有关于CW中setting这块的 ...

你看下optimization下有没有?
ly830102624
5楼-- · 2020-02-22 12:58
本帖最后由 ly830102624 于 2014-12-10 15:58 编辑
fengyunyu 发表于 2014-12-10 15:30
是文件本身大小有差异,还是rom占用有差异?这两个文件和bin文件不同,都含有调试信息。 ...


是文件本身大小有差异。如附件是同一工程生成的afx文件和elf文件:
至于rom占用,没有看过。我该如何查看?
ly830102624
6楼-- · 2020-02-22 16:05
 精彩回答 2  元偷偷看……

一周热门 更多>