реклама на сайте
подробности

 
 
> Petalinux. Kernel module.
doom13
сообщение Apr 6 2016, 20:23
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Пытаюсь сделать модуль ядра для управления AXI GPIO. По мануалу сгенерил шаблон модуля и вношу в него свои изменения. Отлаживаю работу модуля в QEMU. При загрузке модуля (insmod) выполняется функция инициализации (printk в консоль выводит сообщение) в ней происходит вызов platform_driver_register(&axi_gpio_platform_driver), которая должна "пнуть" вызов axi_gpio_probe(), но вызов axi_gpio_probe() почему-то не происходит (сообщение printk в консоль о выполнении axi_gpio_probe() не выводятся). При этом platform_driver_register(&axi_gpio_platform_driver) возвращает 0.
В чём может быть проблема?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
nill
сообщение Apr 9 2016, 06:02
Сообщение #2


Частый гость
**

Группа: Validating
Сообщений: 124
Регистрация: 10-08-05
Пользователь №: 7 502



В файле pl.dtsi есть секция axi_gpio_0: gpio@10003000. Вам нужно использовать значение compatible = "xlnx,xps-gpio-1.00.a" в своём драйвере. Вы могли найти это значение и в /sys/firmware/devicetree/base/amba_pl/gpio@10003000/compatible.
Go to the top of the page
 
+Quote Post
doom13
сообщение Apr 9 2016, 08:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(nill @ Apr 9 2016, 09:02) *
В файле pl.dtsi есть секция axi_gpio_0: gpio@10003000. Вам нужно использовать значение compatible = "xlnx,xps-gpio-1.00.a" в своём драйвере. Вы могли найти это значение и в /sys/firmware/devicetree/base/amba_pl/gpio@10003000/compatible.

Т.е. для кода модуля (сообщение #8 выше) надо изменить
Код
static struct of_device_id axi_gpio0_of_match[] = {
    { .compatible = "vendor,axi_gpio0", },
    { /* end of list */ },
};

на
Код
static struct of_device_id axi_gpio0_of_match[] = {
    { .compatible = "xlnx,xps-gpio-1.00.a", },
    { /* end of list */ },
};

и всё должно заработать? Это я пробовал, но функция probe() всё равно не вызывалась (axi_gpio0_probe() в моём случае).
Спасибо, попробую ещё раз перепроверить.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- doom13   Petalinux. Kernel module.   Apr 6 2016, 20:23
- - nill   platform_driver_register() всего лишь регистрирует...   Apr 7 2016, 08:07
|- - doom13   Цитата(nill @ Apr 7 2016, 11:07) platform...   Apr 7 2016, 08:58
- - doom13   Уточню. Нашёл исходный код platform_driver_registe...   Apr 7 2016, 10:35
- - nill   Цитата(doom13 @ Apr 7 2016, 14:58) Этого ...   Apr 8 2016, 06:53
|- - doom13   Цитата(nill @ Apr 8 2016, 09:53) А вообще...   Apr 8 2016, 07:31
|- - doom13   Цитата(nill @ Apr 8 2016, 09:53) Покажите...   Apr 8 2016, 07:39
- - nill   Вам же говорят, что это каталог Зайдите внутрь, ...   Apr 8 2016, 07:36
- - nill   axi_gpio0_init(void) и axi_gpio0_exit(void) можно ...   Apr 8 2016, 07:57
|- - doom13   Цитата(nill @ Apr 8 2016, 10:57) axi_gpio...   Apr 8 2016, 08:06
|- - doom13   Цитата(nill @ Apr 8 2016, 11:08) Это имя ...   Apr 8 2016, 08:19
- - nill   Это имя дожно быть одинаковым в драйвере и device ...   Apr 8 2016, 08:08
- - nill   ^ Да, это оно. Так, кажется я начал о чём-то догад...   Apr 8 2016, 08:20
|- - doom13   Цитата(nill @ Apr 8 2016, 11:20) Так, каж...   Apr 8 2016, 08:28
- - nill   axi_gpio_0 определён в карте памяти, посмотрите в ...   Apr 8 2016, 08:41
|- - doom13   Цитата(nill @ Apr 8 2016, 11:41) axi_gpio...   Apr 8 2016, 09:30
- - nill   Других идей у меня, к сожалению, нет. Возможно, чт...   Apr 10 2016, 06:58
- - doom13   RE: Petalinux. Kernel module.   Apr 11 2016, 07:31
|- - nill   Цитата(doom13 @ Apr 11 2016, 14:31) Кодro...   Apr 12 2016, 08:02
- - doom13   nill, cпасибо. Попробую поэкспериментировать с жел...   Apr 12 2016, 09:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.0142 секунд с 7
ELECTRONIX ©2004-2016