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

Using Kolibri in embedded systems
  • Я тут немножко флуд почитал и сообщения о пророках) По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию... Тогда колибри будет везде у нас дорога... А на счет школ и промышленных предприятий задачча не самая сложная нужен энтузиазм коего у местных вагон и маленькая тележка и продвижение идеи в массы
  • che_shire@bk.ru wrote:По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию...
    Ты прочитал как топик называется?

    Не ходи сюда.
    Евангелие от Иоанна: стих 1

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • art_zh wrote:Скорость конвейера какая?
    Частота тахометра?
    Период/скважность ШИМ?
    Между мультиплексором-усилителем i7 и трёхфазным мотором можно поставить
    Веспер EI-MINI.

    PS. Перед включением СУПчика крепко-накрепко отключите комп от интернета: в лучшем случае вирус может просто всё стереть (или стереть всё с ОЗУ, если вы загружаетесь с фзз (флешки с защитой от записи)).

    PS2. оба чёрных идут по двум винтам; тумблер с 6-ью контактами: красный туда-сюда и
    жёлтый туда-сюда (без выключения компа "канал" не переключать).
    Attachments
    45.jpg
    45.jpg (20.97 KiB)
    Viewed 8520 times
  • Если в местном паскале многозадачной среды проработаны указатели,
    то можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
    между двумя процессами (задачами=раньше их называли exe-модули) -
    для отделения процесса "изображение" - от процесса "драйвера". Обмен между процессами - можно сделать -
    через бОльшие промежутки времени, чем время основного цикла опроса (основной цикл опроса - в процессе "изображение").
  • FedorAnullin wrote:Если в местном паскале многозадачной среды проработаны указатели
    Не понятно, что подразумевается под местным паскалем? И как именно должны быть проработаны указатели?
    FedorAnullin wrote:можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
    между двумя процессами (задачами=раньше их называли exe-модули)
    Ну вообще-то существуют системные функции для обмена данными между процессами(IPC, Shared Memory).
  • 0CodErr wrote:... как именно должны быть проработаны указатели?
    Смогу ли (без изучения ипц) перевести на местный (ссылка вверху этой страницы) паскаль
    пример (реализованный на борланд паскале под виндус 98):
    процесс номер один организует указателями несколько ячеек памяти в озу
    и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
    (второй процесс должен будет запускаться раньше первого);
    после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
    секунду каждой минуты,
    а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
    каждой минуты. (?)

    ..Здорово, что в борланд-паскале(вин) изучение dde удалось избежать (обойти),
    да и сомнения были - попортит ли (неручное) dde реальное время
    (такое, какое в виндусе можно было организовать).
  • FedorAnullin wrote:ссылка вверху этой страницы
    А, имеется в виду Pascal Pro.
    FedorAnullin wrote:Смогу ли
    Без исходного кода трудно сказать.
    FedorAnullin wrote:процесс номер один организует указателями несколько ячеек памяти в озу
    и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
    (второй процесс должен будет запускаться раньше первого);
    после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
    секунду каждой минуты,
    а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
    каждой минуты. (?)
    Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.

    Лично я Pascal Pro не использую, я использую Borland Delphi7.
    На форуме есть соответствующая тема с примерами Delphi7 examples http://board.kolibrios.org/viewtopic.php?f=33&t=3469
    и через винт (врайт фп - рид фп) передаёт начальный адрес
    Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).

    Без исходного кода трудно сказать, как в этом случае будет лучше поступить.
  • 0CodErr wrote:Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).
    Для реальности времени (в случае увеличения скорости процессоров с каждым годом) важно
    не быстродействие, а стабильность (чёткость, не расползаемость по оси времени, рассчитываемость
    временных дельт с одной команды - до другой - хотя бы на максимум временного заполнения) выполняемых
    процедур.

    Исходник - на Борланд Паскале 7.01 (1993) под Виндоуз (1998) [без лицензий - ни
    то, ни другое - не использовать! Опасно!]:

    uses wintypes, winprocs, wincrt; {holst.pas}
    var fp: file of pointer;
    by: byte;
    a_by: pointer;
    begin
    assign(fp, 'c:\bp\bin\7777777.dat');
    reset(fp);
    read(fp,a_by);
    close(fp);
    by:=a_by^; {}
    writeln(by); {должно быть 77}
    end.

    uses wintypes, winprocs, wincrt; {drova.pas}
    var fp: file of pointer;
    by: byte;
    a_by: pointer;
    begin
    a_by:=addr(by);
    assign(fp, 'c:\bp\bin\7777777.dat');
    rewrite(fp);
    write(fp,a_by);
    close(fp);
    by:=77; {это PEREDACHA}
    readln; {зависнуть - ждать второго}
    end.

    Наверное, ассемблерные вставки надо применить (чтобы стырить байт из соседского процесса).
  • FedorAnullin wrote:чтобы стырить байт из соседского процесса
    Я ведь писал уже
    0CodErr wrote:Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.
    Если это так сложно то
    0CodErr wrote:Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).
    Один процесс пишет в файл на рам-диске, другой процесс читает из него.
  • 0CodErr wrote:Один процесс пишет в файл на рам-диске, другой процесс читает из него.
    А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?
  • Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..
  • FedorAnullin wrote:А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?
    .. хотя что-то в нём проклёвывается - и не придётся (надо будет серию программных экспериментов сделать).
    Attachments
    system-obd.JPG
    system-obd.JPG (77.56 KiB)
    Viewed 8244 times
  • FedorAnullin wrote:А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске
    Если хочется ковыряться именно с этим паскалем, то это дело хозяйское, конечно.
    Но для Borland Delphi7 существуют примеры чтения и записи.
    Необходимые функции объявлены в KolibriOS.pas и реализованы в KolibriOS.lib, которая уже в некоторой степени протестирована.
    Вот так функции могут быть вызваны:

    Code: Select all

    ReadFile(Path, Buffer, Count, LoPos, HiPos, BytesRead);
    WriteFile(Path, Buffer, Count, LoPos, HiPos, BytesWritten);
    Siemargl wrote:Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..
    Маловероятно, что можно такого найти. Я лично понятия не имею, работает ли там что-то, и насколько правильно оно реализовано.
  • <<Итого: скада (на нехитром MODBUS'овом замесе) может строиться
    с помощью 5ти процедур - на ассемблере, а остальное - на паскале.>>

    http://vrtp.ru/index.php?showtopic=30280&st=0

    ... есть вариант с-- (с ассемблерными вставками) модбус коос ...
  • Who is online

    Users browsing this forum: No registered users and 4 guests