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.

[参考译文] AM6421:是否可以配置 BCDMA 和 PKTDMA 通道优先级、如何配置?

Guru**** 2474250 points
Other Parts Discussed in Thread: AM6421, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1460913/am6421-can-bcdma-and-pktdma-channel-priority-be-configured-and-how

器件型号:AM6421
主题中讨论的其他器件: SysConfig

工具与软件:

您好!

我使用的是 AM6421。 我有以下问题。

1、

我需要配置 BCDMA 的3个通道以将3组数据从 Sharedram 复制到内核 RAM、每组数据使用1个 BCDMA 通道。

我能将数据复制组1的通道1设定为比通道2和通道3具有更高的优先级吗? 以及如何实现?

2、

我还需要启用 DAM 的3 uart3。 我是否可以将 uart1 DAM 设置为具有比 uart2 DAM 和 uart3 DMA 更高的优先级? 如何实现?

3、

对于 BCDMA、如果启用了中断模式、如何配置中断优先级?  

在 SysConfig 中、没有找到配置中断优先级的位置。

4、  

如何为 src 和 dest buf 配置 uDMA_CACHELINE_alignment 的参数?  uDMA_CACHELINE_alignment 的不同值会产生什么影响?

5.

如果我为内核 R50_0配置了 UDMA 块复制通道0、 为内核 R50_1配置了 UDMA 块复制通道0、那么两个通道0是相同还是不同的通道?  

谢谢你。

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

    你(们)好  

    感谢您在 E2E 上发布此问题。 帮助您解决这些问题的主要专家本周不在办公室、因此请预计会有一些回复延迟

    此致

    Mukul  

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

    尊敬的 Pian:

    对于查询1和2、只要每个实例使用 唯一的中断号、您就可以为不同的实例具有不同的优先级。  

    对于查询3、 目前无法使用 SysConfig 工具设置所有外设的中断优先级。 相反、您可以使用 Hwip API 注册中断并手动设置中断优先级。

    您可以在应用代码中使用 Hwip API。 您可以 在运行实际的应用程序代码之前更改外设的中断优先级。 (即在 Drivers_open API 之后)。

    在您的应用程序中添加以下代码。

    #define INT_PRI_SET(j)   (0x1000u + ((j) * 0x4u))
    extern HwiP_Config gHwiConfig;
    void setInterruptPriority(uint32_t intrNum, uint32_t priority)
    {
        volatile uint32_t *addr;
        addr = (volatile uint32_t *)(gHwiConfig.intcBaseAddr + INT_PRI_SET(intrNum));
        *addr = (priority & 0xFu);
    }

    调用  setInterruptPriority  上面定义的功能、之后有正确的参数  DRIVERS_OPEN()  API 调用。

    setInterruptPriority(i2cHandle->hwAttrs->intNum, priority);

    此致、

    Tushar

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

    尊敬的 Tushar:

    对于查询1和2、如何设置通道优先级?

    谢谢你

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

    尊敬的 Pian:

    对于查询1和2、如何设置通道优先级?

    我对 uDMA 不太熟悉、我们的专家也会参加本周的活动。  

    如上所述、如果通道1和2使用的中断编号唯一、那么你可以用与之前答复中解释的一样的方法来设置它们的优先级。  

    此致、

    Tushar

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

    尊敬的 Tushar:

    我们在禁用 DMA 中断的情况下使用 DMA。 在该应用中、我们如何设置信道优先级?

    我们可以等待专家的回答。

    谢谢你。

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

    尊敬的 Pian:

    我们可以等待专家。

    感谢您的合作。

    同时、我发现了一些可用于设置 DMA 通道优先级的寄存器。 请参阅 表11-236 BCDAM_BCHAN、表11-237BCDAM_TCHAN、表11-238  BCDAM_RCHAN 技术参考手册。

    请参阅下图。

    以上所有部分都有一个可用于设置优先级的优先级控制寄存器。

    此致、

    Tushar  

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

     Pian、您好!

    您能否分享有关 用例的更多详细信息?

    为什么要设置 DMA 通道的优先级?

    因为我们到目前为止尚未更改此设置、但如前所述、Tushar、所以存在 用于控制 DMA 通道调度优先级的 DMA 通道调度寄存器。

    此致、

    Anil。

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

    尊敬的 Swargam:

    1对于 BCDMA、应用为内核 R50-0需要 从 Sharedram 读取3组数据使用 BCDMA。

    组1为5KB、 每1KHz 读取一次; 组2为20KB、每100Hz 读取一次;组3为20KB、 每20Hz 读取一次。

    组1使用 BCDMA 通道1、组2使用  BCDMA 通道2、组3使用 BCDMA 通道3;

    Group1是实时命令、需要立即读取、因此需要设置具有最高优先级的 DMA 通道1。

    如何使用 MCU 和 SDK 中的 API 设置 BCDMA 通道优先级?  此应用程序在 nortos 中使用。

    谢谢你。

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

    Pian、您好!

    根据您的要求、您需要3个 DMA 通道。

    1通道每1ms 读取一次数据、大小为5KB

    2通道每10ms 读取一次数据、大小为20KB。

    3通道每50ms 读取一次数据、大小为20KB

    默认情况下、在 MCU+SDK 中、所有通道均配置为最高优先级。

    因此、将调度第一个通道1、 调度下一个通道、最后调度第三个通道。

    所有通道都将以轮询方式进行扫描。

    您能否确认您如何每1毫秒、10毫秒和50毫秒读取一次数据?

    您是否在计时器 ISR 中使用计时器、触发 DMA?

    如果您使用基于计时器的方法来触发 DMA、则为1ms 提供最高优先级、为其他计时器提供最低优先级。

    假设 DMA 在触发通道1实时命令的同时扫描第二个通道、然后 DMA 将在通道3完成后进行扫描。

    而且,这种扫描将很快完成,不会看到任何时间差异。 在这种情况下,我们不需要更改 DMA 通道的优先级。

    如果您仍然想更改信道的优先级、请告诉我、我们需要将信道1保留为最高优先级、其余信道保留为中等或较低优先级  

    此致、

    Anil。