Перейти к содержанию
    

Techno11

Участник
  • Постов

    8
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Мне интересна ситуация с обработкой нескольких прерываний, возникающих практически одновременно. Ситуация следующая: зарегистрировал и разрешил 3 обработчика прерываний с помощью register_int_handler() и enable_interrupt(). Возникает первое прерывание и ядро сохраняет контекст и передает управление пользовательскому обработчику прерывания. Во время его выполнения возникают еще 2 прерывания. 1. Гарантирует ли Xilkernel выполнение первого обработчика прерывания до конца (атомарно), даже в случае возникновения других прерываний? 2. Будут ли обработаны два других прерываний, которые возникли во время выполнения первого обработчика? Буду признателен за помощь в этом вопросе.
  2. Огромное спасибо. Буду признателен, если посоветуете литературу соответствующую вашему посту
  3. Нет, но в теме аппаратного ускорения определенных вычислений. Приложений не так много. Под менеджером обмена данными вы имеете в виду какое-то приложение посредник между пользовательскими приложениями и драйвером? Честно говоря так и не ясен механизм отправки данных из устройства в какое-то одно конкретное приложение, если устройство является инициатором. Не вижу связи вверх от драйвера к приложению
  4. Если использовать блок CentralDMA, то он может генерировать прерывание по окончанию передачи. Если же BAR адресовать прямо на ОЗУ, то кто будет генерировать прерывание? Если с записью в устройство стало ясно, то теперь нужно получить результаты. Заранее простите за малые познания и заблуждения про драйверы. Несколько приложений должны параллельно использовать устройство, чтобы практически в любой момент времени к нему был доступ. С помощью драйвера отправляют команды с данными в него. Что дальше? Устройство произвело вычисления и сгенерировало прерывание. Драйвер выделил буфер для приема результатов. Но как драйверу сообщить приложению о приеме данных и какому именно приложению? Есть вариант с постоянным опросом результатов каждым приложением, но он кажется менее эффективным. Может ли драйвер вести у себя таблицу обратившихся к нему процессов и использовать, например именованные события, чтобы сообщить обратившимся процессам о готовности результатов?
  5. Извиняюсь за вольную трактовку. Каким образом уведомить PowerPC о появлении в памяти устройства новых данных, чтобы он мог начать их обработку?
  6. PowerPC подключен к шине PLB, к которой также подключен блок PLBv46 to PCI Full Bridge. У моста установлен флаг Bus Master Enable, чтобы устройство могло выступать в роли мастера на шине PCI Express. Сконфигурированы 2 BAR. Один настроен так, что адресует 4 КБ BRAM. Второй предоставляет прямой доступ к регистрам блока Central DMA (так же на шине PLB). Но вопрос о "пробуждении" PowerPC по завершению передачи данных от ПК еще актуален. Также интересен вопрос как уведомить ПК о готовности результатов вычислений. Возможно через механизм MSI, но опыта не хватает. Подскажите, если кто знает
  7. Уважаемые форумчане, буду признателен за помощь. Ведется разработка устройства на базе FPFA Virtex5. Необходимо реализовать взаимодействие данного устройства с ПК через PCI Express. ПК опознает устройство как Memory Controller и с помощью утилиты PCI Tree можно обращаться к памяти, отображаемую через BAR. Само устройство (PowerPC на плате) выполняет некоторый код по обработке входных данных, а также должно выдавать результат вычислений. У меня следующие вопросы: 1. Как "пробудить" PowerPC по приему данных от шины PCIe? 2. Как уведомить ПК о готовности результатов вычислений? В дальнейшем предполагается использовать DMA. Если можете, подскажите шаблон драйвера или что-то совсем простое, но готовое для платформы WinXP 32 bit.
  8. Уважаемые форумчане, буду признателен за помощь. Ведется разработка устройства на базе FPFA Virtex5. Необходимо реализовать взаимодействие данного устройства с ПК через PCI Express. ПК опознает устройство как Memory Controller и с помощью утилиты PCI Tree можно обращаться к памяти, отображаемую через BAR. Само устройство (PowerPC на плате) выполняет некоторый код по обработке входных данных, а также должно выдавать результат вычислений. У меня следующие вопросы: 1. Как "пробудить" PowerPC по приему данных от шины PCIe? 2. Как уведомить ПК о готовности результатов вычислений? В дальнейшем предполагается использовать DMA. Если можете, подскажите шаблон драйвера или что-то совсем простое, но готовое для платформы WinXP 32 bit.
×
×
  • Создать...