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.

[参考译文] MSP430F5638:MSP430 加载程序错误

Guru**** 2652575 points

Other Parts Discussed in Thread: MSP-FET, MSP430F5638, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1584857/msp430f5638-msp430-load-program-error

部件号: MSP430F5638
主题中讨论的其他部分: MSP-FETUNIFLASH

使用 CCS 版本 12.8.1 和 MSP-FET

使用 MSP430F5638 的定制 SBC 。 大约 5 年前制造了两块 PCB。 我们一直在这两个电路板上按需进行所有软件开发。 软件包括较大整体应用的不同版本、以及一个较小的测试台、在该测试台中、我只能测试特定的 MCU 外设或 SBC 上的外部硬件。 我只使用大约一半的闪存和数据 RAM 容量。

过去、有时加载程序错误少于 5%。  重试加载或关闭所有电源并进行备份、通常可以解决问题。

在过去的几个月里,我只能成功加载约 5-10%的时间。  尝试过很多方法来解决此问题、但有时它们会起作用、但通常只有一两个成功的加载、然后回到加载程序错误。

MSP430 的写入/擦除周期应为 10,000 到 100,000 个周期。 我可能已经完成了 10,000 个程序加载、但我确信我没有达到 100.000 个标记。

典型错误消息 (通常没有停止 CPU 错误)-报告的地址各不相同。

MSP430:停止目标 CPU 时出现问题:内部错误

MSP430:文件加载程序:验证失败:无法写入 0x08000:执行状态阻止访问

MSP430:GEL:文件:d:\Product\digs\Code\DC2\MCU1-430\430-Main\DC2-430-All-02\Release\DC2-430-All-02.out:加载失败。

某些测试

已检查电源电压、正常= 3.30V

尝试了旧版本 CCS 12.7.0 的全新下载和安装 — 成功运行了一两次,然后出现“Load Error“。

尝试了两个不同的 MSP-FET、工作方式都相同。

问题

1 — 这些 MSP430 的闪存是否已停产?

2 — 如果是,为什么它不会在 100%的时间(而不是 90%- 95%)发生故障?

3 — 唯一的问题是更换 MCU?

4-可能是部分擦除问题。 如何对闪存进行批量擦除以确保不会出现问题?

5 - CCS 20.3 是否有助于解决这个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    擦除/写入周期最小为 10K、典型值为 100K。 它可以走很多,但 10K 是所有你可以指望的。 但随机地能够对设备进行编程表明这不是问题。

    更有可能是编程接口的某些方面是边缘的、现在才会触及到您。 可以看到该器件同时执行标准 JTAG 和 Spy-by-Wire。 后者对 RESET 引脚上的电容有急剧限制。 在任何情况下、如果硬件支持、请同时尝试这两种方法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的信息、将了解 Spy-by-Wire。 如何对闪存进行批量擦除、也想尝试一下。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我对 CCS 一无所知、但 mspdebug erase 命令提供了控制擦除内容的选项、包括“all"。“。 更重要的一点。 我对此会非常小心。 确保它不会首先擦除校准常数等有用的内容。

    默认是擦除所有代码存储器。 这是正常的做法。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ted:

    要使用 CCS Eclipse 对器件发出批量擦除命令、请参阅此 E2E 主题

    在 CCS Theia 中、可从以下位置访问该视图:

    • 转至 Project->Properties->Debug->Category: MSP430 Flash Settings

    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brian、

    感谢您的信息、但我查看了链接、在 CCS 12.8.1 中没有看到“我可以执行批量擦除?“

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ted:

    对产生的混淆、我深表歉意、这似乎是 CCS 12.8.1 的限制。 我找到了另一种执行批量擦除的方法。 这涉及使用 Uniflash。 启动会话后、您可以在“Settings and Utilities“(设置和实用程序)选项卡中执行批量擦除。

    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Brian、我会再来看看

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下载并安装 Uniflash、通过 USB 和 MSP-FET 连接到 SBC。 它看到 MSP430F5638 并可以执行批量擦除。 但在我加载或验证 Uniflash 时仍然收到加载程序错误

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ted:

    您可以尝试加载 以下 SDK 示例吗?
    e2e.ti.com/.../MSP430F66xx_5F00_1.c.zip

    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ted:

    您可以尝试一下 批量擦除后读回所有闪存数据

    我认为、如果 闪存耐久性耗尽、它们的闪存不是全部为 0xFF、那么当您下载新映像时、可能会触发加载错误。  

    另一点,正如 Brian 提到的,你可以尝试我们的例子,看看图像是否有一些问题,但我认为这种 可能性很低。

    谢谢!

    此致

    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Brian & Johnson、

    我遇到了另一个问题 — CCS 找不到 make、但我修复了该问题(另一个 E2E 帖子)。 此时、我尝试了很多方法来修复加载程序错误、工程已损坏、CCS 编译无法看到任何更改、因此必须重新创建工程。 完成后、我将尝试加载上面的 SDK 示例。

    我怀疑复位电路中的电阻器和电容器会尝试更换。

    如果 MCU 达到写入/擦除 EOL、存储器会是什么样子?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ted:

    超过 10K W/E 周期时、无法保证闪存、写入/擦除/读取时间将超出规格。

    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“120424" url="“ url="~“~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1584857/msp430f5638-msp430-load-program-error/6126015

    我怀疑复位电路中的电阻器和电容器会尝试更换。

    如果 MCU 达到写入/擦除 EOL、存储器会是什么样子?

    [/报价]

    F5xx 在 RESET 引脚上带有内部上拉电阻、因此无需外部上拉电阻即可工作。 RESET 引脚上的电容器也将与 SBW 信号“战斗“。 如果不使用这两种(RC 组合)、SBW 应该可以正常工作。

    F5xx 具有边缘读取支持、因此如果在刷写期间出现某些问题(例如闪存单元损坏,即使是刷写后验证也没关系且没有错误)、将会出现边缘读取错误。 不知道您使用的工具是否支持此功能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Zmo、

    请澄清一下、我使用的是 JTAG、而不是 SBW、您说我在复位电路中不需要电阻器和电容器吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    复位引脚用于 SBW 主器件与目标器件之间的数据交换。 每次状态从零变为一个或相反时、目标器件复位引脚上的电容器都会进行充电/放电。 更高的电容加上更高的 SBW 接口速度将会失效。

    5xx/6xx 系列应在无噪声环境中正常工作、电源稳定、RESET 引脚上没有 RC 组合。

    但是、您使用的是 JTAG、在这种情况下、我的注释(与复位引脚上的 RC 相关)无关紧要。 静止边缘读取可用于在批量擦除或写入所有闪存单元后检查是否正常(数据保留)。 即使 JTAG 主器件(或 MSP430.dll)不支持边缘读取、也可以将边缘读取程序下载到器件 RAM 中并从此处执行。 它由 slaa729 涵盖。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Zmo、

    我有第三个 PCB、它与 CCS 12.8.1 和我的 MSP-FET 兼容、适用于我的主 MSP430 和测试平台 MSP430 代码 — 无加载程序错误。 我将尝试移除并更换 2 个问题 PCB 上复位电路中的电阻器和电容器。 如果这样不起作用、我将替换 MSP430。