Linuxを実行するシングルボードコンピューターで、ハードウェアを制御するデバイス構成レジスターの内容を読み取る方法はありますか?のラッパーになると思いますinw()
。
md
ドライバーのデバッグのコンテキストで使用されるU-bootメモリダンプ()コマンドに相当するものを探しています。
Linuxを実行するシングルボードコンピューターで、ハードウェアを制御するデバイス構成レジスターの内容を読み取る方法はありますか?のラッパーになると思いますinw()
。
md
ドライバーのデバッグのコンテキストで使用されるU-bootメモリダンプ()コマンドに相当するものを探しています。
回答:
私はこれについて完全に間違っている可能性がありますが、私がそうであれば私を許しますが、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デバイスとの間で読み書きを行うために使用できます。