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.

[参考译文] MSP430F6659:用于源或目的的 MSP430间接地址

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/727440/msp430f6659-msp430-indirect-address-for-origin-or-destination

器件型号:MSP430F6659

是否有任何方法可以指示 DMA 的来源或目标的间接寻址方法?

我想知道 Ican 是否设置一个缓冲区、该缓冲区具有 DMA 将用作源站或目标的地址。 这种访问只允许我使用一 个触发源和一个 DMA 来执行一些复杂的操作、否则需要很多 DMA

例如 、我 想 配置如下内容:

pointerAddsesDestination[]={&Port1、&PORT3、&port8、&port2、&PORT3、 &port2、&PORT7}

我觉得这种功能可以大大提高 DMA 的功耗。

谢谢!

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

    遗憾的是、我不认为 DMA 能够以这种方式工作。 您必须为 DMA 提供源地址和目的地址的直接地址。 然后、您可以使地址递增、递减或保持不变。 但是、您需要 CPU 干预来表示按照所需的方式取消对指针的引用。 例如、如果您设置上述数组、DMA 将会向下移动数组条目、但(如果是源)会将数组的内容复制到目的、或者(如果是目标)继续将源地址内容复制到每个数组条目。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Oscar Sanz"]

    例如 、我 想 配置如下内容:

    pointerAddsesDestination[]={&Port1、&PORT3、&port8、&port2、&PORT3、 &port2、&PORT7}

    [/报价]

    您为什么需要它?

    MSP430 DMA 正在传输期间停止 CPU、并且将花费2个 CPU 周期来复制一个字节/字。 如果没有 DMA、CPU 可以在2个周期内读取端口、在3个周期内写入端口。 简而言之,它不是为这项工作而做的。

    如果您需要速度、那么您可以检查 Cortex-M0+器件、这些器件可以在一个 CPU 周期(在48MHz MCLK 上)内进行写入/读取。 如果您需要创建自己的接口、无需 CPU 干预即可工作、例如 NXP 器件中有 FlexIO。

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

    谢谢!

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

    原因是在 DMA 传输期间 CPU 被停止、并且 DMA 的优先级也高于中断!

    因此、如果我要处理多个开关以及 DMA 和/或 AD 来生成 somes 信号、那么您只需配置 DMA 即可完成任务、这将是很好的。
    如果 DMA 具有间接访问权限、配置将会简单得多、只需要一个 DMA、此外还具有以下优势:其他中断不会引入抖动、消耗更少
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您对此主题还有其他疑问吗? 如果不是、请为解决您的问题的帖子选择"已解决"、以便关闭此主题。 如果您有其他问题、请选择"提出相关问题"或"提出新问题"。
    非常感谢!

    此致、
    Andre