Flight Controller 코드 읽기

Flight Controller(FC)를 이해하는 제일 좋은 방법은 FC 코드를 보는것 입니다. FC 코드를 읽으면 개발 문서에는 정의되지 않은 FC의 동작에 관해서 설명할 수 있고, FC 사용할 때도 자신감(?)도 생깁니다.

제가 FC 코드 읽을 때 주로 보는 것은

  • 코드의 실행 순서
  • 실행되는 함수의 변수가 선언(Declare)과 정의(Define)
  • 코드의 추상화 방식

입니다.

코드 읽기를 방해하는 것

코드 읽는 활동은 그리 재밌지는…. 않아서 지루해지면 제가 관심 있는 내용(GPS 드라이버, 비행제어, 프로그래밍 패턴, mavlink 처리)을 보면 시간이 빨리 가더라고요.
그리고 코드 읽을 때 귀찮은 것 중 하나는 코드 에디터에서 함수의 정의나 변수의 정의를 찾아보는 일입니다. 그동안 전통적인 코드 검색 도구인 cscope나, ctags, ag(새시대의 grep) 조합을 사용했었는데 코드 심볼의 정확한 위치 찾기가 안되고, 코드를 검색하는데 시간도 걸립니다.

귀찮아지고 번거로워지면 ;;; 결국 코드를 읽지 않습니다.

코드 브라우저: woboq

https://woboq.com

woboq는 코드의 주요 심볼(함수, 변수, 클래스, 전처리자)을 하이퍼텍스트 형태(html)로 연결해주는 코드 브라우저 입니다. woboq는 코드의 문자열을 찾아서 같은 문자열의 심볼을 연결하는 방식이 아니라 실제 컴파일(clang)하면서 코드 심볼을 연결하여 함수 정의나 변수 정의를 정확하게 가리킵니다. 게다가 코드 검색도 잘 지원하고 클래스 관계도도 그려줍니다!

Opensource FC 코드

제가 읽기 편하려고 코드 브라우저(woboq)로 (crazyflie, PX4, ardupilot)를 코드 웹 페이지를 만들어 보았습니다.

즐겁게 FC 코드 읽으시길!

[개발] PX4, Ardupilot, Crazyflie 코드 브라우져

답글 남기기