ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: eabi vs oabi  (Прочитано 23766 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #30 : 27 Февраля, 2012, 14:41:36 »

Добрый день.
Продолжаю переход c EP9315 на PXA270. Есть еще несколько вопросов:
1. В Тионе-Про-270 отсутствует возможность использовать матричную клавиатуру? Включил в ядре "PXA27хх keyboard support" и "GPIO buttons". В каком устройстве будут возникать события клавиатуры и какие файлы править для назначения кодов клавиш?
2. SPI. В ТионеПро v2 использовал файл zeoio.c и соответственно изменял его под свои нужды. Каким путем нужно идти в PXA270? Через spidev? Необходимо создать опрос внешнего SPI устройства.
Заранее спасибо.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #31 : 27 Февраля, 2012, 15:28:49 »

Неплохо было бы поменять тему.

1. В Тионе-Про-270 отсутствует возможность использовать матричную клавиатуру? Включил в ядре "PXA27хх keyboard support" и "GPIO buttons". В каком устройстве будут возникать события клавиатуры и какие файлы править для назначения кодов клавиш?

В устройстве /dev/input/eventX
Прилагаю патчи добавляющие в pxa270 Linux-2.6.22 поддержку direct keys (помимо матрчичных).
По ним же видно, какие файлы следует править для определения маричной клавиауты и её кодов.

GPIO buttons лучше не надо.

В "PXA27x Processor Family Developer’s Manual", таблица "GPIO Alternate Functions"
ищите функции выводов KP_* и смотрите какие из соотвествующих им GPIO
выведены на разъёмы и не используются.
Например, разъём J2:
Вывод 5: GPIO90, KP_MKIN<5>
Вывод 6: GPIO91, KP_MKIN<6>
Вывод 11: GPIO96, KP_MKOUT<6>
Вывод 18: GPIO108, KP_MKOUT <5>
...и другие.

Тажке есть KP_DKIN* (direct key): J2.7, J2.8 ...

2. SPI. В ТионеПро v2 использовал файл zeoio.c и соответственно изменял его под свои нужды. Каким путем нужно идти в PXA270? Через spidev? Необходимо создать опрос внешнего SPI устройства.

Точно также, через spidev.
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #32 : 01 Марта, 2012, 13:16:02 »

Добавил в menuconfig опцию
│ Symbol: SPI_PXA2XX [=y]                                                 │ 
  │ Prompt: PXA2xx SSP SPI master 
Собрал ядро и перезалил. С каким устройством мне необходимо работать? /dev/spidev устройство не появилось в системе. Как собственно из исходных кодов понять с каким устройством КФС будет сопоставлен конкрено взятый драйвер?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #33 : 01 Марта, 2012, 13:25:34 »

> /dev/spidev устройство не появилось в системе

Вы намерены использовать spidev. udev на плате нет, файлы
устройств автоматически не создаются, см. Documentation/spi/spidev

> Как собственно из исходных кодов понять с каким устройством
> КФС будет сопоставлен конкрено взятый драйвер?

Для какого "собственно конкретно взятого" драйвера?
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #34 : 01 Марта, 2012, 13:30:07 »

В Тионе про нужно было выполнить mknod /dev/zeoio/relays c 250 1 Создавалось устройство в папке zeoio. Пока что со spidev не разобрался как это делается. Буду читать дальше.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #35 : 01 Марта, 2012, 14:26:53 »

> Тионе про нужно было выполнить

Потому что этот драйвер обслуживает эти (major num 250) символьные устройства
(создаёт их в окружении ядра). Он написан с таким интерфейсом символьных файлов
к пользовательскому окружению. Можно придумать другие интерфейсы (sysfs, сетевой...).

И если вы используете именно этот драйвер, то вам и нужно сделать файл символьного
устройства с номерами 250 1 (и прочие). Если какой-то другой драйвер, то нужно знать какой
интерфейс он предоставляет.
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #36 : 21 Марта, 2012, 13:46:20 »

Добрый день.
Немного почитал про написание драйверов. Пытаюсь добавить модуль zeoio в ядро. Добавил в /drivers/misc zeoio.c, изменил Kconfig и Makefile  . Из функционала модуля оставил пока только регистрацию и открытие. Собрал ядро и перезалил. Создал папку zeoio в /dev Затем набрал mknod /dev/zeoio/relays c 250 1 Появилось устройство relays. Набираю cat /dev/zeoio/relays выдает No such device or address
Подскажите, что я не так делаю?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #37 : 21 Марта, 2012, 14:14:41 »

1. Если zeoio как модуль, то почему вы его не insmod?
Отсюда получается "No such device or address"

2. zeoio в функции probe ожидает получить от устройства определённый ответ,
иначе, символьные файлы не регистрируются, и получается "No such device or address"
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #38 : 22 Марта, 2012, 14:29:32 »

Пробовал и с insmod и компиляцию сразу с ядром. Почему то я не вижу вообще сообщений модуля в dmesg.
Пробовал так в zeoio_probe:
iprintk (" Add character devices\n");
и так
printk(KERN_ERR MODULE_NAME ":Add character devices\n");
Сообщений отладки нет.
lsmod говорит, что модуль есть.
CONFIG_ZEOIO_DEBUG в конфигурации включил. Что еще нужно включить?
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #39 : 22 Марта, 2012, 15:17:37 »

Вставил printk в zeoio_init. Сообщения появляются в dmesg. Получается не проходит zeoio_probe.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #40 : 22 Марта, 2012, 16:01:33 »

В arch/arm/mach-pxa/tion270.c вы добавили структуру с modalias "zeoio"?
static struct spi_board_info spi_board_info[] __initdata = {
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #41 : 20 Февраля, 2013, 13:32:15 »

Не создаю новую тему. Тут был разбор DIRECT_KEYS. А нет ли патча для энкодера EC12E2424404(ну или аналогичного) с использованием gpio_keys, как это было реализовано в ep93xx_keypad.c? Если нет, то в какую сторону копать? Взять за основу ep93xx_keypad.c? Собственно у нас из клавиатуры один только энкодер с кнопкой на нем :)
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: eabi vs oabi
« Ответ #42 : 20 Февраля, 2013, 15:24:43 »

На PXA есть контроллер rotary encoder (подключаемый к direct keys) и в коде
драйвера pxa27x_keyboard.c есть его упоминание.
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #43 : 21 Февраля, 2013, 11:07:08 »

А не подскажите как определить #define вход, отвечающий за A и B энкодера? В файле pxa-regs.h не прокомментированы биты
#define KPREC_OF1       (0x1 << 31)
#define kPREC_UF1       (0x1 << 30)
#define KPREC_OF0       (0x1 << 15)
#define KPREC_UF0       (0x1 << 14)
я так подозреваю - это они?
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: eabi vs oabi
« Ответ #44 : 21 Февраля, 2013, 12:52:21 »

Покопался в документации на процессор. Получается в качестве входа энкодера может назначаться фиксированный вход GPIO. Так вот как определить какой из GPIO в таблице Table 24-2. GPIO Alternate Functions может быть этими входами? Мы использовали GPIO101, 102, 103.
Записан