Jump to content

    
Sign in to follow this  
Oops

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

Recommended Posts

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

 

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

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

 

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

 

Спасибо!!!

Share this post


Link to post
Share on other sites
Здравствуйте!!!

 

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

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

 

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

 

Спасибо!!!

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

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

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

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

Share this post


Link to post
Share on other sites
Возникла необходимость увеличить количество устройств /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);
/* и т.д. */

 

Edited by faa

Share this post


Link to post
Share on other sites
Стесняюсь спросить, а зачем? ;)

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

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

Посмотрите исходник 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*

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

 

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

 

Спасибо!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this