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

interrupt 번호에 대해서 궁금한 것이 있어서 문의 드립니다.

제가 아는 내용은 다음과 같습니다.

processor마다 interrupt source가 여러 개 있습니다.
각각의 interrupt source마다 번호가 있습니다.
그래서, interrupt source에서 H/W적으로 발생한 interrupt를 processor가 감지를 하고,
이 후에, OS(Linux)에서는 interrupt를 처리하기 위해서 interrupt를 번호를 사용합니다.
즉…발생한 interrupt source의 번호와 일치하는 isr을 수행합니다.
이상의 내용에서 제가 잘못 알고 있는 부분은 지적해 주시면 감사하겠습니다.

일단, 위에서 설명한 저의 배경지식이 맞다고 가정하고, 제가 궁금한 것을 문의 드립니다.

위에서 interrupt 번호는 누가(또는 어디서)  어떻게 정의하는 것입니까 ?
즉…”A interrupt source는 1번이고, B interrupt source는 2번이고 하는 것”은 processor에서 H/W적으로 결정되어 있는 것인지요 ?
아니면, kernel에서 S/W적으로 정의해서 번호를 할당하는 것인지요 ?
(즉…특정 processor에 대해서, kernel porting시에 porting하는 개발자가 임의로 정하면 되는 것인지요 ?) 물론, 임의라고 해서 중복되면 당연히 안되겠지만 말입니다.

만약, porting하는 사람이 임의로 정한다면,
동일 processor라고 하더라도, C라는 사람이 정한 번호 규칙(s/w적으로 interrupt source의 각 번호 할당)과 D라는 사람이 정한 번호 규칙은 달라도 무관한지요 ?

datasheet에 각 interrupt source별로 interrupt번호가 정의되어 있습니다.
이것으로 판단한다면, H/W적으로 결정되어 있다는 것이 맞을 것 같기도 합니다.
아니면, porting하는 사람 임의 데로 S/W적으로 정의(각 source별로 번호 할당)해도 되지만,
다수의 개발자들의 혼선을 방지하고, 일관성의 유지를 위해서,
processor maker에서 임의로 번호를 할당해서, datasheet에 기술해 놓은 것인지요 ?
이 경우, 특정 kernel porting자가 datasheet에서 할당한 번호체계가 아닌,
다른 번호할당으로 kernel porting을해도 동작은 되지만, 굳이 그렇게 할 필요와 이유가 없기 때문에, 그렇게 안 하는 것이라고 판단이 됩니다만...
정말 혼돈이 되네요...

암튼...좀 횡설수설한 면이 있더라도 양해해 주시고 알려 주시면 감사하겠습니다.

고현철

2008.05.16 13:10:48
*.59.122.203

1. 대부분은 hw에서 사용되는 것을 그대로 씁니다만, software적으로 지정하는 부분도 있습니다. 이유는 main interrupt와 sub interrupt가 동시에 사용되기 때문입니다.

예를 들어 mp2530f의 경우 uart0 에 대한 interrupt가 메인에서는 하나가 뜨지만, 실제 uart쪽을 보면 인터럽트 소스가 4개입니다. 이런경우는 software적으로 지정해서 씁니다.

2. 작성자 맘대로입니다.

3. hw랑 맞추는게 가장 코딩하기 편하고 부가적인 코드가 없이 동작합니다.
하지만, chained interrupt일 경우는 chained의 경우는 software적으로 지정해서 씁니다.

김경식

2008.05.23 08:20:33
*.178.110.19

답변 감사드립니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수
268 랜 카드 두개 사용 tftp? [1] 손성원 2008-06-19 848
267 2440에 사용된 LCD 터치스크린 판매업체와 터치 콘넥터 판매업체 알... [1] 이운근 2008-06-18 812
266 smdk2410 보드 u-boot.bin가 안올라 갑니다. [1] 이재민 2008-06-14 904
265 [질문] 16c554 device driver 관련.[완료] [3] 윤창준 2008-06-13 1221
264 [질문]nand ecc mode [5] 문철민 2008-06-13 1344
263 리눅스에서 링크로더쪽을 볼려고 하는데 찾기게 힘드네요.... [4] 손성원 2008-06-12 848
262 GTK를 이용해서 어플리케이션을 만들었는데여 font 에 관한 질문이... [1] 한진규 2008-06-10 662
261 시리얼 작동 확인 방법? [4] 손성원 2008-06-04 970
260 storage dev Read/Write속도 측정 [3] 정재용 2008-06-02 1072
259 ARM mutl-ice 중고 살려면 얼마 정도 생각 하면 됩니까? [2] 손성원 2008-06-02 927
258 UDP 포트에 대하여 [2] 김광준 2008-05-30 703
257 [완료] 혹시 여러분들은 개발문서를 작성하시는지요. [5] 오주열 2008-05-28 764
256 [질문/완료] x86프로세서 개발 관련해서 문의 드립니다. [4] 장병남 2008-05-24 708
255 [질문]uda1341 driver 문제 - 소스포함 문철민 2008-05-21 686
254 webcam driver관련 질문입니다. [3] 정원 2008-05-19 1046
253 [질문]레지스터 세팅에 관한 질문 [1] 문철민 2008-05-19 632
252 저기 혹시 DivX 플레이어 소스를 어디서 구할수 있는지 아시는 분... [1] 손성원 2008-05-19 702
» [완료]interrupt에 대해서 한가지 여쭤봅니다. [2] 김경식 2008-05-16 733
250 2440 TFT-LCD.? [1] 손성원 2008-05-16 867
249 [re] 2440 TFT-LCD.? <== 다시 수정요 [1] 손성원 2008-05-16 723

사용자 로그인