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.

[参考译文] TMS320F280049:F280049堆栈内存分配

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652731/tms320f280049-f280049-stack-memory-assign

器件型号:TMS320F280049

你好、冠军、

我的客户将.stack 分配给0x10C00 start、但代码在运行 mian 函数时始终为 Hatt、但当他们更改为0X10000 start 时、它可以正常运行、所以您知道、stack 段是否受内存分配的限制、它是否可以分配给 GSRAM1、GSRAM2?

RAMStack        :origin = 0x010000,length = 0x000C00

  RAMGS2          :origin = 0x010C00,length = 0x001400

  RAMGS3          :origin = 0x012000,length = 0x002000

 

 .stack          :> RAMStack,   page = 1.

正确的一个

RAMStack        :origin = 0x010C00,length = 0x000C00

  RAMGS2          :origin = 0x011800,length = 0x001400

  RAMGS3          :origin = 0x012C00,length = 0x002000

设置错误

 

 

CCS 中的堆栈设置:


谢谢!

BR

Joe

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

    Joe、

    在 C28x 上、堆栈指针寄存器[SP]为16位。  您应该分配整个堆栈内存、使 SP 能够到达它。

    此致、

    Richard

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

    您好 Richard、

    那么、您意味着可能存在内存分配问题? 如何在 CMD 中设置为正确分配?

    谢谢!

    BR

    Joe

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

    Joe、您好!

    正确。  在 LIKER 命令文件的 SECTIONS 部分、您将.stack 段分配到低64K 存储器中的存储器。  例如:

    堆栈       :> RAMM1,   PAGE = 1

    此致、

    Richard

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

    感谢您的快速回复、但我不太清楚"低64K 存储器"是什么意思、它的面积是多少? 如果映射到0x010C00启动 RAM、为什么它无法到达。

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

    Joe、您好!

    对于16位、您无法对超过前64K 字的存储器进行寻址。  因此、您必须在该存储器的某个位置找到堆栈。  如果将其放置在低64K 以外、堆栈指针无法对其进行寻址、因为16位不够。

    随附的幻灯片来自一个非常古老的 C28x 技术讲座、但我希望它能说明我想说的内容。  如果仍不清除、请重新发布。

    此致、

    Richard

    e2e.ti.com/.../C28xmB.pdf