Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обращение к памяти по абсолютному адресу

2.6K
08 июля 2005 года
NinthBit
43 / / 31.01.2005
Как из С обратиться к области памяти по абсолютному адресу?

Просто, насколько я понимаю, простое обращение по указателю, приведет обращение к области памяти {offset области памяти,выделенной ОС программе} + {адрес указателя}. Если не так - поправьте пожалуйста.

При этом надо не получить segmentation fault.
2
15 июля 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by NinthBit
Как из С обратиться к области памяти по абсолютному адресу?



а никак... как ты правильно заметил, адрес, содержащийся в указателе - это смещение относительно начала области памяти, выделенной процессу. логически - от 0х0 до 0хFFFFFFFF. обратится к памяти другого процесса в общем случае нельзя.
а зачем это надо?

2.6K
15 июля 2005 года
NinthBit
43 / / 31.01.2005
Цитата:
squirL
а зачем это надо?


Проблема следующая:
Есть ethernet коммутатор (точнее - мост, основанный на Micrel CENTAUR KS8695P), который работает на основе армовского процессора.
В его (как я понял процессора) регистрах содержится необходимая информация, которую требуется прочитать/переписать.
Устроено все так, что обращение к регистрам идет при обращении к памяти (оперативной видимо) по заданным адресам:

Цитата:
The KS8695P System Configuration Registers (SCR’s) are located in a block of 64 kbytes in the
host memory address space.

2
15 июля 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by NinthBit
Проблема следующая:
Есть ethernet коммутатор (точнее - мост, основанный на Micrel CENTAUR KS8695P), который работает на основе армовского процессора.
В его (как я понял процессора) регистрах содержится необходимая информация, которую требуется прочитать/переписать.
Устроено все так, что обращение к регистрам идет при обращении к памяти (оперативной видимо) по заданным адресам:


ну брат ты шутник... вообще то весь наш предыдущий разговор теряет смысл, потому что у процессоров ARM абсолютно другая архитектура и приципы работы с памятью. я то говорил про Linux. а у вас есть компилятор C для ARM? :)

2.6K
15 июля 2005 года
NinthBit
43 / / 31.01.2005
Цитата:
Originally posted by squirL
ну брат ты шутник... вообще то весь наш предыдущий разговор теряет смысл, потому что у процессоров ARM абсолютно другая архитектура и приципы работы с памятью. я то говорил про Linux. а у вас есть компилятор C для ARM? :)


Так там и стоит линукс на ядре 2.4.16-rmk2.
Компилятор есть. Более того, им уже скомпилированы и запущены рабочие программы. =)

----------------
Итого: из user-space получить доступ к нужным регистрам невозможно. Как решение проблемы придется использовать экспорт данных из модуля ядра в пользовательское пространство. Через /proc скорее всего буду делать.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог