我正在使用Code Composer Studio与MSP430 MCU配合使用。这些是我正在使用的规范:
CCS版本:5.5
编译器版本:TI v4.1.9
编译器优化设置:优化= 0
MSP430:MSP430F5528
我开始使用工作设备并添加新功能来计算测量数组的标准偏差。设备一直工作正常,直到我在下面的代码中添加了sqrt函数:
double standardDeviation (int average, int measurements[], int positions){
double deviation = 0;
int i = 0;
for(i = 0; i <= positions; i++){
measurements[i] = measurements[i] - average;
measurements[i] = measurements[i] * measurements[i];
deviation += measurements[i];
}
deviation = deviation/positions;
deviation = sqrt(deviation);
return deviation;
}
另外,我的文件标题中有#include <math.h>
。
当我用sqrt注释掉该行时,设备按预期工作。输入和输出以及数组值都完美运行。信号LED应该是它们应该是,我可以看到在调试模式下的数组值是应该的。
包含sqrt行后,正在调试的固件会自动开始运行。当我暂停程序时,我收到此错误:
&#34;无法在&#34; /tmp/TI_MKLIBSF5oIb/SRC/copy_decompress_rle.c"找到源文件; 找到文件或编辑源查找路径以包含其位置。&#34;
如果包含sqrt,即使偏差变量与设备的任何输入或输出完全分离,设备也不再按预期运行。在不同场合上传固件后,设备立即打开所有输出,没有任何输出打开,输出随机打开和关闭。我无法测量输入的任何值,因为我无法暂停程序。
我测试过的事情: