Watch Dog (내부 독립 감시 기능)
저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics
Last updated
저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics
Last updated
ArduPilot 4.0 및 이후 펌웨어 버전에서는 자동 조종 장치 CPU의 내부 독립 감시 기능이 활성화되었습니다. = 0 으로 설정하여 비활성화할 수 있습니다. 주변 장치 또는 코드가 CPU를 "중단"하면 CPU가 재설정되고 CPU가 다시 시작됩니다. 이것은 비행 중이거나 움직이는 경우 차량을 구할 수도 있고 그렇지 않을 수도 있습니다.
한 가지 방법은 dataflash 로그를 보는 것입니다. "MSG" 메시지만 표시하도록 로그를 필터링하면 일부에 "watchdog"이라는 단어가 포함된 것을 볼 수 있습니다. 이는 이전 로그 또는 비행이 워치독 재설정으로 종료되었음을 분명히 나타냅니다.
감시 장치의 원인을 조사하는 개발자에게 유용할 수 있는 다음 열과 함께 WDOG 로그 메시지도 표시되어야 합니다.
태스크: 스케줄러 태스크 번호 또는
메인 루프가 방금 다음 IMU 샘플을 수신한 경우 -1
-2 빠른 루프가 시작된 경우
-3 메인 루프가 다음 IMU 샘플을 기다리고 있는 경우
IErr : 내부 오류 마스크
IErrCnt : 내부 오류 수
MavMsg : 마지막으로 처리된 메시지의 MAVLink 메시지 ID
MavCmd : 마지막으로 처리된 메시지에서 MAVLink COMMAND_LONG 또는 COMMAND_LONG_INT 메시지의 명령 필드
SemLine : 프로그램이 세마포어를 기다리는 경우 소스 코드 라인 번호 또는 기다리지 않는 경우 0
FL : 결함 라인, 결함이 발생한 소스 코드 라인 번호. 이것은 파일 이름을 지정하지 않지만 여전히 유용할 수 있습니다.
1 = 재설정
2 = 마스크 불가능 인터럽트(일명 NMI)
3 = 하드 폴트(가장 일반적)
4 = 메모리 관리 오류
5 = 버스 오류
6 = 사용 오류
FA : 오류 주소(메모리에 있음). 예를 들어 nullptr을 사용하여 바이트를 읽으려고 시도한 경우 0이 됩니다.
ICSR: 인터럽트 제어 및 상태 레지스터(ST 데이터시트의 "ICSR 비트 할당" 참조)
FT : 결함 유형( 참조 )
FP : 스레드 우선순위( 에서 APM_MONITOR_PRIORITY 로 시작하는 우선순위 목록 참조 )