Я должен получить доступ к блоку памяти, присвоенной FPGA микросхеме PLX. Теперь я не думаю, что это будет слишком большой проблемы кроме тех случаев, когда я пытаюсь использовать /include/linux-headers
они, кажется, несколько испытывают недостаток в возможности иначе в заголовочных файлах ПРОСТРАНСТВА ПОЛЬЗОВАТЕЛЯ. Обычно у них будет меньше функций, например /include/linux/pci.h
будут только 100 строк или около этого.
Что делают пакеты я должен установить, чтобы смочь сказать в моем заголовочном файле #include<pci.h>
так, чтобы это на самом деле указало на pci.h
в /usr/src/linux-headers-3.1.x.xx
а не тот в /usr/include/linux
?
Я знаю, что существуют все виды пакетов, но откровенно все чтение просто сделало меня смущенным и несколько осторожным относительно который установить.
Некоторые из тех я смотрел по желанию быть чем-то как.
kernel-devel
kernel-headers
dkms
Почему я хотел бы установить что-либо еще, и thsese будет на самом деле работать на меня?
При программировании драйвера Вам нужны заголовочные файлы ядра, для которого Вы программируете. Для обнаружения, какое ядро Вы выполняете можно использовать uname -a
. Установите его заголовочные файлы с apt-get install linux-headers-$(uname -r)
.
И пользователь и система , заголовочные файлы включены с помощью директивы предварительной обработки #include. Это имеет следующие две формы:
#include <file>
Эта форма используется для система заголовочные файлы. Это ищет файл, названный файлом в стандартном списке системных каталогов. Можно предварительно ожидать каталоги к этому списку с-I опцией при компиляции исходного кода.
#include "file"
Эта форма используется для заголовочных файлов Вашей собственной программы. Это ищет файл, названный файлом в каталоге, содержащем текущий файл. Можно предварительно ожидать каталоги к этому списку с-I опцией при компиляции исходного кода.