从命令行通过 /dev/mem 读取特定内存地址

Read a specific memory address via /dev/mem from the command line

对于上下文,编写驱动程序以与 Xilinx 板上的嵌入式 Linux(Yocto:krogoth)上的 FPGA IP 内核交互。

出于调试目的,我想从物理内存中读出特定的内存地址。 /dev/mem 看起来很有希望。我想问一下如何从命令行读出特定物理内存地址的值。我希望按照 cat /dev/mem 0x2000000 的方式读取 0x2000000 处的字节。

通常您应该已经在 Linux 映像中安装了 devmem 工具:

$ devmem 0x2000000

但是,如果您不这样做,您可以转到 Busybox 菜单并调整它以确保它已被编译和安装:

$ bitbake busybox -c menuconfig

(搜索 devmem)

Hexdump通常安装在嵌入式系统中。然后你可以做

hexdump -C --skip 0x2000000 /dev/mem | head

为了阅读多个单词,并以各种方式对其进行解码。 (busybox hexdump 有一些限制,但仍然非常有用。)