도와주세요!!
글 수 15,339
2017.05.06 15:25:41 (*.46.132.165)
23092
custom linux character device driver를 하나 만들어 보고 있습니다.
os는 uClinux라는 리눅스 운영체제를 사용중에 있습니다.
IRS함수를 driver 파일 안에 함께정의하고 이를 등록하여 interrupt 처리를 하려합니다.
일단 printk문을 이용해 IRS함수 등록이 제대로 됬는지 확인해보았고 제대로 등록됬음을 알 수 있었습니다.
본 device를 사용하는 application을 위해 정의해놓은 api들을 IRS함수안에서 사용하면 편할 것같다는 생각이 들었습니다.
간단히 생각해 보았을 때 device driver에 관한 make파일에서 필요한 소스파일을 함께 포함시켜 compile 시키면 될것 같아
이를 해보았는데요. 해더파일 찾는 위치가 다른지 api에서 포함했던 기본 해더 (e.g. stdio.h, stdlib.h)들을 찾지못해 error가 납니다.
이쯤 문득 "ISR함수안에 api함수들을 사용하는 것이 잘못된 접근 혹은 바람직하지 않은 드라이버 코딩은 아닐까"라는 생각이 들어
질문 드려봅니다.
감사합니다.
디바이스 드라이버와 어플리케이션의 분리는 단지 수행코드 위치 뿐만 아니라 커널에서 수행하는
특수한 장치 접근등을 안전하게 할 수 있도록 보장하기 위한 것들입니다.
하시려고 하는 일들은 RTOS 등에서 사용이 가능합니다.
하지만 그러기 전에 커널과 응용어플리케이션을 왜 분리했는지 이해하시는 것이 우선인것 같습니다.