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

CLA任务,子函数调用无法正常运行

Part Number:TMS320F28377D

我测试CLA任务时发现,当我调用含参数子函数时,CLA任务无法正常运行,总是有任务溢出,相关变量只更新一次。当把子函数改为内联函数时,可以正常运行。文档说CLA 编译器支持多个嵌套级别的函数调用。CLA 编译器还支持调用具有两个以上参数的函数。只是不支持递归调用,我这个子函数不是递归调用,为何不能正常运行。

桀灵玉:

难道是嵌套不能超过3级?哪个文档有说明么

,

Yale Li:

我已经咨询了相关工程师:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1246121/tms320f28377d-cla-task-call-function-cannot-working-properly

,

桀灵玉:

问题找到了,.scratchpad放入page1 数据段就正常了

,

Yale Li:

好的,感谢分享

,

?? ?:

output attributes/section page origin length input sections——– —- ———- ———- —————-ramfuncs 0 00008000 00000000 UNINITIALIZED

.const_cla * 0   00008800 00000000 UNINITIALIZED

.scratchpad * 0    00008a78 0000011e UNINITIALIZED 00008a78 0000010a cla_task.obj (.scratchpad:Cla1Prog:_epwm_DSP_GY_TX_CLASubsystem)

是这里的Page0要改为Page1吗?

,

Yale Li:

你看的这个是.map文件吧?是在.cmd文件中将.scratchpad放入page1。

,

Jim:

请问您知道这个问题吗

float a; float b; //… and so on

interrupt void Cla1Task1 (void)

{ //do stuff with a, b, … and so on }

interrupt void Cla1Task8 (void)

{ a=0; b=0; //… and so on }

类似如此,我在.cal文件开头对变量进行定义,然后我只在task1和task8之间进行调用(task8的计算需要改变task1之间的调用)

请问我仅这样定义行吗 还需要单独对每个变量在.c文件中进行类似#pragma DATA_SECTION(IA,"Cla1ToCpuMsgRAM");)这种定义吗

,

Yale Li:

我的同事会在你的原始问题中跟进:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/770897/tms320f28377d-cla

赞(0)
未经允许不得转载:TI中文支持网 » CLA任务,子函数调用无法正常运行
分享到: 更多 (0)