4.7.5. devmem

devmem 是 Linux 系统中用于直接访问物理内存的命令行工具,支持对内存映射 I/O( MMIO)的读写操作,常用于开发、调试和底层系统配置‌。

4.7.5.1. 语法说明

以下是执行 devmem --help 输出的 Usage:

Usage: devmem ADDRESS [WIDTH [VALUE]]

Read/write from physical address

        ADDRESS Address to act upon
        WIDTH   Width (8/16/...)
        VALUE   Data to be written

4.7.5.2. 参数选项说明

  • ADDRESS:物理地址,需要读取或写入的内存地址,可以是十进制或十六进制形式。。

  • WIDTH:可选参数,指定读取或写入的数据宽度,可选值包括:

    • 8 : 8 位(字节)

    • 16 : 16 位(字节)

    • 32 : 32 位(字节)

    • 64 : 64 位(字节)

    • 默认值为 32 位(字节)

  • VALUE:可选参数,当进行写入操作时,指定要写入的数据值。

4.7.5.3. 各项命令选项及其功能说明

读取物理地址数据

aon_gpio_0 管脚为例,其基地址和驱动力对应地址如图:

devmem

命令:

root@buildroot:~# devmem 0x31040000 32

功能:

读取物理地址 0x31040000 上的 32 位数据

打印输出:

root@buildroot:/userdata/gmsl# devmem 0x31040000 32
0x06060606

字段解析

读取数据的第 [12:9] 位,与文档中默认的驱动力值 3 一致。

写入数据到物理地址

命令:

devmem 0x31040000 32 0x06060806

功能:

将指定的 0x06060806 写入到物理地址 0x31040000 ,对应驱动力等级为 4 ,数据宽度为 32 位。

打印输出:

通过回读 0x31040000 地址,确认写入成功。

root@buildroot:/userdata/gmsl# devmem 0x31040000 32
0x06060806

注意:

此次修改仅作示例参考, GPIO 引脚的驱动力等级需与硬件设计匹配,不可随意调整。