WIZ811을 구매하고 W5100 chip data sheet를 참조하여 F/W를 개발하고 있습니다.
참고로 사용하는 CPU는 8051계열이고 사용하는 언어는 어셈블입니다.
전화로 문의하려고 하였더니 정책이 바뀌어 이곳을 이용하라고 하여 여쭙니다.
먼저 data sheet를 참조하여 다음의 순서대로 레지스터들을 사용하였습니다.
- MR → Reset실행후 1msec 대기
- IMR, RTR0/1, RCR 설정
- Gateway(192.168.0.1), SHAR(임의값), Subnet Mask(255.255.255.0), SourceIP(192.168.0.60) 설정
- S0_MR(TCP설정), SO_Port(3999설정)
- S0_CR(TCP Open으로 설정) → S0_SR(Socket INIT이면 정상/아니면 Socket Close처리)
- S0_CR(TCP LISTEN으로 설정) → S0_SR(Socket LISTEN이면 정상/아니면 Socket Close처리)
상기의 상태까지 처리한 후에
S0_SR을 계속 확인하고 있으면 계속 TCP LISTEN 상태이다가
Device_Terminer이라는 프로그램으로 192.168.0.60 3999로 접속을 하면
바로 S0_SR의 상태가 SOCK ESTABLISHED상태가 아닌 SOCK CLOSE가 되면서 프로그램에서는 Socket open error가 됩니다.
어떤 부분을 추가 또는 확인하여야 하는지 답을 부탁드립니다.
처음 접해보는 관계로 그리고 C언어가 아닌 어셈블로 포워딩하는 관계로 쬐금 어렵습니다. 감사합니다^^