主题中讨论的其他器件:C2000WARE
尊敬的香榭丽舍
我要向我们的客户询问这一点吗?
用户使用 CLA 任务8作为后台任务。
我们发现、只要使用 EALLOW/EDIS、这种简单的语句就不能用于后台任务。
1.以下代码
#pragma INTERRUPT (Cla1Task8_background、"background")
中断空 Cla1Task8_background()
{
…
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;
EDIS;
.
}
2.后台任务中调用的子内联函数中的以下代码。
#pragma INTERRUPT (Cla1Task8_background、"background")
中断空 Cla1Task8_background()
{
…
CONFIG_PWM_TO_GPIO ();
.
}
#pragma FUNC_ALWAYS_INLINE (CONFIG_PWM_TO_GPIO)
静态内联 void CONFIG_PWM_TO_GPIO()
{
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;
EDIS;
// GPIO_setPinConfig (GPIO_0_GPIO0);这是不允许的、因为内部使用了 EALLOW/EDIS。
}
编译器错误为:
错误#99923:CLA 不允许在后台任务中进行函数调用。 尝试内联函数。
CLA 后台任务中是否不允许 EALLOW/EDIS?
如果是、用户如何在 CLA 后台任务中修改受 EALLOW 保护的这些寄存器?
黄维恩
