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.

[参考译文] TM4C123GH6PM:关于堆栈地址

Guru**** 2531950 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1097031/tm4c123gh6pm-about-stack-addresses

部件号:TM4C123GH6PM

大家好,

在cmd文件中,栈大小描述为"__stack_top =__stack +1024;"。
但是,当我检查映射文件时,我发现了以下内容

添加:0x2000.0928万 =_堆栈
添加:0x2万d28 =__stack_end
添加:0x2万d28 =__stack_top

为什么__stack_end和__stack_top的地址值相同?
此外,如果我要更改__stack_end和__stack_top的地址,我应该执行哪种操作?
我使用的CCS版本是(11.1 0.0.0011万)

此致。
柳时敏

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

    请准确显示链接器的调用方式,包括所有选项和所有系统响应。  请复制并粘贴文本,不要使用屏幕截图。

    编译器和链接器的版本是什么?  这将出现在映射文件的前几行中。  

    请将链接器命令文件附加到下一篇文章中。  因此论坛接受它,请将文件扩展名.txt添加到它。

    谢谢,此致,

    -George

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

    链接器版本为20.2 v.5
    首先,我想知道__stack_end和__stack_top是什么意思。
    我想知道地址是如何确定的。

    此致。
    柳时敏

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

    默认情况下,链接程序创建与堆栈相关的这些符号。

    • __stack.stack部分的基本地址
    • __stack_size.stack部分的大小(以字节计算)
    • __stack_end.stack部分后面的第一个字节的地址

    很可能在链接程序命令文件中创建了符号__stack_top,因为该名称比名称__stack_end更具描述性。  在ARM系统上,堆栈从较高的地址增长到较低的地址。  因此,当SP寄存器初始化时,它不会设置为.stack部分的基本地址,而是设置为.stack部分结尾附近的地址(与8字节地址对齐)。  使用名为__stack_top的符号(而不是名为__stack_end的符号)执行此操作的代码更有意义。

    谢谢,此致,

    -George

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

    感谢您的回复。
    那么stack_top和stack_end意味着相同的内容?
    是否有任何方法只能更改其中一个地址?

    此致。
    柳时敏

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    so stack_top406.7917万 stack_top和stack_end表示相同的意思?

    它们对应于相同的地址。

    是否406.7917万是否有任何方法可以只更改其中一个地址?

    同一地址有多个符号是无害的。  您要解决的整体问题是什么?

    谢谢,此致,

    -George

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

    感谢您的回复。
    我能够解决我需要知道的问题。

    此致。
    柳时敏