WIZnet Developer Forum

MACRAW모드로 loopback동작시 getSn_IR(sn)무한루프걸리는 문제

WIZwiki-W7500 보드에서 MACRAW 모드로 loopback 동작테스트 중입니다.
예제 소스(LoopbackTest)를 수정하여 MACRAW모드로 loopback 테스트를 하였고 wireshark로 이상없음을 확인하였습니다.
실제 적용할 구조는 다음과 같습니다.

dev_a (mii data) ----------------------> w7500 -------------------> dev_b (mii data)를 보내는 구조입니다.
(mii_rx_clk, rx_dv, rx_d0~d3) (mii_tx_clk, tx_en, tx_do~d3)

여기서 w7500보드에 붙어 있는 U3_IP101GA 를 들어내고, dev_a와 dev_b의 mii data를 연결 하였습니다.
dev_a의 mii rx 데이터는 recvfrom()에서 정상 확인하였습니다만, sendto()의 while(1){… getSn_IR(sn) …}에서 무한루프에 빠져 버립니다.
부팅후 데이터가 2번 정상 동작하다가 3번째에 증상이 나옵니다.
sendto를 빼고 recvfrom만 실행하면 계속해서 동작됨을 확인하였습니다.
해당 증상관련 하여 검토 부탁드리겠습니다. 소스는 첨부하였습니다.

int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port)
{


while(1)
{
tmp = getSn_IR(sn);
if(tmp & Sn_IR_SENDOK)
{
setSn_IR(sn, Sn_IR_SENDOK);
break;
}
//M:20131104
//else if(tmp & Sn_IR_TIMEOUT) return SOCKERR_TIMEOUT;
else if(tmp & Sn_IR_TIMEOUT)
{
setSn_IR(sn, Sn_IR_TIMEOUT);
return SOCKERR_TIMEOUT;
}
////////////
}
}

*참고로 dev_a의 mii데이터를 wireshark로 캡처하여 pc에서 확인하였음.
PC(colasoft packet player로 전송) <---------> WIZwiki-W7500 에서 loopback(macraw) 동작을 wireshark로 확인.
W7500x_Library_Examples_macraw.zip (1.85 MB)

안녕하세요.

일단, 대략적으로 어떤 말을 하시는지는 알겠으나 의도 파악이 어렵습니다;;

dev_a , dev_b는 무엇인지 부터 정확하게 설명을 해주셔야 합니다.

WIZwiki-W7500 보드에 있는 PHY를 없애고 2 port 짜리 PHY를 연결해서 사용하셨다는 말인가요??

하드웨어를 수정하셨기 때문에, 저희로써는 정확한 답변을 드리기가 어렵고 조언만 해드릴 뿐입니다.

정확하게 어떤 하드웨어를 어떻게 수정하셨는지를 알려주시면, 그에 따라 몇 가지 조언은 해드릴 수 있습니다.

감사합니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.