ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: emc2 от 15 Февраля, 2012, 11:01:36
-
Начал работу с ТионПро270. До этого использовали плату на ep9315.
Можно пояснить какое именно ядро собирать для КФС? Собрал QT, загрузил КФС с вашего сайта, запуск демо-примеров выдает "can't resolve symbol "__emutls get address". Получается библиотеки ядра не совпадают с библиотеками КФС? Какое ядро надо компилить для buildroot КФС? С каким ядром поставляется ТионПро270 по умолчанию? В логах загрузки не видно. Пока не перепрошивал свое ядро в тион.
-
> библиотеки ядра
Что?
> С каким ядром поставляется ТионПро270 по умолчанию?
C 20 января 2010 в Тион-Про270 при продаже записывают uImage-2.6.22.19_svn888_eabi и
rootfs-buildroot-2009.08.git_6a02cd8c744ac88cfc4e633bf3d1411495d5e6b0_with_serial-pair.jffs2
> Какое ядро надо компилить для buildroot КФС?
www.zao-zeo.ru/dokuwiki/doku.php/linux#патчи_ядра
с учётом того, какое ABI в КФС.
-
Проблема не решилась. Собрал КФС из git-репозитория. Ошибка "cant resolve symbol "__emutls get address" при попытке запустить QT-приложение. Что можно еще попробовать?
-
1. Дайте конфигурацию с которой собирали КФС.
2. Qt собирали в Buildroot?
-
КФС собирал с конфигом по умолчанию
make BOARD=tion270
Установка скачала кучу архивов с сети (некоторые скачивал вручную и помещал в dl)
А что значит собрать QT в buildroot?
QT собирал так:
1.Прописал export PATH+=:/usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/bin
2. Собрал tslib, установил.
3. Сконфигурировал QT с путем к tslib
4. Собрал QT, потом примеры.
Далее скопировал полученную root директорию, все библиотеки QT и tslib на карту памяти и пытался запустить.
Где тут будет участвовать buildroot не совсем понимаю. Все что нужно было для QT установил в пакетах, постепенно разрешая зависимости.
-
> Где тут будет участвовать buildroot не совсем понимаю.
В Buildroot есть Qt, его с помощью Buildroot'а и соберите (с примерами).
Вам нужно изменить конфигурацию (make menuconfig), сохранить в .config и
скопировать в local/tion270/tion270.config
Это можно сделать в том же каталоге Buildroot'а, где вы уже собирали КФС.
Не забудьте при конфигурации BR2_PACKAGE_QT_PIXEL_DEPTH_18
-
Спасибо за ответ. Кажется начинаю понимать buildroot. Так даже удобнее :). А не подскажете где можно поменять усатновку QT4.5.2 по умолчанию на более свежую версию? (скажем 4.8.0)
-
Попробуйте с той, что есть.
Поменять можно в package/qt/qt.mk, естественно, кроме версии придётся изменять и ещё что-нибудь.
-
Подскажите пожалуйста. Собрал КФС с QT, скопировал содержимое директории ..buildroot-2009.08/project_build_arm/tion270/root на SD-карту. При загрузке выдает такой лог:
Starting kernel ...
Uncompressing Linux.................................................................................................. done, booting the kernel.
[ 0.000000] Linux version 2.6.22.19 (asv@phenom) (gcc version 4.2.4 (Debian 4.2.4-6)) #1 Tue Jan 19 19:00:18 MSK 2010
[ 0.000000] CPU: XScale-PXA270 [69054118] revision 8 (ARMv5TE), cr=0000397f
[ 0.000000] Machine: Tion-Pro270 Board
[ 0.000000] Ignoring unrecognised tag 0x00000000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] Run Mode clock: 208.00MHz (*16)
[ 0.000000] Turbo Mode clock: 416.00MHz (*2.0, active)
[ 0.000000] Memory clock: 208.00MHz (/2)
[ 0.000000] System bus clock: 208.00MHz
[ 0.000000] CPU0: D VIVT undefined 5 cache
[ 0.000000] CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
[ 0.000000] CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
[ 0.000000] Built 1 zonelists. Total pages: 32512
[ 0.000000] Kernel command line: mem=128M root=/dev/mmcblk0p1 rw rootfstype=ext2 console=ttyS0,115200 video=pxafb:tag=vga rootdelay=8
[ 0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[ 0.000000] Console: colour dummy device 80x30
[ 0.090000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.100000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.120000] Memory: 128MB = 128MB total
[ 0.120000] Memory: 126720KB available (2776K code, 204K data, 120K init)
[ 0.330000] Mount-cache hash table entries: 512
[ 0.330000] CPU: Testing write buffer coherency: ok
[ 0.340000] NET: Registered protocol family 16
[ 0.370000] SCSI subsystem initialized
[ 0.370000] usbcore: registered new interface driver usbfs
[ 0.38000] usbcore: reger hub
[ 0.390000] usbcore: registered new device driver usb
[ 0.400000] Time: pxa_timer clocksource has been installed
[ 0.400000] NET: Registered protocol family 2
[ 0.500000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.500000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.510000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.520000] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.520000] TCP reno registered
[ 0.560000] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.570000] JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
[ 0.570000] io scheduler noop registered
[ 0.580000] io scheduler anticipatory registered
[ 0.580000] io scheduler deadline registered
[ 0.590000] io scheduler cfq registered (default)
[ 0.630000] Console: switching to colour frame buffer device 80x30
[ 0.650000] pxa2xx-fb pxa2xx-fb: pxafb_probe done
[ 1.290000] pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
[ 1.300000] pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
[ 1.310000] pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
[ 1.320000] RAMDISK driver initialized: 2 RAM disks of 32768K size 1024 block[ 1.330000] loop: module loaded
[ 1.340000] eth0: dm9000 at f1000000,f1000004 IRQ 146 MAC: 00:50:c2:bb:45:b5
[ 1.350000] Probing flash at physical address 0x00000000 (32-bit buswidth)
[ 1.360000] Flash: Found 2 x16 devices at 0x0 in 32-bit bank
[ 1.360000] Intel/Sharp Extended Query Table at 0x0031
[ 1.370000] Using buffer write method
[ 1.370000] cfi_cmdset_0001: Erase suspend on write enabled
[ 1.380000] Creating 3 MTD partitions on "Flash":
[ 1.380000] 0x00000000-0x00080000 : "Bootloader"
[ 1.390000] 0x00080000-0x00480000 : "Kernel"
[ 1.390000] 0x00480000-0x02000000 : "Filesystem"
[ 1.400000] pxa27x-ohci pxa27x-ohci: PXA27x OHCI
[ 1.410000] pxa27x-ohci pxa27x-ohci: new USB bus registered, assigned bus number 1
[ 1.420000] pxa27x-ohci pxa27x-ohci: irq 3, io mem 0x4c000000
[ 1.480000] usb usb1: configuration #1 chosen from 1 choice
[ 1.490000] hub 1-0:1.0: USB hub found
[ 1.500000] hub 1-0:1.0: 3 ports detected
[ 1.610000] Initializing USB Mass Storage driver...
[ 1.610000] usbcore: registered new interface driver usb-storage
[ 1.620000] USB Mass Storage support registered.
[ 1.620000] mice: PS/2 mouse device common for all mice
[ 1.630000] I2C: i2c-0: PXA I2C adapter
[ 1.640000] I2C: i2c-1: PXA I2C adapter
[ 1.640000] m41t00 0-0068: rtc core: registered m41t00 as rtc0
[ 1.650000] i2c-1: error: exhausted retries
[ 1.660000] i2c-1: msg_num: 0 msg_idx: -2000 msg_ptr: 0
[ 1.660000] i2c-1: ICR: 000007e0 ISR: 00000002
[ 1.660000] i2c-1: log: [00000446:000007e0]
[ 1.680000] usbcore: registered new interface driver usbhid
[ 1.680000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[ 1.690000] Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC).
[ 1.700000] pxa2xx_ac97_reset: cold reset timeout (GSR=0x0)
[ 1.870000] input: UCB1400 touchscreen interface as /class/input/input0
[ 1.880000] ALSA device list:
[ 1.880000] #0: pxa2xx-ac97 (Philips UCB1400)
[ 1.890000] TCP cubic registered
[ 1.890000] NET: Registered protocol family 1
[ 1.890000] NET: Registered protocol family 17
[ 1.900000] XScale iWMMXt coprocessor detected.
[ 1.900000] m41t00 0-0068: setting the system clock to 2000-02-22 17:31:08 (951240668)
[ 1.910000] Waiting 8sec before mounting root device...
[ 1.960000] mmc0: new SD card at address 0002
[ 1.960000] mmcblk0: mmc0:0002 00000 1955840KiB
[ 1.970000] mmcblk0: p1
[ 9.940000] EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
[ 9.950000] VFS: Mounted root (ext2 filesystem).
[ 9.950000] Freeing init memory: 120K
[ 11.360000] eth0: link down
[ 13.360000] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Из последних строчек видно, что ядро продолжает работать, но не запустилось приглашение. Inittab пока не трогал.
-
> скопировал содержимое директории ..buildroot-2009.08/project_build_arm/tion270/root на SD-карту
Смотрите внимательней на п.2
http://www.zao-zeo.ru/dokuwiki/doku.php/linux#sd-карта
файл binaries/tion270/rootfs.arm.ext2
-
Спасибо. Заработало.
В ep9315 тачскрин в /etc/profile был описан у меня так:
export QTDIR=/lib
export QWS_DISPLAY=linuxfb:/dev/fb0
export QWS_MOUSE_PROTO=Tslib:/dev/misc/ep93xx_ts
export QWS_SW_CURSOR=0
export QWS_KEYBOARD=USB:/dev/input/event0
export QT_QWS_USE_KEYCODES=1
export LC_ALL=ru_RU.UTF-8
export LANG=ru_RU.UTF-8
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty
А как описать его в Tion270? Вычитал в соседней теме, что нужно писать:
QWS_MOUSE_PROTO=tslib:/dev/input/event0
Добавил это, но при попытке откалибровать пишет:
ts_open: No such file or directory
Какое устройство здесь отвечает за поддержку тачскрина? В ядре с завода включен тачскрин? Или надо пересобрать?
-
> Какое устройство здесь отвечает за поддержку тачскрина?
UCB1400
> В ядре с завода включен тачскрин? Или надо пересобрать?
Включен, и в полученной КФС должен уже быть правильно настроен.
Запустите ts_calibrate
www.zao-zeo.ru/dokuwiki/doku.php/linux#калибровка
-
> Добавил это, но при попытке откалибровать пишет:
Верните так, как было
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
-
Результат выполнения:
# ts_calibrate
ts_open: No such file or directory
# ts_test
/dev/touchscreen/ucb1x00: No such file or directory
Хотя dmesg говорит:
input: UCB1400 touchscreen interface as /class/input/input0
-
Покажите вывод printenv и /etc/ts.conf
-
printenv:
HISTFILESIZE=1000
INPUTRC=/etc/inputrc
USER=root
HOSTNAME=tion270
OLDPWD=/home/qwt-examples
HOME=/root
PAGER=/bin/more
PS1=#
LOGNAME=root
TERM=vt100
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LANG=C
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
SHELL=/bin/sh
PWD=/usr/bin
EDITOR=/bin/vi
/etc/ts.conf :
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
-
Ядро вы не заменяли?
uname -a
Linux tion270 2.6.22.19 #1 Tue Jan 19 19:00:18 MSK 2010 armv5tel GNU/Linux
Давайте .config из Buildroot
-
И КФС взята из binaries/tion270/rootfs.arm.ext2 без измеений?
-
Отправил конфиг по почте.
Ядро не менял. Все как у Вас.
КФС не менял. Монтировал rootfs.arm.ext2 на директорию mount -o loop <mnt>
Потом копировал sudo cp -R * <flash>
-
Я попробую и сообщу (не обязательно сегодня).
-
Почему tslib (BR2_PACKAGE_TSLIB) не включен в конфигурации?
-
Тысяча извинений. Добавил этот пункт. Кроме того запустил поиск на tslib и добавил еще BR2_PACKAGE_DIRECTFB=y
Собрал КФС и скопировал. ts_test попрежнему выдает:/dev/touchscreen/ucb1x00: No such file or directory
Может нужно самому создать это устройство? Ядро не менял. Сборка с завода.
-
> Добавил этот пункт
Нет, проблема не в этом, вы говорили что собирали tslib отдельно, поэтому я решил что у вас tslib
своей сборки. Но в настройках Qt указано использование tslib и tslib будет собрано по зависимости
и без явного указания BR2_PACKAGE_TSLIB.
> BR2_PACKAGE_DIRECTFB
DirectFB вам, в общем, не нужен, если вы собираетесь использовать Qt.
Для tslib нужно задать
export TSLIB_TSDEVICE=/dev/input/event0
в /etc/profile и заново залогиниться.
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
потребуется для Qt.
-
Добавил строки в /etc/profile
Вот результат работы ts_test и одного нажатия:
# ts_test
tslib: Unknown event type 0
951509496.470464: 161 365 560
951509496.500444: 163 365 560
951509496.500467: 163 366 560
tslib: Unknown event type 0
951509496.500472: 163 366 596
951509496.530443: 164 366 620
951509496.530465: 166 364 638
tslib: Unknown event type 0
951509496.530469: 167 363 665
951509496.560424: 166 363 672
951509496.560442: 165 363 677
tslib: Unknown event type 0
951509496.560446: 164 364 671
951509496.590429: 164 364 664
951509496.590450: 165 365 659
tslib: Unknown event type 0
951509496.620433: 153 368 665
951509496.620433: 144 371 672
951509496.620453: 138 372 678
tslib: Unknown event type 0
951509496.620457: 132 373 679
951509496.650510: 132 372 0
tslib: Unknown event type 0
При запуске ts_calibrate на экране не видно маркеров, экран очищается полностью. Вот результат попытки откалибровать вслепую:
# ts_calibrate
xres = 640, yres = 480
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 14 samples...
Top left : X = 516 Y = 522
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 13 samples...
Top right : X = 888 Y = 928
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 12 samples...
Bot right : X = 872 Y = 122
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 11 samples...
Bot left : X = 138 Y = 94
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 11 samples...
Center : X = 148 Y = 919
-38.849731 0.542607 0.156322
482.486115 -0.122260 -0.347853
Calibration constants: -2546056 35560 10244 31620210 -8012 -22796 65536
В QT курсор перемещается, но из-за неверной калибровке криво. Но постоянно выдает tslib: Unknown event type 0
-
> При запуске ts_calibrate на экране не видно маркеров, экран очищается полностью.
Когда объединял tion и tion270 в одном Buildroot, я забыл про package/tslib/tslib-1.0-18bpp.patch
Он во вложении, поместите его в указанный каталог и сделайте
make tslib-clean
make
Я позже обновлю в git.
> Но постоянно выдает tslib: Unknown event type 0
Это ничего.
-
Попробовал. Такое ощущение, что патч не принимается. Экран при калибровке по-прежнему пустой.
В QT все отображается.
-
Обновил в git (и проверил).
Делайте git pull и make tslib-clean; make
-
Скачал полностью весь buildroot и пересобрал. Не особо хорошо знаю GIT, но git pull выдает у меня такое сообщение:
$ git pull http://zao-zeo.ru/media/files/linux/buildroot-2009.08.git
fatal: Not a git repository (or any of the parent directories): .git
Попрежнему при калибровке черный экран. Какой тип дисплея Вы использовали при проверке? У нас CLAA057VA01CT. Еще заметил, что при калибровке "вслепую" (т.е. жму сначала примерно в центр экрана, потом в top left, top rigth, bot rigth, bot left) в QT при перемещении в горизонтальном направлении курсор перемещается в вертикальном и наоборот.
-
> git pull выдает у меня такое сообщение:
> Скачал полностью весь buildroot и пересобрал
Откуда именно?
git pull (без адреса) в каталоге buildroot.
> У нас CLAA057VA01CT
На точно таком.
> примерно в центр экрана, потом в top left, top rigth, bot rigth, bot left) в
> QT при перемещении в горизонтальном направлении курсор
> перемещается в вертикальном и наоборот
Последовательность нажатий другая.
> Попрежнему при калибровке черный экран.
Сделайте в buildroot:
make tslib-clean
make tslib-dirclean
make 2>&1 | tee make.log
По содержанию make.log будет понятно, применён
package/tslib/tslib-1.0-18bpp.patch или нет.
-
Спасибо. Тачскрин заработал. Откалибровался и корректно работает в QT.
-
Добрый день.
Продолжаю переход c EP9315 на PXA270. Есть еще несколько вопросов:
1. В Тионе-Про-270 отсутствует возможность использовать матричную клавиатуру? Включил в ядре "PXA27хх keyboard support" и "GPIO buttons". В каком устройстве будут возникать события клавиатуры и какие файлы править для назначения кодов клавиш?
2. SPI. В ТионеПро v2 использовал файл zeoio.c и соответственно изменял его под свои нужды. Каким путем нужно идти в PXA270? Через spidev? Необходимо создать опрос внешнего SPI устройства.
Заранее спасибо.
-
Неплохо было бы поменять тему.
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.
-
Добавил в menuconfig опцию
│ Symbol: SPI_PXA2XX [=y] │
│ Prompt: PXA2xx SSP SPI master
Собрал ядро и перезалил. С каким устройством мне необходимо работать? /dev/spidev устройство не появилось в системе. Как собственно из исходных кодов понять с каким устройством КФС будет сопоставлен конкрено взятый драйвер?
-
> /dev/spidev устройство не появилось в системе
Вы намерены использовать spidev. udev на плате нет, файлы
устройств автоматически не создаются, см. Documentation/spi/spidev
> Как собственно из исходных кодов понять с каким устройством
> КФС будет сопоставлен конкрено взятый драйвер?
Для какого "собственно конкретно взятого" драйвера?
-
В Тионе про нужно было выполнить
mknod /dev/zeoio/relays c 250 1
Создавалось устройство в папке zeoio. Пока что со spidev не разобрался как это делается. Буду читать дальше.
-
> Тионе про нужно было выполнить
Потому что этот драйвер обслуживает эти (major num 250) символьные устройства
(создаёт их в окружении ядра). Он написан с таким интерфейсом символьных файлов
к пользовательскому окружению. Можно придумать другие интерфейсы (sysfs, сетевой...).
И если вы используете именно этот драйвер, то вам и нужно сделать файл символьного
устройства с номерами 250 1 (и прочие). Если какой-то другой драйвер, то нужно знать какой
интерфейс он предоставляет.
-
Добрый день.
Немного почитал про написание драйверов. Пытаюсь добавить модуль 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
Подскажите, что я не так делаю?
-
1. Если zeoio как модуль, то почему вы его не insmod?
Отсюда получается "No such device or address"
2. zeoio в функции probe ожидает получить от устройства определённый ответ,
иначе, символьные файлы не регистрируются, и получается "No such device or address"
-
Пробовал и с insmod и компиляцию сразу с ядром. Почему то я не вижу вообще сообщений модуля в dmesg.
Пробовал так в zeoio_probe:
iprintk (" Add character devices\n");
и так
printk(KERN_ERR MODULE_NAME ":Add character devices\n");
Сообщений отладки нет.
lsmod говорит, что модуль есть.
CONFIG_ZEOIO_DEBUG в конфигурации включил. Что еще нужно включить?
-
Вставил printk в zeoio_init. Сообщения появляются в dmesg. Получается не проходит zeoio_probe.
-
В arch/arm/mach-pxa/tion270.c вы добавили структуру с modalias "zeoio"?
static struct spi_board_info spi_board_info[] __initdata = {
-
Не создаю новую тему. Тут был разбор DIRECT_KEYS. А нет ли патча для энкодера EC12E2424404(ну или аналогичного) с использованием gpio_keys, как это было реализовано в ep93xx_keypad.c? Если нет, то в какую сторону копать? Взять за основу ep93xx_keypad.c? Собственно у нас из клавиатуры один только энкодер с кнопкой на нем :)
-
На PXA есть контроллер rotary encoder (подключаемый к direct keys) и в коде
драйвера pxa27x_keyboard.c есть его упоминание.
-
А не подскажите как определить #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)
я так подозреваю - это они?
-
Покопался в документации на процессор. Получается в качестве входа энкодера может назначаться фиксированный вход GPIO. Так вот как определить какой из GPIO в таблице Table 24-2. GPIO Alternate Functions может быть этими входами? Мы использовали GPIO101, 102, 103.
-
Для энкодера (18.4.2.2 Rotary Encoders) можно использовать KPDK[3:0] (96,
(95 не выведен), 94, 93). GPIO101, 102, 103 только для матричной
клавиатуры.
-
Поясните пожалуйста, к чему нужно подтянуть вход DIRECT KEYS? Для матричной клавиатуры понятно: на линии столбца появится 1 или 0 и она подтянет входы строки к нужному уровню. А как для DIRECT KEYS?
-
Насколько помню, просто как вход для кнопки, см. вложение.