工具/软件:Linux
在我们的最后一个项目中,我们将 WiLink 8与 Renesas ARM 处理器集成在一起,并且必须修改 wlcore Linux 内核驱动程序中的 wlcore_IRQ()函数以清除中断(WLAN_IRQ),从而使无线电正常工作。 如果我们没有清除它、示波器显示线路保持高电平、无线电不工作。
为了清除它、我们执行了以下操作:
//我们的定制
void __iomem *irc1 = IOMEM (0xfcfef804);
U16值;
值=__raW_readw (irc1);
值= 0x0000;
_raW_writew (value、irc1);
在 AM5728上、我看到 GPIO IRQ 保持高电平的行为相同、因此我认为需要清除它。 我在论坛上没有找到任何东西作为如何做到这一点的例子。
当我搜索 TRM 时、第6875页(和前几页)显示了 GPIO_IRQSTATUS_CLR_X 寄存器。 描述为“向某个位写入1会禁用相应的中断事件。”。 这是否意味着清除它?
我的 GPIO 复用为 GPIO 1_25:
WLAN_PINS_DEFAULT:WLAN_PINS_DEFAULT{ pinctrl-single、引脚=< - 0x234 (PIN_OUTPUT 下拉| MUX_MODE14)/* mmc3_dat6.GPIO1_24 */ - 0x1c8 (PIN_INPUT 下拉| MUX_MODE14)/* mmc3_dat7.GPIO1_25 */ + 0x39c (PIN_OUTPUT 下拉| MUX_MODE14)/* mmc3_dat6.GPIO1_24 */ + 0x3a0 (PIN_INPUT_PULLUX | MUX_MODE14)/* mmc3_dat7.GPIO1_25 * >; };
如何清除此 IRQ 事件? 谢谢。