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/TMS320F2808:"没有0x0&quot 可用的源;尝试刷写 hex 文件时出错

Guru**** 2618455 points

Other Parts Discussed in Thread: TMS320F2808, UNIFLASH, CONTROLSUITE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/652982/ccs-tms320f2808-no-source-available-for-0x0-error-when-trying-to-flash-hex-file

器件型号:TMS320F2808
主题中讨论的其他器件: UNIFLASH、controlSUITE

工具/软件:Code Composer Studio

您好!

对于开发的初始阶段、我们的项目使用 TMS320F2808评估板。

要生成我在 CCS 6.0.1.00040中的标志设置下使用的十六进制文件。

--fill=0xFFFF --memwidth=16 --romwidth=16 --intel


但是、当我尝试将十六进制文件刷写到电路板中时、我会出现"no source available for 0x0"错误。

当我刷写.out 文件时、一切都正常。  

上周、我收到了 TI 的回复、尝试重置芯片并重新启动程序。 我这么做了、但它仍然不起作用。

为了确保.cmd 文件的所有内容都正常、我使用了示例工程中的.cmd。 附加了相同的内容。

我在这里是否缺少任何内容?

此致、

Sanat

e2e.ti.com/.../F2808.txt

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

    [引用 USER="Sanat Choudhury "]但当我尝试将十六进制文件刷写到电路板中时、我会得到"0x0无可用源代码"错误。

    如何使用 CCS 或 Uniflash 加载十六进制文件?

    "无源..." 消息通常只是意味着   该地址没有源代码相关性、因此调试器无法提供 源 代码级调试。 只要程序仍然正常运行、消息本身就不会引起任何担忧。

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

    您好、Aarti、

    感谢你的答复。

    我使用 CCS 进行刷写。

    当错误弹出时、程序未运行。

    我无法使用 hex 文件运行软件。

    我能够使用.out 运行软件。

    由于示例链接器命令文件不起作用、您能告诉我、应该转到0x00位置吗?

    此致、

    Sanat

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

    Sanat、

    代码段和数据段按照链接器命令文件的指示分配到存储器。 查看您的链接器命令文件、代码和大多数其他已初始化段都分配给闪存。 RAMM0从地址0x0开始、并为其分配.stack。 所有这些看起来都很好。  

    十六进制转换器仅将初始化的段转换为十六进制格式、因此我不知道地址0x0处的段为什么甚至相关。 您是否对十六进制转换器使用了任何其他选项? 您是否检查了十六进制输出文件以查看值/地址是否正常?

    此外、作为一般性评论、我建议使用最新的 CCS 或至少使用最新版本的 C2000编译器工具、以便利用每个新版本附带的许多错误修复和功能增强。

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

    您好、Aarti、

    感谢您的回答。

    我没有在十六进制转换器中使用任何其他选项。

    我认为十六进制文件中的值/地址是可以的、因为我通过将.out 文件加载到处理器并比较存储器窗口和十六进制文件中的值来验证它们。

    我在这里观察到的另一件事是、当我刷写生成的.hex 文件并从.out 文件加载符号(运行->加载->加载符号选项)时、它工作正常。

    但我认为只有在我想要调试时才需要符号文件。 即使我没有加载符号、软件也应该为我提供正确的输出。 如果我错了、请纠正我的问题。

    当我进行 CPU 复位时、软件复位将跳转到0x3FFB50。 我不知道该地址来自哪里。 我认为它应该跳转到 0x3F7FF6、该文件在链接器命令文件中配置、并且引导 GPIO 设置也是针对此操作完成的。

    此致、

    Sanat

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Aarti、
    在进一步分析之后、我发现0x3FFB50具有出厂时编程的引导加载函数、该函数负责将软件跳转到位置0x3F7FF6。 因此、我对上述帖子中的最后一条陈述没有任何问题。

    那么、我现在的问题是、没有符号、为什么软件无法正常工作?

    我知道没有符号调试是不可能的、因为没有代码链接、但功能应该起作用!!

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

    Sanat、

    正确、即使没有符号调试信息、代码仍应正常运行。 除了由于某种原因十六进制文件本身不正确之外、我无法解释为什么它不正确。 也许您可以尝试使用一个简单的已知示例项目来执行一个相似的测试、例如 controlSUITE 中的项目、以查看类似的十六进制转换/下载过程是否正常运行。

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

    您好、Aarti、

    这对我们有所帮助。 谢谢你。

    此致、

    Sanat