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

CCS5.5中调用IQmath函数问题

你好,我在CCS5中移植了CCS3.3的一个工程,里面用到_IQ14mpy(A,B)和_IQ14isqrt(A)两个函数,开始编译只是提示不兼容警告,功能都能实现,最近不知道是不是丢了什么东西,警告

warning #16002-D: build attribute vendor section TI missing in
"../lib/IQmath.lib<IQ14isqrt.obj>": compatibility cannot be determined还在,但是_IQ14isqrt(A)函数功能实现不了了,右键点击函数发现ERROR:cannot load from non-primitive location ,不知何解?望赐教。

Susan Yang:请参照下面的解释:

This message means that the expression tried to read and display data from the target where the type of the data is not a primitive type (char, short, int etc).For instance, "main" is of type "function pointer" so evaluating "*main" would be asking the debugger to display data of type "function" which doesn't make much sense and would return this error.

At least, that's what it's supposed to mean.If that doesn't make sense in your case, could you attach a small test program with the struct in question and show what evaluations incorrectly return that error message incorrectly?

你好,我在CCS5中移植了CCS3.3的一个工程,里面用到_IQ14mpy(A,B)和_IQ14isqrt(A)两个函数,开始编译只是提示不兼容警告,功能都能实现,最近不知道是不是丢了什么东西,警告

warning #16002-D: build attribute vendor section TI missing in
"../lib/IQmath.lib<IQ14isqrt.obj>": compatibility cannot be determined还在,但是_IQ14isqrt(A)函数功能实现不了了,右键点击函数发现ERROR:cannot load from non-primitive location ,不知何解?望赐教。

user1494644:

回复 Susan Yang:

谢谢你的解答,刚才有新的进展,我手头有两块板子,一块焊接了28069PFPS,另一块焊接了28069FPNT ,我在程序中定义了两个long 型变量 TEMPC和TEMPD,给TEMPC幅值13107(0.8的Q14),通过调用函数_IQ14isqrt()求其开方倒数,将其赋值给TEMPD,结果是28069PFPS板子执行正常,28069FPNT板子错误,如下图,不可能是两个片子不同吧,

28069PFPS板子执行如下:

28069FPNT执行入下:

你好,我在CCS5中移植了CCS3.3的一个工程,里面用到_IQ14mpy(A,B)和_IQ14isqrt(A)两个函数,开始编译只是提示不兼容警告,功能都能实现,最近不知道是不是丢了什么东西,警告

warning #16002-D: build attribute vendor section TI missing in
"../lib/IQmath.lib<IQ14isqrt.obj>": compatibility cannot be determined还在,但是_IQ14isqrt(A)函数功能实现不了了,右键点击函数发现ERROR:cannot load from non-primitive location ,不知何解?望赐教。

Susan Yang:

回复 user1494644:

是有点诡异……

您现在有没有定义-fpu32(–float_support = fpu32)? 若是定义了,则会使用IQmath_fpu32.lib而不是IQmath.lib

e2e.ti.com/…/499515

是和您类似的错误,您可以参考一下

你好,我在CCS5中移植了CCS3.3的一个工程,里面用到_IQ14mpy(A,B)和_IQ14isqrt(A)两个函数,开始编译只是提示不兼容警告,功能都能实现,最近不知道是不是丢了什么东西,警告

warning #16002-D: build attribute vendor section TI missing in
"../lib/IQmath.lib<IQ14isqrt.obj>": compatibility cannot be determined还在,但是_IQ14isqrt(A)函数功能实现不了了,右键点击函数发现ERROR:cannot load from non-primitive location ,不知何解?望赐教。

user1494644:

回复 Susan Yang:

谢谢,我应该是没有定义 -fpu32(–float_support = fpu32),我听同事说28069PFPS和28069FPNT的flash 大小不一样,不知道是不是需要调整CMD文件的,

你好,我在CCS5中移植了CCS3.3的一个工程,里面用到_IQ14mpy(A,B)和_IQ14isqrt(A)两个函数,开始编译只是提示不兼容警告,功能都能实现,最近不知道是不是丢了什么东西,警告

warning #16002-D: build attribute vendor section TI missing in
"../lib/IQmath.lib<IQ14isqrt.obj>": compatibility cannot be determined还在,但是_IQ14isqrt(A)函数功能实现不了了,右键点击函数发现ERROR:cannot load from non-primitive location ,不知何解?望赐教。

user1494644:

回复 user1494644:

我在网上有找到一个解释,F28069F是内置InstaSpin-FOC电机控制算法在ROM里的芯片,两者外设,Flash/RAM地址都一样。不同点在于例如IQmath,正弦表放置的位置不一样。如果使用F2806xF请使用对应的。cmd file. 不知道对不对的

赞(0)
未经允许不得转载:TI中文支持网 » CCS5.5中调用IQmath函数问题
分享到: 更多 (0)