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.

[参考译文] TMS570LS1224:堆栈配置问题

Guru**** 1821780 points
Other Parts Discussed in Thread: TMS570LS1224, HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1342683/tms570ls1224-stack-configurtation-question

器件型号:TMS570LS1224
主题中讨论的其他器件: HALCOGEN

大家好!

我有一个关于 TMS570LS1224 Hercules MCU 的堆栈配置的问题。

堆栈配置基于 HALCOGEN 中的默认设置。 此外、我的 RAM 用量如下图所示:

我的程序在系统模式下运行,因此使用用户堆栈,因为系统和用户模式使用相同的堆栈(见应用报告 SPNA218 - 2015年4月- 基于 Hercules ARMRegisteredCortexRegistered-R4/5的微控制器上的 nterrupt 和异常处理)

我不使用 malloc 等。因此、原则上我不使用任何堆、但可能是通过 C 库使用的。

因此大约163K 的192K RAM 未使用。 用户堆栈不在0x80030000处的 RAM 末尾启动、例如 Cortex-M MCU、是否有特殊原因?

此致
延斯

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

    Jens、您好!

    栈利用率取决于客户的本地参数声明和函数调用深度。 所有的全局参数都将只移至 RAM。

    没有特别的理由为堆栈分配0x1500 (5KB)、对于大多数小型应用程序、这就足够了。 此外、Hercules 控制器也不支持嵌套中断调用。 对于中型到大型应用、用户负责根据需要增加堆栈。

    --
    谢谢。此致、
    Jagadish。

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

    您好 Jagadish:

    非常感谢您的答复。 因此、例如、对于 contex-m 控制器、还应该可以或允许将用户堆栈 Pinter 初始化为0x80030000、

    此致、
    延斯

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

    Jens、您好!

    非常感谢您的回复。 因此、对于 contex-m 控制器、也应该可以或允许将用户堆栈 Pinter 初始化为0x80030000、例如?

    无法从 HALCoGen 更改堆栈的基地址、而且我们只能更改堆栈的长度。 请参阅以下主题、

    (+) TMS570LC4357:使用 HALCOGEN 移动堆栈? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    因此 、您只能通过起始地址来分配所需的尽可能多的堆栈。

    --
    谢谢。此致、
    Jagadish。