Есть ли способ прочитать содержимое регистров конфигурации устройства, управляющих аппаратным обеспечением, на одноплатном компьютере под управлением Linux? Я думаю, что это будет обертка для inw()
.
Я ищу что-то эквивалентное команде дампа памяти U-boot md
, которое будет использоваться в контексте отладки драйвера.
Ответы:
Если вы знаете физический адрес устройства, вы можете использовать devmem2.
источник
Я не знаю, можете ли вы сделать это напрямую с ванильным ядром.
Но было бы довольно просто написать простой драйвер, который использует «файл» в / proc для экспорта содержимого памяти, которое вы хотели бы видеть.
Затем вы можете прочитать свой «файл» с помощью простого скрипта и получить доступ к этой памяти.
источник
Я мог бы быть совершенно и совершенно неправ в этом, и простите меня, если я ошибаюсь, но если команда md uboot просто читает адреса памяти, сопоставленные с регистрами устройств, и возвращает вам содержимое, вы не могли бы прочитать те же самые области памяти с умным использованием из
dd if=/dev/mem ...
?источник
Конфигурация устройства PCI в / sys / bus / pci / devices / * / config помогает?
источник
busybox devmem
busybox devmem
моя любимая версия,devmem2
которая была упомянута по адресу: /unix//a/134661/32558devmem2
пришли во многих различных версиях из нескольких апстримов, в частности, Buildroot http://free-electrons.com/pub/mirror/devmem2.cНо утилита Busybox более канонична, широко доступна и поддерживается.
Например,
devmem2
было отклонено из Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (но пакет Ubuntu был создан, тем не менее).Вы можете получить его в Ubuntu с помощью:
Использование: прочитать 4 байта с физического адреса
0x12345678
:Пишите
0x9abcdef0
по этому адресу:Вот несколько интересных способов проверить
devmem
это: /programming/12040303/accessing-physical-address-from-user-space/45127890#45127890источник
Есть утилита под названием pcimem ( https://github.com/billfarrow/pcimem )
Вы можете использовать его для чтения и записи на / с устройств pci.
источник