Форум: "Система";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизРабота с устройствами Найти похожие ветки
← →
Evgeniy_K (2004-01-23 13:11) [0]Есть устройство Intel RGN. Есть регистры. Как осуществлять чтение/запись в них?
← →
Игорь Шевченко © (2004-03-03 17:57) [1]1) Драйвер писать.
2) Искать написанный
← →
Evgeniy_K (2004-03-03 18:52) [2]Драйвер установлен. Написано, что по физ. адресу 0xFFBC015F(read/write)
Bit mask
0x40 - (bit 6 read-only) - имеется устройство
0x01 - (bit 0 read/write) - включено/выключено
и т.д.
Как этим правильно пользоваться? Дается пример на С++, но я только в курсе его основ, а такими вещами ранее не занимался. Так как придется в конечном счете перевести на делфи, то прошу помочь кодом на делфи (любом).
← →
Evgeniy_K (2004-03-03 18:53) [3]Сама документация именуется Intel 82802 Firmware Hub: Random Number Generator. Драйвер весит 1 мб. Позволяет работать с интересными штучками, которые имеются, в т.ч. RNG
← →
VMcL © (2004-03-03 18:54) [4]>>Evgeniy_K (03.03.04 18:52) [2]
А код на C++ угадать надо?
← →
Evgeniy_K (2004-03-03 19:00) [5]Сам документ можно взять на intel.com, там и код.
← →
Soft © (2004-03-04 00:56) [6]>>Evgeniy_K (03.03.04 19:00) [5]
>>Сам документ можно взять на intel.com, там и код.
Ссылку прямую давай, или сам майся.
← →
Evgeniy_K (2004-03-04 13:32) [7]http://www.intel.com/design/chipsets/manuals/298029.pdf
← →
Digitman © (2004-03-04 13:57) [8]
> Evgeniy_K (03.03.04 18:52) [2]
> Драйвер установлен. Написано, что по физ. адресу 0xFFBC015F(read/write)
>
в упомянутом мануале это написано не касаемо драйвера, а касаемо физического уровня
т.е. некий драйвер режима ядра (штатно поставляемый с дивайсом либо написанный тобой собственноручно в соответствии с логикой в мануале) как раз и осуществляет посредническую миссию между прикладной задачей (в первом приближении, не имеющей права обращаться к физ.памяти напрямую) и программным интерфейсом дивайса
если нет описания к штатному драйверу (и/или примеров прикладного взаимодействия с ним), то на NT-платформе в принципе можно читать физ.память, открыв объект-секцию \\Device\PhysicalMemory, а на маздайной платформе - тривиальный переход в Ring0, затем формирование дескриптора GDT или LDT, через который будет возможно обращаться к физ.памяти произвольным образом
← →
Evgeniy_K (2004-03-04 14:34) [9]Можно кусочек кода, если не сложно? Заранее спасибо.
← →
Digitman © (2004-03-04 14:43) [10]
> Evgeniy_K (04.03.04 14:34) [9]
какого кода ? конкретно ? я обо многих вещах говорил ...
так ты не сказал, что там у тебя с имеющимся драйвером ? какая ситуация ?
← →
Evgeniy_K (2004-03-04 14:44) [11]Драйвер установлен соответствующий. Код ипсользования RNG.
← →
Digitman © (2004-03-04 15:23) [12]
> Драйвер установлен соответствующий
ну так исследуй детально команды управления им !
что ж ты его не используешь-то ?
доступ к драйверу, вероятно, будет выглядеть как CreateFile("\\Devices\MyRNGDevice", ...) + ReadFile()/WriteFile()
> Код ипсользования RNG
Ты предлагаешь мне написать за тебя драйверы твоего дивайса под каждую платформу ? Так что ли ? Или ты хочешь в обход использования драйверов иметь дело с недок.возможностями о получению управления в Ring0 ? Последнее крайне не рекомендуется, ибо никто не гарантирует надежность такого кода
и вообще - дели задачу
1. Собственно код обращения к интерфейсу устройства согласно мануалу
2. Вспомогательный (технологический) код, позволяющий осуществить п.1 в принципе, т.е. получение тем или иным образом управления в Ring0 с целью беспроблемного и корректного выполнения п.1
п.1 примитивен, Интел разжевал его в мануале, и реализовать псевдокод в Паскаль- или Асм-код проще простого, ничего там сложного нет ... не понимаю, что здесь у тебя вызывает затруднение
п.2
если речь идет о драйвере, то реализация всех станд.драйверных соглашений для разных платформ в коде - дело нетривиальное ... на то у мелкомягких есть штатные комплекты DDK (Драйвер Дивилопмент Кит)
если речь идет НЕ о драйвере, то дело не менее нетривиальное, но помотреть как это делается можно .. буквально на этой неделе то ли в "Системе" то ли в "WinAPI" шла дискуссия на эту тему ... она где-то рядом, ищи по ключ.слову "Ring0", там есть соотв.ссылки с примерами
← →
Evgeniy_K (2004-03-04 18:22) [13]Я хочу увидеть пример обращения к физ. адресу, с которым можно работать при помощи драйвера. Драйвер уже написан интел. Нужно только правильно обратится к нему.
← →
Digitman © (2004-03-04 18:27) [14]
> Драйвер уже написан интел
я никак не пойму, почему ты его не используешь ?
← →
Evgeniy_K (2004-03-04 19:27) [15]Не умею :-/ Мои знания не позволяют это сделать. В документации есть код, который мне нужен на Delphi, а знания не позволяют полностью перевести его, поэтому я и прошу помощи у знающих людей.
← →
Evgeniy_K (2004-03-05 08:23) [16]Помогите перевести кусочек кода C++ -> Object Pascal
← →
Digitman © (2004-03-05 12:14) [17]приводи код, посмотрим что там к чему
← →
Evgeniy_K (2004-03-05 13:31) [18]Код находится в документации по ранее упомянутой ссылке, с комментариями.
← →
Digitman © (2004-03-05 14:49) [19]во-первых, там не С++ код, а псевдокод.. несмотря на синтаксис, очень похожий на С-синтаксис
во-вторых - еще раз повторяю, если ты не слышишь или не слушаешь - в Ring3 этот код бесполезен, ты не сможешь его выполнить
← →
Evgeniy_K (2004-03-05 15:07) [20]Зачем мне Ring? У меня есть драйвер, который имеет физ. адрес (указаны в мануале). Мне всего лишь нужно считать данные по этому адресу без всяких Ring
← →
Alexander666 © (2004-03-06 06:13) [21]Так Ring и нужен, чтобы данные считать! :-))) Ведь система тебя в эту область адресов через Ring3 не пустит и вернет ошибку, что мол, типа, давай переходи на Ring0, а там уже и читай :)))
← →
Evgeniy_K (2004-03-06 09:05) [22]Пример в студию. Заранее спасибо.
← →
Alexander666 © (2004-03-06 09:26) [23]Есть тут ветка одна про кольца: http://delphimaster.net/view/7-1077518181/ - а дальше сам разбирайся, я в ассемблере не асс.
← →
Evgeniy_K (2004-03-06 09:35) [24]Так это все и на делфи нормально делается через драйвер
← →
Evgeniy_K (2004-03-06 10:15) [25]Токмо я не умею
← →
Evgeniy_K (2004-03-06 20:23) [26]Посоветуйте, тогда кто/где может/ут мне помочь
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.031 c