This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
大家都很愉快的一天,我已经提出了关于 msp430fr5969腐败的问题。
TI 专家和我们的社区成员都为我们提供了不同的解决方案、例如 MPU 保护和 AVCC、DVCC 规范。
https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/859311/3178586#3178586
现在、我对了解腐败非常热情、想知道发生 fram 内存损坏的确切原因吗? 我们的专家说了解决方案、但我想知道确切的原因吗?
大家好、Santhosh、
从您所附的 E2E 帖子中、启用 MPU 即可解决问题。 真是个好消息。
与闪存存储器一样、FRAM 存储器也需要受到保护。 FRAM 易于写入、其写入速度比闪存快得多。 应用代码、常量和驻留在 FRAM 中的某些变量需要受到保护、以防止由于无效指针访问、缓冲区溢出和其他可能损坏应用程序的异常而导致意外写入。 从硬件的角度来看、我们需要确保电源满足规格要求。 此外、系统 ESD 测试或测试条插件等类似行为可能会导致电源电压异常、因此 MCU 可能以意外行为运行、从而导致存储器损坏。 存储器保护单元(MPU) 是 MSP430 FRAM 器件中的专用存储器保护模块。 默认情况下、应在用户代码中启用该选项。
应用手册 slaa628 讨论 了如何根据应用特定代码、常量和数据空间要求实现存储器布局、如何使用 FRAM 优化应用能耗、以及如何使用 MPU 通过保护程序代码免受意外写访问的影响来最大限度地提高应用稳健性。
在关键应用中、需要进行存储器集成检查。 在闪存存储器介绍应用报告 slaa334中、引入了 CRC 校验。
在新发布的应用报告 slaa932中、还介绍了如何在系统级 ESD 测试中保护存储器并检查存储器集成。
希望这些信息能帮助回答您的问题。
谢谢、
Lixin
您好、Lixin、
感谢你的答复,我很高兴
问题仅发生在某些电路板上、例如100ea 中、仅3ea 电路板发生了问题、我没有这么做。
问题仅发生在我们的客户端。为什么测试中不会出现指针访问和缓冲区流?
大家好、Santhosh、
我并不是说您的电路板发生故障的原因是 指针访问无效或缓冲区溢出。 我刚才举了一个可能出现故障的情况的例子。
启用 MPU 可以保护意外的存储器访问。 要找出电路板故障的真正根本原因、需要深入研究硬件和软件的系统调试。
关于为什么在您发送给客户之前测试中未发生故障、我认为这可能是因为客户应用环境与您的测试条件不同。 您可以查看有关它的详细信息。
谢谢、
Lixin
您好、Lixin、
感谢您的回复、您能说什么环境呢?
大家好、Santhosh、
在之前的 E2E POST 链接中、您仅描述了"问题是通过 GPIO (按钮)发出中断时器件正在复位"。 也许您可以分享更多关于如何在客户端重现问题以及在向客户发布之前如何执行测试的信息。 然后、您可以了解测试条件是否不同、以及在测试中找不到问题的原因。
谢谢、
Lixin
你好、Lixin
感谢您的回复、是的、您说的正确问题是器件中的复位、然后我们计划使用 FET prob 进行检查、以了解 Hexa 文件中的一些内存损坏(丢失一些内存)、我们不是为什么?
我们有一些不同的案例、例如定向案例、压力案例、负面案例、随机案例
大家好、Santhosh、
您是说在发生按钮(GPIO)中断时电路板复位了吗? 您是否知道电路板在复位后能否正常工作? 使用 MSP-FET 检查存储器时、仅在定义为全局变量的地址0x4400发生存储器更改? 全局变量是什么、它是复位问题的根本原因吗?
您能否重现此问题? 如果是、您能否分享测试条件?
您最好能提供更多信息、以便我们进行进一步分析。
谢谢、
Lixin
您好、Lixin、
我很高兴,因为你的回复很迅速,非常感谢你的回复。
1) 1)不像我们有两个开关和两个 LED。一个用于复位、另一个用于发现问题。 在此过程中、我们的客户按下了"发现"按钮、但他们得到了复位指示。
2) 2)因此我们决定使用 MSP-FET pro 来检查存储器
3) 3)从0x4400开始、内存被关闭、我们为什么不会这样做?
大家好、Santhosh、
1) 1)按下 BLE 发现按钮似乎会导致 MCU 复位。 您在发送给客户之前是否进行过测试? 这个问题是否可以随时可靠地重现?
2) 2) 0x4400的变量定义是什么? 此内存丢失是否与复位问题相关、即0x4400的内存丢失导致 MCU 复位? 我不知道您的代码是否会更改地址0x4400的数据。 数据将更改为意外值?
谢谢、
Lixin
您好、Lixin、
1)是的、我们已经完成了测试、但很难重现问题。
2) 从0x4400开始是 FRAM 的起始地址。当我们使用 FET prob 进行测试时、我们分析了从0x4400开始、一些数据将丢失?因此我们在论坛中询问、他们说要检查 MPU、因此我们计划检查代码中的 MPU、而 MPU 不是 MPU 受保护。 因此、我们决定保护 MPU。 现在我们还没有从 客户那里得到任何问题。 但我想知道在启用 MPU 之前它损坏的确切原因
大家好、Santhosh、
我认为您在0x4400中的数据不应丢失。 当您使用 MSP-FET 通过 JTAG/SBW 探测器件时、是否再次对代码进行编程? 要检查存储器集成、您需要在不下载代码的情况下连接正在运行的 MSP-FET。 另一件事是、如果没有作为特定指令运行、MSP-FET 将重置 MCU。 在这种情况下、地址0x4400将更改为复位值。 您能否告诉我您如何使用 MSP-FET 探测 MCU? 地址0x4400的值如何更改?
谢谢、
Lixin
大家好、 Santhosh、
1) 1)由于很难重现问题、因此很难知道确切的根本原因、因为我们无法验证我们的想法。
2) 2)为什么我询问地址0x4400中的变量是什么、当与 FET 连接时、该变量将重置为初始化数据。 因此、我想知道有关数据丢失的详细信息、数据丢失是仅仅为了恢复初始化数据、还是为了更改其他意外数据。 如果更改为意外数据、则表示存储器意外更改。 对于这种情况、如果存在任何违反数据表电源规格的情况、如果电压高于具有短脉冲的规格、以及 DVCC 供电之前是否有 IO 供电、我们需要检查电路板电源电压。 另一个建议是检查应用环境、如果存在诸如火花之类的高 EMI 源之类的系统 ESD 情况、是否在接口引脚上进行 ESD 测试等 但是、所有可疑点都需要进行验证、即我们需要重现问题并应用修复解决方案进行验证。
谢谢、
Lixin
您好、Lixin、
非常感谢您的回复、是的、很难重现同样的问题。
但我仍然有一些疑问
1) 1)尽管 MPU 受到了.text 的完美保护、但会发生存储器损坏? 电压的影响
您好、Sadasivam、
如果在特定级别下存在违反规范的情况、MPU 保护可以保护意外的存储器访问。 如果违反规范的程度很高、例如更高的系统级 ESD 会导致 IO 引脚上的电压高得多、则 MPU 仍将无法进行保护。 无论它是闪存还是 FRAM 存储器、这都是相同的。 因此、第一件事是保护 MCU 免受硬件设计的影响、以避免电源违反规格(适用于 IO 和 DVCC)、为 IO 和电源引脚添加系统 ESD 保护、缩短接地回路等 其次是在软件中启用存储器访问保护、如 MPU、写入访问启用等
谢谢、
Lixin