В спецификации отладочной платы указано "74 линии I/O". По документации на разъемы X1, X2, X6, X7 выведено только 27 GPIO.
Используется прошивка с Linux. Работа с портами методом /sys/class/gpio из пространства пользователя проверена.
На основе GPIO планируется создать некое подобие параллельной шины доступа к внешнему устройству.
Подскажите:
1. Возможно ли получить на этих разъемах все 74 линии GPIO?
2. Если это возможно, то как определить какие контакты будут соответствовать каким номерам GPIO
3. Для ускорения работы программы требуется параллельная установка/чтение портов GPIO, что может быть достигнуто непосредственным обращением к регистру. Возможен ли такой подход в рамках модуля ядра? Не возникнут ли проблемы с драйверами устройств, продолжающими использовать порты GPIO?
возьмите с фрискейла утилиту iomux и посмотрите - в каких режимах могут работать выводы RGB, LVDS, VGA.. вполне вероятно, что отказавшись от работы с экраном можно получить дополнительно # пинов в режиме gpio..
Действительно, почти все выводы можно сконфигурировать на работу с GPIO. Вам правильно подсказали насчет утилиты iomux - в ней можно посмотреть какие выводы к каким GPIO можно прицепить.
Для того чтобы переключить эти выводы на GPIO нужно в файле glue-кода /arch/arm/mach-mx5/board-mx53_loco.c в массиве пинов mx53_loco_pads определить необходимые для включения GPIO переключатели мультиплексоров. Их перечень определен в файле /arch/arm/plat-mxc/include/mach/iomux-mx53.h.
Дальше пересобирайте ядро, делайте mmap области регистров GPIO в своем приложении и обращайтесь к ним на здоровье)
вы определитесь с целями и задачами.. если требуется оторвать неиспользуемую периферию и задействовать эти пины под свои задачи, то лучше все же переконфигурить и пересобрать ядро - в будущем будет меньше хлопот и проблем..
в теории, в монолитном ядре можно заглушить работающий драйвер..
использовал Pici там адресация прямая...
сейчас по работе использую плату на Cirrus Logic ЕР9315 там тоже адесация прямая...
на IMX53-OEM впервые столкнулся с IOMUX прочитал доки...
утилиту iomux.. скачал сразу как платку приобрёл..
пробовал вычислять по расчетам пины-ножки...
и не как не получается переключить (поменять назначение)..
проверял через Bash echo NN > /sys/class/gpio/export ...--итд-...
как "дергать ножки" на Си я знаю, пользуюсь на Cirrus..
может есть образы с уже выведенными GPIO.. в замен LVDS..
осцилл показывает изменение уровня сигнала на пине..
это врядли.. у этого числогрыза неплохие видеохарактеристики, кто ж по доброй воле откусит lvds?
может вы АРМ не того класса выбрали? ведь существуют камни без графики даже в пределах одного семейства..