KolibriOS на производстве

Using Kolibri in embedded systems
  • Интересно. И какие на данный момент результаты?
  • А мне интересно
    - сколько COM портов используется одновременно
    - использованы ли их аппаратные прерывания
    - скорость обменов
    - дуплекс или полудуплекс
    - мастер - слейв RS-485?
  • Программа - помигать светодиодом
    с 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
    Last edited by VitZ on Fri May 30, 2014 11:30 am, edited 3 times in total.
  • На ассемблере кошернее и чуть быстрее - а вообще молодец.
  • На паскале больше народу поймёт .
  • По сути, половина кода на ассемблере. Зависит, конечно, от сложности задачи.
  • Надо бы разрешить по дефолту адреса 0х200..3FF, чтоб народ не парился с 40-ми функциями при доступе к COM/LPT.

    : И вообще default_io_map-таблицы слишком раздуты, только зря дублируем по 8кб сплошных xFF для каждой задачи.
    Вторая таблица вообще не нужна, да и первую можно сократить до килобайта, чтобы весь TSS помещался в одной странице.
  • А как решать вопрос с одновременным доступом к портам от разных приложений? И еще интересный вопрос - доступ к портам через сисфункции вроде как deprecated, как тогда это должно делаться? В ring-0?
  • SoUrcerer
    Отдать юзеру COM и LPT, и пусть сам свои портовые накладки разруливает.

    Доступ к портам - из юзерспейса через in и out.
    Нужно только битмаску порта скинуть в 0, для этого и нужна 46-я.
    Last edited by art_zh on Thu May 30, 2013 9:06 pm, edited 1 time in total.
  • А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
  • SoUrcerer wrote:А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
    Убери драйвер - и конфликта не будет. Юзер лезет в порты, к которым у него пристегнуто его родное, нестандартное железо (вроде тех же светодиодов на LPT).
    40-e функции - это самая большая дыра. Прощальный плевок diamondа был именно через 46-ю.
  • art_zh
    default_io_map расшарены через copy-on-write. Если приложение не обращается к портам, то пользуется общей страницей.
    Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
  • Serge wrote:Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
    Удваиваю.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote: Удваиваю.
    Учетверяю, чего уж там.
  • Who is online

    Users browsing this forum: No registered users and 2 guests