UART 로그로 부팅 멈춤 지점 파악, JTAG으로 레지스터 확인하며 전원·클럭 시퀀싱 문제 단계별 추적
보드 레벨 부팅 경험은 학부 임베디드 수업에서 FPGA 보드에 작은 SoC를 올려보면서 처음 겪었습니다. 부트로더가 올라오지 않아 UART 로그로 어디서 멈추는지 먼저 확인했고, 전원 시퀀싱 순서가 맞지 않으면 초기화 중 하드락이 걸린다는 것을 배웠습니다.
메모리 맵 설정과 클럭 초기화 순서를 보드 스펙과 맞추는 작업이 생각보다 세심했고, 설정 값 하나가 잘못됐을 때 부팅이 특정 단계에서 멈추는 경험을 반복하면서 하나씩 원인을 좁혔습니다. JTAG 디버거로 레지스터 값을 직접 읽어 초기화 흐름을 단계별로 검증했고, 증상이 비슷해 보여도 클럭 문제와 전원 문제는 접근 방법이 달라 구분하는 것이 중요했습니다.
문제를 부트로더, 디바이스 드라이버, 애플리케이션 레이어로 나눠 접근하면 실패 지점을 빠르게 좁힐 수 있었습니다. 이 경험이 하드웨어-소프트웨어 경계에서 발생하는 문제를 체계적으로 추적하는 기반이 됐습니다.