This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320F2812:Code Composer V7编译器问题

Guru**** 2193080 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/623950/compiler-tms320f2812-code-composer-v7-compilers-issue

部件号:TMS320F2812

工具/软件:TI C/C++编译器

我有一个使用V5 CCS创建并与TI 6.4 v.0编译器一致的旧项目。 最近我下载了V7 CCS,问题已经开始... 首先,该项目根本不会使用TI.A.7.33进行编译16.9。 一旦我发现了所有的问题,代码就没有错误,但当我在调试模式下运行时,程序在尝试将内容加载到RAM内存时崩溃。它被memcpy函数卡住了。 我下载了TI v v 6.4 0编译器,并将其与v7 CCS一起使用,但问题是调试功能非常有限(这只是在我的情况下还是在一般情况下?)。

我有另一台计算机,我之前下载了v7 CCS与TI 16.9 Tm3编译器,一切正常,正如它所设想的那样。 我比较了两台计算机之间的设置 ,所有设置看起来都一样。

我正在使用XDS510LC USB JTAG调试器。

是否有人遇到类似问题? 我们非常感谢您的帮助。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请提供一些其他详细信息:

    1)当您说在使用编译器版本6.4 时调试功能受到限制时,您的确切含义是什么? 哪些功能不起作用? 在项目中设置了什么调试选项,它是完全符号调试(-g)吗?

    2) 

    我有另一台计算机,我之前下载了v7 CCS和TI 16.9 3编译器,一切正常,正如它所设想的那样。 我比较了两台计算机之间的设置 ,所有设置看起来都一样。[/QUOT]

    这是否与在另一台计算机上构建和运行时无法正常工作的项目完全相同? 作为快速测试,您还可以获取在此工作计算机上创建的.out可执行文件,并将其手动加载到另一台计算机上的调试器中(请参见此 链接中的“如何执行此操作”),并查看其是否有效。 这有助于进一步隔离问题。

    仔细查看两台计算机上的构建日志,查看构建选项是否存在任何差异,也可能会有所帮助。 您可以保存 两个版本的构建日志,然后比较它们。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,AartiG:

    我实际上卸载了所有内容,删除了所有文件,然后下载并重新安装,它可以正常工作,但我遇到了另一个问题... 项目有多个配置/目标,其中很少返回错误:

    错误#1.0099万-D:程序不适合可用内存。对"secureRamFuncs"大小0x156a页0进行定位/阻止运行失败。 可用内存范围:

    RAM_L0大小:0x1500未使用:0x1500最大孔:0x1500

    错误#1.001万:链接时遇到错误;"pt.out未生成

    我运行CCS v7的两台计算机上都发生了这种情况。 据我所知,所有的配置都是使用CCSv5编译的,没有问题,现在只有很少的工作。 我尝试使用优化设置,但没有任何区别。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如消息中所示,在这种情况下,“secureRamFuncs”部分的大小为0x156a,而分配它的可用内存区域的大小为0x1500,因此不适合。 与CCSv5一起使用的较旧的编译器可能会生成较小的段大小,因此适合可用内存。 在不同的编译器版本之间,代码大小的这种变化可能发生,也确实发生。  

     此处提供了有关此错误的一些一般详细信息

    要解决此问题,您可以尝试以下解决方案之一:
    通过修改链接程序命令文件中的sections说明符,将secureRamFuncs部分分配给更大的内存范围(如果有)
    -增加链接程序命令文件的内存说明符中RAM_L0的长度(如果可以通过将其与其连续的内存区域组合使用)
    -通过查看项目代码并调整分配给该部分的内容来减小该部分的大小

    包含有关链接程序命令文件的一些详细信息。 此外 如果您需要深入了解链接程序命令文件语法,请参阅C28x汇编语言工具用户指南。

    希望这能有所帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢重播。 另一个我发现它有效的解决方案是,我在"属性"中更改了优化级别。 奇怪的是,我从3级(过程间优化_)到2级(全局优化),现在代码完全符合要求,我会说这应该是另一种方式...