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、 通过使用 FET 闪存编程器将代码转换为字节。 因此 、当我与原始字节进行比较时、一些字节会丢失、我为什么没有人能帮助我呢?
您好、Santhosh、
您能否提供有关此问题的更多信息? 听起来好像您对器件进行了编程、但您认为编程不起作用? 是这样吗?
谢谢、
JD
您好!
首先、感谢您的回复。 我们在产品中使用 MSP430。 在这种情况下、我们上传了源代码并将其提供给了客户、并且代码运行良好、但几天前、我们从用户方面得到了一些问题、您的设备无法正常工作。 因此、我们决定找到解决方案、因为我们已经发现了一些问题。 问题是当通过 GPIO (按钮)发出中断时器件被复位。 因此、我们在硬件上检查了它是否正常工作。 但是、我们将检查复位条件(BOR、POR、PUC)。 与此同时,我们已经通过 e2e 论坛讨论了先前发生的任何问题。 我们获得了有关比较十六进制文件的信息。 因此、我们将受影响的板级十六进制文件与有效的十六进制文件进行了比较。 我们看到0x4400地址中缺少一些数据。 在我们的代码中、它被分配给 FRAM 存储器(使用.map 文件验证)。
那么、我们不知道为什么缺少字节? FRAM 中的数据如何丢失? 那么、您可以在这个问题上提供支持吗?
你好、Santhosh、
FRAM 损坏的最常见原因是缓冲区溢出或无效指针访问。 由于 FRAM 的行为与非卷积 RAM 类似、因此如果不加以保护、则很容易对其进行覆盖。
此 FRAM 最佳实践应用手册 在第6节中讨论了此主题和 MPU 配置。 大多数最新版本的 CCS 和 MSP430ware 会尝试以他们所能提供的最佳方式自动配置 MPU 设置、以帮助防止出现这些问题、但我建议您查看项目的 MPU 设置并确定此部分代码是否应受到保护。
如果您有任何疑问、请告诉我。
祝您好运!
JD
JD、您好!
首先、感谢您的回复、是的、我们已根据 我们更改了 MPU 设置来分析了 FRAM 最佳实践。 我认为问题不会在将来出现。
你好、Santhosh、
很高兴听到这个消息。 如果您有任何其他问题、请告知我们。
谢谢、
JD
JD、您好!
非常感谢您的回复、您已经说过针对 fram 损坏的解决方案、例如指针访问和缓冲区溢出。 但是在测试时它可以正常工作、但当出现客户重置问题时、我不是为什么?
嗨、santosh、
在您的原始帖子中、您意味着您的复位问题是由0x4400上的数据丢失引起的、我猜这对您的应用程序至关重要。 情况是否仍然如此? 该数据是否仍然被覆盖或现在是否受到 MPU 的保护?
遗憾的是、我无法了解您的系统中发生的情况。 您是否能够自行重新创建问题?
我将在下周出差、因此我的回复将延迟。 我将在假期后立即办理入住手续。
谢谢、
JD
JD、您好!
非常感谢您的回复、
1) 1)启用 MPU 后、我们的客户仍然没有问题、但我仍想知道其损坏的确切原因?
2) 2)我尝试很难重现问题、但很难重现问题
圣诞快乐
新年快乐!
如果启用 MPU 可以解决您的问题、那么它可能是某种缓冲区溢出或指针问题。 这些通常是很难重新创建和定位的问题。 您可以禁用 MPU 并运行一些测试、并尝试重新创建问题、但您可能还需要设置一个阈值、以确定您花费的时间。
如果这非常重要、我知道静态代码检查器等第三方工具可用于在固件上运行、它们会查看每个分支并尝试识别问题。
无论怎样、我都没有更多的建议来进一步缩小您的问题范围。
祝您好运!
JD
JD、您好!
新年快乐、祝您一年愉快!
非常感谢 JD、再次感谢您和您的团队的支持。好的、我将介绍静态代码检查器工具
但是、我有疑问、像 poly space buger-Finder 这样的代码覆盖和静态代码检查器工具是否看起来如此相似、这是正确的?JD、我为什么要问我在 IAR 嵌入式工作平台中使用的代码覆盖看起来是类似的。