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.

[参考译文] DRA626:计时器、GPIO、EDMA 寄存器地址有时在 DSP 端移位

Guru**** 2540720 points
Other Parts Discussed in Thread: CCSTUDIO

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594679/dra626-timer-gpio-edma-register-address-shift-sometimes-on-dsp-side

器件型号:DRA626
主题中讨论的其他器件:CCStudioTPS65913

在我客户的系统中、有时 GPIO、计时器、EDMA 寄存器地址在 DSP 端发生移位、如下图所示、计时器 TIDR 值为0x4FFF1301、应位于地址0x081C10000上、但它显示在地址 0x081C10004上。 同时、从 ARM A8侧读取、它位于地址 0x081C10000处。  

第一。 它与 JTAG 无关、因为系统是独立运行的、当系统异常时、连接 JTAG 会发现此问题。

2。 在仅使用 JTAG 仿真器开发 DSP 期间、从未发现过此问题。

3号。 现在一起调试 ARM 和 DSP、从 ARM 端启动 DSP、在 DSP 端发现此问题。  

4. 系统 MMU 已禁用。  

5号。 在每次 DSP 启动时都没有出现问题。  

6号。 已确认运行点: ARM@600MHz、DSP@500MHz。  

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

    Tony、

    [引用用户="Tony Tang"]计时器 TIDR 值为0x4FFF1301时应位于地址0x081C10000[/引用]

    否、0x081C10000不正确。  TIDR 地址为0x481C1000 (用于 A8/L3)和0x081C1000 (用于 DSP)。 查看 J5Eco 数据表、表3-8。 L4 Slow0外设存储器映射

    [引用用户="Tony Tang"]但它显示在地址 0x081C10004

    从您所附的屏幕截图中、我看到 TIDR 位于地址0x081C1000 (而不是0x081C10004)上。 您可以再次检查吗?

    此致、
    帕维尔

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

    Pavel、

    感谢您的回复。

    第一。 您是对的、我说0x081C1000是 TIDR 的 DSP 侧地址。 在 ARM 端、它是0x481C1000。 我再用一个0进行拼写错误、感谢您的更正。

    2。 在屏幕截图中、左侧是 TIDR 地址的软件定义、它是0x081C1000、但该地址中的值显示在地址0x081C10004中。 您还可以找到右侧的存储器视图、结果相同。

    TIDR (0x081C1000)为只读、值为0x4FFF1301、而不是0。

    我是说显示的寄存器值会移动一个字。 地址0x081C1004中显示的地址0x081C1000的值、等等...

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

    Tony、

    从 Cortex-A8 (0x481C1000)访问时、您的外设在 TIDR 寄存器中是否具有0x4FFF1301值? 仅当从 DSP 访问 TIDR 寄存器(0x081C1000)时才会出现此问题吗?

    您是否使用 TI EVM 或定制板?


    是否将 EZSDK 5.05.01.10或 CCStudio 项目与 GEL 文件一同使用?



    此致、
    帕维尔

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

    当从 DSP 端进行访问时、A8端仍然正常、因此 A8端不存在此类问题。 它位于客户的电路板上、ARM 端为 uBoot+VxWorks、在 uBoot 中引导 DSP。

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

    您仅使用 JTAG 和 CCS 来检查 TIDR 值、对吧?

    此问题未知、以前从未报告过。 由于 TIDR 寄存器是只读寄存器、这应该是定制板的硬件问题。

    我建议您尝试使用 J5Eco TI EVM 和 TI u-boot (可从以下链接获取)、看看您是否会遇到相同的问题。

    arago-project.org/.../

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

    您好、Pavel、

    在本例中、我是客户。

    如今、我们正竭尽全力解决问题。

    1.在某些电路板中容易重现、在其他电路板中很难重现。

    2.当问题发生时、我通过连接到 DSP 内核的 JTAG 检查了所有寄存器、我发现了一些有趣的事情。
      a:每个模块的地址漂移4个字节、包括 L4 FAST、L4 sles0/1。
      b.如果我从 DSP 侧的 ARM 地址(+0x40000000)读取同一个寄存器(不允许、只需尝试一下)、一切都是正确的。

    3.在 DSP 唤醒代码中,我添加了启用 CLKS 和释放 GEM RST 信号之间的延迟。 比以前更难发生、但 故障概率仍然很低。

    4、我在所有电源上都加了一些100uF 电容器、看起来更好、但也有上面的问题。

    5.请勿关闭电源,通过 POR 引脚复位 CPU,仍然错误。

    6.调整 DSP VDD 电源,更高或更低,仍有错误。

    7.降低 DSP 频率。 到250MHz、仍然存在错误。

    8.当它漂移时、从 ARM 端对 DSP 内核进行热复位、它被恢复。

    请帮帮我们。  

    非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于 TIDR 寄存器是只读寄存器、这应该是定制板的硬件问题。

    我建议您尝试使用 J5Eco TI EVM 和 TI u-boot、看看您是否会遇到相同的问题。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们在 J5Eco 上尝试过相同的测试代码、没有错误。
    是的、我们还认为这是硬件问题、但我仍然不知道导致问题的确切原因。
    我们本周已与 Tony 合作、通过测量电源、示波器和复位信号未发现任何问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    达川

    我认为问题与使用 JTAG 的通信通道(目标/J5Eco 到主机/PC)有关。

    您是否可以尝试不使用 JTAG/CCS 重现此问题? 我的意思是使用 u-boot MD 命令或 Linux 内核 printk()或用户空间 devmem2工具或不涉及 JTAG/CCS 的其他工具。

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

    Pavel、

    它是在独立运行、未连接 JTAG 的情况下重现的。

    让我们再次澄清一下、让所有内容保持不变。:

    第一。 首次客户发现 DSP 软件运行异常时、计时器中断似乎不起作用、因为计时器 ISR 中控制的 LED 不会切换 GPIO。 然后将 JTAG 连接到 DSP、找到已移位的定时器寄存器地址。 但在 A8端、寄存器地址和值是正常的。

    2。 由于这个问题并不总是发生、因此多次尝试了解其发生的方式和时间。 最后发现问题发生在开始运行 DSP 时。 然后将测试用例设置为#3。

    3号。 重现测试用例过程为:上电-> Uboot->引导 DSP->DSP 运行测试代码以检查 while (1)循环中的计时器寄存器。 如果一段时间内没有错误、请通知 ARM 控制 GPIO 以复位 PMIC 以对电路板进行下电上电。 如果出现错误、请保持状态、不对电路板进行下电上电。

    4. 通过#3测试、20个电路板中有2个电路板、很容易重现问题、大约20个循环通电可以重现问题。

    我有其他2个客户已经使用了 DRA624 MPed 大容量、没有问题、主要区别是他们没有使用 PMIC。 它们将所有相同的电压电源轨与独立的直流/直流转换器组合在一起。

    但在本例中使用 TPS65913作为 EVM。

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

    您好、Pavel、

    我们的测试程序是单独运行的、没有 JTAG、由 u-boot 引导。
    DSP 测试代码检查 TIDR 寄存器、如果该寄存器正确无误、它将执行 h/w 冷复位、直到检测到寄存器。 并进入死区循环。
    发生错误时、我可以连接 JTAG 并通过 CCS 观察存储器、然后我们可以获得与上面的屏幕截图相同的结果。

    当问题发生时、我还检查了 ARM 端存储器、没错。 从 DSP 方面来看、0x4xxxxxxx ARM 存储器映射地址也是正确的。
    我从 ARM 内核执行 DSP 热复位、然后恢复。

    那么、我想 DSP 超级模块或系统 MMU 是否会导致问题?

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

    Tony、


    检查 DSP PLL 电源、您可能会遇到不稳定的时钟信号。 当问题发生时、如果记录了一些错误、请检查 DSPPLL_STATUS 寄存器。 DSP PLL 不支持奇数 M2后分频器、确保 M2为偶数。

    您的 DSP 工作不稳定、可能 是由不同的硬件因素引起的、例如电源不稳定、去耦不良、电容器不足和/或电路板上的电容器放置不当、PDN 不良等

    您应该将非工作板硬件设计与工作板硬件设计、TI EVM 和 J5Eco 数据表进行比较。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    今天、我们将 DSP_M2更改为2、但没有使用。 在最新的 uboot 代码 ti814x_clock.h 中、DSP_M2仍然为1。
    下次出现问题时、我将检查 DSPPLL_STATUS。