看门狗
ArduPilot使自动驾驶CPU的内部独立监视器能够使CPU被重置和重启,如果一个外围或某个代码需要太长时间才能完成或"挂"CPU. 如果飞行或移动中,这可以或不能节省机体。
虽然不建议,但可以通过设置来禁用此特性BRD 选项 = 0.
对于"HARD FAULT"(如非法指令,出界内存访问等)在重置前,监察处理器代码会登录一个"WDG"消息到机载日志,向GCS发送一个"WDG"短信,并试图殆尽 dump.bin文件写入"@SYS"闪存区域. 此 crash dump.bin 文件包含 cpu 状态, 并登记为以后的分析( 详见以下章节) 。 一个"HARD FAULT"极其严重,应该向ArduP 我们需要报告. 在原因解决之前,机体可能无法安全飞行。
在ArduPilot-4.5.1(及更高)中,如果创建了 crash dump霞.b接轨文件,则前臂失败会警告用户并防止武装. 页:1你这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个,这个这个这个这个这个这个这个这个这个,这个这个这个这个这个这个这个这个这个这个这个这个,这个中提出的这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个 你这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个 你这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个 你这个这个这个这个这个这个这个这个这个这个这个 不然这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个这个第1段至第1段(不建议)。
报告监视犬/垃圾堆
使用 Mission Planner 或者另一个GCS 从"@SYS"闪存区域下载 crash dump.bin 没完没了的文件.
从导致崩溃堆放的飞行或操作中下载数据闪存日志。 关于下载日志的信息,请查阅**。 **
如果找不到数据闪存日志, 请找到固件的 git- hash 。 这在启动后不久出现在GCS的信息标签中.
打开ArduPilot的支持论坛,查找您的机体和软件版本的类别(例如:科普特-4.6, 飞机4.6, 轮渡-4.6), (中文(简体) ). 创建一个“新主题”,在标题中包括“监视犬”,并附加上述的 crash dump.bin 文件、日志文件和/或 git-hash与有关文件。 如果文件无法直接上传,请包含一个链接,以便下载文件。
确定一个监视犬重新设置
一种方法是通过查看数据闪烁日志。 如果该日志被过滤后仅显示"MSG"信件,则可以看到有的包含"监视犬"一词. 这清楚地表明,以前的日志或飞行以监督员重置而告终。
WDOG 日志信息也应与下列栏目一起出现,这些栏目可能对开发者调查监视者的原因有用
任务 : 调度任务编号 OR
- -1 如果主循环刚刚收到在当地的创设器样本
- -2 如果快速循环已经开始
- -3 如果万美元主循环等待下一个IMU样本
IERR: 内部错误的遮盖
IERCNT: 内部错误计数
MavMsg: 上次处理中消息的 MAVLink id
MavCmd: MAVLink Command LONG 或 Command LONG INT 消息从上次处理中发出的命令字段
SemLine : 如果程序正在等待 semaphore 所表明的源代码行号联合国宪章,
FL:断层线,发生断层的源代码线号. 注意此选项没有指定文件名, 但仍然有用
FT:错误类型(参见AP HAL ChibiOS/system.cpp中的故障类型)
- 1 = 重置
- 2 = 非机械干扰 这是个NMI
- 3=硬故障(最常见的)
- 4=内存管理失误
- 5 = 客车故障
- 6=使用错误
FA:故障地址 (内存). 例如,如果试图使用无效读取符读取一个字节,则为0
FP : 线索优先级(见从 APM MONITOR PRIORITY 开始的优先级列表)AP HAL ChibiOS/ Scheduler.h)
ISSR : 中断控制和国家注册(参见ST数据表中的"ICSR比特任务").
译自 ArduPilot Copter「Independent Watchdog and Crash Dump」· 查看原文 · CC BY-SA 3.0