Доступ к реестру Beagle Bone Ram - PullRequest
1 голос
/ 21 марта 2019

Я довольно новичок в C в целом и пытаюсь провести небольшую проверку оперативной памяти на встроенном Linux.

Я работаю с Beagle Bone Black revC и Debian 6.3.0.

Для некоторых функций я хочу читать и записывать из / в реестр RAM, чтобы, например, проверить работоспособность шины данных.

Теоретически я понимаю, что нужно сделать.Открыть / mem / dev -> отобразить некоторую память -> записать и прочитать на / с физического адреса

Теперь, как мне узнать, какие адреса я могу использовать для таких задач?

Редактировать:

Я воспользовался советом комментариев и отобразил некоторую память с помощью mmap.Если я правильно понимаю, «PROT_WRITE» оставляет мне доступными для записи адреса памяти.Реализуя это, я могу считывать содержимое этой части памяти.

map = (int*)(mmap(NULL,MAPPED_SIZE,PROT_READ|PROT_WRITE,MAP_SHARED,_fdmem,DDR_RAM_PHYS));

Теперь я все еще сталкиваюсь с ошибками сегментации, когда пытаюсь использовать эти физические адреса.Читая man-страницу mmap, я задаюсь вопросом, получаю ли я в итоге доступные для записи адреса или просто пытаюсь писать вообще?Например, если я отображаю физические адреса Ядра с помощью PROT_WRITE, я получаю ошибку отображения или ошибка возникает при попытке записи на эти адреса?

...