Как получить доступ к моему устройству ввода-вывода с отображением памяти (FPGA) из RTP в VxWorks?

При использовании VxWorks мы пытаемся получить доступ к устройству ввода-вывода с отображением памяти из процесса реального времени.
Поскольку RTP имеют защиту памяти, как я могу получить доступ к своему устройству ввода-вывода из одного процесса?


person Benoit    schedule 22.09.2008    source источник


Ответы (1)


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

Подсистема ввода-вывода (предпочтительно)

По сути, вы создаете небольшой драйвер устройства. Этот драйвер можно интегрировать в подсистему ввода-вывода VxWorks. После интеграции драйвер доступен для RTP, просто используя стандартные операции ввода-вывода: открытие, закрытие, чтение, запись, ioctl.

Обратите внимание, что «создание драйвера устройства» не должно быть сложным. Это может быть так же просто, как просто определить оболочку для функции ioctl. См. ioLib для более подробной информации.

Прямое сопоставление памяти (не рекомендуется)

Вы можете создать разделяемую область памяти с помощью вызова sdOpen. При создании разделяемой памяти вы можете указать, каким должен быть физический адрес. Укажите адрес в качестве области сопоставления ввода-вывода вашего устройства, и вы сможете получить прямой доступ к устройству.

Проблема в том, что разделяемая область памяти является общедоступным объектом, доступным для любого пространства, и прямое обращение к оборудованию противоречит философии RTP.

person Benoit    schedule 22.09.2008