工具与软件:
多年来、我们一直在-40°C 至+85°C 的温度范围内每月运行大约1000个器件。 我们的产品还具有另一个主处理器、MSP430F5310充当协处理器、以提供实时时钟(RTC)。 在五种不同的温度下、我们将完全关闭产品电源、包括关闭 RTC (MSP430)。 在-40C 时、在1000个单元中、RTC (MSP430)会卡住并且不会运行、因此大约有4个单元。 四个单元的数量会波动、有时我们不会锁定任何单元。 我们已经通过使用纽扣电池为 MSP430供电解决了这个问题、因此当产品在低温条件下下下下下循环通电时、MSP430仍然保持运行。
我已经决定找到这个问题,有两个故障的单位,已经表现出这个问题,我已经在我的桌面上复制使用冷喷雾... 我发现、当代码从 PMM_setVCoreUp 函数返回时、程序计数器(PC)将为零。 我附上了调试器的屏幕截图、器件卡在 PC = 0x00004的位置。 我认为 PC 会完全清除、然后运行到0x00004、在这里有一个无限循环跳转到地址0x4、如片段中所示。
什么外设是地址零? 地址为零是否存在于闪存中、以及当发生这种情况时是否可以编写代码来产生 POR? 请注意、用户 NMI 闪存访问冲突或总线错误并不能从内存错误中捕获到这一点。