您好,
我的客户提到下面的 LwIP 演示示示例。
http://git.ti.com/hercules_examples/hercules_examples/trees/master/Application/LwIP
他希望在系统中实施 LwIP 代码,并有几个问题。
在下面的文件中,
\Hercules_examples-master\Application\ActiveWebserver\1.1.0\examples\HDK\src\lwip_main.c
在第500行和之后,有 IRQ 中断处理程序。
他希望使用 FIQ 而不是 IRQ 来处理这些功能。
/*
** Interrupt Handler for Core 0 Receive interrupt
*/
volatile int countEMACCore0RxIsr = 0;
#pragma INTERRUPT(EMACCore0RxIsr, IRQ)
void EMACCore0RxIsr(void)
{
countEMACCore0RxIsr++;
lwIPRxIntHandler(0);
}
/*
** Interrupt Handler for Core 0 Transmit interrupt
*/
volatile int countEMACCore0TxIsr = 0;
#pragma INTERRUPT(EMACCore0TxIsr, IRQ)
void EMACCore0TxIsr(void)
{
countEMACCore0TxIsr++;
lwIPTxIntHandler(0);
}
void IntMasterIRQEnable(void)
{
_enable_IRQ();
return;
}
void IntMasterIRQDisable(void)
{
_disable_IRQ();
return;
}队列
1)有 IntMasterIRQEnable()和 IntMasterIRQDisable()函数。
据客户称,他们似乎在 IRQ ISR 内被呼叫。
ISR 内部启用/禁用 IRQ 的原因是什么?
2)客户希望使用 FIQ,因此在 FIQ ISR 内启用/禁用 IRQ 不好。
如何修改这些代码以使用 FIQ 而不是 IRQ?
谢谢,还有雷格斯,
柯一朗·塔希罗