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.

[参考译文] CC2340R5-Q1:闪存存储器编程验证

Guru**** 2768365 points

Other Parts Discussed in Thread: CC2340R5-Q1, UNIFLASH, CC2340R5

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1604373/cc2340r5-q1-flash-memory-programming-verification

器件型号: CC2340R5-Q1
主题中讨论的其他器件: UNIFLASHCC2340R5

您好:

我们想在写入闪存存储器后验证是否写入了正确的值。 在之前的产品中、我们已从闪存中读取所有数据并执行位级验证检查。 我们想使用 CC2340R5-Q1 执行相同的读取验证。

但是、我们查看的所有文档都未介绍如何执行读取操作。 由于 UniFlash 可以读取数据、因此我们认为必须有一种方法可以读取数据。 您能告诉我们如何操作吗?

提前感谢您。

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

    您好:

    Uniflash 使用 SACI 命令来读取存储器、这是调试器的一项功能。  

    您以前是如何转储闪存的? 它在 CC2340R5 上也应该相同。 或者、可以使用 CCS 转储存储器: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html#memory-view

    此致、

    Nima Behmanesh

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

    您好、Nima、感谢您的答复。

    我想重新表述我的问题:您能否详细说明用于读取闪存值的 SACI 命令?

    我想使用 CCS 或 UniFlash 以外的工具检索值。

    我在“CC23xx_CC27xx 在线调试工具 Guidel.pdf“或“IHI0031G_DEBUG_INTERFACE_v5_2_Architecture_specification (1).pdf“中找不到相关信息。

    顺便说一下、我已经使用这些工具执行了编写和 CRC32 验证。

    谢谢你。

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

    您好:

    我不太确定您所指的文档是什么。 我也不知道可以用于从器件读取存储器的任何其他工具。  

    此外、我误会了、没有一个 SACI 命令允许您从芯片转储闪存。 必须使用 CCS 或 Uniflash。  

    您可以使用 CCS: https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?highlight=memory#memory-view

    您还可以使用 CCS 脚本:  7.8.脚本编写—Code Composer Studio 20.4.0 文档

    此致、

    Nima Behmanesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Nima、
    更详细地说明一下、在我们的产品制造过程中、我们希望避免因变更管理相关原因而更改现有的写入器设备(目前用于写入非 TI MCU 的存储器)。 相反、我们正在考虑添加对 CC2340R5 写入现有设备的支持。

    因此、我们将寻找在 CC2340R5 上执行写入、擦除、验证和读取操作(读取用于读取验证目的)的方法。 对于除阅读之外的所有操作、我们已从前面提到的文件中获得必要的信息、并已实施这些信息、并确认它们能够正常工作。

    现在、我想知道如何执行读取操作。 由于 UniFlash 能够执行转储、我相信应该有一种方法可以执行此操作、我想问您是否可以共享该信息。

    请注意、我们计划在制造过程中不使用 CCS 或 UniFlash。

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

    您好:

    为了确保我正确理解您:

    您正在尝试通过外部器件向 CC2340R5 发送命令来读取 CC2340R5 的闪存。 该外部设备将读取数据并执行验证。

    如果上述情况属实、则需要在应用中编写一个层、该层可以通过将数据发送到外部设备的串行协议进行通信。 打开了 不会 通过 ROM 串行引导加载程序或 SACI 的命令或方式、用于从器件读取整个闪存。 这是因为这样做将是一个安全问题。

    或者、您需要编写自己的工具、该工具可通过 ARM Cortex-M 调试器规范与调试器通信。

    此致、

    Nima Behmanesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Nima、
    您的理解是正确的、我也知道为什么 SACI 命令无法读取器件的整个闪存。
    也就是说,我有三个问题:
    1. 您提到了这可以使用 ARM Cortex-M 调试器规范实现。 UniFlash 和 CCS 是否使用相同的方法来转储闪存?
    2. 您是否能够分享 UniFlash 和类似工具使用的通信规范、或提供任何文档(例如规范表)?
    3. 您提到了“从器件读取整个闪存“-是否有办法只读取其中的一部分?

    感谢您的帮助。

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

    您好、

    您提到了使用 ARM Cortex-M 调试器规范可以实现这一点。 UniFlash 和 CCS 是否使用相同的方法来转储闪存?

    Uniflash 和 CCS 都按照 ARM Cortex-M 调试器规范通过 SWD 与器件通信。 这些信息可以在网上获得,但我应该提到,开发这样一个工具并不是小事。 如果需要这样的工具、我建议使用命令行 Uniflash 或 CCS 脚本编写工具。 API 可用于通过这种方式读取闪存。

    您是否能够分享 UniFlash 和类似工具使用的通信规范、或者提供任何文档(例如规范表)?

    您可以在此处找到 ARM 调试器规格: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiohtmUgY6SAxU7lWoFHW3KNnoQFnoECBgQAQ&url=https%3A%2F%2Fdocumentation-service.arm.com%2Fstatic%2F622222b2e6f58973271ebc21%3Ftoken%3D&usg=AOvVaw3P6WcCOejcQE78Mc2abDgD&opi=89978449

    您提到“从器件读取整个闪存内容“-是否有办法只读其中的一部分?

    您参考的是以下陈述:  

    不会 通过 ROM 串行引导加载程序或 SACI 的命令或方式、用于从器件读取整个闪存。 这是因为这样做会引起安全问题。

    我澄清一下: 没有通过 ROM 串行引导加载程序或 SACI 读取的命令或方式  刷写 。  

    读取闪存的选项(无论是全部还是仅一部分)必须通过应用中的一层或利用器件上的 SWD 线路的工具来实现。 Uniflash 和 CCS 都利用了 SWD、并且包含的 API 允许您编写工具(特别是我在之前的帖子中链接的 CCS 脚本)。  

    请注意、对不使用 Uniflash 和 CCS 的任何实现的支持都有限。  

    此致、

    Nima Behmanesh

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

    嗨、Nima。
    我知道无法通过 SACI 或类似方法读取。

    我们的目标是使用 CCS 或 UniFlash 等开发工具以外的工具进行大规模生产、因此这可能具有挑战性、但我们将根据您提供的信息尝试进行开发。
    感谢您的答复。 我现在将关闭该主题。

    再次感谢。