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/TMS320F28377S:无源代码可用于"0x3fe493"

Guru**** 2595800 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/669586/ccs-tms320f28377s-no-source-available-for-0x3fe493

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

您好!

我一直在使用 LaunchPad-F28377S 和 Code Composer Studio v.7.1.0开发代码、现在我一直遇到这个问题。 我在论坛中搜索并发现类似主题的主题帖与同一问题相同、这很有帮助、因为链接中的主题:

但是、我仍然不知道如何解决它、现在我陷入了困境。 正如这些线程中所指出的、它似乎与 ITRAP ISR 和引导 ROM 相关。

在我将大量数据添加到代码中并进行调试后、会发生该问题。 我需要添加浮点格式的批坐标以及字符格式的字符串。 当我使用更少的数据进行测试时、程序在调试中正常运行、但在添加更多的数据后、会出现问题、我无法进行调试。

请帮我解决这个问题吗? 我有一些时间来完成这个项目。

我已经完成了定义_flash 和添加 memcpy 的过程、以便从闪存加载代码。

正如我提到过的、在添加大量数据之前、一切都正常运行。 我插入了4张图片、显示了顺序发生的情况。

感谢大家。

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

    您好!

    感谢您附加图片。 您看到的问题可能是由许多不同的原因引起的。  出现此错误的一个原因可能是您已写入超出范围的存储器位置或已写入过多的存储器、从而导致覆盖。 这可能是从 memcpy 中的未初始化指针或只是写入过多数据而导致的。  首先、您能澄清一下您说"我向代码中添加了大量数据"时的含义吗?  

    谢谢、

    Taumer

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

     你好,Taumer! 感谢您的快速回复!

    当我说我是要以浮点格式添加许多字符串和坐标时、我必须使用这些字符串和坐标。 它是"GCODE"、"eZ"和"EX"、可以在我现在所附的图片中看到。

    如果这些条目中没有大量条目、程序将正常运行、但如果有更多条目、则会发生该问题。

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

    这些缓冲器在最大值处有多大、即您成功使用了多少个值、何时中断? 这些缓冲器过大可能就是一种简单的情况。

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

    你好,Taumer!

    我已经成功地使用了总共485个值、它们被分成"GCODE"、"EX"、EY"、"eZ"和"P"、这是我需要的5个缓冲器。

    如果我总共尝试486个条目、它会中断、然后在图片中看到 SYSCTRL 选项卡:

    如果我再尝试几次、SYSCTRL 选项卡不会出现、但出现 No source problem:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Taumer、我看到我可以使用"char * GCODE[1900]"将我的 char 数组"GCODE"的大小定义为大约1900、并增加我可以添加到它的值的数量、这正是我需要的。 这样、我就可以正常调试和运行程序。
    但我还需要增加4个浮点缓冲器、但我无法做到这一点。 如果我尝试定义一些值并添加更多条目、我会再次收到"无源可用"问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    佩德罗

    我认为您创建的缓冲区太大。 您是否曾尝试将它们放在不同的存储器部分? 使用这样大的缓冲器是否有问题?

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

    我还没有尝试过、Taumer、怎么能做到这一点? 是否有方法可以通过更改.cmd 文件来增加存储器? 我在论坛上看到了有关这一点的信息、当出现错误"Program will not fit into available memory"时。 仅供参考、例如、如果我尝试将 GCODE 定义为2048、我会收到此错误。

    我需要这些大缓冲区以浮点格式存储所有坐标。 我需要大约1900个按缓冲区输入的条目、因为 GCODE 是一个字符格式的条目。

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

    请看一下这篇文章: e2e.ti.com/.../2305062

    本质上、您可以在链接器命令文件中创建一个存储器段、并将缓冲区分配给这些存储器段。 请告诉我这是否适合您。

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

      你好,Taumer!

    此解决方案对我来说很有用! 我已经在这一职位上进行了诉讼,从法律上讲,我可以将 GCODE 定义的价值比2000年多得多,这几乎是以前的限制,我不会再认为"程序不适合可用的记忆"了。

    但我仍然收到浮点格式数组的"无源可用"问题。 它们位于"main()"内,然后我将它们从其中传递出来,现在它可以工作,程序正常运行,并且具有阵列所需的更高值!

    我插入图片只是为了显示我所做的事情。

    我将"RAMGS"源地址设置为与评论中的 RAMGS6相同、因为我收到错误消息、告诉我从 RAMGS0到 RAMGS5还有其他存档。 我还在段部分中将".ebss"和分配为".coord_table"的浮点数组更改为"RAMGS"。

    后来、我再次收到 "Program will not fit into available memory"、但针对".cinit "、但我将其分配到"FLASHH"中、错误消失了。

    现在、它可以根据我的需要工作!

    非常感谢,Taumer!