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

 
 
> Как из пол линукса обратится красиво к портам PIO?
neiro80
сообщение Jan 14 2009, 09:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-09-08
Пользователь №: 40 127



Линукс стоит на атмеловксом арме...пусть будет рм9200.
Как можно красиво обратится к портам pioa,piob,pioc? Ну там выставить единицу,ноль,настроить на ввод/вывод..
можно конеш через маппирование страницы..но может можно обращаться типа как к устройствам...(так же как к spi или tty)??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
Ivan_Kov
сообщение Jan 14 2009, 09:45
Сообщение #2


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

Группа: Свой
Сообщений: 174
Регистрация: 30-10-06
Из: г. Курск
Пользователь №: 21 787



Пишите красивый драйвер - и красиво обращайтесь
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 14 2009, 12:09
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(neiro80 @ Jan 14 2009, 11:16) *
Линукс стоит на атмеловксом арме...пусть будет рм9200.
Как можно красиво обратится к портам pioa,piob,pioc? Ну там выставить единицу,ноль,настроить на ввод/вывод..
можно конеш через маппирование страницы..но может можно обращаться типа как к устройствам...(так же как к spi или tty)??

arch/arm/mach-at91/include/mach/gpio.h


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
neiro80
сообщение Jan 14 2009, 13:15
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-09-08
Пользователь №: 40 127



Скажи плз, а как достучатся до этих функций из своего приложения?
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 14 2009, 13:26
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(neiro80 @ Jan 14 2009, 15:15) *
Скажи плз, а как достучатся до этих функций из своего приложения?

Например как здесь
linux/drivers/serial/atmel_serial.c


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
neiro80
сообщение Jan 14 2009, 13:38
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-09-08
Пользователь №: 40 127



Цитата(amw @ Jan 14 2009, 16:26) *
Например как здесь
linux/drivers/serial/atmel_serial.c


не понял чет. это из ядра же. а из приложения своего ведь не вызвать допустим at91_set_gpio_value(AT91_PIN_PA21, 0)...
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 14 2009, 19:30
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(neiro80 @ Jan 14 2009, 15:38) *
не понял чет. это из ядра же. а из приложения своего ведь не вызвать допустим at91_set_gpio_value(AT91_PIN_PA21, 0)...

А, в этом смысле. Извините, не понял.
Ну тогда два варианта.
1. Нормальный. Написать драйвер, использующий gpiolib (linux/drivers/gpio).
2. Не совсем нормальный, однако довольно часто используемый. http://svn.openmoko.org/developers/werner/poke/. Ну и, например, привести полученный указатель к указателю на структуру AT91PS_PIO (или как она там называется).


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 14 2009, 22:41
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(neiro80 @ Jan 14 2009, 16:15) *
Скажи плз, а как достучатся до этих функций из своего приложения?


1) http://www.at91.com/samphpbb/viewtopic.php?p=13668
2) http://www.ipbx.ru/rm9200/gpio-RM9200.tar.gz
Думаю лучше один раз увидеть чем сто раз услышать smile.gif
Go to the top of the page
 
+Quote Post
dch
сообщение Jan 15 2009, 00:53
Сообщение #9


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



кстати как во второй програмке с установкой пина - были сообщения что неправильно устанавливается.
Go to the top of the page
 
+Quote Post
PrSt
сообщение Jan 21 2009, 22:23
Сообщение #10


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(amw @ Jan 14 2009, 21:30) *
...
2. Не совсем нормальный, однако довольно часто используемый. http://svn.openmoko.org/developers/werner/poke/. Ну и, например, привести полученный указатель к указателю на структуру AT91PS_PIO (или как она там называется).


извиняюсь, но...
бр-бр, что то по этой ссылке даже намека на использование gpio нету, ссылка точно верна?
или я не так что то понял?

.

Цитата(neiro80 @ Jan 14 2009, 11:16) *
Линукс стоит на атмеловксом арме...пусть будет рм9200.
Как можно красиво обратится к портам pioa,piob,pioc? Ну там выставить единицу,ноль,настроить на ввод/вывод..
можно конеш через маппирование страницы..но может можно обращаться типа как к устройствам...(так же как к spi или tty)??


можно это сделать реализовав через модуль ядра, благо примеров достаточно в инете...
...
#include <asm/io.h>
#include <asm/arch/gpio.h>
...
at91_set_gpio_output(AT91_PIN_PC10, 1);
at91_set_gpio_output(AT91_PIN_PC10, 0);
...

да, понятие красоты обращения не стоит ставить на первое место, часто это зависит от необходимости...


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 25 2009, 21:29
Сообщение #11


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Товарищи! Подскажите, пожалуйста, где раздобыть примеры по работе с gpiolib ??? И документацию читал, и примеры пытался разыскать, но в итоге нет четкого и совершенно определенного представления что как делать, например, как определить число доступных GPIO, как их "взять", задать направление... Вижу соответствующие функции, но не понимаю как _начать_ , как склеить все это воедино??? ...


--------------------
Go to the top of the page
 
+Quote Post
MTh
сообщение Jan 27 2009, 09:39
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771



Вариантов 2:
1. Собственно говоря вы лезете в исходники линукса и находите там сырцы под свой МК. С подключением сырцов пишите свой драйвер. И затем через него уже лезете к выводам порта.
2. Используете готовую либу GPIO (включив в ядре поддержку и пересобрав). Тут уже надо полазить по исходникам (или по /proc) и посмотреть какие функции экспортируются. А потом по ним обращаться.

Вариант со своим драйвером имеет + и -...
+ - разберетесь что и как
- - долго это smile.gif
Почитайте книжку Linux Device Drivers - там все-все написано... особое внимание обратите на wmb()/rmb() иначе можно неплохо "втупить"...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:22
Рейтинг@Mail.ru


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