실시간 타이밍 요구와 인터럽트 우선순위 충돌 해결
임베디드 개발에서 가장 어려웠던 건 실시간 타이밍 요구사항과 인터럽트 충돌 문제였습니다. 모터 제어와 센서 데이터 수집을 동시에 처리하는 시스템에서, 센서 인터럽트가 모터 PWM 갱신 타이밍을 방해해서 모터가 불규칙하게 떨리는 현상이 생겼습니다. 인터럽트 우선순위 설정을 조정하고, 긴 처리가 필요한 작업은 메인 루프로 옮기는 방식으로 구조를 재설계했습니다.
타이밍 문제는 디버거로 보기 어려워서 논리 분석기(logic analyzer)로 신호를 찍어서 확인했습니다. 타이밍 분석 없이 코드만 보면 증상이 재현되지 않는 경우가 많았습니다. 임베디드는 하드웨어와 소프트웨어를 동시에 볼 수 있어야 한다는 걸 이 경험으로 실감했습니다.