Page 9 of 14
Re: KolibriOS на производстве
Posted: Sun Dec 06, 2009 1:00 am
by andrew_programmer
на постоянную основу пока не ставлю, результаты пока хуже ожидаемых, хотя и приемлемые...
Это из-за COM порта?
Re: KolibriOS на производстве
Posted: Sun Apr 24, 2011 9:36 pm
by XVilka
Интересно. И какие на данный момент результаты?
Re: KolibriOS на производстве
Posted: Mon Apr 25, 2011 10:26 am
by VaStaNi
А мне интересно
- сколько COM портов используется одновременно
- использованы ли их аппаратные прерывания
- скорость обменов
- дуплекс или полудуплекс
- мастер - слейв RS-485?
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 6:10 pm
by VitZ
Программа - помигать светодиодом
с LPT-порта на PPro:
Spoiler:
Code: Select all
--------------------
{Shapka}Program hello5;
Uses kolibri; var k:TKolibri;
const header:string='HelloWorld test'#0;
str:string='Hello, World!';
{p1}procedure draw_window;
begin k.BeginDraw;
k.DefineWindow(10,40,300,300,$33FFFFFF,0,integer(@header[1]));
k.WriteText(30,10,0,0,str);
k.DefineButton(5,5,65,25,7,7);
k.DefineButton(5,35,65,25,8,7);
k.EndDraw; end;
{p2}procedure zachvat_portov;
begin asm
mov eax,46
mov ebx,0
mov ecx,880
mov edx,890
int $40
end; end;
{p3}procedure proc_vkl;
begin asm
mov eax,43
mov bl,255
mov ecx,888
int $40
end; end;
{p4}procedure proc_vikl;
begin asm
mov eax,43
mov bl,0
mov ecx,888
int $40
end; end;
{p5}procedure otdatj_porti;
begin asm
mov eax,46
mov ebx,1
mov ecx,880
mov edx,890
int $40
end; end;
var key:DWord;
BEGIN draw_window;
zachvat_portov; {}
while true do
begin case k.WaitForEvent of
1:draw_window;
2:k.GetKey(key);
3: {break;}begin
k.getButton(key);
if key=7 then proc_vkl;
if key=8 then proc_vikl;
end;
end;
end;
otdatj_porti; {}
END.
----------------------
С вопросами - сюда:
dvestidvadcatj@gmail.com
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 6:45 pm
by SoUrcerer
На ассемблере кошернее и чуть быстрее - а вообще молодец.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 6:47 pm
by VitZ
На паскале больше народу поймёт .
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 7:23 pm
by SoUrcerer
По сути, половина кода на ассемблере. Зависит, конечно, от сложности задачи.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 8:21 pm
by art_zh
Надо бы разрешить по дефолту адреса 0х200..3FF, чтоб народ не парился с 40-ми функциями при доступе к COM/LPT.
: И вообще default_io_map-таблицы слишком раздуты, только зря дублируем по 8кб сплошных xFF для каждой задачи.
Вторая таблица вообще не нужна, да и первую можно сократить до килобайта, чтобы весь TSS помещался в одной странице.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 8:37 pm
by SoUrcerer
А как решать вопрос с одновременным доступом к портам от разных приложений? И еще интересный вопрос - доступ к портам через сисфункции вроде как deprecated, как тогда это должно делаться? В ring-0?
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 9:00 pm
by art_zh
SoUrcerer
Отдать юзеру COM и LPT, и пусть сам свои портовые накладки разруливает.
Доступ к портам - из юзерспейса через in и out.
Нужно только битмаску порта скинуть в 0, для этого и нужна 46-я.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 9:06 pm
by SoUrcerer
А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 9:13 pm
by art_zh
SoUrcerer wrote:А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
Убери драйвер - и конфликта не будет. Юзер лезет в порты, к которым у него пристегнуто его родное, нестандартное железо (вроде тех же светодиодов на LPT).
40-e функции - это самая большая дыра. Прощальный плевок
diamondа был именно через 46-ю.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 10:13 pm
by Serge
art_zh
default_io_map расшарены через copy-on-write. Если приложение не обращается к портам, то пользуется общей страницей.
Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 10:37 pm
by Mario_r4
Serge wrote:Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
Удваиваю.
Re: KolibriOS на производстве
Posted: Thu May 30, 2013 10:47 pm
by SoUrcerer
Mario_r4 wrote:
Удваиваю.
Учетверяю, чего уж там.