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.

[参考译文] MSPM0G1518:读取 FACTORYREGION→DEVICEID (0x41C40004) 时的硬故障/NMI;J‑Link 返回 0。 如何正确读取 DEVICEID?

Guru**** 2693225 points

Other Parts Discussed in Thread: MSPM0G1518

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1599825/mspm0g1518-hardfault-nmi-when-reading-factoryregion-deviceid-0x41c40004-j-link-returns-0-how-to-correctly-read-deviceid

器件型号: MSPM0G1518

您好:

我正在使用 MSPM0G1518 并需要阅读 器件 ID FACTORY 区域。 当固件尝试访问FACTORYREGION→DEVICEID地址时 0x41C40004 、MCU 会触发一个异常 ( 硬故障/NMI )。 读取同一地址时会发生这种情况 J‑Link 则返回的值为 0x00000000

详细信息:

  • 器件:MSPM0G1518
  • 目标地址:0x41C40004(FACTORYREGION→DEVICEID)
  • 固件行为:访问时立即执行硬 Fault/NM
  • 调试器行为 (J‑Link):存储器读取返回零
  • 目标:可靠地获取 DEVICEID

问题:

  1. DEVICEID在 MSPM0G1518 上读取的正确过程是什么?

  2. 在访问此区域时是否存在可能导致硬故障的安全条件或访问限制(例如 RDP,权限级别,安全归属)?

  3. 0x41C40004FACTORYREGION→DEVICEIDMSPM0G1518 上的映射是否正确?

    • 如果没有、获取唯一器件 ID 的正确地址或文档参考是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在调用后、factory 区域似乎变得不可用DL_SYSCTL_setMCLKSource(SYSOSC, HSCLK, DL_SYSCTL_HSCLK_SOURCE_SYSPLL);、后者会更改 MCLK 源。

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

    erratum flash_ERR_01 描述了在等待状态为 2 的出厂区域中读取数据时遇到硬故障[Ref 勘误表 (SLAZ758B)、第 7 页]。 如果将 MCLK 提速到 32MHz 之外、就会出现这种情况。

    在加快时钟之前捕获所需的工厂数据。

    【编辑:更正了拼写错误。】