如何访问UART寄存器,它是Linux中地址0x2530c00的内存映射IO



我的主板有一个8250 UART,可以在内部环回模式下配置。我想测试这个UART,并想为内部环回配置它。此UART在0x2530c00地址处进行MMIOed。我可以通过 linux 用户级代码来做到这一点吗?还是我需要编写内核模块?我需要使用哪些功能来访问UART寄存器。我的目标是在 MCTRL 寄存器中设置 LOOP 位并设置内部环回模式并通过发送数据来测试 UART。

请指导我。

谢谢。

如果您有 root 访问权限,则可以通过打开设备/dev/map然后mmap() -ing 要获取的地址来访问原始物理内存。

不要忘记使用volatile指针从该内存进行读写。

此外,如果需要访问 I/O 端口,请阅读 man 2 iopermman 2 outb

最新更新