TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS V3.3.83.20 编译问题

以前一直使用CCS V3.3.81.6来编译TMS320F2808的代码,一切都很正常。

前些时间因为新项目要使用TMS320F2803x,所以更新到了CCS V3.3.83.20。最近由于TMS320F2808的代码有了些变更,使用这个V3.3.83.20版本编译后机器运行不正常,但是相同的project(什么都不变),直接使用CCS V3.3.81.6编译后机器运行完全正常。

对比map文件(见附件),发现v3.3.83.20比v3.3.81.6似乎优化更好一些,flash ram占用都少一些,但是为什么确有问题呢?

编译器选项里面选择了“全符号调试”和函数级优化-o2.

10#:

两个建议:

1、在build option里使能生成listing文件,在debug文件夹下可以找到两种不同情况下生成的文件,然后进行汇编对比,看看问题出在哪里。

2、在CCS的help菜单about选项下,可以看到code generation tools的版本号,由你描述的问题来看,这两个不同CCS版本默认自带的编译器版本应该是不同的,只要将它们改成一样,理论上应该就可以了。具体方法是点击打开后面的component manager,进去后在build tools下找到编译器勾选,保存退出后重启CCS.

如果使用v4或v5,则不需要进行这一步,因为不同的工程项目可以分别设置选用哪个编译器进行编译。

以前一直使用CCS V3.3.81.6来编译TMS320F2808的代码,一切都很正常。

前些时间因为新项目要使用TMS320F2803x,所以更新到了CCS V3.3.83.20。最近由于TMS320F2808的代码有了些变更,使用这个V3.3.83.20版本编译后机器运行不正常,但是相同的project(什么都不变),直接使用CCS V3.3.81.6编译后机器运行完全正常。

对比map文件(见附件),发现v3.3.83.20比v3.3.81.6似乎优化更好一些,flash ram占用都少一些,但是为什么确有问题呢?

编译器选项里面选择了“全符号调试”和函数级优化-o2.

jun Zhang4:

回复 10#:

开始以为是没有勾选 Unified Memory Model 选项导致的,发现也不是这个原因。

以前一直使用CCS V3.3.81.6来编译TMS320F2808的代码,一切都很正常。

前些时间因为新项目要使用TMS320F2803x,所以更新到了CCS V3.3.83.20。最近由于TMS320F2808的代码有了些变更,使用这个V3.3.83.20版本编译后机器运行不正常,但是相同的project(什么都不变),直接使用CCS V3.3.81.6编译后机器运行完全正常。

对比map文件(见附件),发现v3.3.83.20比v3.3.81.6似乎优化更好一些,flash ram占用都少一些,但是为什么确有问题呢?

编译器选项里面选择了“全符号调试”和函数级优化-o2.

10#:

回复 jun Zhang4:

同学,我上面回复得那么清楚,是你没仔细看呢,还是我写得有问题?

简单来说,跟CCS一点关系没有,只是编译器(code generation tools)版本不同导致的,具体原因你可以看编译器的release note看看编译器到底有什么不同,直接到你的程序,就是生成listing file进行比较。

以前一直使用CCS V3.3.81.6来编译TMS320F2808的代码,一切都很正常。

前些时间因为新项目要使用TMS320F2803x,所以更新到了CCS V3.3.83.20。最近由于TMS320F2808的代码有了些变更,使用这个V3.3.83.20版本编译后机器运行不正常,但是相同的project(什么都不变),直接使用CCS V3.3.81.6编译后机器运行完全正常。

对比map文件(见附件),发现v3.3.83.20比v3.3.81.6似乎优化更好一些,flash ram占用都少一些,但是为什么确有问题呢?

编译器选项里面选择了“全符号调试”和函数级优化-o2.

10#:

回复 jun Zhang4:

所以可以确定是编译器导致的问题,更换回原来的应该可以解决。

问题是,如果你确实需要了解为什么或差别在哪,两个建议:

1、你个人对比一下两个不同编译器的不同,下载时的release note会有详细说明,你可以将它里面的东西与你的程序对应起来;

2、将你的程序简化至能复现问题,打包发出来拿去给TI的编译器开发人员分析一下。

赞(0)
未经允许不得转载:TI中文支持网 » CCS V3.3.83.20 编译问题
分享到: 更多 (0)