Posts
All the articles I've posted.
-
lwIP에서 RX pbuf를 넘긴 뒤 가끔 깨진다: tcpip_input ownership을 먼저 정리하자
lwIP 포팅에서 RX 패킷을 tcpip_input()으로 넘긴 뒤 간헐적인 payload 깨짐, double free, PBUF_POOL 고갈이 보이면 pbuf ownership 규칙을 먼저 확인해야 한다. ERR_OK와 실패 반환값, DMA 버퍼 재사용, ISR 컨텍스트, 예외 경로별 pbuf_free 기준을 정리한다.
-
DoIP에서 NRC 0x22가 뜬다: 조건 미충족을 통신 timeout처럼 보지 말자
DoIP에서 UDS 요청 후 NRC 0x22 Conditions Not Correct가 오면 TCP timeout이나 Routing Activation 문제가 아니라 ECU가 현재 상태에서 그 서비스를 수행할 조건이 아니라고 보는 편이 빠르다. 세션, Security Access, 전원 모드, Tester Present, 이전 작업 상태를 함께 확인하는 디버깅 순서를 정리한다.
-
오늘의 테크 뉴스: CARIAD 캠퍼스, DRAM 장기 계약, SDV 플랫폼 스택 (2026-06-25)
2026년 6월 25일 기준 CARIAD Automotive Software Campus, 자동차용 DRAM 장기 계약, zonal networking, AGL·Zephyr·Xen 기반 SDV 플랫폼 흐름을 펌웨어 관점에서 정리합니다.
-
-
lwIP에서 UDP send가 ERR_RTE로 실패한다: payload보다 netif 상태와 route를 먼저 보자
lwIP에서 udp_sendto() 또는 socket sendto()가 ERR_RTE로 실패하면 UDP payload나 ARP보다 먼저 보낼 netif를 찾았는지 확인해야 한다. DHCP 완료 전 송신, default netif 누락, netif up/link 상태 불일치, IP 주소 미설정 같은 route 판단 지점을 bring-up 관점에서 정리한다.
-
DoIP에서 NRC 0x13이 뜬다: 메시지 길이 오류를 TCP 조각 문제로 착각하지 말자
DoIP에서 UDS 요청은 ECU까지 도착하는데 NRC 0x13 Incorrect Message Length or Invalid Format이 반복되면 TCP 조각이나 Routing Activation보다 먼저 DoIP Diagnostic Message 길이와 UDS 서비스별 payload 길이를 나눠 봐야 한다. Generic Header length, SA/TA, UDS payload 경계를 분리해 확인하는 디버깅 순서를 정리한다.
-
오늘의 테크 뉴스: SDV 실행 조직, 메모리 병목, Zonal Networking (2026-06-24)
2026년 6월 24일 기준 SDV 실행 조직, 자동차용 메모리 병목, deterministic zonal networking, RISC-V 표준화, OTA hotpatching 흐름을 펌웨어 관점에서 정리합니다.
-
오늘의 테크 뉴스: SDV, 임베디드, 펌웨어, 반도체 (2026-06-23)
2026년 6월 23일 기준 SDV, 자동차 반도체, RISC-V, OTA hotpatching, 차량 데이터·AI 우선순위를 펌웨어 관점에서 정리합니다.
-
lwIP RAW TCP에서 close가 가끔 실패한다: tcp_close()의 ERR_MEM은 free RAM보다 송신 잔여 상태를 먼저 봐야 한다
lwIP RAW TCP에서 연결 종료 시 tcp_close()가 가끔 ERR_MEM을 반환하면 단순 heap 부족으로 보면 오래 헤맨다. 아직 보내지 못한 세그먼트와 미확인 ACK 상태가 남아 있거나 close를 너무 이른 문맥에서 호출한 경우가 많아서, pcb 송신 상태와 콜백 흐름을 같이 보는 편이 빠르다.
-
DoIP에서 한동안 가만히 두면 첫 요청만 timeout 난다: 살아 있는 것처럼 보이는 TCP socket을 먼저 의심하자
DoIP에서 Routing Activation까지는 정상처럼 보였는데 몇 분 또는 몇십 분 유휴 후 첫 UDS 요청만 timeout처럼 사라지면, ECU보다 먼저 이미 끊긴 TCP socket을 앱이 계속 살아 있다고 믿는 상태를 확인해야 한다. keepalive, Alive Check, 재연결 조건을 분리해 두는 편이 안전하다.
-
lwIP에서 ping은 되는데 TCP나 UDP만 이상하다: checksum offload를 반만 켜면 증상이 더 헷갈린다
lwIP 포팅에서 ICMP는 되는데 TCP나 UDP만 깨지거나, 송신만 실패하고 수신은 정상처럼 보이면 checksum offload 설정 불일치를 먼저 확인해야 한다. lwIP 옵션과 MAC 드라이버가 같은 책임 분담을 보지 않으면 패킷은 나가도 상대가 조용히 버릴 수 있다.