lwIP 개요(링크)
lwIP의 전반적인 내용을 정리할까 하다가 매우 정리가 잘 된 블로그가 있어서 링크로 남겨둡니다. 중요하게 생각하는 내용들을 핵심부분만 매우 잘 정리되어 있네요. https://rudalskim.tistory.com/335?category=954796 [STM32F746G-DISCO] lwIP 살펴보기 STM32CubeIDE에서 Ethernet을 사용할 경우 LwIP(Lightweight IP) 라이브러리가 사용됩니다. LwIP(Lightweight IP)는 임베디드 시스템에서 널리 사용되는 오픈 소스 TCP/IP 스택으로 스웨덴 컴퓨터 과학 연구소 (Sw.. rudalskim.tistory.com
2022.03.24
lwIP 최대 버퍼 사용량 계산과 관련 있는 요소들
lwIP 라이브러리가 이론상 최대로 사용하는 메모리를 계산하는 방식이 있습니다. 이론적으로 그리고 간접적으로 계산하는 것이기 때문에 실제로 들어맞는 것은 아닐겁니다. CPU 처리속도, 발열, lwIP 외의 로직 등 MCU에 영향 주는 것이 많기 때문입니다. 실제로 활용할 뻔 했으나, 개인적인 사정으로 활용하지 않았지만 정리하기 위해 내용을 남겨둡니다. 피크 버퍼 사용량 계산 lwIP가 소비하는 최대 힙 메모리 는 lwIP가 소비하는 이론상 최대 메모리 입니다. 일반적으로 lwIP가 사용하는 최대 힙 메모리는 다음에 따라 다릅니다. UDP 연결을 생성하는 데 필요한 메모리: lwip_udp_conn TCP 연결을 생성하는 데 필요한 메모리: lwip_tcp_conn 애플리케이션에 있는 UDP 연결 수: l..
2022.03.24
ST에서 제공하는 lwIP 관련 자료
lwIP에 대해 전반적인 흐름을 이해하기 좋은 PDF 자료가 있었네요. ST에서 제공한 자료인데, 과거에 공부했을 때를 돌이켜보면 ST에서 lwIP 라이브러리를 잘 활용하고 있는 것 같습니다. lwIP와 MCU 관련된 자료도 찾아보면 ST가 압도적으로 많습니다. lwIP는 전체적인 구조, TCP/IP 계층, 버퍼 등에 대한 개념이 중요한데 이 내용들이 잘 정리되어 있습니다. URL링크는 아래와 같고 필요하신 분들은 참고하시기 바랍니다. ※ URL : https://comm.eefocus.com/media/download/index/id-1013648
2021.12.31
ETH_PAD_SIZE 목적
ETH_PAD_SIZE의 목적 헤더 뒤의 페이로드 정렬을 보장하기 위해 이더넷 헤더 앞에 추가된 바이트 수를 의미합니다. 이더넷 헤더의 길이가 14바이트이므로 이 패딩이 없으면 IP 헤더의 주소가 32비트 경계에서 정렬되지 않으므로 2로 설정하면 32비트 플랫폼의 속도를 높일 수 있습니다. Ethernet Header Des. MAC Addr : 6Byte Src. MAC Addr : 6Byte Ethernet Type : 2Byte Total : 14Byte ※ 참조 https://www.nongnu.org/lwip/2_0_x/group__lwip__opts__arp.html#gad7fa3b356ca7e603e848b069c4cc6276
2021.12.28
memp_init()의 무한 루프 오류
memp_init() 함수 무한 루프 오류 LwIP 라이브러리를 활용하던 중, Init 과정을 벗어나지 못한 경우가 있었습니다. 디버깅을 하다보니 Init 부분이라는 것을 알게 된 거고, 그 중 memp_init에서 무한 루프가 걸리더군요. 나름 유명한 오픈소스다보니 Init 부분을 건든다는게 선뜻 내키지 않았는데요. 검색하다보니 비슷한 현상인 분들이 많았습니다. 수정하고 나니 큰 문제 없이 동작하네요. memp_init 함수 수정전 #if MEMP_SEPARATE_POOLS memp = (struct memp*)memp_bases[i]; #endif /* MEMP_SEPARATE_POOLS */ memp_init 함수 수정후 #if MEMP_SEPARATE_POOLS memp = (struct memp..
2021.12.19
no image
lwIP 및 관련 사이트 소개
lwIP(lightweight)에 대한 간략한 내용과 관련 사이트를 소개드리겠습니다. lwIP는 이더넷의 TCP/IP 프로토콜을 위한 라이브러리입니다. 먼저, lwIP에 대한 간략한 소개부터 하겠습니다. lwIP 소개 lwIP는 스웨덴 컴퓨터 과학 연구소(SICS, Swedish Institute of Computer Science)의 컴퓨터 및 네트워크 아키텍처(CNA, Computer and Networks Architectures) 연구소에서 아담 던켈스가 개발한 것입니다. TCP/IP에 필요한 프로토콜들의 집합체라고 생각하시면 조금 편하겠군요. C언어 기반으로 구성되어 있고, 40Kbyte라는 적은 메모리를 이용하여 개발되었습니다. (제가 개발했던 환경은 항상 C언어였는데, 다른 언어로 구성이 되..
2021.12.19