Linux를 실행하는 단일 보드 컴퓨터에서 하드웨어를 제어하는 장치 구성 레지스터의 내용을 읽는 방법이 있습니까? 나는 그것이 래퍼 일 것이라고 생각한다 inw()
.
md
드라이버 디버깅 컨텍스트에서 사용할 U-boot memory dump ( ) 명령 과 동등한 것을 찾고 있습니다.
Linux를 실행하는 단일 보드 컴퓨터에서 하드웨어를 제어하는 장치 구성 레지스터의 내용을 읽는 방법이 있습니까? 나는 그것이 래퍼 일 것이라고 생각한다 inw()
.
md
드라이버 디버깅 컨텍스트에서 사용할 U-boot memory dump ( ) 명령 과 동등한 것을 찾고 있습니다.
답변:
나는 이것에 대해 완전히 그리고 완전히 틀릴 수 있고, 내가 있다면 용서하지만, uboot의 md 명령이 장치 레지스터에 매핑 된 메모리 주소를 읽고 내용을 반환하면 현명하게 사용하여 동일한 메모리 위치를 읽을 수 없습니다 의 dd if=/dev/mem ...
?
busybox devmem
busybox devmem
/unix//a/134661/32558devmem2
에서 내가 선호하는 버전입니다 .
devmem2
Buildroot http://free-electrons.com/pub/mirror/devmem2.c 와 같이 여러 업스트림에서 여러 버전으로 제공되었습니다.
그러나 Busybox 유틸리티는보다 표준적이고 광범위하게 사용 가능하며 유지 관리됩니다.
예를 들어, devmem2
데비안에서 거부되었습니다 : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (그러나 우분투 패키지는 반드시 만들어졌습니다).
우분투에서 다음을 얻을 수 있습니다.
sudo apt-get install busybox
사용법 : 실제 주소에서 4 바이트를 읽습니다 0x12345678
.
sudo busybox devmem 0x12345678
0x9abcdef0
그 주소에 쓰십시오 :
sudo busybox devmem 0x12345678 w 0x9abcdef0
다음은 멋진 테스트 방법입니다 devmem
. /programming/12040303/accessing-physical-address-from-user-space/45127890#45127890
pcimem 이라는 유틸리티가 있습니다 ( https://github.com/billfarrow/pcimem )
pci 장치에서 읽고 쓰는 데 사용할 수 있습니다.