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.

[参考译文] 编译器/MSP430F5528:将sqrt函数添加到现有工作项目会导致设备失败

Guru**** 2609285 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/654990/compiler-msp430f5528-adding-the-sqrt-function-to-an-existing-working-project-causes-the-device-to-fail

部件号:MSP430F5528

工具/软件:TI C/C++编译器

工具/软件: Code Composer Studio

我正在设备中使用MSP430进行光测量。  我进行了20次测量并将其存储在阵列中。  我想计算测量值的标准偏差,但sqrt函数存在问题。  我包括math.h,在该函数中调用sqrt:

双标准偏差(int average,int measurements [],int positions){//kg 1/8/2017计算数据集的标准偏差

	双偏差= 0;
	int i = 0;

	for (i = 0;i <= positions;i++){
		measurements [i]= measurements [i]- average;
		measurements[i]= measurements [i]* measurements [i];int i = 0;
		+
	

	deviation)
	偏差= sqrt (偏差);

	返回偏差;

} 

#include <mathing.h>位于我的.c文件的标题。

我使用的是CCS v 5.5 编译器4.1 t.11,输出格式为eabi。  优化级别设置为0。  当我注释包括sqrt的行时,所有内容都按预期编译和工作。  包括sqrt时,调试模式将自动运行,当我尝试暂停它时,我收到错误。  断开调试器时,设备顶部的输入和输出工作正常。

有几个奇怪的地方是sqrt文本是紫色的,当我查找声明时,有两个选项:从编译器4.1 9,和从4.2 1

我测试过的内容:

  • 注释掉测量值[]*测量 值[],以确保该值不会变得过大,与上述故障相同
  • 用sqrt注释掉该行,设备按预期工作
  • 已将sqrt函数内的变量替换为4,与上述相同的故障
  • 将测量值[]数组的所有位置设置为1,与上述故障相同

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

    我建议您使用最新版本的CCS (它将为您提供最新的TI编译器)。 这可以解决您的问题,因为您使用的是编译器库。

    另外,当您在调试模式下暂停程序时,会收到什么错误信息?

    此致,
    Nathan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 这是一个旧项目,我尝试使用较新版本的CCS和编译器,但我无法获得适合MSP430的固件。 暂停时我遇到的唯一错误是"无法在"/tmp/TI_MKLIBSF5oIb/SRC/copy_decpress_RLE.c"中找到源文件或编辑源查找路径以包括其位置。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    首先要尝试的一个快速操作:请尝试使我易失。

    如果这不起作用,则可以选择进入项目的属性菜单,然后进入“常规”子菜单。 在“主”选项卡下,您应该能够看到可用的编译器版本。 我会尝试不同的方法,看看问题是否特定于您正在使用的编译器。 您也可以尝试安装较新的编译器版本(不会更改为新的CCS版本)。

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

    这是否解决了您的问题? 如果是,请将其标记为"已回答"。 如果很快没有响应,则此线程将由于不活动而关闭。

    此致,
    Nathan