Официальный форум СВД Встраиваемые Системы
29 Март, 2024, 10:56:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: io-adm - менеджер устройств ввода/вывода  (Прочитано 4738 раз)
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« : 14 Январь, 2010, 15:07:53 »

io-adm - менеджер устройств ввода/вывода

Разработан менеджер устройств ввода/вывода (io-adm). io-adm имеет модульную архитектуру и реализует технологию подгружаемых драйверов, что позволяет выделить весь аппаратно зависимый код на уровень драйвера. Таким образом поддержка новых устройств сводится к доработке драйвера, а не разработке нового менеджера ресурсов QNX.

Подсистема io-adm состоит из следующих компонентов:

  • Менеджер устройств;
  • Подгружаемые драйвера устройств;
  • Интерфейсная библиотека для клиентских приложений;
  • Вспомогательные утилиты;
  • Примеры использования.

Базовый функционал:

  • Поддержка динамически подгружаемых драйверов;
  • Доступ к ресурсам посредством интерфейсной библиотеки;
  • Возможность использования нескольких драйверов устройств ввода/вывода одновременно;
  • Работа с устройствами в соответствии со стандартом POSIX;
  • Возможность взаимодействия через разделяемую память.

Особенности текущего релиза (версия 1.1):

  • Произведена интеграция исходных кодов с IDE;
  • Реализована многопоточность менеджера (используется по умолчанию);
  • Для отключения многопоточности применяется опция -s (использование в случае нескольких драйверов не рекомендуется);
  • Реализована поддержка драйверов, способных многократно сканировать шину (режим busscan);
  • Добавлен образец драйвера, поддерживающего режим busscan;
  • Наряду с поддаржкой ADC/DAC устройств реализована поддержка устройств типа DIO (платы дискретного ввода/вывода);
  • Расширен перечень поддерживаемых устройств.

Поддержка аппаратуры:


В следующих версиях менеджера планируется добавление поддержки динамической загрузки/выгрузки драйверов, разработка утилиты конфигурирования менеджера, разработка документации, расширение перечня поддерживаемого оборудования.

(щёлкните чтобы показать/скрыть)

(щёлкните чтобы показать/скрыть)

Скачать: Архив с исходными текстами менеджера (версия 1.1)
Cksum: 3472533872 181884 io-adm-11-src-27102010.tar.gz

(щёлкните чтобы показать/скрыть)
« Последнее редактирование: 27 Октябрь, 2010, 14:27:08 от Андрей Докучаев » Записан

LH
Ветеран

Сообщений: 345


« Ответ #1 : 17 Январь, 2010, 10:52:07 »

Проект собирается в среде QNX6.4 с помощью make. Как следует импортировать проект в среду разработки IDE4.6?
Спасибо.
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« Ответ #2 : 18 Январь, 2010, 11:17:42 »

Проект собирается в среде QNX6.4 с помощью make. Как следует импортировать проект в среду разработки IDE4.6?
Спасибо.

Для интеграции с IDE, обычно, создается пустой проект с тем же именем и в него вносятся необходимые правки. Очевидно, каждый компонент подсистемы требуется импортировать отдельно.

Интеграция с IDE планируется в следующей версии менеджера.
Записан

LH
Ветеран

Сообщений: 345


« Ответ #3 : 08 Февраль, 2010, 16:28:41 »

Правильно ли я понял, что при запросе клиента на чтение io-adm вызывает соотв. функцию из so-объекта драйвера, которая дожидается очередного прерывания при заполнении полубуфера платы АЦП и передает клиенту данные этого полубуфера.

Если частота запросов клиента на чтение будет реже, чем частота прерываний платы, данные будут теряться?

Положим, io-adm и so-объекта драйвера портированы в IDE. Возможна ли в этом случае пошаговая отладка из IDE отработки функций из so-объекта драйвера?

Или же придется временно соединять код io-adm и код драйвера, исключая подгрузку последнего из so?
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« Ответ #4 : 08 Февраль, 2010, 21:22:17 »

Правильно ли я понял, что при запросе клиента на чтение io-adm вызывает соотв. функцию из so-объекта драйвера, которая дожидается очередного прерывания при заполнении полубуфера платы АЦП и передает клиенту данные этого полубуфера.

Да, Вы правильно поняли подход Smiley

Если частота запросов клиента на чтение будет реже, чем частота прерываний платы, данные будут теряться?

В драйвере devadc-l783m.so реализован круговой буфер размером до 0x20000 байт, организующий промежуточное хранение данных, поступающих от платы. В имеющемся примере организована буферизация более 20 циклов АЦПирования по 2800 отсчетов.

В случае отсутствия интереса клиента к данным они, само собой, будут теряться.

Положим, io-adm и so-объекта драйвера портированы в IDE. Возможна ли в этом случае пошаговая отладка из IDE отработки функций из so-объекта драйвера?

Или же придется временно соединять код io-adm и код драйвера, исключая подгрузку последнего из so?

Правильно ли я понял суть вопроса: будет ли иметься возможность отлаживать код драйвера (so-объекта) без коренного изменения кода, т.е. без объединения исходных кодов драйвера и io-adm?
Записан

LH
Ветеран

Сообщений: 345


« Ответ #5 : 09 Февраль, 2010, 17:06:24 »

>
Цитировать
В драйвере devadc-l783m.so реализован круговой буфер размером до 0x20000 байт, организующий промежуточное хранение данных, поступающих от платы. >В имеющемся примере организована буферизация более 20 циклов АЦПирования по 2800 отсчетов.

Если драйвер содержит свой внутренний кольцевой буфер , зачем при обработке клиентского запроса на чтение ему ждать очередного прерывания? М.б. отдельная нить драйвера может следить за прерываниями и наполнять круговой буфер, а обработчик io-read - сразу отдавать клиенту непрочитанную часть этого буфера.

>
Цитировать
Правильно ли я понял суть вопроса: будет ли иметься возможность отлаживать код драйвера (so-объекта) без коренного изменения кода, т.е. без >объединения исходных кодов драйвера и io-adm?

Да, правильно. Положим в IDE собраны клиентская программа c открытием и чтением данных, ресурс-менеджер io-adm и  драйвер adc-sample.so Как все это совместно проверить-отладить с помощью IDE?

Спасибо.
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« Ответ #6 : 09 Февраль, 2010, 18:02:53 »

>
Цитировать
В драйвере devadc-l783m.so реализован круговой буфер размером до 0x20000 байт, организующий промежуточное хранение данных, поступающих от платы. >В имеющемся примере организована буферизация более 20 циклов АЦПирования по 2800 отсчетов.

Если драйвер содержит свой внутренний кольцевой буфер , зачем при обработке клиентского запроса на чтение ему ждать очередного прерывания? М.б. отдельная нить драйвера может следить за прерываниями и наполнять круговой буфер, а обработчик io-read - сразу отдавать клиенту непрочитанную часть этого буфера.

Не хотелось расписывать все особенности, но, видимо, придется  Smiley

Драйвер, о котором идет речь, имеет 2 режима (см. usemsg): с фиксированием кольцевого буфера и с активной кольцевой буферизацией. Если взглянуть на сорцы, очевидно, что ожидание прервания происходит в 2-х случаях:
1. Если выбран режим ir_fixed и ожидается поступление актуальных данных;
2. Если данных в буфере нет (в этом случае, действительно, будет производиться ожидание прерывания - поступление данных в буфер).

Предупреждая возможный вопрос - фиксирование буфера введено исключительно в отладочных целях и на практике может быть полезно лишь в редких случаях.

>
Цитировать
Правильно ли я понял суть вопроса: будет ли иметься возможность отлаживать код драйвера (so-объекта) без коренного изменения кода, т.е. без >объединения исходных кодов драйвера и io-adm?

Да, правильно. Положим в IDE собраны клиентская программа c открытием и чтением данных, ресурс-менеджер io-adm и  драйвер adc-sample.so Как все это совместно проверить-отладить с помощью IDE?

Спасибо.

Насколько мне известно, gdb (а следовательно и IDE) позволяет отлаживать so-объекты. Прошу коллег, которые ближе знакомы с отладкой в IDE, дать дополнительные рекомендации по данному вопросу.
« Последнее редактирование: 09 Февраль, 2010, 23:11:36 от Андрей Докучаев » Записан

Михаил Колесов
Опытный пользователь

Сообщений: 125



« Ответ #7 : 10 Февраль, 2010, 15:51:39 »

Насколько мне известно, gdb (а следовательно и IDE) позволяет отлаживать so-объекты. Прошу коллег, которые ближе знакомы с отладкой в IDE, дать дополнительные рекомендации по данному вопросу.

Нужно указать отладчику загружать на целевую систему дополнительные файлы (в данном случае разделяемые библиотеки). Это делается на вкладке Upload настроек отладки.
Выглядит это примерно так. После запуска отладчика устанавливаете точку останова в нужной месте исходного текста проекта библиотеки и продолжаете выполнение. Как только точка останова сработает, IDE переключит вас на соответствующий исходный файл библиотеки.
Наиболее простой вариант - поэтапная отладка. Сначала стоит отладить менеджер с подгружаемым модулем. Затем, на целевой системе запускать менеджер и отлаживать утилиту. Можно конечно запускать отладку сразу нескольких проектов.
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« Ответ #8 : 27 Октябрь, 2010, 14:22:54 »

Обновлен менеджер устройств ввода/вывода io-adm (текущая версия 1.1).

Особенности релиза и нововведения:

  • Произведена интеграция исходных кодов с IDE;
  • Реализована многопоточность менеджера (используется по умолчанию);
  • Для отключения многопоточности применяется опция -s (использование в случае нескольких драйверов не рекомендуется);
  • Реализована поддержка драйверов, способных многократно сканировать шину (режим busscan);
  • Добавлен образец драйвера, поддерживающего режим busscan;
  • Наряду с поддаржкой ADC/DAC устройств реализована поддержка устройств типа DIO (платы дискретного ввода/вывода);
  • Расширен перечень поддерживаемых устройств (ICP DAS PIO-D64/PIO-D64U; ICP DAS PISO-725).

Подробности и ссылка для скачивания в первом посте темы.
Записан

denis_73
Пользователь

Сообщений: 29


« Ответ #9 : 27 Июнь, 2012, 01:23:45 »

Скачать: Архив с исходными текстами менеджера (версия 1.1)
Cksum: 3472533872 181884 io-adm-11-src-27102010.tar.gz

File does not exist. Make sure you specified correct file name.
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1075



WWW
« Ответ #10 : 29 Июнь, 2012, 09:42:57 »

Скачать: Архив с исходными текстами менеджера (версия 1.1)
Cksum: 3472533872 181884 io-adm-11-src-27102010.tar.gz

File does not exist. Make sure you specified correct file name.

Fixed =).
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2020 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 30 Декабрь, 2023, 20:35:37