您好!
我使用 MSP430FR2355进行频率测量和温度测量/控制。 MSP 通过 UART 连接到主 CPU。 我观察到、经过几分钟甚至几秒钟后、MSP 不再通过 UART 做出响应。 我连接了一个调试器、并尝试了解正在发生的情况。 几分钟的完美运行后、MSP 停止响应。
当程序停止执行时、我看到状态寄存器(SR)中的 GIE 位被清零、但是程序继续在主循环和所有其他函数(ISR 除外)中运行。 在"正常"操作期间停止程序执行时、GIE 保持置位、因此 GIE 位的"清零"不是由于调试器所致。 我在器件数据表和互联网上对此主题进行了一些研究、但对于我的问题没有太多可查的地方。 我找到 了一篇 E2E 论坛文章、介绍在单步调试时清除 GIE、但正如我提到过的、我认为调试器不会清除 GIE 位(我只是停止程序执行、而不是单步调试)。
这是否与 FRAM 访问故障有关? 我以8MHz 的频率运行、因此插入 FRAM 等待状态对我来说似乎没有必要。 不过、我插入了两个 FRAM 等待状态(建议在高于8MHz 的时钟频率下运行)、在我看来、MSP 现在可以正常工作、没有错误。 但是、如果我正确理解器件系列用户指南、FRAM 访问故障应该会导致 PUC、这反过来会导致器件复位(在我的情况下不会发生这种情况)。
对此主题有什么想法/想法?