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

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

1 Ответ

4 голосов
/ 22 сентября 2008

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

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

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

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

Карта памяти напрямую (не рекомендуется)

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

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

...