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:
请问如何启用优化?
,