Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Вниз

COM - прт   Найти похожие ветки 

 
BJValentine   (2002-01-15 10:48) [0]

В Делфях нужно написать приложение, которое работает с COM - портами на низком уровне. Ассемблерные вставки - не вопрос, знакомая тема, но как мне обратиться к ячейке по адресу 0040:0000h. В ДОСе это было понятно сегмент:смещение, а как обстоят дела с Windows? Помогите подсказочкой PLEASE...


 
Vitaly   (2002-01-15 11:31) [1]

1. Забудь про 0040:0000.
2. Windows API (Help).
2.1. CreateFile, ReadFile, WriteFile, CloseHandle.
2.2. Communication Functions.
2.3. Overlapped.
3. Threads.

Удачи.


 
Vitaly   (2002-01-15 11:35) [2]

+ поиск по сайту.
Информации и примеров (как и вопросов) - масса.


 
BJValentine   (2002-01-15 12:06) [3]

Хорошо, бог с ним COM - портом, а если разрабатывать свои нестандартные устройства для PCI портов и т. п., то там наверняка надо будет обращаться к реальным адресам. Как это можно сделать в Windows.


 
Digitman   (2002-01-15 14:15) [4]

Ты что-нибудь знаешь о кольцах защиты CPU i80x86 ?


 
BJValentine   (2002-01-15 15:28) [5]

Нет, не знаю. А что это, в двух словах?


 
Polevi   (2002-01-15 16:24) [6]

В двух словах не получится :)
Почитай про 80386 Protected Mode


 
Digitman   (2002-01-15 16:34) [7]

В двух словах :
Все приложения в Win32 выполняются в 3-м кольце защиты процессора, не позволяющем произвольное манипулирование портами и ячейками физ.памяти. Арбитраж доступа к портам возложен на ОС, выполняющейся в 0-м, наиболее привелегированном кольце защиты. И ОС не позволит несколким приложениям одновременно (Win32-то - МНОГОЗАДАЧНАЯ в отличие от DOS !!) творить с портами одновременно все, что им заблагорассудится. Ну ты сам рассуди : запустил ты косой десяток экз-ров своего приложения, одно тычет в порт одно значение, другое - другое, третье что-то там пытается читать из порта ... И все это - одновременно ? такое -невозможно !!!


 
Anatoly Podgoretsky   (2002-01-15 20:09) [8]

Бери с сайта микро$офт DDK и осваивай его


 
BJValentine   (2002-01-15 21:49) [9]

А что такое DDK и с чем его едят?


 
andersen   (2002-01-15 21:56) [10]

Если неслышал что такое DDK, то лучше на милкософт и не ходить.
Лучше поискать готовые компоненты для работы с аппаратурой. Тем более для COM порта их много.


 
Adder   (2002-01-16 08:35) [11]

DDK - Driver Development Kit


 
pasha676   (2002-01-16 12:34) [12]

Хм. Все это интересно, но если честно, то под Win95 серии я и напрямую в порты писал/читал (ассемблерные вставки в Дельфи). И сейчас в LPT передаю/принимаю на ассемблере. Возможно, что с PCI ситуевина меняется и под WinNT серией то же, но в 95-98 напрямую обращался к таймеру, к com и к LPT без проблем


 
Донской   (2002-01-16 13:57) [13]

Если на низком уровне....
Попробуйте полностью приложение написать на ассемблере.
а из дельфей вызывать его, а после выполнения снова закрывать.


 
Донской   (2002-01-16 13:58) [14]

Кстати, ассемблер предусматривает использование API-функций


 
TonnyS   (2002-01-16 17:31) [15]

я писал с помощью ASM-вставок напрямую в COM-порты, но это работает только под вин95/98, а под NT/2k - см. Digitman © (15.01.02 14:15)
поэтому рекомендуется писать через функции винды.


 
a_k_v   (2002-01-18 09:11) [16]

В NuMega Driver Studio есть вызарды позволяющие быстро создать
простенький драйвер для доступа к ячейкам памяти или портам
ввода вывода,
Если вас совсем ломает что-то делать, то используйте
отечестывенную библиотеку TvicHW которая позволяет работать с портами, памятью, прерываниями, выполнять код в 0 кольце защиты
и т.д.
доступна щароварная версия библиотеки (вроде без особых ограничений) только периодичеси материться о том чтобы ее купили
цена копеечная менее 100$






Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.023 c
3-32623
koks
2002-03-22 11:29
2002.04.11
ADO -> Access 2000 ????


3-32696
kaif
2002-03-21 10:59
2002.04.11
Cached Updates update failed?


6-32937
dr0Ne64
2002-01-25 00:11
2002.04.11
Login Юзверга


7-32987
Serghei
2002-01-18 09:47
2002.04.11
Volume Serial Number для дискеты???


1-32789
NIC2
2002-03-31 11:55
2002.04.11
WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский