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.

[参考译文] CCS/LAUNCHXL-F2.8069万M:l"_atan2"重新定义:首先在符号&quot中定义;_atan2"重新定义:首先在PM_Sensorles C/C++问题中定义

Guru**** 2536320 points
Other Parts Discussed in Thread: DRV8301, CONTROLSUITE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/601905/ccs-launchxl-f28069m-l-_atan2-redefined-first-defined-in-symbol-_atan2-redefined-first-defined-in-pm_sensorles-c-c-problem

部件号:LAUNCHTXL-F2.8069万M
主题中讨论的其他部件:DRV8301controlSUITEDRV8301-HC-C2-Kit

工具/软件:Code Composer Studio

您好,

我们为正弦余弦编码器创建了一个宏文件。当我们使用"atan2f "函数时,我们收到如下错误  

"说明资源路径位置类型
重新定义符号"_atan2":首先在符号"_atan2"中定义重新定义:首先在PM_Sensorless C/C++问题中定义"

然后我们将"atan2f"更改为"atan2"程序正在成功构建。可能是什么问题?

以下是代码:

/*
* sincos_f.h
*
*创建时间:2017年5月27日
* 作者:Indra
*/

#ifndef SinCos_F_H_
#define SinCos_F_H_
#include"muth.h"
#include<stdlib.h>

typedef struct {
浮点sin;//输入正弦
浮点cos;//输入余弦
浮子;
浮动角度_常量;
FLOAT mechTheta;//参数
浮子ElectTheta;//输出电气角度
浮动方向;//输出
浮点OldelecTheta;//

}sincos_f;

typedef sincos_f*psin_cos_f;


#define sin_cos_default_vf { 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 }

#define SCEN_MACROF(v) \
V.angle_const = 57.2975 ; \
V.atan = atan2f (v.sin,v.cos); \
V.mechTheta =(v.atan * v.angle_const); \
V.ElectTheta =(v.mechTheta + 180.0)*5; \
IF (v.OldElectTheta > v.ElectTheta) \
{ \
五.方向=1; \}
\
else v.direction = 0; \
// v.ElectTheta =(v.ElectTheta/1800);



#endif /* SinCos_F_H_*/

谢谢你

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

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

    Shameer N 说:
    SYMBOL "_atan2" REdefined:首先在符号"_atan2"中定义REdefined:首先在PM_Sensorless C/C++ problem"[/QUETE]中定义基于线程5.5 SYMBOL "RERERELEASed"中的类似错误,当只有一个文件链接 时怀疑库之间存在冲突。

    是否可以在发生错误时显示CCS生成控制台的完整输出,以便可以看到准确的链接程序命令行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ****为项目PM_Sensorless生成配置DRV8301_F2806X_RAM ****2806 ****

    "D:\\ti\\ccsv7\\utils\\bin\\gmake "-k all
    '生成文件:../PM_Sensorless。c'
    '调用:C2000编译器'
    d:/ti/ccsv7/tools/compiler/ti-CGT-c2000_c2000_model.1.ls/bin/cl2000"<xmt-block0>2000 16.92000 16.9 --sility_version=28 -g --defet="_debug"--defet="drv830"--deflift_controllx_lips/x_controld=d/subs/fipt_d/subs/fipt/f1t/fipt_controlfd=-d/subs/fipt/d/subs/fipt_d/subs/f1t_controlfipt/f1x_d/subs/fipt/fipt/fipt/fipt/fipt/fit_d=-d/sd/subs/fipt/d/sd/subs/fipfipfd/sd/subs/f6x_control="fipt/d/sd/subs/fipfip_control="f6x_/subs/fipt_/subs/fipt_/subs/fipt/d/subs/fipt/fipt/ 16.9~3.1
    '完成的建筑:../PM_Sensorless。c'
    ''
    '构建目标:PM_Sensorless _DRV8301_F2806x.out '2806 '
    '调用:C2000连接器'
    d:/ti/ccssv7/tools/compiler/ti-CGT-C2000_S2000_model.1.ls/bin/cl2000"<xmt-block0>2000 16.92000 16.9 --sility_version=28 -g --define="_debug"--def="drv830"--def="drv830"--deflag_lag_lav_lav_model"--lig_l/lift/lip_lip/d=1"lig_lip/d/crt/lip_lip_lip/d=1"-fit_fit_lip/lip/d/subs -fit_lip/lip/lip-f/d=380/lip-f/d/crs/lip-fit_lip-f/lip-/lip_lip-/lip_/slip_/subs/lip_/subs/lip_/securb_lip-d=380/lip_/securs/lip_-d/lip-d/lip-d/lip_/subs/lip- 16.9 16.9

    >>编译失败
    Makefile:144:目标'PM_Sensorless _DRV8301_F2806x.out的2806的配方失败
    错误:重新定义符号"_atan2":首先在中定义
    "../rts2800_fpu32_fast_supply.lib<atan2_F32.obj>";在中重新定义
    "D:16.9 /ti/ccsv7/tools/compiler/ti-CGT-2000_C2000_SCC1.LTS/lib/rts2800_fpu32.lib<e_</s>2000 2800
    atan2f.obj>"
    错误:链接时遇到错误;"PM_Sensorless _DRV8301_F2806x.out</s>2806
    未构建
    gmake:***[PM_Sensorless _DRV8301_F2806x.UT]错误2806错误1
    gmake:由于错误,目标'all'没有重制。

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

    Shameer N 说:
    正在构建目标:PM_Sensorless _DRV8301_F2806x.out</s>2806
    '调用:C2000连接器'
    d:/ti/ccssv7/tools/compiler/ti-CGT-C2000_S2000_model.1.ls/bin/cl2000"<xmt-block0>2000 16.92000 16.9 --sility_version=28 -g --define="_debug"--def="drv830"--def="drv830"--deflag_lag_lav_lav_model"--lig_l/lift/lip_lip/d=1"lig_lip/d/crt/lip_lip_lip/d=1"-fit_fit_lip/lip/d/subs -fit_lip/lip/lip-f/d=380/lip-f/d/crs/lip-fit_lip-f/lip-/lip_lip-/lip_/slip_/subs/lip_/subs/lip_/securb_lip-d=380/lip_/securs/lip_-d/lip-d/lip-d/lip_/subs/lip- 16.9 16.9

    a) 使用--reread_libs选项,该选项允许链接程序对库进行多次读取以解析引用。

    b)链接器设置为使用 rts2800_fpu32.lib运行时库,而不是进行自动选择。

    根据其他论坛主题,认为这种选项组合可能会触发问题。

    假设您的项目基于DRV8301-HC-C2-Kit的已修改controlSUITE PM无传感器示例 ,您可以尝试:

    1)在“项目属性”中的“Build -> C2000 Linker ->文件搜索路径”下,取消勾选“Reeread libraries;resolve backward references (--reread_libs,-X)”选项:

    2)在“常规”下的“项目属性”中,将“运行时支持库”选项更改为“<automatic>”:

    如果上述建议的更改无法解决错误,您能否压缩并附加完整的项目?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chester Gillon,建议的更改解决了问题,非常感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     e2e.ti.com/.../new1.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当building.please找到所附的zip文件时,编译器显示警告。