工具/软件:TI C/C++编译器
我的程序使用TI v 16.9 .3.LTS编译器提供的math.h库中的三角函数。
我有两个问题。
1.它们会导致CPU意外重置。
-在运行该函数时(例如“sinf”),CPU由于某种原因而重新启动。
2.它们会导致不相关变量的损坏
-当它通过函数时,其他一些变量的值会因某种原因而发生变化。
-使用调试接口进行检查。
如果我跟踪导致问题的函数实例并将其注释掉,则代码似乎运行正常。
是否有编译器设置必须从默认项目设置中更改?
如何修复?
谢谢你
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++编译器
我的程序使用TI v 16.9 .3.LTS编译器提供的math.h库中的三角函数。
我有两个问题。
1.它们会导致CPU意外重置。
-在运行该函数时(例如“sinf”),CPU由于某种原因而重新启动。
2.它们会导致不相关变量的损坏
-当它通过函数时,其他一些变量的值会因某种原因而发生变化。
-使用调试接口进行检查。
如果我跟踪导致问题的函数实例并将其注释掉,则代码似乎运行正常。
是否有编译器设置必须从默认项目设置中更改?
如何修复?
谢谢你
在CCS中,7.2 使用TI MSP430 v 16.9 .3.LTS编译器为MSP430FG4618创建了以下测试程序:程序可能没有足够的堆栈空间。
#include <math.h>
float input = 1.234f;
float output;
void main (void)
{
输出= Sinf (输入);
OUTPUT = cosf (输入);
}
CCS 7堆栈使用情况视图显示,对于仅调用sinf()和cosf()的简单测试,需要878字节的堆栈空间:
在CCS 7.2 中创建的MSP430FG4618项目的缺省堆栈大小为80字节,不足以调用sinf()和cosf()。
“堆栈使用情况”视图应有助于计算程序的实际堆栈大小要求。
如果程序没有任何操作系统,堆栈大小应大于调用main函数的总和(在您的情况下为_c_int00_noargs_notexit) 以及任何中断处理程序使用的最大堆栈大小。I should I set size than the sum size of all stack sizes shown in Stack Usage view?
我刚刚发现,“CCS 7.2 堆栈使用情况”视图在某些情况下可能会少报所需的堆栈大小,请参见 CCS/MSP430FG4618:“CCS 7.2 堆栈使用情况”可能少报发生符号别名功能时的堆栈大小要求。 在这种情况下,建议 您也运行cG_xml call_graph实用程序,请参阅 了解静态堆栈使用情况
请注意 “查找静态堆栈使用 情况Wiki”页面上有关间接函数调用的注意事项。
鉴于在某些情况下工具可能会对堆栈大小报告不足,因此值得在堆栈大小上添加额外的"安全余量"。