DevBJ · Develop. Build. Just Better.
현장에서 다시 찾는 차량 네트워크 기술 노트
DoIP, UDS, lwIP, Automotive Ethernet처럼 현장에서 다시 확인하게 되는 기술 문제와 해결 과정을 기록합니다. 프로젝트 경험과 기술 이력도 함께 관리합니다.
- 공개 글
- 79
- 카테고리
- 5
- 태그
- 211
Start Here
처음 방문했다면 아래 흐름부터 읽는 편이 가장 덜 헤맵니다.
- DoIP Roadmap DoIP/UDS 진단 통신부터 Routing Activation, Diagnostic Message, Alive Check처럼 차량 진단 통신에서 먼저 잡아야 할 흐름을 모았습니다. 읽기 시작
- lwIP Roadmap 임베디드 TCP/IP 구현 이슈 메모리 지도, NO_SYS 타이머, tcpip_thread, pbuf 수명주기처럼 작은 스택에서 자주 흔들리는 지점을 순서대로 정리합니다. 읽기 시작
- Free Tech Blog GitHub로 무료 기술블로그 운영하기 Hugo와 Jekyll을 거쳐 Astro까지 사용한 경험을 바탕으로 GitHub Pages 배포, 검색, 자동화와 작은 AdSense 수익 실험을 정리합니다. 읽기 시작
- Experience 문제를 해결하며 쌓은 기술 경험 개인 신상이나 회사 이력보다 다뤄온 기술 영역과 문제 해결 기록을 글로 연결합니다. 읽기 시작
Browse by Category
큰 주제부터 들어오고, 필요한 글은 카테고리 목차를 따라가며 읽을 수 있게 정리했습니다.
- DoIP 31개의 글 DoIP, UDS, Automotive Ethernet 중심의 차량 진단 통신 노트입니다.
- lwIP 19개의 글 lwIP 메모리, 타이머, 스레드 경계, pbuf ownership처럼 구현 중 실제로 막히는 지점을 정리합니다.
- Tech 2개의 글 임베디드, 네트워크, lwIP, 시스템 구현 이슈를 다룹니다.
- Dev 17개의 글 Hugo, Jekyll, Astro와 GitHub Pages로 무료 기술블로그를 구축하고 AdSense까지 운영한 경험을 정리합니다.
- Tools 10개의 글 tools.devbj.com에 추가한 브라우저 기반 개발 도구와 사용법을 정리합니다.
Featured
현재 기준으로 먼저 읽어볼 만한 글을 따로 올려둡니다.
-
DoIP 프로토콜 구조 뜯어보기, 헤더와 필드는 어떻게 생겼나
DoIP 패킷을 읽기 위한 header, protocol version, payload type, payload length의 기본 구조를 차근차근 정리합니다.
-
DoIP 개론, CAN 진단 보다가 처음 보면 헷갈리는 포인트 정리
CAN 기반 진단에 익숙한 사람이 DoIP를 처음 볼 때 헷갈리는 큰 그림을 정리한다. DoIP가 왜 나왔고, UDS와 어떤 관계인지, Vehicle Identification부터 Routing Activation까지 기본 흐름을 가볍게 훑는다.
Latest Updates
날짜순으로 최근 추가한 글입니다. 새로 배운 내용과 보강 중인 주제가 섞여 있습니다.
- DevUpdated:
Codex로 기술 블로그를 쓸 때 AI와 사람이 나눠야 할 일
Codex 등 AI 도구로 기술 블로그를 작성할 때 맡겨도 되는 작업과 사람이 직접 검토해야 하는 내용을 구분합니다.
- DevUpdated:
Astro에서 AdSense가 페이지 전환 후 안 보일 때 확인할 것
Astro View Transitions 환경에서 AdSense가 첫 화면에만 나오고 페이지 전환 후 비는 이유와 확인 순서를 정리합니다.
-
lwIP에서 UDP broadcast가 안 나간다: SO_BROADCAST와 netif flags를 같이 보자
lwIP에서 UDP broadcast 송신이 timeout처럼 보이거나 패킷이 캡처되지 않으면 payload보다 SO_BROADCAST 또는 SOF_BROADCAST, NETIF_FLAG_BROADCAST, netif up/link, source IP, route를 먼저 확인해야 한다. RAW API, netconn/socket API, multi-netif 환경의 확인 순서를 정리한다.
-
DoIP에서 NRC 0x35가 뜬다: Invalid Key를 알고리즘 오류로만 보면 오래 헤맨다
DoIP에서 SecurityAccess key 전송 뒤 NRC 0x35 Invalid Key가 오면 seed/key 알고리즘만 의심하지 말고 seed freshness, level pairing, endian, session, retry counter를 나눠 확인해야 한다. 0x24, 0x33, 0x36과 구분해 로그를 남기는 흐름을 정리한다.
-
lwIP에서 tcp_write()가 ERR_MEM을 돌려준다: free RAM보다 snd_buf와 snd_queuelen을 먼저 보자
lwIP RAW TCP에서 tcp_write()가 간헐적으로 ERR_MEM을 반환하면 free RAM보다 TCP_SND_BUF, TCP_SND_QUEUELEN, MEMP_NUM_TCP_SEG, unsent/unacked 큐를 먼저 확인해야 한다. 작은 write 반복, ACK 지연, sent callback 없는 busy loop가 송신 큐를 막는 패턴을 정리한다.
-
DoIP에서 NRC 0x14가 뜬다: Response Too Long을 TCP 문제로 착각하지 말자
DoIP에서 UDS 요청 후 NRC 0x14 Response Too Long이 오면 TCP stream이나 패킷 조각 문제보다 요청이 만들 응답 크기, ECU 내부 버퍼, DID 묶음, routine result 크기를 먼저 확인해야 한다. 0x13, 0x78과 헷갈리지 않도록 응답 크기 문제를 분리해 보는 디버깅 순서를 정리한다.
오늘의 로그
오늘 마주한 문제를 내일 다시 찾기 좋게 남깁니다
이 블로그는 완성된 강의보다 작업 기록에 가깝습니다. 구현 중 막힌 부분, 배포하면서 느려진 지점, 자동화가 엇나간 이유를 실제 운영 흐름과 함께 정리합니다.
- 직접 겪은 문제 로그, 빌드, 패킷, 배포처럼 손에 잡히는 증상에서 출발합니다.
- 흐름으로 묶는 글 DoIP, lwIP, Dev 글은 카테고리 목차로 이어서 읽을 수 있게 관리합니다.
- 계속 보강하는 운영 새 프로젝트와 문제 해결 경험이 쌓일 때마다 글과 이력을 함께 보강합니다.