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.

[参考译文] TDA3XEVM:驱动 Nand 闪存的 GPMC 预取模式问题

Guru**** 2610995 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/655887/tda3xevm-issue-of-gpmc-prefetch-mode-to-drive-nand-flash

器件型号:TDA3XEVM

先生,你好

我们使用 tda3x GPMC 来控制 NAND 闪存(Micron MT29F1G08ABAEAWP)

,现在我们可以使用 CPU 模式读取/编程/擦除 NAND 闪存。(处理字节到字节)

但我们希望尝试使用 GPMC 预取模式进行驱动。 编码后、但无法正常工作  

,请要求提供包含预取模式(可能包括 DMA/中断配置) 控制 的示例代码以供参考?

或者我应该为您准备什么。

感谢您的帮助

Tks

Brianyeh

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

    我已将您的问题转交给一位专家征求意见。

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

    您使用的软件包是什么?
    由于 EVM 没有 NAND 闪存、请提供您正在使用的电路板的更多详细信息。

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

    e2e.ti.com/.../nandflash.7zDearRishabh、

    是的,我们使用 tda3x 进行开发,没有 NAND 闪存代码。 但我们添加它

    C:\processor_sdk_03_00_00_00\ti_components \drivers\pdk_01_07_00_16\packages/ti\boot\sbl_auto_nandflash

    随附的显示您确认的代码,

    NANDOpen()中的初始代码,用于选择 nandInfo->opMode=DMA 模式 不工作。

    现在,我们希望 它可以工作。

    此致、

    Brianyeh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Rishabh
    先前连接的 nandflash 代码可用于 nandInfo->opMode = CPU 模式。
    我们希望它也能在 DMA 模式下工作。

    由于在 ISR 函数中获取状态时当前始终为0,因此可能有助于确认 DMA/中断/预取配置是否正确

    静态空 Edma3CompleIsr (空)


    isIPR = EDMA3GetIntrStatus (EDMA_TPCC_BASE_ADDR);
    isIPRH = EDMA3内部状态 HighGet (EDMA_TPCC_BASE_ADDR);




    此致、
    Brianyeh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Rishabh
    很抱歉,我是 TI 的初级员工,如果您需要我提供更详细的信息,以便您了解我的问题,请告诉我。
    感谢您的大力支持。
    Brianyeh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Brian、

    我查看了代码。 问题似乎出在中断交叉开关配置上。

    在执行 XBAR 配置时、您使用的是 DSP CPU ID。

    它应该是 IPU、即 CSL_XBAR_IRQ_CPU_ID_IPU1。

    请对其进行修改并尝试。

    此致、

    Rishabh

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

     尊敬的 Rishabh

    感谢您的回复
    我对该规格感到困惑,如附件第4085页所述
    GPMC_IRQ >> IRQ_crossbar_15 >> DSP1_IRQ_46 >> GPMC 中断
    所以我使用 DSP1_IRQ_46作为中断。
    这是我的误解吗?

    或者,您是否对中断号和源有任何注释?

    CSL_xbarIrqConfigure (CSL_XBAR_IRQ_CPU_ID_IPU1、

                           ??????);  

    非常感谢

    Brianyeh

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

    您可以使用交叉开关将任何中断源连接到任何 CPU。
    这是 DSP1和 DSP2的默认映射。
    DSP 映射在 GPMC 和 DSP 之间建立连接、但我们需要在 GPMC 和 IPU 之间建立连接。
    因此、您需要执行以下纵横制映射:
    GPMC_IRQ >> IRQ_crossbar_15 >> IPU1_IRQ_x >> GPMC 中断

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Rishabh
    非常感谢,我将尝试另一个 int source 并回复结果。
    非常感谢
    Brianyeh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Rishabh
    在尝试 CSL_XBAR_IRQ_CPU_ID_IPU1 ADn 更改另一个中断 src 后,可以正常工作,但不会转储数据。
    以下是两个问题:
    1、EDMA3DisableTransfer (、trigMode)
    如果 TRIGMode = EDMA3_TRIG_MODE_EVENT,则不会发生中断
    但是如果 TRIGMode = EDMA3_TRIG_MODE_MANUAL,则可能发生中断。
    请说明有何不同?

    2、目前没有数据被读取,但发生了中断,请帮助建议一些人尝试吗?

    深赏
    Brianyeh

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

    1.当希望 EDMA 在发生特定系统事件时发生时,使用事件触发器。 您可能需要对 DMA 交叉开关进行编程、以便在事件源和 DMA 引擎之间建立连接。 则只会发生 DMA、您将获得 EDMA 完成中断。
    通常、问题出在读取闪存时读取命令。 如前所述、我不知道 NAND 行为、因此无法确定为何无法读取数据。

    此致、
    Rishabh