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.

[参考译文] CCS/TMS320C5535:CSL sysctrl.c导致验证失败?

Guru**** 2536020 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/569517/ccs-tms320c5535-csl-sysctrl-c-causes-verification-failure

部件号:TMS320C5535

工具/软件:Code Composer Studio

我最近获得了用于项目的EZDSP5535。 我目前正在与CSL合作,以熟悉该主板的功能,我遇到了一个有趣的问题。

每当我将CSL_sysctrl.c添加到我的项目时,我就无法再进行调试。 在构建时,我没有遇到任何问题,但当我进行调试时,我收到以下错误消息:

"c55xx:文件加载器:验证失败:地址0x0万处的值@数据不匹配请验证目标内存和内存映射。"

我尝试检查链接程序文件是否没有任何错误,但似乎看不到任何不正确的内容。 当我从内部版本中排除此c文件,但我需要此文件才能使用eZdsp的BSL时,问题已解决。

我正在Windows 10上运行CCS7

有什么建议?

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

    您好,

    您需要仔细检查链接程序命令文件。 地址0x0对应于MMR,因此无法在此处加载数据(请查看 设备数据表的6.2 2部分)。

    为帮助您解决这一问题,我建议您查看随ccsv7提供并安装在ccsv7/CCS_base/C5500/include下的文件c5535.cmd

    此外,下面的参考包含一些有关链接程序命令文件的建议。  

    http://processors.wiki.ti.com/index.php/Linker_Command_File_Primer 

    希望这能有所帮助,

    拉斐尔

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

    我目前使用的是稍微修改的c5535 cmd文件版本,它确实有MMR的位置。 但是,将我指向链接器确实可以帮助我找到问题。

    sysctrl.c使用switch语句,并需要链接器中的.switch部分。 C5535链接器没有.switch部分,使链接器将switch语句表放置在地址0处。

    将.switch部分添加到链接器是解决问题的方法。

    我遇到的另一个链接程序/CCL问题是,尽管链接程序和数据表都支持矢量部分的大小应为0x100的说法。 定义Vector表的vectors.asm文件恰好占用0x200个字。 我只是修改了链接器以允许更大的大小。 这是正确的方法吗?

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

    感谢您报告您的发现。

    >>定义“引导程序”表的vectors.asm文件恰好占用0x200个字。 我只是修改了链接器以允许更大的大小。 这是正确的方法吗?
    链接器是链接器命令文件的从属文件,因此您可以根据需要设置节的大小。 但是,主要问题是:您的设备上是否有物理内存来备份大小的增加? 如果是这样,则根本没有问题。

    至于为什么矢量占据了预期空间的两倍,我不能很好地解释。 也许文档错误地引用了16位字而不是8位字节的大小? 我不确定,但C5500设备论坛中的专家可能会更清楚。

    希望这能有所帮助,
    拉斐尔