WIZnetInterface 사용법 문의

플렛폼은 MBED-OS 5.15.1을 사용중입니다.
라이브러리는 WIZnetInterface를 깃에서 받아서 사용중이고요.

의문점1 : 코드상에서는 8bit로 통신하지만, 내부적으로 라이브러리상에서는 [ W5500.cpp ]
spi->format(32, 0); 로 선언되어 있습니다.
위 상태에서는 코드가 전혀 돌아가지 않습니다. 하지만 저걸
spi->format(8, 0); 로 변경하고는 잘 동작하는것을 확인하였습니다.

의문점2 : dhcp 활성화하여 동작시,
IP : 192.168.0.72 , GW : 192.168.0.1, Mask : 255.255.255.0 으로 잡히며 TCP 전송시, 잘 동작합니다.
하지만
eth.init(mac_addr, ip_addr, mask_addr, gw_addr);
위 구문을 사용하여 ip 를 설정시, 설정 후 다시 읽어보면
IP : 192.168.0.72 , GW : 192.168.0.1, Mask : 255.255.255.0 이렇게 동일하게 주소가 잡히지만

r = socket.connect(a);

if (r != 0) {
    printf("Error! socket.connect() returned: %d\n", r);
}

위 코드에서 Error! socket.connect() returned: -1 이런 에러코드가 나오는데 무엇때문일까요?
이더넷이 처음이라 막히는 부분을 해결할수가 없어 문의드립니다.

감사합니다.

return 값이 -1 일 경우 Connection Error가 발생하는것입니다.
외부서버에 접속하는경우 포트포워딩을 설정해주셔야합니다.

내부 망인상태에서, DHCP로 잡으면 잘 접속되고, 수동으로 지정하면 저 오류가 나서 문의드렸었습니다.
IP 설정들은 동일하고요.

PC와 보드를 1:1로 연결하셔서 수동으로 설정해서 사용해보시기 바랍니다.
1:1로 연결시 다른 요인에 대한 영향을 받지 않기 때문에 빠른 원인파악이 가능합니다.
이때 게이트웨이 주소와 ip대역은 같게 설정해주셔야합니다.

또는 Wireshark라는 프로그램을 설치하셔서 패킷을 잡아보시는것을 추천드립니다.
일반적인 상황에서는
W5500 -> ARP Request
PC -> ARP Response
W5500 -> SYN
PC -> SYN, ACK
W5500 -> ACK
위와같은 상황을 거친후에 Connection이 이루어집니다.