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.

[参考译文] 编译器/TMS320F28377S:使用64k 以上的 RAM 时出现问题

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/793509/compiler-tms320f28377s-issue-using-ram-above-64k

器件型号:TMS320F28377S

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

您好!

当 我在前64k 内使用我的代码时、一切正常。 但是、如果我开始将数据移动到它上面、我会遇到奇怪的行为。  

默认的内存模型较大,因此这不是问题。

有人提出什么原因呢?

我使用编译器:c2000_18.1.5.LTS

谢谢!

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

    您能否提供有关您开始发现问题的地址的更多详细信息? 您要在该地址范围内分配哪个部分?

    此致、

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

    是在低于64k RAM 范围内定义的 RAMDATA、则一切正常。 当我将其移动到存储器的上部时、我有意外行为、程序停止工作。

      /*分配未初始化的数据段:*/
      .stack          :> RAMDATA      page = 1.
      .ebss           :> RAMDATA      page = 1      //    全局和静态变量
      .esysmem        :>RAMDATA      page = 1      //      malloc 函数

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

    您不能将.stack 移动到64K 以上。  堆栈指针仅为16位。

    其他部分应该正常。

    此致、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! cmd 文件或编译器中的一些通知应该是好的。 这无法进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CPU 用户指南中提到了这一点

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、但您是否希望我能用心了解所有2500多页?
    首先、我需要知道我必须向哪个方向搜索问题。
    您对链接器放置栈的位置没有太多的控制。 因此、只有.stack 上的命令需要注意它低于64k。 应该有很多帮助。

    我发现了很多问题、在这些问题中、轻点额外的关注可以解决这么多小时的问题、因为您必须知道 TI 是如何实现这些问题的。 我花了这么多小时尝试解决这些愚蠢的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我同意、有时在文档中找到与所面临问题相关的正确信息会有点困难。 为此、我们提供了这个论坛、用户可以在其中发布他们的问题、我们会尽快答复这些问题。

    我们始终期待用户的反馈、以进一步改进我们的文档和工具以及器件。 感谢您的反馈。

    此致、
    Vivek Singh