Czy na komputerze jednopłytkowym z systemem Linux można odczytać zawartość rejestrów konfiguracji urządzeń sterujących sprzętem? Myślę, że byłoby to opakowanie inw()
.
Szukam czegoś równoważnego md
komendzie dump ( ) pamięci U-boot , do użycia w kontekście debugowania sterownika.
Odpowiedzi:
Jeśli znasz adres fizyczny urządzenia, możesz użyć devmem2.
źródło
Nie wiem, czy możesz to zrobić bezpośrednio z jądrem wanilii.
Ale napisanie prostego sterownika, który używa „pliku” w / proc do eksportowania zawartości pamięci, którą chcesz zobaczyć, powinno być dość proste.
Następnie możesz odczytać „plik” za pomocą prostego skryptu i mieć dostęp do tej pamięci.
źródło
Mogę się całkowicie i całkowicie mylić w tej sprawie i wybacz mi, jeśli tak, ale jeśli polecenie md uboot po prostu odczytuje adresy pamięci mapowane na rejestry urządzeń i zwraca ci zawartość, czy nie możesz odczytać tych samych lokalizacji pamięci przy sprytnym użyciu z
dd if=/dev/mem ...
?źródło
Czy konfiguracja urządzenia PCI jest w / sys / bus / pci / devices / * / config jakiejkolwiek pomocy?
źródło
busybox devmem
busybox devmem
czy moja preferowana wersjadevmem2
została wymieniona na: stronie /unix//a/134661/32558devmem2
pojawiło się w wielu różnych wersjach z kilku upstamsów, zwłaszcza Buildroot http://free-electrons.com/pub/mirror/devmem2.cAle narzędzie Busybox jest bardziej kanoniczne, szeroko dostępne i utrzymywane.
Na przykład
devmem2
został odrzucony z Debiana: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (ale mimo to utworzono pakiet Ubuntu).Możesz go pobrać w Ubuntu za pomocą:
Zastosowanie: odczyt 4 bajty z adresu fizycznego
0x12345678
:Napisz
0x9abcdef0
na ten adres:Oto kilka fajnych sposobów na przetestowanie
devmem
: /programming/12040303/accessing-physical-address-from-user-space/45127890#45127890źródło
Istnieje narzędzie o nazwie pcimem ( https://github.com/billfarrow/pcimem )
Możesz go używać do czytania i pisania na / z urządzeń PCI.
źródło