---
title: "[W5500] close()를 할 수 없습니다"
url: "https://maker.wiznet.io/forum/13455"
markdown_url: "https://maker.wiznet.io/forum/13455/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "mngz"
created: "2019-08-27T01:56:56+09:00"
last_activity: "2019-09-02T00:18:45+09:00"
language: "ko"
views: 616
replies: 4
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# [W5500] close()를 할 수 없습니다

## Question

Asked by mngz on 2019-08-27 in Ethernet Chips.

안녕하세요. wiznet W5500을 사용 중이고 DNS를 테스트 하는 도중 close함수 내부에서 무한루프에 빠져있는 현상이 나타났습니다.

아래의 코드는 [https://github.com/Wiznet/ioLibrary_Driver/blob/master/Ethernet/socket.c의](https://github.com/Wiznet/ioLibrary_Driver/blob/master/Ethernet/socket.c%EC%9D%98) 225번째 줄에서 확인 할 수 있습니다.

```
	setSn_CR(sn,Sn_CR_CLOSE);
   /* wait to process the command... */
	while( getSn_CR(sn) );
```

제가 트레이스 해본 결과 이 while문에서 계속 무한루프가 돌고 있습니다.

getSn_CR(sn)의 리턴값은 계속 0x10이 나타나고 있습니다. 무엇이 문제일까요?

## Replies

### Reply 1 by mngz, 2019-08-27

추가적으로 기존에 잘 동작하다가 갑자기 안되기 시작했고 동일한 다른 제품에서는 정상동작 중입니다.

### Reply 2 by becky, 2019-08-27 (in reply to reply 1)

chip이 정상 동작하고 있을경우 위와 같은 문제는 발생하지 않습니다.
system clock이 불안정하거나 하드웨어적인 문제가 있는것으로 보여집니다.
system clock 이 정상적으로 W5500으로 들어가고있는지 확인해보시기 바랍니다.

### Reply 3 by mngz, 2019-08-28

현재 MAC과 IP 등의 설정 값을 할당하고 정상적인 상태를 확인한 다음 DNS를 했을 때는 같은 문제가 발생하지 않았습니다. 하지만 socket close()가 안되는 것과 이 상황이 관련이 있는 것인가요?

### Reply 4 by irina, 2019-09-02

mngz:

> 제가 트레이스 해본 결과 이 while문에서 계속 무한루프가 돌고 있습니다.
>
> getSn_CR(sn)의 리턴값은 계속 0x10이 나타나고 있습니다. 무엇이 문제일까요?

칩이 정상적인 상태라면, Sn_CR에 값을 쓴 후 정상동작 후 Sn_CR은 0x00을 리턴하기 되어있습니다.
해당 동작이 발생할경우 Ping packet을 보내거나, Version register를 읽어서 값을 제대로 읽어오는지 확인해야할것 같습니다.

---

Source: https://maker.wiznet.io/forum/13455
