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

TMS320F28388D: 关于CLA无法触发任务执行问题

Part Number:TMS320F28388D

问题1:

由于项目开发需要,我在自建工程上需要使用到CPU1.CLA,我按照例程,使用syscfg在CPU1配置好CLA初始化相关代码后,在epwm产生的中断函数里执行强制软件中断触发CLATask1任务,在调试时观察寄存器MIFR和MIER相应位都已经置1了,我在CLA任务里执行了简单的变量赋值任务,在调试时发现变量不能正常赋值,判断并没有进入CLA执行任务,想请教一下这是什么原因导致的,由于是项目开发,没法发源码请见谅,想知道有什么可能的原因会导致无法进入CLA任务。

问题2:

我配置epwm5中断周期为62.5us,在程序中还配置了CM到CPU1的IPC0和IPC1中断,这核间中断不断执行数据交互,经测试发现epwm5中断周期不再是62.5us了,我查数据手册发现epwm5中段优先级是大于CMTOCPU中断的,不明白为什么epwm5会被其他中断干扰?

Ben Qin:

你好,

TFTMing 说:想知道有什么可能的原因会导致无法进入CLA任务。

我认为应该还是你的配置原因。由于你不方便公开代码,只能建议对照例程检查下配置。

TFTMing 说:

不明白为什么epwm5会被其他中断干扰?

将CM到CPU的中端屏蔽后是epwm周期正常的吗?你还配置了其他的中断吗?

,

TFTMing:

Ben Qin 说:将CM到CPU的中端屏蔽后是epwm周期正常的吗?你还配置了其他的中断吗?

屏蔽IPC后epwm中断是正常的62.5us,没有其他中断了,我在IPC中断里有许多for循环,会不会是这个导致的?

Ben Qin 说:我认为应该还是你的配置原因。由于你不方便公开代码,只能建议对照例程检查下配置。

好的,问题已经找到了,确实是配置上出现了问题。

,

Ben Qin:

TFTMing 说:屏蔽IPC后epwm中断是正常的62.5us,没有其他中断了,我在IPC中断里有许多for循环,会不会是这个导致的?

有可能。如果PWM中断在IPC中断运行时触发,那么也会影响PWM中断周期。

,

TFTMing:

Ben Qin 说:有可能。如果PWM中断在IPC中断运行时触发,那么也会影响PWM中断周期。

IPC中断在运行时,如果有更高优先级的中断触发(epwm5),不是应该会产生中断嵌套吗?

2、另外,关于CLA我还有疑问,就是在例程cla_ex6_offloading中,在.c文件上将变量放在了cla_shared : > RAMLS1上,这样就可以在CLA上读取这变量值,那CLA与CPU之间为什么还需要MSGRAM来传递数据呢?

,

Ben Qin:

TFTMing 说:IPC中断在运行时,如果有更高优先级的中断触发(epwm5),不是应该会产生中断嵌套吗?

默认是不能嵌套的:

https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html

TFTMing 说:在.c文件上将变量放在了cla_shared : > RAMLS1上,

你指的是这段代码吧?

这里只是定义和初始化一些数据,然后将其放在cla_shared的当中。

,

TFTMing:

Ben Qin 说:这里只是定义和初始化一些数据,然后将其放在cla_shared的当中。

但定义的这些数据能同时在c代码读写和在cla代码上读写,为什么还需要使用MSGRAM来传递数据?

,

Ben Qin:

我认为应该与读写保护功能有关:

,

TFTMing:

好的,明白,谢谢你。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28388D: 关于CLA无法触发任务执行问题
分享到: 更多 (0)