ARM 보드에 리눅스 커널을 올려 사용중인데요...
글쓴이: dopesoul / 작성시간: 금, 2004/10/01 - 7:34오후
S3C2440 칩 보드를 쓰고있습니다.
포트G 11번과 3번에 각각 택트스위치를 물려놨구요
(포트G : GPG11,GPG3 그리고 GPGCON 레지스터와 GPGDAT 레지스터)
포트B 0,1,2,3 에 칩 LED 4개를 물려놓았습니다.
(포트B : GPB0,1,2,3 and GPBDAT,GPBCON)
데이터시트에는
GPBCON : 0x56000010
GPGCON : 0x56000060
으로 어드레스가 나와있는데요
삼성측에서 제공한 커널 빌더 소스에 보면
드라이버 제작시 참고하는 레지스터 Address Define 파일에 보면
#define IO_BASE1 (0xD0000000)
#define IO_PORT_BASE (IO_BASE+0x06000000)
#define GPGCON (*(volatile unsigned *)(IO_PORT_BASE+0x60))
이렇게 Set 되어 있는데요... 실제 데이터시트에 나와있는 어드레스와 다르
거든요...
mmap 함수를 이용하여, 직접 메모리맵핑을 해서 디바이스를 컨트롤 하려고
하는데요... 어떤 어드레스를 사용해야 하나요?
Forums:
^^; 알아본 결과....
physical 과 Virtual 의 차이인것 같네요ㅛ~
커널 소스에 있는 걸 사용하시는게 좋을 겁니다.삼성의 매뉴얼은 오타로
커널 소스에 있는 걸 사용하시는게 좋을 겁니다.
삼성의 매뉴얼은 오타로 알아줍니다.
제선배도 데이터 시트가 오타인줄 모르고 한달 동안 삽질하다가
우연히 잘못된 어드레스를 알아내고 삼성측에 연락했더니
"thank you"라는 답변을 받았답니다.
댓글 달기