主题中讨论的其他部件: HALCOGEN
工具/软件:TI C/C++编译器
大家好,
当我想在主板RM57L843上运行一个简单的代码时,我遇到了一个奇怪的问题。
Clint是数学库Flint的对象。
项目已构建,以下代码片段代码在电路板上运行正常,但在添加多个变量时,代码会中断
有人经历过这种行为?
此图显示调试器光标移至第三行
但在这张图片中,我添加了第四个变量,调试器在第一行之后退出,尽管它是相同的代码
我将感谢并提出建议。
谢谢大家
此致
Moud Jadaan
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.
工具/软件:TI C/C++编译器
大家好,
当我想在主板RM57L843上运行一个简单的代码时,我遇到了一个奇怪的问题。
Clint是数学库Flint的对象。
项目已构建,以下代码片段代码在电路板上运行正常,但在添加多个变量时,代码会中断
有人经历过这种行为?
此图显示调试器光标移至第三行
但在这张图片中,我添加了第四个变量,调试器在第一行之后退出,尽管它是相同的代码
我将感谢并提出建议。
谢谢大家
此致
Moud Jadaan
Moud Jadaan 说:更改堆栈大小不起作用[/QUOT]
我的猜测是,您没有做出足够的改变。 就像一个实验一样,让它变得巨大。 像6 KB 这样的声音听起来不错。
Moud Jadaan 说:但将Clint作为静态变量是可行的。 请告诉我为什么会出现这种情况? [/引述]
局部变量在函数内定义。 它们仅在执行功能时可用。 否则,它们不存在。 每次启动该函数时,都会得到一组新的未初始化的局部变量。 此类变量在堆栈中分配。 (有时在寄存器中。 但对于像这里一样的数组变量来说,这种情况是不存在的。) 具有3 KB 局部变量的函数是不常见的。 这就是为什么您需要一个非常大的堆栈来处理它的原因。
静态变量的作用域也限于定义静态变量的函数的作用域。 但在两次呼叫之间,它们仍然存在。 这是因为它们不是在堆栈中分配的,而是在分配其他全局变量的同一节中分配的。 在这种情况下,该部分可能是.bss。
谢谢,此致,
-George
更改堆栈大小不起作用,但将Clint作为静态变量起作用。 请告诉我为什么会出现这种情况? [/QUOT]使用HALCoGen时,堆栈大小是在HALCoGen工具(RAM选项卡下)上设置的,而不是在CCS项目属性上设置-请参阅 链接器忽略堆栈大小设置