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.

[参考译文] CODECOMPOSER:STACKSIZE 参数被忽略?!

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1500621/codecomposer-stacksize-argument-is-ignored

部件号:CODECOMPOSER
主题:MSPM0G3107SysConfig 中讨论的其他器件

工具/软件:

你(们)好  

我目前面临的问题看起来像是堆栈溢出;因此我将堆栈大小从0x200增加到0x400、最后甚至是0x800、但结果没有改变。  

仔细检查后、我发现在我的 linkerfile 中、即使我对工程进行了完全全新的重建、堆栈大小仍然是0x200、而不是设置的更大大小。  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
******************************************************************************
TI ARM Clang Linker PC v4.0.2
******************************************************************************
>> Linked Fri Apr 11 13:58:16 2025
OUTPUT FILE NAME: <MCUCode.elf>
ENTRY POINT SYMBOL: "_c_int00_noargs" address: 0000b061
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
FLASH 00000000 00020000 0000fa60 000105a0 R X
SRAM 20200000 00008000 000045a1 00003a5f RW X
BCR_CONFIG 41c00000 000000ff 00000060 0000009f R
BSL_CONFIG 41c00100 00000080 00000058 00000028 R
SEGMENT ALLOCATION MAP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

因此、对于我看来、栈大小参数完全被忽略...

我在 Windows 上使用 CCS Theia 20.1.1.8和 MSPM0g3107以及 TICLANG 编译器、以防万一...

完整的链接器设置是  

  

linker.opt 包含的位置

Fullscreen
1
-Wl,-m"MCUCode.map" -Wl,-i"C:/ti/mspm0_sdk_2_04_00_06/source" -Wl,-i"C:/GitRepos/MCUCode/Debug/syscfg" -Wl,-i"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.2.LTS/lib" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="MCUCode_linkInfo.xml" -Wl,--rom_model
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
和 eepromMap.opt 包含

Fullscreen
1
-Wl,-l"eepromMap.cmd"
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

其中 eeprommap.cmd 依次包含

Fullscreen
1
2
3
4
5
6
7
SECTIONS
{
.ProductionInfo: type=NOINIT {} > 0x0001f000
.StateBackup: type=NOINIT {} > 0x0001F400
.Diagnostics: type=NOINIT {} > 0x0001F800
.Calibrations: type=NOINIT {} > 0x0001FC00
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

因此、对于我担心的所有问题、我看不到该 size 参数应该如何被覆盖

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

    不相关的表示:HEAPsize 设置不会被忽略(即在链接器文件中可以观察到所做的更改)

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

    您好:Marc、

    在 cmd 文件中、将覆盖栈大小、您可以在此处修改栈:

    B.R.

    Sal

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

    不正确、因为每次重新编译代码时都会重新生成此文件、从而导致手动更改丢失。

    在一个暗示:为什么这种设置在那里开始-因为然后从 IDE 的设置永远不会被接受,这在我看来是一个巨大的监督

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

    您好:Marc、

    使用 SysConfig 时、将重新生成 device.cmd 文件并覆盖它。

    因此、可以将 device.cmd 从 Debug 文件夹复制到主文件夹、然后让 SysConfig 不生成 cmd 文件、请改用单独的 cmd:

    B.R.

    Sal