도와주세요!!
글 수 15,339
2013.08.19 18:53:49 (*.190.105.1)
40730
강좌&팁 디바이스드라이버에 인터럽트에 강의를 보았는데요
IRQ_EINT(x) ENIT의 주소를 얻어온다고 설명이 간단히 되어 있는데요
x번의 외부인터럽트 주소를 얻어온다는 말씀이신가요?
//GPN6번 핀의 주소를 얻어온다.
gpio = S3C64XX_GPN(6);
gpio_request() 를 사용해서 프로그램 하는것이 정상적인? 방법입니다.
gpio_request() 함수를 통해 커널에게 이 gpio를 사용하겠다고 통보? 한다고 보시면 됩니다.
한번 점유를 하면 다른쪽에서 사용을 못하겠지요?
그래서 gpio_free를 해야지만 다른쪽에서 다시 request를 할 수 있습니다.
S3C64XX_GPN 는 해당 핀 번호를 얻어오는 함수입니다.
IRQ_EINT(x)는 x번 외부 인터럽트의 커널에서 사용되는 번호를 얻어오는 함수 입니다.
plta_s3c 계열은 gpio를 번호로써 관리를 합니다.
(다른것도 이런것 같지만 확실하지 않습니다. 위에 사용된 함수 대부분이 plta_s3c 전용 함수입니다.)
번호에 해당하는 레지스터 주소는 모두 커널에 정의되어 있다고 보시면 됩니다.