lwip 3

STM32 LwIP 구조 - 3

> STM32CubeMX 프로젝트에서 LwIP를 이용한 이더넷은 여러 단계의 초기화 과정을 거친다. 위 그림과 같이 5가지의 과정으로 나눌 수 있다. 먼저 위의 4가지 부분은 CubeMX에서 생성하는 자동생성 코드이며 HAL_ETH_MspInit함수와 HAL_ETH_Init, 두 함수는 configurable하다. HAL_ETH_MspInit함수는 ETH 주변장치를 사용하기 위한 핀 설정을 초기화하며, HAL_ETH_Init은 MII/RMII 인터페이스 선택 및 PHY 설정을 초기화한다. 여기서 주의할 점 중 하나는 STM32의 MAC설정의 경우 ETH_MACDMAConfig에서 수행하는데 해당 부분에 대한 설정은 비교적 자유롭지 않다는 점이다. 예를 들어, MACDMA 설정의 멀티캐스트 필터링의 기본값..

MCU 2020.10.18

STM32 LwIP 구조 - 2

> 간단한 UDP 수신 플로우는 아래와 같다. 실제로 코드를 보면 Ethernet Interrupt --> Ethernetif Thread(Realtime thread) --> low_level_input --> netif->input --> [PROTOCOL]->input 과 같은 형태로 실행된다. Tx의 경우 상위 udp_send와 같은 레이어에서 pbuf_alloc을 호출한 뒤 각 레이어에서 헤더를 추가해가며 패킷을 전송하며, 최종적으로 netif->output에서 MAC peripheral을 통하여 전송을 수행한다. (ETH_TransmitFrame()) > LwIP의 성능에 영향을 미치는 요소는 크게 기능활성화, 통계, 메모리 정도이나, 나머지의 경우 꼭 필요한 기능만 활성화 시키기 때문에 조절..

MCU 2020.10.18

STM32 LwIP 구조 - 1

(OSI 구조와 유사하게)LwIP 구조는 크게 4가지 부분으로 나눌 수 있다. OSI 7계층의 Physical 레이어와 Data Link 레이어와 매핑되는 Network Interface 레이어(PPPoE, PPPoS와 같은 기능을 담당하는 PPP모듈이 해당 레이어에 속한다고 볼 수 있다.) OSI 7계층의 Network레이어와 매핑되어 라우팅과 네트워크 관리를 수행하는 Internet Layer 전송 및 세션레이어와 매핑되어 연결을 수행하는 Transport 레이어 그 위에 유저 응용에 따른 프로토콜이 있는 Application 레이어가 있다. LwIP에서는 각 레이어 레벨에서 제공되어야 하는 프로토콜의 종류를 모듈별로 나누어 놓았다. 파일 매핑은 아래와 같이 수행된다. > 네트워크 인터페이스는 실제 ..

MCU 2020.10.18