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.

[参考译文] TMS570LS3137:无法访问闪存

Guru**** 2483995 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/723032/tms570ls3137-not-able-to-access-flash

器件型号:TMS570LS3137

大家好、

我们使用闪存组0来加载映像、并尝试按配置的长度对其进行访问。 但是、当我们尝试在闪存组0中访问它时、会出现异常。
它是否是预期行为、以及我们为何无法访问它? 我们希望同时访问闪存组0和组1 (仅用于读取操作)、是否有任何方法可以在不使用 F021 API 调用的情况下执行此操作?

此致、
M.Sreenivasan。

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

    对此进行了任何更新?

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

    很抱歉、我不是很理解这个问题。 您无法从正在编程或擦除的同一闪存存储器组中读取数据。 擦除或编程组0时、您应该能够从组1执行或读取(数据提取)。

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

    让我来解释一下:
    我们配置了大小为1MB 的闪存组0、并将映像编程到闪存组0中、大小为500kB。 现在、如果我们尝试访问超过500KB、我们就无法读取它并获得异常。 您能对此进行研究吗?

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

    您遇到了哪些例外情况? 数据中止? 您无需进行闪存 API 调用即可从闪存存储器中读取数据。 您可以检查 MPU 设置吗? 它们可能已配置为仅允许访问前512KB。

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

    我们尚未启用任何 MPU 设置(我们尚未调用 mpuInit 和 MPU 使能调用)。 我们还尝试将区域0大小配置为4MB、并提供如下权限:
    _mpuSetRegion_(0);
    _mpuSetRegionSizeRegister_(mpuREGION_ENABLE | MPU_4_MB);
    _mpuSetRegionTypeAndPermission (MPU_det[0].perm、MPU_PRIV_RW_USER_RO_EXEC);
    我们仍然无法访问完整的3MB 闪存进行读取。

    有什么具体问题、我们需要做得更进一步?

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

     您好!

    请查找快照以供参考。
    您可以看到闪存中的某些器件位于"???????? '。

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

    对此进行了任何更新?

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

    在对代码进行编程之前、您是否擦除整个闪存组? 刷新此存储器窗口时、CPU 代码执行是否停止?

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

    是的、我们在从 CCS 进行编程之前擦除整个闪存组(0和1)。 刷新存储器窗口时、CPU 执行不会停止。

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

    您好!

    请找到我们尝试访问闪存组1的快照、在表达式窗口中、其值显示为(?????) 地址0x00180000。
    我们是否需要为闪存访问做任何事情?

    此致、
    M.Sreenivasan。

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

    调试器使用 CPU 读取寄存器/变量/存储器窗口中显示的存储器位置。 在读取这些存储器位置之前、需要暂停 CPU。 您能否在读取这些变量之前暂停 CPU 代码执行?

    有一个替代路径可通过 TMS570 MCU 上的调试访问端口启用 JTAG 对存储器的访问。 这需要在调试器中配置目标配置文件。

    此致、
    Sunil