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

F28x中用RTOS的同时能用中断吗?

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

user6034716:调试发现是进入了rtos的hwi.c里面的hwi_getStackInfo,停在stackOverflow代码上面。

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

Green Deng:

回复 user6034716:

你好,初步判断是你写的程序堆栈溢出了,所以进入了Task_sleep()。
建议你用TI-RTOS自带的demo先测试一下。

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

user6034716:

回复 Green Deng:

Task_sleep()是主动添加为了让程序等待一段时间。之前rtos这一块是正常运行的,包括所有跟rtos和Task相关的都正常运行。现在想添加进中断,才出现了这样的问题。因此,怀疑是中断使能之后,跟rtos的软硬件设置可能有冲突造成的。所以想问一下,这两块是否有需要避开的冲突设置。

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

Green Deng:

回复 user6034716:

你好,方便将你的程序打包发过来我这边看一下吗?

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

user6034716:

回复 Green Deng:

你好,不太方便发送代码。

我现在调试下来,发现应该是rtos和中断系统存在着冲突,比如rtos也会用到中断,也会修改IER,像EPWM1这样的中断也需要初始化PIE,或者使能IER。

你们以前有过在同一程序中使用rtos和中断方式吗?

谢谢。

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

user6034716:

回复 Green Deng:

你们那边如果有同时使用rtos和内部中断的例程吗?有的话,发给我看一下,应该就能找到问题所在。

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

Green Deng:

回复 user6034716:

你看一下这份培训资料是否能有帮助:training.ti.com/ti-rtos-workshop-series-5-10-using-hwi
C2000这边用RTOS的情况相对较少,你也可以去E2E英文论坛上咨询一下这个问题:e2e.ti.com/…/171

现在的程序是基于RTOS来调用函数的,现在想添加一个中断(如EPWM1中断),相关中断代码写好之后,发现一运行就进入Task_sleep(),就出不来了。

user6034716:

回复 Green Deng:

谢谢,这个视频讲的很好。

赞(0)
未经允许不得转载:TI中文支持网 » F28x中用RTOS的同时能用中断吗?
分享到: 更多 (0)