Other Parts Discussed in Thread:C2000WARE
在CLA背景任务中使用PID控制函数 DCL_runPI_L2 并打开 –opt_level:1
CCS报错:
#99923 "../cla_ex4_pwm_control_cla.cla", line 533: CLA does not permit function calls in background tasks. Try inlining function.
在cla文件加入
#pragma FUNC_ALWAYS_INLINE(DCL_runPI_L2)之后也没有任何作用
工程设置也没有disable inlining,是哪里还需要设置吗?
shu hai feng:
软件环境:ccs1030 ,C2000Ware_3_04_00_00,C2000Ware_DigitalPower_SDK_3_02_00_00
硬件:launchxl 280049c
,
Susan Yang:
shu hai feng 说:
在cla文件加入
#pragma FUNC_ALWAYS_INLINE(DCL_runPI_L2)之后也没有任何作用
是否有什么编译错误等?DCL_runPI_L2函数您是定义在哪里?
您可以参考我之前的链接
,
shu hai feng:
参考了一下之前的解决方案,我的工程已经打开了优化 __opt_level:0,1,2,3,4都试过
错误如下:
#99923 "../cla_ex4_pwm_control_cla.cla", line 532: CLA does not permit function calls in background tasks. Try inlining function.DCL_runPI_L2 是在官方控制库(DCLCLA.H)里面定义的:extern float32_t DCL_runPI_L2(DCL_PI_CLA *p, float32_t rk, float32_t yk);
控制库路径:D:\ti\c2000\C2000Ware_DigitalPower_SDK_3_02_00_00\c2000ware\libraries\control\DCL\c28\include
具体的函数实现在:
D:\ti\c2000\C2000Ware_DigitalPower_SDK_3_02_00_00\c2000ware\libraries\control\DCL\c28\source 目录下的:DCL_PI_L2.asm
,
Susan Yang:
若是可以的话,请您私信一下工程,我们来具体看一下,谢谢
,
shu hai feng:
已私信
,
Susan Yang:
我试了一下下面的配置,是可以编译成功的
,
shu hai feng:
谢谢解答。
但是不开优化的话,CPU里面的程序执行时间几乎翻倍,这个也不可能使用的。
如下图:
cycle_统计了CPU程序执行的时钟周期数,cycle_max2 为最大执行周期数 , cycle_avg2为平均执行周期数
可以看到不开优化执行时间几乎是开优化之后的2倍,而且代码尺寸也会变大30%。
开优化CPU环路执行时间:
不开优化CPU环路执行时间:
或者换一种思路:
1.设置CPU代码和CLA代码的优化。
2.手动在C文件里面添加一段汇编函数,这个是否有官方例程?
,
Susan Yang:
抱歉,之前漏掉了您的回复。请问现在问题解决了吗?
,
shu hai feng:
暂时还没有解决。现在只能不开优化,但是程序执行时间几乎翻倍。
问下,开优化之后在CLA background task里面不允许call是基于什么考虑的?试过把background task 的“background”声明去掉,开优化也能编译成功,不知道这样会有什么风险?
,
Susan Yang:
shu hai feng 说:问下,开优化之后在CLA background task里面不允许call是基于什么考虑的?
这个问题建议您去英文论坛咨询一下相关专家
shu hai feng 说:试过把background task 的“background”声明去掉,开优化也能编译成功,不知道这样会有什么风险?
“background”声明去掉的话,就相当于是task8了,因为两者使用相同的trigger source。这样就没有一直在后台运行的任务了
,
shu hai feng:
只是把这个声明去掉,这个任务的地址依然是分配给背景任务,并非task8 .也就是说背景任务使用了一个没有声明为"background"的任务,不确定这样这个包含call的任务运行的时候被打断会发生什么。
,
shu hai feng:
请问英文论坛在哪里添加公司邮箱?
To post on TI E2E™ design support forums, you must have a valid company email address in your myTI account. If you have a valid company email address, please add it to your account by following the instructions in the myTI account FAQ (Note: there may be an ~10 minute delay for this email change to propagate to all necessary systems). If you don’t, we encourage you to search the TI E2E design support forums for existing answers.
,
TI中文支持网








