기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

현재 CPU에 여러 GPIO들이 있고, 2개의 드라이버에서 2개 또는 3개 정도의 GPIO를 Interrupt로 받아야합니다.

그리고 Interrupt가 들어오면, Application에 알려줄 수 있도록 event 처리해야하는데, 어떻게 해야하는지 알려주세요.

 

현재는 한개의 Driver에서 하나의 GPIO를 Interrupt로 처리하며, 방법은 다음과 같습니다.

①Driver에서 Application으로 kill_fasync(&sigo_async_alram, SIGIO, POLL_IN); 로 전달합니다.

②Application에서는

   - read_event_sigact.sa_handler = Handler_gpio_driver;

   - sigaction( SIGIO, &read_event_sigact, &old_event_sigact );

을 이용하여

③Handler_gpio_driver()에서 Driver로부터 온 event를 처리합니다.

그리고 다른 GPIO들은 while() 루프속에서 polling mode로 GPIO를 관찰하고 있습니다.

 

while()루프에서 GPIO를 polling mode로 관찰하면, 신호를 잃어버리는 경우가 자주 발생합니다.

그래서 polling mode를 interrupt mode로 변경하고 여러개의 ISR에서 Application으로 event를 보내, Application에서 각 event마다 처리를 하려고합니다.

그런데 여러개의 event를 Application에 전달하는 방법과 Application에서 분리하는 방법을 몰라 문의드립니다.

어떤 방법을 사용하면 될까요?

(Windows는 event name만 같다면 잘 되는데.. ㅠㅠ)

 

 

H/W 디자인 엔지니어입니다.

 

삼성의 ARM 칩에 관심이 많아져서 가입했습니다.

 

많이 공유할 수 있도록 하겠습니다.

 

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Community_QandA&document_srl=104354&act=trackback&key=883

kyudoc

2013.04.26 00:35:02
*.147.193.27

시그널은 이벤트가 발생했다 정도만 사용되며, 무슨 이벤트인지는 어플리케이션에서 디바이스 드라이버에 read 나 ioctl 등으로 알아오는 수 밖에 없습니다. procfs 를 이용하시면 편리합니다.

 

 

카보

2013.04.26 16:55:59
*.104.239.18

답변 감사합니다. 제가 리눅스 초보라서 procfs를 공부한 다음에 더 질문을 해야할 것 같네요.

고도리

2013.04.29 01:31:53
*.111.12.170

device driver쪽을 만드시는게 정답입니다.


관련 자료를 인터넷에서 찾아보시면 될겁니다.

카보

2013.05.03 01:47:04
*.104.239.18

Device Driver를 만든다는 의미를 잘 몰라서..

procfs쪽에서 사용할 Device Driver를 만들어야한다라는 건가요??

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5808 libusb 보드에서 드라이버 인식 [1] pedor11 2014-01-29 1846
5807 arndale 소스 코드 다운로드 [2] alexyoon 2013-04-17 1844
5806 S5PC100 Win8 64bit USB Driver [1] jackson 2014-04-23 1844
5805 android 바탕화면뜨지않는현상 [2] 정대현 2010-03-11 1843
5804 could not read symbols: File in wrong format 문제에 대해서 ... [6] 혜민아빠 2012-01-19 1843
5803 platform_driver? platform_device? 박수민 2009-06-26 1841
5802 OrigenBoard WiFi Error 발생 문의 [2] 엉뚱 2012-01-12 1840
5801 WiFi 채널 간섭 문제 [9] 신현호 2014-05-17 1840
5800 fs mount시 질문이요... <==완료 [2] 윤현승 2006-04-20 1839
5799 Nexus 10 Full Source Code ??? [2] Simba444 2013-05-25 1838
5798 streamline을 이용해 arndale 보드의 mali-t604를 profiling하려고 합... file [2] 김영준 2013-08-01 1838
5797 frame buffer layer에 관해서 여쭙니다. [2] 김경식 2012-02-18 1836
5796 임베디드 리눅스 어플에서 sd 카드 삽입시 인식하는 방법 [2] 장트러블탄 2011-12-01 1835
5795 I2C와 I2S에 관해 질문이 있습니다. [5] bfvconfidenc 2012-09-13 1833
5794 Linux I2C eeprom at24 디바이스 드라이버 어떻게 접근해야 하나요... [2] scoranta 2014-05-17 1833
5793 Apk 파일 빌딩관련 문의 드립니다. [1] 김경식 2013-07-31 1826
5792 이홍석님의 패키지를 따라하다가 문제가 좀 있네요. <==[완료] [4] 박영학 2006-10-02 1825
5791 S5PV310 보드 SD 부팅 카드 만들기 문의 [4] 똘망이 2012-11-04 1824
5790 커널에 디바이스 드라이버개발 어떻게 시작해야 될런지.. [2] pedor11 2013-10-04 1822
5789 /dev/tty* 의 숫자들을 줄일수 있나요?? file [2] xoduddk123 2014-03-14 1822

사용자 로그인