DMA-NOTE1

DMA操作    

DMA 为其运行使用 3态 FSM(有限状态机),相关描述如下面三个阶段:

状态1. 作为一个初始状态,DMA等待DMA 请求。一旦请求到达则跳到状态 2。在此状态下DMA ACK和 INT REQ 为 0。

状态2. 在此状态,DMA ACK变为 1而且计数器(CURR_TC)从DCON[19:0]寄存器中加载。注意 DMA ACK 保 持为1 直到之后将其清除。

状态3. 在此状态,处理DMA的原子操作的 sub-FSM启动。sub-FSM从源地址读取数据,接着写入目标地址。在 此操作中考虑数据大小和传输大小(单次或突发)。此操作在全服务模式中一直重复直到计数器(CURR_TC) 变为0,在单服务模式只执行一次。当sub-FSM完成了每个原子操作时主FSM (此FSM)倒计数CURR_TC。 此外当 CURR_TC 变为 0并且DCON[29]寄存器的中断设置置位为 1时主FSM 发出 INT REQ信号。

另外 如果遇到以下状况之一则清除了 DMA ACK。

1) 在全服务模式中 CURR_TC 变为 0;

2) 在单服务模式中完成原子操作。     注意在单服务模式中有三个主FSM 的状态要执行并且接着要停止和等待其它DMA REQ。如果DMA REQ 出 现了要重复所有的三个状态。所以发出DMA ACK并接着取消原子传输。与之对比,在全服务模式中,主FSM在 状态3 中等待直到CURR_TC 变为 0。所以在所有传输期间发出DMA ACK并接着在当 TC 到达0 时取消。     总之当且仅当在 CURR_TC 变为 0时才发出 INT REQ,与服务模式(单顾服务模式或全顾服务模式)无关。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值