主题中讨论的其他器件: MSP430F5437A
我们在产品中使用 CC2564蓝牙模块、并查看模块和/或蓝牙堆栈的间歇性锁定。
处理器: MSP430F5437A
蓝牙: CC2564
堆栈: Bluetopia SDK V1_52R2
操作系统: 无
到目前为止、我们还没有能够在生产环境中调试软件、但我们看到了一些故障、从 C2564到 MSP430的 CT 一直被置为无效。 在这些情况下、固件已成功运行。 在其中一种情况下,我们能够看到 HCITRNS.C:482 LoadTransmitBuffer()中锁定的固件
/*循环、直至 Tx 缓冲器中的空间可用*/
while (UartContext.TxBytesFree <= 0)
;
这显然与蓝牙模块不接受新数据的情况一致。
虽然我们无法在实验室中完全重现此问题、但我们确实看到了一个类似的问题、可以使用 TI 的示例代码轻松重现。
*运行 blutopia 发行版中包含的 SPPLEDemo_Lite 项目(可能与其他演示相同)
*可以使用 Lightblue 看到 BLE 广播。
*停止处理器-将发现 PC 正按照预期进行 LPM3调用
*在 BTPSKERNL.C:791 BTPS_AllocateMemory()上设置断点
*运行于
*使用浅蓝色连接到设备。 将达到断点。
*禁用断点
*运行于
*堆栈现在将处于锁定状态。 不会看到广告。
*在此状态下中断代码将显示 PC 卡在 bluetopia 库中的循环中。
该产品确实需要稳定可靠的运行时间、可达数年之久。