Доступ к железу по адресам
// Driver Developer Kit
Прямой ввод-вывод через порты вроде как запрещён в винде. только если через эмуляторы.
что конкретно хоть надо? С какой железкой общаться?
Эти адреса, которые выдаются устройству - фактически адреса в ОПЕсли устройство на PCI, то вобщем-то да, физические адреса на этой шине и физические адреса памяти это единое адресное пространство. Чипсет собственно разруливает какие запросы куда перенаправлять. И работа с такими устройствами осущесвляется простыми командами типа mov, только придётся как-то вывести физические адреса устройства в виртуальное пространство процесса. То есть или все-таки написать драйвер, или скорее всего есть уже такой, надо только найти. С lpt не знаю, наверное действительно через in/out работают.
PS. Я никогда драйверов не писал, тем более под Винду. Я так, теоретик...
используется ассемблер.
"TVicHW32 - представляет собой набор драйверов и сопутствующих интерфейсных модулей, которые позволяют программисту управлять аппаратурой компьютера непосредственно из Win32-приложения. TVicHW32 позволяет обращаться к портам компьютера, работать с заданными регионами физической памяти и обрабатывать аппаратные прерывания, читать серийные номера жестких дисков, работать с контроллером клавиатуры. Интерфейс к драйверам реализован в виде DLL, и VCL-компонента."
она shareware. Надо реализовать часть "позволяет обращаться к портам компьютера, работать с заданными регионами физической памяти". Хотя она похоже не столь супер универсальна, сколь в ней есть отдельно разработанные функции для работы и с lpt и com и pci и все такое...
Ладно, попробую начать с lpt чтоли, хоть результат можно видеть...
ЗЫ:DDK я установил, только в инете стоящих мануалов я не нашел, вообще непонятно с какого края цепляться...
www.sysinternals.com (или где-то так, сейчас не могу проверить - инет не работает) есть много интересного, в том числе описывается, что можно замапить любой участок из \Devices\PhysMem в пр-во своего процесса и читать это дело.
Вчера наткнулся на интересную штуку: на сайте Не думаю что для описания передачи данных в PCI-устройства
используется ассемблер.
Не думаю что для программирования процессора используется ассемблер

Не думаю что для программирования процессора используется ассемблер
Оставить комментарий
skyformstd
Вообщем пусть есть железо, на pci, lpt, etc... известен диапазон его адресов, каким образом записывать/считывать данные по этим адресам, например в ХР? В досе насколько помню были команды inportb,outportb. Под виндой они не работают.Я так понимаю надо писать драйвер.Где об этом можно почитать и насколько это сложное занятие?И еще более общий вопрос.Эти адреса, которые выдаются устройству - фактически адреса в ОП?