도와주세요!!
글 수 15,339
2002.04.03 01:12:53 (*.44.114.100)
11309
안녕하세요.
지금 저는 디바이스 드라이버 강좌란의 sa1110 i/o보드를 똑같이 제작하여
test하고 있습니다.
test결과 data port에 write하는것은 이상없이 잘 되는데 read가 잘 되지 않는
군요.
제가 사용한 방법은 다음과 같습니다.
------------------------------------------------------------------
먼저 커널에서 현재 제가 CS3에 연결하였으므로 0x18000000을 0xf0000000으로
메모리 맵핑하였습니다.
그다음 모듈에서
#define PIO_BASE 0xf0000000
#define PIO_DATA *((volatile short *)(PIO_BASE + 0x00000000))
#define PIO_DATA_IN *((volatile short *)(PIO_BASE + 0x00000002))
unsigned char data;
data = 0xf0;
//write시
PIO_DATA = data;
//read 시
data = PIO_DATA_IN;
-----------------------------------------------------------------
이와 같이 하니까 LED의 불은 제가 write한 data대로 켜지고 꺼지는데
read할때는 button과 상관없이 똑같은 data만 들어오더군요.
이지보드에서 test를 하셨다고 하셨는데 제가 뭘 잘못했는지 알수 있을까요?
혹시 가능하다면 test하셨던 source라도 볼수 있을까요?
그리고 질문 한가지더 강좌란에 있는데로 read address를 0x00000002만큼 이동
시키긴 했는데 왜 그래야 하는지 알수 있을까요?
읽어주셔서 감사드립니다.
좋은 하루 되시길....
지금 저는 디바이스 드라이버 강좌란의 sa1110 i/o보드를 똑같이 제작하여
test하고 있습니다.
test결과 data port에 write하는것은 이상없이 잘 되는데 read가 잘 되지 않는
군요.
제가 사용한 방법은 다음과 같습니다.
------------------------------------------------------------------
먼저 커널에서 현재 제가 CS3에 연결하였으므로 0x18000000을 0xf0000000으로
메모리 맵핑하였습니다.
그다음 모듈에서
#define PIO_BASE 0xf0000000
#define PIO_DATA *((volatile short *)(PIO_BASE + 0x00000000))
#define PIO_DATA_IN *((volatile short *)(PIO_BASE + 0x00000002))
unsigned char data;
data = 0xf0;
//write시
PIO_DATA = data;
//read 시
data = PIO_DATA_IN;
-----------------------------------------------------------------
이와 같이 하니까 LED의 불은 제가 write한 data대로 켜지고 꺼지는데
read할때는 button과 상관없이 똑같은 data만 들어오더군요.
이지보드에서 test를 하셨다고 하셨는데 제가 뭘 잘못했는지 알수 있을까요?
혹시 가능하다면 test하셨던 source라도 볼수 있을까요?
그리고 질문 한가지더 강좌란에 있는데로 read address를 0x00000002만큼 이동
시키긴 했는데 왜 그래야 하는지 알수 있을까요?
읽어주셔서 감사드립니다.
좋은 하루 되시길....