Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 04 апр 2020, 09:19




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Работа с физической памятью как?
СообщениеДобавлено: 20 авг 2003, 12:25 
Мне необходимо из моей программы на С++ обратится к ячейки памяти с фиксированным адресом для чтения/записи если кто может подсказать как это сделать под Linux или где прочитать буду бесконечно признателен.
P.S. Если мой вопрос показался вам лаймерским просьба не пинать меня ногами сильно. Я только недавно начал пытаться программировать под Linux. :oops:


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2003, 13:02 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 30.08.2002
Сообщения: 2339
Откуда: Minsk
по мойму - из user space никак
тут вам не здесь
программы имеют дело только с виртуальными адресами, которые маппятся на реальные в ядре

_________________
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2003, 15:18 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
Объясни, зачем тебе обращаться к фиксированому адресу - и тебе объяснт, как грамотно этого избежать.

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2003, 15:47 
Интересующийся

У нас с: 19.08.2003
Сообщения: 65
Откуда: Anwerpen, Belgium / Belarus
Скорее всего, Colobok путает понятия физическая и виртуальная память - а именно для него это одно и то же. В любом случае, уточни, для что ты пытаешься сделать своей программой и тогда можно будет рассмотреть возможные решения проблемы (если она еще останется)

_________________
www.xenomai.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 21 авг 2003, 09:56 
Программа пишется для взаимодействия с платой (плата не стандартная и драйверов к ней нет), плата пишет и читает данные в эту ячейку и таким образом осуществляется взаимодействие с программным обеспечение. Как я понимаю (поправьте меня пожалуйста если я не прав) что бы реализовать работу с платой в Linux надо написать драйвер/модуль который необходимо встроить в ядро ОС?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 21 авг 2003, 10:17 
Интересующийся

У нас с: 19.08.2003
Сообщения: 65
Откуда: Anwerpen, Belgium / Belarus
в любой современной ОС для непосредственного доступа к железу необходимо аботать в 0-ом кольце - а это драйвер обычно, ну уже потом можно взаимодействовать с этим драйвером через некоторый интерфейс из 3-его кольца, т.е. пользовательского режима... далее написание драйвера обычно зависит от того куда и как эта плата цепляется (имеется в виду через какой интерфейс PC) ... в принципе в сети, пожалуй, можно найти достаточно инфы... попробуй в поисковике - Linux Device Drivers , Alessandro Rubini правда на англ. яз. - мот поможет хотя бы получить представление о написании драйверов

_________________
www.xenomai.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 22 авг 2003, 12:20 
Большое спасибо всем за помощь


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 22 авг 2003, 13:01 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
Лдно замечание: если плата пишет в фиксированую ячейку памяти, то предстоит нехилая работенка: как минимум, нужно запретить ядру размещать программы в этом участке памяти. Или это не ячейка памяти а порт ввода/вывода?

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 22 авг 2003, 13:31 
Интересующийся

У нас с: 19.08.2003
Сообщения: 65
Откуда: Anwerpen, Belgium / Belarus
скорее должен быть порт ввода-вывода, либо плата должна поддерживать некоторый интерфейс инициализации - когда ей будут сообщены адреса по которым она сможет работать ... далее мне кажется сомнительно что плата сама по себе может писать в оперативную память компа - чтоли некоторая DMA из платы в память - в любом случае для этого тем более необходим интерфейс инициализации
т.е.
либо - порты ввода -вывода (логично )
либо - наличие некоторого интерфейса апаратной инициализации для платы когда ей можно назначить некоторые адреса (например ядром )

_________________
www.xenomai.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 22 авг 2003, 22:34 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 25.08.2002
Сообщения: 425
Откуда: Minsk
А если порты - то всё просто (если нужно только по-быстрому протестить некритичную к скорости обмена данными железку):
man: ioperm(2)
inb, outb (функции не документированы, поскольку зловредны)

_________________
"Но в декабре я по ошибке позвонил вместо
модема на винчестер." (Linus Torvalds, "Just for fun")


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 07 сен 2003, 00:36 
See man 4 mem. Use mmap of /dev/mem.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2003, 01:21 
См. книгу:

Linux Device Drivers, 2nd Edition

http://www.xml.com/ldd/chapter/book/index.html


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100