devmem

本文介绍了如何通过/dev/mem接口读写系统级芯片(SoC)的寄存器,涉及内核配置、BusyBox支持以及devmem工具的使用示例。配置内核时需设置CONFIG_DEVMEM选项,而在BusyBox中同样需要开启此选项。通过devmem命令,可以对特定地址进行32位读写操作,如读取0xFF250000的值或写入0x97000000的值。注意,若缺少/dev/mem节点,将无法执行相关操作。
摘要由CSDN通过智能技术生成

1. devmem作用:

读写soc相关寄存器的值,就是应用程序通过mmap函数对/dev/mem驱动中的mmap方法的使用,映射了设备的内存到用户空间,实现对这些物理地址的读写操作

2. 配置

内核中对devmem的支持,进行如下配置
读取soc相关寄存器的值,某些寄存器的值是不可以进行读取的,因此在读取时会发生错误
Symbol: DEVMEM [=y]                                                                      │
  │ Type  : bool                                                                             │
  │ Prompt: /dev/mem virtual device support                                                  │
  │   Location:                                                                              │
  │     -> Device Drivers                                                                    │
  │ (1)   -> Character devices                                                               │
  │   Defined at drivers/char/Kconfig:10

备注: 内核进行配置该选项:CONFIG_DEVMEM=y,验证是否配置成功会生成/dev/mem节点

busybox中对devmem的支持,进行如下配置:
Symbol: DEVMEM [=y]                                                                      │
  │ Prompt: devmem (2.5 kb)                                                                  │
  │   Defined at miscutils/Config.in:326                                                     │
  │   Location:                                                                              │
  │     -> Miscellaneous Utilities

备注: busybox中配置该选项CONFIG_DEVMEM=y,验证是否配置成功会生成应用程序devmem

3. 示例

[用法]
Usage: devmem ADDRESS [WIDTH [VALUE]]
读取:在地址0x97000000读取32bit值(WIDTH默认等于32, 可选值为[8, 16, 32, 64])
devmem 0xFF250000 32
0xBFDBEFFF
 
写入:在地址0x97000000写入32bit值0x7777ABCD
/dev # devmem 0x97000000 32 0x7777ABCD
/dev # devmem 0x97000000              
0x7777ABCD
 
注意:如果/dev下没有mem这个node,会出现错误:
/dev # devmem 0x97000000 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值