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.

[参考译文] MSP432P401R:需要有关如何写入 DMA_ERR_IRQHandler 的建议

Guru**** 2589245 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/624135/msp432p401r-need-an-advise-how-to-write-dma_err_irqhandler

器件型号:MSP432P401R

大家好、社区

我已经编写了一个裸机应用、在该应用 中、我使用 DMA 启用了2个 UART、稍后还计划添加 SPI、可能会添加更多驱动程序。

两个 UART 都将中断设置为 DMA_INT0_IRQHandler、在这里我没有问题。

我在 DMA_ERR 中断中遇到问题。  

启用1个 UART 后、一切正常。

当两个 UART 都启用时、会发生 DMA_ERR_IRQHandler IRQ。

处理中断的正确方法是什么?

我看到在处理(下面的代码)之后、一个 UART 被停止。

我出了什么问题

void dma_ERR_IRQHandler (void)
{
uint32_t status = map_dma_getErrorStatus ();
DMA_clearErrorStatus();
/*我必须执行其他操作???*/
} 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yuliy、
    您是否知道错误的来源以及错误是否在标志被清除前被解决? 您是希望重新启动整个 DMA 传输序列还是只是在错误消息被清除后继续? (即、如果 DMA 要进行4次传输、并且错误发生在第3次传输期间、您是否要重新启动并发送4次传输或完成并仅发送1次。)

    此致、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >您知道错误的来源是什么吗?
    我知道哪条通道停止工作。
    >是否在清除标志之前解决了错误?
    很抱歉,我不明白这个问题。
    >您是否希望重新启动整个 DMA 传输序列,或者只是在错误消息被清除后继续?
    只要继续下去就可以接受。 当然、首先要尽量减少/消除错误原因。
    我的应用程序不能保证所有消息都将被发送、速度是最优先的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否 简要介绍所使用的通道和 DMA 配置?

    DMA 模式:(散聚模式、乒乓模式、基本模式)

    DMA 通道/源:

    DMA 目标(SRAM、DMA 和 CPU 之间可能存在访问冲突的共享阵列、外设)

    CPU 和 UART 速度:  

    谢谢、
    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然可以
    DMA CH0分配给 UART0 TX 8MHz
    DMACH5被分配给 UART2 RX 4MHz

    可能是两个 PRio UDMA_ATTR_HIGH_PRIOR

    使用简单的基本 DMA 模式
    CPU 24 MHz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Yuliy

    当 DMA 尝试访问未映射或未启用访问的地址位置时、DMA 错误状态会被置位。 如果启用了安全权限访问或该位置在已关闭的电源域中、则可能会发生后一种情况。 如果发生这种情况、您可以检查 DMA 控制结构、以查看错误发生时控制结构体当前指向的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的

    将执行其他测试...

    请让我一些时间。

    合作

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的
    我将在中断前后比较寄存器、然后研究该问题。
    它们是相同的。
    我刚才关注的是、它起作用了。
    清除 DMA_ERR 中断中的中断标志
    2.再次通过 DMA 重新发送最后一个缓冲区。

    这很有帮助。

    解决问题。

    另外、请在文档中编写有关 ERR_DMA IRQ 的章节、该章节不是很短且具有缺陷。

    谢谢
    关闭主题