jak poznać numer przerwania / GPIO dla określonego pin w Linuksie
Robię projekt, w którym muszę poradzić sobie z przerwaniem w Linuksie.
Płyta, której używam, to ARM9Board oparty na MCU S3C6410 firmy Samsung (procesor arm 11) i ma następujący interfejs We / Wy:
Jak widać na obrazku mam piny EINTx dla zewnętrznych przerwań i piny GPxx jako piny GPIO i nie mam nic przeciwko użyciu żadnego z nich, ale nie mam ich numerów !
Dla pinów EINTx:
When I call
int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *),
unsigned long flags, const char *device);
I potrzebujesz numer przerwania, aby przekazać go jako pierwszy paramter funkcji, więc jak Mogę uzyskać numer irq na przykład pin EINT16 ?
Dla pinów GPxx: ta sama historia, jak muszę GPIO pin nuumber przekazać go do tych funkcji
int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);
Czyli jak poznać numer GPIO dla GPP8 pin ?
Przeszukałem dokumenty tablicy i arkusz danych, ale nie zawiera nic o tym , jak zdobyć te numery, jakiś pomysł lub pomoc, gdzie szukać ?
2 answers
Wbudowany Linux, którego używasz, powinien mieć sterownik GPIO, który ma #define
instrukcje dla pinów GPIO. Następnie można uzyskać numer IRQ konkretnego GPIO za pomocą czegoś takiego jak:
irq_num = gpio_to_irq(S3C64XX_GPP(8));
Obsługa Linux GPIO lib dla tego konkretnego układu jest dostępna w następującym pliku:
Linux / arch / arm/mach-s3c6400/include/mach / gpio.h
Tam znajdziesz wszystkie #define
wypowiedzi dla różnych GPIO.
Zobacz sekcję o GPIO Konwencje w ich dokumentacji:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 09:30:29
Pracowałem też nad pinem GPIO, ale jest on na innej płycie, AM335x. tak dla twojej wiadomości, jest na to sporo sposobów. Jedną z metod, których używamy, jest użycie płyty pamięci, aby uzyskać dostęp (zapis lub odczyt) pin GPIO.
To jest naprawdę dobry artykuł, który pomoże mi uruchomić rzeczy. Zarejestruj dostęp do GPIOs z Beaglebone poprzez mapowanie pamięci
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-27 13:36:28