![]() |
|
Модераторы: xvr |
![]()
|
|
| slater |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 168 Регистрация: 20.11.2009 Репутация: -2 Всего: -4 |
приветствую!
прошу помочь теоретически разобраться в следующих вопросах: 1. как динамически можно подгрузить модуль(драйвер). нагуглил пока что можно подгружать с помощью aliasов(сейчас разбираюсь с этим методом) Есть еще способы? например, по прерыванию? хотелось бы разобраться с этим вопросом, желательно на простейших примерах. 2. как я могу узнать(зная схемотехнику, соотв. и физические адресные линии проца) куда ядро размаппило в адресное пространство linux область памяти некого устройства. (например, чтобы меня поняли....есть например nor flash, ее адресное пространство, например, 2Мб, эти 2Мб маппятся, например, на адресное пространство процессора по адресам, ну например, начиная с 0х0000 0000 адреса) Есть способы посмотреть, что и как ядро размаппило периферию на свое адресное пространство? 3. в своем драйвере мне необходимо писать некие команды некому устройству. Дело в том, что я знаю физические адреса, а не виртуальные. Могу я как то записать определенные значения по определенным физическим адресам(например, при реализации своего файлового метода метода iocnt() ) из kernel-space и из user-space(из пользовательского процесса)? 4. как узнать, какие порты i/o работают через dma? заранее преогромное спасибо! Это сообщение отредактировал(а) slater - 14.3.2011, 12:07 |
|||
|
||||
| slater |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 168 Регистрация: 20.11.2009 Репутация: -2 Всего: -4 |
up
|
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: -1 Всего: 10 |
system( "insmod ..." ); ? как у вас устройство подключено? если через usb, то там стандартная практика написания usb драйверов, какие адреса вообщем из user-space пишут в драйвера через ioctl/write, а драйвер уже там сам рулит, при чем адреса |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
slater
1. init_module() 2. на пользовательском уровне это не имеет значение. Поэтому, если тебе это так нужно, то смотри исходники соответствующего модуля 3. есть определенные правила написания драйверов устройств. Поэтому, берешь и читаешь документацию и исходники уже готовых аналогичных устройств. 4. Если устройство подключено через шину PCI или аналогичную, то вся необходимая информация передается ОС. Если же через ISA или еще какую простую шину, то тут или пробовать все возможные варианты, или использовать platform driver (если ресурсы устройства вообще не меняются, как на встраиваемых системах) - в этом случае все физические ресурсы устройства прописываются в ядре, а драйверы уже считывают их и используют. Это позволяет писать общий драйвер устройства независимого от физического подключения. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |