工具与软件:
我在其他几张票中讨论过这个问题、但随着这些问题得到更好的理解、这似乎是一个独特的问题、因此应该自行讨论。
我要测试的系统包含一个 BeaglePlay、它包含一个板载集成 cc1352P7、我已将其配置为使用 TI 提供的常见协处理器项目的 Mac 协处理器。 我对这个项目做了非常简单的修改、调整队列大小、增加堆栈大小等 根本没有改变。 我已经添加了一个新命令来获取一些遥测数据、但除此之外、唯一的其他调整是通过预处理器定义完成的。
我正在使用大约6-8个传感器运行此系统、每个传感器均配置为每100ms 发送~60字节有效载荷。 在这些情况下、一些数据包会丢失、但大部分情况下只是按预期运行。 除了每~3天左右、协处理器将崩溃。 我在多个 SDK 版本中看到了其中的几个。 最初我使用的是 SDK 7.10。 然后我升级到7.41、问题仍然存在。 最后、我已更新至8.30、尚未看到故障、但运行时间还不多、因此它可能仍然存在。
发生故障时、会观察到以下症状:
症状有:
- 使用复位线对处理器进行复位不会使其恢复正常。
- 读取存储器内容不会发现任何闪存损坏、唯一的更改是保留用于非易失性存储的区域。
- 使用调试器运行协处理器会导致系统正在运行。
- 停止调试器并断开其连接、然后使用复位线将处理器复位、这不会实现正常运行。
- 通过重新编程进行下电上电可以恢复功能。
- 我本来只是打算重启一下电源、但是 Beagle Play 中的一些代码用于设置无意中激活的未编程设备、从而对处理器进行编程。
我已禁用自动重新编程、希望下次我能获得更好的数据、但我希望您能提供一些建议、说明可能发生这种情况的原因以及我们如何确定问题。
使用调试器运行并且从复位状态运行这一事实并不意味着在启动早期发生的事情会出错。 我已经检查了很明显的情况、比如引导线处于正确的状态、但事实并非如此。 正如我说过的、我原本打算查看下电上电是否会导致器件恢复运行、但我还无法进行该实验。
阿瑟·R 在我的另一张票中建议了这一点
与此相关的事情。 如果我的测试系统在更新到 SDK 8.30后的一周内保持正常运行、那么我认为这已经充分证明了、但现在我想知道这是否是另外一回事。 另外,我不是真的了解修复错误的机制。 在这些条件下是普遍的数据损坏还是仅仅是信标响应损坏? 我确实验证了这种情况可能会发生、但它是在系统无人值守的情况下使用一些日志记录、但没有数据包监听的情况下发生的、因此无法肯定地说。