[질문] 드라이버를 사용하는 응용프로그램
글쓴이: jimink / 작성시간: 월, 2003/04/07 - 6:05오후
안녕하세요.
드라이버를 개발해서
해당 하드웨어를 테스트하는 프로그램을 짜고 싶은데요..
제 드라이버 함수에
int lcd_open(struct inode *inode, struct file *pfile)
{
.........
}
있는걸 main.c
에서 얻어 올려면 어떻게 하죠??
제가 윈도에서 createfile같은걸 어떻게 해야하는지 모르겠어요.
그리고
struct inode는 어디에 정의 되어있나요? 어떤 헤더에?? 아무리 찾아도 못찾겠네요..
해당 드라이버 함수를 사용하는 방법을 좀 알려주세요..
친절한 답변부탁드립니다.
꾸벅..
예제 파일이나 샘플 있으면 좀 알려주세요
Forums:
디바이스 드라이버
kelp.or.kr 에 가시면 유영창님의 디바이스 드라이버 강좌가 있습니다.
프린터 포트를 가지고 짜여진것인데 쭉 읽어보시면 test프로그램 만드는데는
문제가 없을것 같네요.
또 리눅스 드라이버라는 책도 있고요,
자료는 많이 있습니다.
[질문] 답변감사합니다.. 그런데 전.. test프로그램에서 디바이
음..
해당 강좌를 보니까요.
프린터드라이버를 만드는 쪽이더라구요..
그런데..
StrongArm 보드에서 프린터를 연결하여 출력해 보자.. 강좌에는 제가 원하는
테스트쪽 코드는 없더라구요..드라이버쪽만 있고.
전..main.c 하나만들어서
드라이버 객체 하나 얻고(아마 파일 형태 겠죠?)
해당 드라이버에 제가 명령 내리는 함수들을 사용하고 싶거든요.
어떻게 해야하는지요?
참고할 만한 책이라도 좀 알려주세요..
히~
드라이버에서 지정한 디바이스 파일을 오픈하세요!
제가 질문을 제대로 파악한건지 모르겠네요.
제 나름대로 몇자 적습니다.
드라이버 소스에 보면, Major넘버라는 부분이 있을겁니다.
아마 이 번호를 가진 디바이스 파일이(아마 캐릭터 디바이스이겠죠?) /dev 밑에 있을텐데, 이 파일을 그냥 open하면 됩니다.
아마 그러면, 커널에서 lcd_open()을 불러줄겁니다.
그리고 귀하가 가지신 디바이스 드라이버 소스에 ioctl이 있다면 control은 ioctl로 하시고, 없다면 아마 lcd_read라던가 lcd_write등이 있을겁니다.
디바이스에 대한 인스턴스라기보다는 디바이스에 대한 파일 디스크립터가 생기겠죠. linux에서는 대부분 이와 같은 방법으로 디바이스 드라이버랑 놉니다.
윈도우에서 createfile등으로 약속된(레지스터에 있는) COM1: 등을 오픈해서 디바이스 드라이버를 제어하는 것과 비슷할 수도 있습니다.
댓글 달기