Перейти к содержанию
    

Как в Linux увеличить количество устройств /dev/mem

Здравствуйте!!!

 

Возникла необходимость увеличить количество устройств /dev/mem для доступа к физическим адресам.

Используется Операционная Система Linux 2.6

 

Подскажите как это сделать?

 

Спасибо!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!!!

 

Возникла необходимость увеличить количество устройств /dev/mem для доступа к физическим адресам.

Используется Операционная Система Linux 2.6

 

Подскажите как это сделать?

 

Спасибо!!!

по моему это в лоб не рещается

причина простая, кернел при распаковке, детектит последние адреса, и распаковывается в конец памяти, таким образом он уже по умолчанию работает с всей памятью.

возможно существуют на кернел.орге патчи для такого.

но сомниваюсь в этом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла необходимость увеличить количество устройств /dev/mem для доступа к физическим адресам.

Используется Операционная Система Linux 2.6

Стесняюсь спросить, а зачем? ;)

Одной программе достаточно одного такого девайса.

А у других программ будет у каждой свой экземпляр.

Посмотрите исходник devmem.c - все сразу станет ясно.

 

Или так

if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL;
...
map_bram = mmap(NULL, MAP_RAM_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, RAM_ADDR);
map_regs = mmap(NULL, MAP_REG_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, REG_ADDR);
/* и т.д. */

 

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стесняюсь спросить, а зачем? ;)

Одной программе достаточно одного такого девайса.

А у других программ будет у каждой свой экземпляр.

Посмотрите исходник devmem.c - все сразу станет ясно.

 

Или так

if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL;
...
map_bram = mmap(NULL, MAP_RAM_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, RAM_ADDR);
map_regs = mmap(NULL, MAP_REG_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, REG_ADDR);
/* и т.д. */

 

В общем чтобы получить доступ к физическим адресам Девайса и работать с ним, я использовал устрйство /dev/mem.

Затем появился еще один нестандартный Девайс*, думал может можно будет создать еще одно устройство /dev/mem*

и используя его тоже организовать работу с этим Девайсом.

 

(опыта в разработке драйверов пока нету и времени мало чтобы освоить, проблема собственно в получении доступа к физическим адресам устройства )

 

Спасибо!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...