打印
[技术讨论]

dw axi dmac疑问

[复制链接]
65|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lindahnu|  楼主 | 2025-2-14 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人使用过这个IP吗?看databook有几个疑问,求解答

1、通道配置优先级相同时,通道号是小的优先级高吗?

2、DMAC_COMMONREG_INTSIGNAL_ENABLEREG,CHx_INTSIGNAL_ENABLEREG使能,DMAC_CfgReg.INT_ENR=1,作用就是产生中断信号进入中断处理函数?

3、在什么应用场景中设置TT_FC外设是Flow Control?
     外设作为Flow Control时,还需要配置哪些寄存器完成传输?注意事项?

4、在什么应用场景中设置软件寄存器CHx_SWHSSrcReg/CHx_SWHSDstReg实现传输?

5、链表传输,手册里以下这段从应用的角度怎么理解?
LLI access always uses a burst size (arsize or awsize) that is the same as the data bus width and cannot be changed or programmed to anything other than this. Burst length (awlen or arlen) is chosen based on the data bus width so that the access does not cross one complete LLI structure of 64 bytes。
软件会定义LLI描述符,LLI访问什么?数据接口位宽是根据参数DMAX_M_DATA_WIDTH?还是描述符里的SRC_TR_WIDTH/DST_TR_WIDTH?

LLI描述符的结构体成员,总共64bytes
uint64_t SAR
uint64_t DAR
uint64_t BLOCK_TS
uint64_t CTL
uint64_t LLP
uint32_t Sstat
uint32_t Dstat
uint64_t Status_llp
uint32_t reserve
uint32_t reserve

DW_axi_dmac fetches the LLI (40 bytes) in one AXI burst, if the burst length is not limited by other setting
以下理解是否正确?
LLI描述符存储在sram,例如链表有三个描述符,首地址配置给CHx_LLP寄存器。DW_axi_dmac从CHx_LLP寄存器配置的内存地址读取第一个描述符的40 bytes,然后更新到对应的寄存器执行第一块传输,第一个描述符中的LLP配置了第二个描述符的内存地址,DW_axi_dmac再次从这个地址读第二个描述符的40 bytes,然后更新到对应的寄存器执行第二块传输,以此类推?


6、影子传输多块编程,看编程手册,影子寄存器是只有一组吗?
a、配置第1块传输信息,ShadowReg_Or_LLI_Valid=1后,控制器开始把第1块内容加载到影子寄存器吗?还是通道使能后?
b、查询ShadowReg_Or_LLI_Valid为0后,说明已经把第1块内容从影子寄存器拷贝到SAR,DAR,CTL,BLOCK,接着开始配置第2块内容,如果之前第1块还没有开始传输,比如还没有使能外设dma请求,此时SAR,DAR,CTL,BLOCK会被覆盖吗?看步骤此时控制器仍会加载第2块内容到影子寄存器(如果影子寄存器只有一组,那么就会被覆盖。是不是有2组?),不明白内部的逻辑是什么样的。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

30

帖子

0

粉丝