도와주세요!!
글 수 15,339
2007.12.08 15:30:09 (*.150.3.132)
9777
소켓통신을 사용하여 데이타를 주고 받는 시스템을 구축중입니다.
하나의 PC에 10개의 ARM보드가 물려있고, 각각의 IP와 MAC Address를 할당하였습니다.
처음에는 별다른 문제가 없었는데 점점 Data양이 많아 지면서
cs89x0 : Tx buffer not free
NETDEV WATCHDOG : eth0 : transmit time out
eth0 : transmit timed out, IRQ conflict?
위와 같은 메세지가 뜹니다.
특정한 보드에서 나타나는 현상이 아니라 전체적으로 나타나는 현상입니다.
위의 메세지는 우연히도 시리얼을 이용해서 화면을 모니터링 하다가 발견한 메세지 입니다.
시리얼 포트가 한개이다 보니 어느 보드에서 이러한 현상이 일어날지 모르고, 데이타를 주고 받는 프로그램상에서 동작을 안 할 시에 텔넷을 이용해 보드에 접속해봅니민. 접속이 안되어서 이 보드가 죽었는지 살았는지 구별을 할 수가 없었습니다.
1. 위의 에러를 해결할 수 있는 방법 부탁드립니다.
2. 또한 시리얼을 이용하는 방법외에 보드가 동작을 안 할시에 이 보드가 죽었는지 아니면 살아있는지
확인할 수 있는 방법을 알고 싶습니다.
vir_addr = ioremap( phy_addr, size_addr )
.....
iounmap(vir_addr);
vir_addr : 버추얼 어드레스의 선두 주소.
phy_addr : 물리 주소.
size_addr : 접근할 영역의 크기.
ioremap 후 사용이 끝나시면 ( 일반적으로 드라이버가 종료 시) iounmap을 사용하여 할당을 해제 해야합니다.
좋은 결과 있으시길 바랍니다.