![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
COM - прт [D5, Win95/98, Win2k]
BJValentine © (2002-01-15 10:48:00)В Делфях нужно написать приложение, которое работает с COM - портами на низком уровне. Ассемблерные вставки - не вопрос, знакомая тема, но как мне обратиться к ячейке по адресу 0040:0000h. В ДОСе это было понятно сегмент:смещение, а как обстоят дела с Windows? Помогите подсказочкой PLEASE...
a_k_v (2002-01-18 09:11:00) [1]В NuMega Driver Studio есть вызарды позволяющие быстро создать
простенький драйвер для доступа к ячейкам памяти или портам
ввода вывода,
Если вас совсем ломает что-то делать, то используйте
отечестывенную библиотеку TvicHW которая позволяет работать с портами, памятью, прерываниями, выполнять код в 0 кольце защиты
и т.д.
доступна щароварная версия библиотеки (вроде без особых ограничений) только периодичеси материться о том чтобы ее купили
цена копеечная менее 100$
TonnyS (2002-01-16 17:31:00) [2]я писал с помощью ASM-вставок напрямую в COM-порты, но это работает только под вин95/98, а под NT/2k - см. Digitman © (15.01.02 14:15)
поэтому рекомендуется писать через функции винды.
Донской (2002-01-16 13:58:00) [3]Кстати, ассемблер предусматривает использование API-функций
Донской (2002-01-16 13:57:00) [4]Если на низком уровне....
Попробуйте полностью приложение написать на ассемблере.
а из дельфей вызывать его, а после выполнения снова закрывать.
pasha676 (2002-01-16 12:34:00) [5]Хм. Все это интересно, но если честно, то под Win95 серии я и напрямую в порты писал/читал (ассемблерные вставки в Дельфи). И сейчас в LPT передаю/принимаю на ассемблере. Возможно, что с PCI ситуевина меняется и под WinNT серией то же, но в 95-98 напрямую обращался к таймеру, к com и к LPT без проблем
Adder (2002-01-16 08:35:00) [6]DDK - Driver Development Kit
andersen (2002-01-15 21:56:00) [7]Если неслышал что такое DDK, то лучше на милкософт и не ходить.
Лучше поискать готовые компоненты для работы с аппаратурой. Тем более для COM порта их много.
BJValentine (2002-01-15 21:49:00) [8]А что такое DDK и с чем его едят?
Anatoly Podgoretsky (2002-01-15 20:09:00) [9]Бери с сайта микро$офт DDK и осваивай его
Digitman (2002-01-15 16:34:00) [10]В двух словах :
Все приложения в Win32 выполняются в 3-м кольце защиты процессора, не позволяющем произвольное манипулирование портами и ячейками физ.памяти. Арбитраж доступа к портам возложен на ОС, выполняющейся в 0-м, наиболее привелегированном кольце защиты. И ОС не позволит несколким приложениям одновременно (Win32-то - МНОГОЗАДАЧНАЯ в отличие от DOS !!) творить с портами одновременно все, что им заблагорассудится. Ну ты сам рассуди : запустил ты косой десяток экз-ров своего приложения, одно тычет в порт одно значение, другое - другое, третье что-то там пытается читать из порта ... И все это - одновременно ? такое -невозможно !!!
Polevi (2002-01-15 16:24:00) [11]В двух словах не получится :)
Почитай про 80386 Protected Mode
BJValentine (2002-01-15 15:28:00) [12]Нет, не знаю. А что это, в двух словах?
Digitman (2002-01-15 14:15:00) [13]Ты что-нибудь знаешь о кольцах защиты CPU i80x86 ?
BJValentine (2002-01-15 12:06:00) [14]Хорошо, бог с ним COM - портом, а если разрабатывать свои нестандартные устройства для PCI портов и т. п., то там наверняка надо будет обращаться к реальным адресам. Как это можно сделать в Windows.
Vitaly (2002-01-15 11:35:00) [15]+ поиск по сайту.
Информации и примеров (как и вопросов) - масса.
Vitaly (2002-01-15 11:31:00) [16]1. Забудь про 0040:0000.
2. Windows API (Help).
2.1. CreateFile, ReadFile, WriteFile, CloseHandle.
2.2. Communication Functions.
2.3. Overlapped.
3. Threads.
Удачи.