도와주세요!!
글 수 15,339
2010.01.07 07:34:42 (*.150.115.13)
20695
안녕하십니까.
시작한지 얼마안된 리눅스 유저 입니다.
휴인스 보드 pxa270 보드를 사용하고 있습니다.
pxa270 에서 제공되는 키메드릭스를 드바이스 드라이버로 구현 하려고 합니다.
pxa270 레지스터의 주소를 보고 펌웨어 에서 구동을 시킨 상태인데,
리눅스 커널에서 드라이버로 등록하고, 응용프로그램에서 드라이버를 로드하게되면,
segment fault 란 메세지라 발생합니다. 이것저것 알아보니 커널에 등록된 가상 주소를 사용 해야 한다고 하는것 같더라구요?
가상주소가 등록된 어드레스를 받아서 해야하는것 같은데? 이것저것 검색해봐도 잘 나오질 않네요.
휴인스에 문의 해봐도 아무런 대답두 없구...
pxa270 의 내부어드레스를 어떻게 가상화 시키는지요? 아니면 제가 잘못 알고 있는것인지...
자료나, 설명 부탁드립니다.
감사합니다.
2010.01.07 14:45:46 (*.150.115.13)
답변 감사합니다
아~ 제가 말을 잘 못했나 봅니다.
키매트릭스 디바이스 드라이버 를 리눅스 형식으로 드라이버 파일을 모두 만든 상태구요.
리눅스 커널에서 insmod 및 mknod 를 통해 적재된 상황 입니다.
어플에서 디바이스 드라이버를 오픈 할때, 드라이버단에서 pxa270의 실제주소(physcal address) 를 접근 하는
방식으로 되어 있어, 오류가 난것이였습니다. (리눅스커널상에서 실제주소를 가상주소로 변환을 하는것 같던데..)
일단 소스를 분석하다가 "asm/hardware.h" 란에 가상 테이블식으로 설명이 나와 있는 주소로 하니, 위와같은 오류는
없어 졌습니다..
죄송하지만 드라이버를 애플리케이션단에 어떻게 로드를 하는지요?
드라이버는 insmod를 이용하여 커널에 먼저 등록해야 하는 것으로 알고 있습니다.
우선 insmod 를 사용해 보세요. ^^