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.
工具/软件:Code Composer Studio
您好!
我正在尝试测试我的 MSP430平台的计算密集型代码、该代码要求我从默认值增加堆栈的大小。 但是,当我更改此值时,当我查看 View->Stack Usage 中的"Stack Usage"工具时,显示的最大堆栈大小似乎不会影响(堆栈大小更改为4800时附加的屏幕截图)。 无论我在设置中设置的最大值是多少、最大堆栈大小值似乎都固定在660。 有趣的是、"存储器分配"看起来确实会作为 I 设置的最大堆栈大小值的函数发生变化(还附带屏幕截图)。
我将通过编辑 Project->Properties->CCS Build->MSP430 Linker->Basic 选项中的"Set C system stack size"字段来更改堆栈大小。 此外、当我检查"..._linkInfo.xml"文件时、"_stack_size"字段将更新为我设置的值。
编译器版本:TI v18.1.5.LTS
请告诉我是否有任何其他信息会对您有所帮助。
您好!
[引用 user="Zander Nevitt"]编译器版本:TI v18.1.0.LTS [/引用]
谢谢。 您使用的确切 CCS 版本是什么?
谢谢
Ki
您好!
我的 CCS 版本为:
版本:8.3.0.201810301800
构建 ID:N201810301800
谢谢你。
[引用 USER="Zander NevitT]但是,当我更改此值时,当我查看 View->Stack Usage 中的"Stack Usage"工具时,它似乎不会影响显示的最大堆栈大小 (随附的屏幕截图、堆栈大小更改为4800。)"Stack Usage"工具显示了程序将根据对调用树和每个函数的堆栈使用情况的静态分析使用的最大堆栈。
而"Memory Allocation"视图显示了链接器为堆栈分配了多少内存。
即、两个视图显示不同的信息。
谢谢、Chester。 这是有道理的。
是否可以 更改分配了任何函数的最大堆栈使用量?
[引用 user="Zander Nevitt"]是否可以 更改分配任何函数的最大堆栈使用量?
我与我的同事及其答案进行了核对:
"不是直接的。 函数使用的栈数量由该函数中定义的局部变量的组合大小决定。"
感谢你的答复。
我知道函数所需的内存量由该函数内局部变量的数量/大小决定。 我想知道、是否可以将分配给函数的最大内存量增加到超过屏幕截图中显示的"660字节"。 对于我的应用、我需要创建大量局部变量的函数。
谢谢你。
[引用 user="Zander Nevitt"]我想知道是否可以将分配给函数的最大内存量增加到超过屏幕截图中显示的"660字节"。
而不是直接。 您可以间接更改它。 作为实验、在函数 main 内添加一个大数组。 这将导致该数字增加。
[引用 user="Zander Nevitt"]对于我的应用程序,我需要创建大量局部变量的函数。
我不理解这一问题。 编译器自动为局部变量分配足够的内存。 因此、只要您不溢出堆栈、就不需要进一步处理此详细信息。
谢谢、此致、
乔治