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: Удваиваю.
Учетверяю, чего уж там.