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

현재 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=e49

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
번호 제목 글쓴이 날짜 조회 수
5808 안드로이드에서 image up-date 방법에 대해서… [6] 어떤이의꿈 2013-04-28 1707
5807 [ORIGEN-4412]Linux포팅하는 방법을 알고 싶습니다. [5] monad 2013-04-26 3642
5806 minicom 질문 있습니다. [1] 해황 2013-04-26 1451
5805 Gstreamer 와 유사한 다른 플랫폼이 있나요??? [1] blue0sky 2013-04-25 1593
5804 aesop v210보드 안드로이드 소스 [2] 김정중 2013-04-25 1523
» Linux에서 여러 gpio를 interrupt 처리하려면 어떻게 해야하나요? [4] 카보 2013-04-25 2115
5802 ARNDALE 보드 Mali GPU 드라이버 코드 [2] nvers 2013-04-24 1784
5801 Origen-4210(pv310)용 dnw를 구하고자 합니다. [4] presentsmile 2013-04-23 2127
5800 ethernet 초기화 [1] 권오혁 2013-04-20 1846
5799 arm 우분투 12.04 usb 메모리 mount 관련 문의 드립니다. 깜늑대 2013-04-19 1603
5798 /dev/mem관련 질문드립니다. [2] 안시영 2013-04-19 2089
5797 오드로이드 X2 젤리빈(4.2.1) 지원 계획 문의 [3] 신현호 2013-04-19 2041
5796 ORIGEN 4 Quad Package-A 구매 전 질의 사항 [3] monad 2013-04-18 1820
5795 Origenboard (S5PV310) u-boot & kernel 다운로드 [1] gudrl 2013-04-17 2828
5794 request_suspend_state: wakeup 질문입니다. [2] 간디111 2013-04-17 2074
5793 arndale 소스 코드 다운로드 [2] alexyoon 2013-04-17 1844
5792 scaling & resizing [1] 열심히 2013-04-17 1724
5791 tvp7002 관련 문의 사항입니다. [1] 조현호 2013-04-15 1642
5790 6410 nor Flash와 mDDR 메모리 문의 입니다. [6] 김승일 2013-04-15 2079
5789 Wifi를 android에사 사용할 경우 문의 드립니다. [3] 열심히 2013-04-14 2120

사용자 로그인