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.

[参考译文] CC1354P10:可访问性问题

Guru**** 2874300 points

Other Parts Discussed in Thread: CC1354P10

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1629845/cc1354p10-accessibility-issue

部件号: CC1354P10

您好:

我正在开发支持 CC1354P10 的闪存算法、我面临的问题是使用调试器连接到目标后无法访问任何内容(没有可访问的 RAM,闪存或寄存器)。

如果我运行 CPU 几秒钟、所有内容都变得可访问、并且我可以无任何问题地进行读取和写入、则此问题会得到解决。然而、此权变措施并不理想、 我假设一些寄存器写入已执行、它们启用了存储器可访问性。
更好的方法是在无需首先运行代码的情况下访问内存、事先通过调试器配置这些寄存器、这将是一个更简洁的解决方案。

您能帮助解决这个问题吗?
提前感谢您的帮助。
祝你一切顺利、
费拉斯。

image.png

image.png

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

    在寄存器和/或存储器位置通电之前、您将无法读取它们。

    例如、除非射频内核已上电并正在运行、否则您将无法读取任何射频寄存器。

    运行我们的代码示例时、电源驱动程序可确保在不需要通电时不会通电、因此、除非您运行使其可访问的代码、否则您将无法监控所有存储器地址。

    BR

    Siri

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

    您好:

    感谢您的澄清。

    我知道、在启用相应的电源域之前、无法访问存储器和寄存器。

    但是、对于我的用例、我需要在与调试器连接后立即访问 RAM 和闪存、而无需先运行 CPU。

    目前、我观察到让 CPU 短暂运行后、所需的域变得受电、所有内容都可访问、这表明正在执行必要的配置。

    是否可以确定必须启用哪些电源域(例如,SRAM,闪存)以允许访问和/或提供手动为其上电所需的特定寄存器和序列(通过调试器)、而无需 让 CPU 首先运行。

    或者、如果有任何介绍此早期电源/时钟设置的参考脚本、低级初始化示例或文档、这会非常有帮助。

    我的目标是仅复制实现可直接从调试器访问内存所需的最小初始化。

    提前感谢您的支持。
    此致、
    费拉斯。

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

    尊敬的 Firas:

    如果您查看技术参考手册中的电源域方框图、您可以看到闪存位于 VIMS_PD 电源域中。  

    要为该域供电、必须写入 PRCM :VIMSCLKG.CLK_EN

    顺便说一下,这就是我们在 SetupTrimDevice() 中所做的,这就是我们在应用程序启动时运行的。

    此致、

    Arthur

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

    您好 Arthur、

    我已经尝试过此操作、但问题是、在我们首次连接到 CPU 时无法访问任何内容、因此尝试最初设置该寄存器会导致总线错误:

    但是、在运行 CPU 后、一切都变得可访问、我可以看到时钟已启用、但禁用它并不会有任何区别、我仍然可以写入闪存:



    此致、
    费拉斯。

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

    尊敬的 Firas:

    根据 SetupTrimDevice、似乎还必须启用 CPU 电源域才能启用闪存:

    // Set VIMS power domain control.
    // PDCTL1VIMS = 0 ==> VIMS power domain is only powered when CPU power domain is powered
    HWREG( PRCM_BASE + PRCM_O_PDCTL1VIMS ) = 0;

    大多数信息似乎位于  hw_prcm.h 中
    此致、

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

    您好 Arthur、

    是的、但所有 PRCM 寄存器一开始都无法访问、因此没有办法设置任何内容、只是澄清一下、在首次连接到 CPU 时无法读取或写入任何内容、因此每个写入操作都会导致总线错误。

    我们是否可以设置一个快速远程会话、以便我可以更好地解释情况(如果您可以)。
    提前感谢!
    此致、
    费拉斯。

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

    尊敬的 Firas:

    我会将您的问题转发给我们的调试探针团队、他们可能知道如何解决问题。 根据前面的观察、我相信在实际刷写固件之前、我们也会在短时间内运行 CPU。

    此致、

    Arthur

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

    您好 Arthur、

    只是一个快速更新、它显示的是与安全模式问题有关的。

    连接到 CPU 后、如果我转储闪存区域(或任何地址)、则在非安全模式下执行访问、这会导致该区域无法访问、但是、当我使用安全访问类执行相同的操作时、读取和写入操作都可以正常工作而没有任何问题。

    短时间运行 CPU 似乎会将系统切换至默认启用安全访问的状态。

    此致、
    费拉斯。

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

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

    您好 Arthur、

    是否有任何更新使此情况恶化?

    提前感谢!
    此致、
    费拉斯。

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

    尊敬的 Firas:

    您的发现似乎与我们的 TRM 解释相符:

     

    顺便说一下、您的设备重新启动之间的 MSP/PC 是否一致?

    此致、

    Arthur

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

    您好 Arthur、

    很抱歉、回复延迟、我正在度假。

    是的、MPC/PC 的值是一致的。   引导 ROM 是否可能会执行一些导致这种状态(仅启用安全访问)的配置?

    ...



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

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

    尊敬的 Firas:

    因此、此 PC 与使用 XDS-110 时的复位行为相匹配、当我们处于停机引导模式时、XDS-110 似乎处于安全状态:

    内核寄存器内核寄存器
    PC 0x10001366 程序计数器【内核】
    SP 0x11001FF8 通用寄存器 13 — 栈指针【内核】
    LR 0x10000891 通用寄存器 14 — 链接寄存器【内核】
    xPSR 0x69000000 存储中断使能和关键处理器状态信号的状态【内核】
    R0 0x00000000 通用寄存器 0【内核】
    R1 0x00000000 通用寄存器 1【内核】
    R2 0x5803003C 通用寄存器 2【内核】
    R3 0x00000004 通用寄存器 3【内核】
    R4 0x58030040 通用寄存器 4【内核】
    R5 0x58090034 通用寄存器 5【内核】
    R6 0x00000000 通用寄存器 6【内核】
    R7 0x00000000 通用寄存器 7【内核】
    R8 0xFFFFFFFF 通用寄存器 8【内核】
    R9 0xFFFFFFFF 通用寄存器 9【内核】
    R10 0xFFFFFFFF 通用寄存器 10【内核】
    R11 0xFFFFFFFF 通用寄存器 11【内核】
    R12 0x100000AC 通用寄存器 12【内核】
    R13 0x11001FF8 通用寄存器 13【内核】
    R14 0x10000891 通用寄存器 14【内核】
    MSP 0x11001FF8 MSP 寄存器【内核】
    PSP 0x00000000 PSP 寄存器【核心】
    DSP 0x00000000 DSP 寄存器【内核】
    CTRL_FAULT_BASE_PRI 0x00000000 CM33 特殊寄存器【内核】




    此致、

    Arthur

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

    ...现在,我看到我们的 MSP 不同。 这很可能是您的问题、您无法评估非安全偏移:

    您的 MSP:20000FF8
    XDS/CCS MSP:11001FF8