0

Я использую Petalinux для приложения Xilinx Zynq, и я новичок в разработке драйверов ядра.Регистрация устройства платформы с информацией из дерева устройств

Я создал модуль ядра для драйвера платформы для интерфейса FIFO AXI. Устройства, как представляется, распознаются из дерева устройств с использованием .of_match_table, так как я могу видеть правильное пространство памяти, зарезервированное с помощью cat /proc/iomem.

Если я искать имя драйвера ххх Я получаю

./lib/modules/4.4.0-xilinx/extra/xxx.ko 
./sys/bus/platform/drivers/xxx 
./sys/module/xxx 
./sys/module/xxx/drivers/platform:xxx 

Я нашел устройство под /sys/bus/platform/devices/43c00000.axi_xxxx, но до сих пор не может получить к нему доступ или увидеть его под /dev/.

  • Как зарегистрировать устройство, чтобы я мог открыть его из своего приложения для пользовательского пространства ?.

  • Должен ли я выделить память для него, а затем зарегистрировать новое устройство с помощью platform_device_register(pdev)?

Благодаря

ответ

0

Вы должны зарегистрировать свое устройство в рамках, чтобы получить файл устройства, созданного.

Я бы предложил зарегистрировать miscdevice в вашем случае. Он просто регистрирует устройство символов.

static struct miscdevice miscdev; 

static ssize_t myaxi_read(struct file *file, char __user *buf, 
       size_t sz, loff_t *ppos) 
{ 
    // Do something 

} 

static ssize_t myaxi_write(struct file *file, const char __user *buf, 
        size_t sz, loff_t *ppos) 
{ 
    // Do something 
} 

static const struct file_operations myaxi_fops = { 
    .owner = THIS_MODULE, 
    .write = myaxi_write, 
    .read = myaxi_read, 
}; 

В вашем датчике:

miscdev.minor = MISC_DYNAMIC_MINOR; 
miscdev.name = "myaxi"; 
miscdev.fops = &myaxi_fops; 
misc_register(&miscdev); 

Вы можете прочитать больше о Linux разработки драйверов ядра и модели устройства в http://free-electrons.com/doc/training/linux-kernel/linux-kernel-slides.pdf

+0

Спасибо, это помогло - вы, вероятно, со ссылкой на [ссылка] (http://free-electrons.com/doc/training/linux-kernel/linux-kernel-slides.pdf). Я продолжу это. – gavenant

+0

Конечно, я исправил ссылку –

Смежные вопросы