在存在的描述符之间添加一个描述符
增加一个描述符C在两个存在的描述符(A&B)之间,目前由DMA执行的描述符必须被
识别。
1.如果DMA正在执行描述符B,描述符C不能被插入.
2.如果DMA没有开始执行描述符A,则按以下步骤:
a. 设置描述符A可用比特为0
b. 设置描述符A的DESCADDR值指向描述符C代替B
c. 设置描述符C的DESCADDR值指向描述符B
d. 设置描述符A的可用比特为1
3.如果DMA正在执行描述符A,
a. 对通道应用软件挂起命令
b. 执行步骤2a到2d
对通道应用软件重启命令。
19.6.3.2 通道挂起
通道操作能在任何时候通过软件被挂起,通过在通道控制寄存器中命令比特中设置挂起命令。当正在传输的暴发传输传完之后,通道的操作是暂停并且挂起命令自动清除。
也可能在一个块传输完成后挂起一个通道操作。软件在相应的块传输控制器的相应位置挂起块活动必须设置。当一个块传输结束,这个通道被挂起。通道何持使能,能接收传输触发,
但它将从总裁方案中移走。通道将要自动挂起操作如果一个无效的控制描述符被从系统内存中取得(BTCTRL.VALID=0).当一个无效的描述符被取出在通道控制寄存器中的通道取出错误比特被设置。
只有启用通道可以暂停。如果暂停时,通道被关闭,内部暂停命令被清除。
当暂停,通道暂停中断标志的通道中断状态和清除寄存器( CHINTFLAG.SUSP )设置并且可选暂停中断。
19.6.3.3 通道恢复和下一个挂起跳过
个通道的操作可以通过软件来恢复在通道的命令位域设置恢复命令控制B寄存器( CHCTRLB.CMD ) 。如果该信道已经被暂停,信道操作,从那里恢复
先前检测到恢复命令时停止。当通道前发出恢复命令被暂停,下一个暂停动作被跳过,信道继续正常运行。
|