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

TMS320F280049 CLA Background 内联函数

Other Parts Discussed in Thread:C2000WARE但是现在的情况是我在BackgroundTask中调用内联函数后,编译器编译报错,在其他claTask任务中可以调用
提示:"../source/App/LoopCtrl_CLATask.cla", line 67: CLA does not permit function calls in background tasks. Optimization must be enabled for function inlining.

Susan Yang:

为和前面的问题分开,我们重新将该内联函数问题建一个新帖讨论

,

Susan Yang:

请问您的编译器版本是多少?是否启用了优化?

在TMS320C28x Optimizing C/C++ Compiler v20.12.0.STS User's Guide中有如下说明

www.ti.com/…/spru514v.pdf

The CLA compiler does not permit function calls to be made in background tasks. Inline functions are permitted and can be used instead.

关于内联函数的使用,请参考
software-dl.ti.com/…/inlining.html

,

Jasper:

编译器版本是CCS V9.1

,

Jasper:

未启动优化

,

Susan Yang:

若是可以的话,请给出相关代码,我来试一下

,

Jasper:

我在你们的官方关于cla Background的例程里面做了相似的变更,编译器报同样的错误

错误提示:CLA does not permit function calls in background tasks. Optimization must be enabled for function inlining.

变更如下:
在cla_ex1_background_task_shared.h添加:

#pragma FUNC_ALWAYS_INLINE(CLA_OS)
inline void CLA_OS(void)

{
//CLA_TEST1_TOG();//stPFCLoopContrlPara.aa++;if( CpuTimer0Regs.TCR.bit.TIF ==1){//stPFCLoopContrlPara.bb++;CpuTimer0Regs.TCR.bit.TIF =1;}
}

在cla_ex1_background_task_cla.cla中的 void Cla1BackgroundTask ( void )函数下添加:
CLA_OS();

官方例程:C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f28004x\examples\cla

,

Susan Yang:

根据错误提示,您必须要使用优化

Optimization must be enabled for function inlining.

我使用您的代码添加到例程,启动优化后可以编译成功

,

Jasper:

请问如何启用优化?

,

Susan Yang:

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049 CLA Background 内联函数
分享到: 更多 (0)