web-dev-qa-db-fra.com

Lire une adresse mémoire spécifique via / dev / mem à partir de la ligne de commande

Pour le contexte, programmer un pilote pour interagir avec un noyau IP FPGA sur un Linux embarqué (Yocto: krogoth) sur une carte Xilinx.

À des fins de débogage, je voudrais lire des adresses mémoire spécifiques de la mémoire physique./dev/mem semble prometteur. Je voulais demander comment je peux lire la valeur d'une adresse de mémoire physique spécifique à partir de la ligne de commande. J'espérais quelque chose dans le sens de cat /dev/mem 0x2000000 pour lire l'octet à 0x2000000.

6
Moritz

Habituellement, vous devriez déjà avoir installé l'outil devmem dans votre image Linux:

$ devmem 0x2000000

Si vous ne le faites pas cependant, vous pouvez aller dans le menu Busybox et le modifier pour vous assurer qu'il est compilé et installé:

$ bitbake busybox -c menuconfig

(recherche devmem)

7
J. In

Hexdump est souvent installé dans les systèmes embarqués. Ensuite, vous pouvez faire

hexdump -C --skip 0x2000000 /dev/mem | head

afin de lire plus d'un seul mot et de le voir décodé de différentes manières. (Le hexdump de busybox est un peu plus limité, mais toujours très utile.)

4
Popup