在运行Linux的单板计算机上,是否可以读取控制硬件的设备配置寄存器的内容?我认为这将是的包装inw()
。
我正在寻找与U-boot内存转储(md
)命令等效的命令,以便在驱动程序调试的上下文中使用。
在运行Linux的单板计算机上,是否可以读取控制硬件的设备配置寄存器的内容?我认为这将是的包装inw()
。
我正在寻找与U-boot内存转储(md
)命令等效的命令,以便在驱动程序调试的上下文中使用。
Answers:
我对此可能是完全完全错误的,请原谅我,但是如果uboot的md命令只是读取映射到设备寄存器的内存地址并将内容返回给您,那么您不能通过巧妙的使用来读取相同的内存位置的dd if=/dev/mem ...
?
busybox devmem
busybox devmem
是我的首选版本,网址devmem2
为:https : //unix.stackexchange.com/a/134661/32558
devmem2
来自多个上游版本的版本很多,特别是Buildroot http://free-electrons.com/pub/mirror/devmem2.c
但是Busybox实用工具更规范,更广泛地使用和维护。
例如,devmem2
被Debian拒绝了:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805(但是创建了一个Ubuntu软件包)。
您可以通过以下方式在Ubuntu中获取它:
sudo apt-get install busybox
用法:从物理地址读取4个字节0x12345678
:
sudo busybox devmem 0x12345678
写入0x9abcdef0
该地址:
sudo busybox devmem 0x12345678 w 0x9abcdef0
以下是一些很酷的测试方法devmem
:https : //stackoverflow.com/questions/12040303/accessing-physical-address-from-user-space/45127890#45127890
有一个名为pcimem的实用程序(https://github.com/billfarrow/pcimem)
您可以使用它来读写pci设备。