LPC845 DMA 似乎无法写入 0xA0000000 的 GPIO 地址。
尝试进行 GPIO 写入时,出现 DMA0 -> ERRINT=1 错误。
作为故障排除步骤,我将目标地址更改为 RAM,并且没有收到 ERRINT 标志。
我还没有找到确凿的资料来证明这是否真的不可能。
我确实找到了一份资料,虽然并不确凿,但暗示情况可能如此:
https://community.nxp.com/t5/LPC-Microcontrollers/Lpc-824-DMA-to-GPIO/mp/650903
请问有人可以确认一下吗?
谢谢你的提问。
是的,LPC845 DMA 控制器不能直接写入地址为 0xA0000000 的 GPIO 寄存器空间。GPIO 外设通过 Cortex-M0+ I/O 总线连接,以实现 CPU 快速访问;而 DMA 控制器则通过 AHB/APB 总线基础设施访问存储器和支持的外设。
此外,LPC845 数据手册指出:
“DMA 控制器可以访问所有存储器以及 USART、SPI、I2C、DAC 和电容式触摸。”
GPIO 不在 DMA 可访问的外设列表中。因此,不支持向 GPIO 寄存器空间进行 DMA 传输,并且会产生传输错误 (ERRINT),这与您观察到的行为一致。
谢谢!
BR
爱丽丝