TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280049C: 关于__TMS320C28XX_CLA__的定义

Part Number:TMS320F280049COther Parts Discussed in Thread:C2000WARE

在ti\c2000\C2000Ware_DigitalPower_SDK_3_02_00_00\solutions\tidm_02008

中有一个"ttplpfc_nonpowerSUITE_F28004x"的工程

该工程的"ttplpfc.h"这里有一段

#ifndef __TMS320C28XX_CLA__
#include <math.h>
#else
#include <CLAmath.h>
#endif

可以看到#include <CLAmath.h>是没有启用的,直接宏定义是不行的

我很奇怪,为什么写了这一段但是调用出错了,找了很多CLA的资料都说只要在编译器设置中找到CLA相关的选项启动就可以了,但试了很久都没有成功

想知道是要在什么位置定义"__TMS320C28XX_CLA__",

还是说编译器要设置什么才能启用这部分内容

Green Deng:

你可以看一下编译器的说明:https://www.ti.com/lit/ug/spru514w/spru514w.pdf

按照说明,只要编译.cla的文件,__TMS320C28XX_CLA__就会被定义为1

,

YingJed Ying:

cla我启用了,还要启用啥?

,

YingJed Ying:

而且这部分的内容不是编译了嘛?

,

Green Deng:

看一下说明:Defined to 1 if any –cla_support option was used and the source file is a .cla file.

,

YingJed Ying:

它到底是怎么样的格式?你有示例嘛?你是怎么改的?实在不好意思。。。我有点想不懂。。。

,

Green Deng:

这里我觉得应该很清楚了,只要编译.cla的文件,__TMS320C28XX_CLA__就会被定义为1,__TMS320C28XX_CLA__被定义为1就会执行include <math.h>而不会include <clamath.h>

,

YingJed Ying:

他写的是

#ifndef __TMS320C28XX_CLA__ //如果没有定义_TMS320C28XX_CLA__
#include <math.h>//没有定义_TMS320C28XX_CLA__则引用#include <math.h>
#else//否则有定义_TMS320C28XX_CLA__
#include <CLAmath.h>//有定义_TMS320C28XX_CLA__则引用#include <CLAmath.h>
#endif

您又说只要编译了.cla那它就会被定义为1,那它被定义为1了不应该引用<CLAmath.h>嘛?

它写的是"#ifndef"喔,如果没定义,您是不是看错了。。。

,

Green Deng:

抱歉抱歉,确实看错了。。。

我后来去咨询了一下美国那边的工程师,他们的回复是:当头文件被 CLA 源文件包含时,CLAmath.h 将被包含在内。 当 C28 端包含相同的头文件时,将包含 math.h。

,

YingJed Ying:

也就是说,是因为“ttplpfc.h”这个头文件还被"ttplpfc.c"这些C28端的文件引用了才会导致最后引用了<math.h>而不是<CLAmath.h>?

那也有问题啊,我重新创一个头文件“text.h”被"ttplpfc_clatask.cla"引用还是不行啊

我还是理解错了?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049C: 关于__TMS320C28XX_CLA__的定义
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1