사용자 공간에서 실행되는 PCI 장치 드라이버를 쓰려고합니다. 내 아이디어가 아니라 고객이 원하는 것. Target은 임베디드 Linux 보드로 단일 사용자 이상을 가질 수 없습니다. 저는 숙련 된 C 프로그래머이고 Linux를 알고 있습니다. Linux 드라이버 개발에 익숙하지 않습니다.Linux 사용자 공간 PCI 드라이버
정말이 장치 드라이버입니까 아니면 라이브러리입니까? 일반적인 호출 pci_register_driver 등을 사용해야합니까, 아니면 fopen을 사용하여 장치에 액세스 할 수 있습니까? mmap 및 ioperm을 사용하여 액세스 할 수 있습니까?
인터럽트는 MSI 모델을 사용하여 수행됩니다. 또한 DMA 전송을 처리해야합니다. 기기가 사용자에게 많은 양의 데이터를 스트리밍합니다.
이 주제에 대한 정보는 많지 않습니다. LDD3은 몇 페이지 밖에 쓰지 않으며, 여기에서 찾을 수있는 것은 없습니다.
미리 감사드립니다.
답변 해 주셔서 감사합니다. 나는 사용자 프로그램에 링크 될 수있는 libpci-dev 패키지를 발견했으며, 일부 제한된 기능을 제공한다. 하지만 당신이 말했듯이, DMA와 인터럽트 처리가 빠져 있습니다. dev pci 라이브러리를 사용하면 pci config 레지스터를 읽고 쓸 수 있습니다. –