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.
最近阅读430手册的DMA模块发现一个问题,DMA模块的说明里有一些DMA操作运行的流程图,里面有一个是在DMA传输数据时CPU是挂起的,后来查看了关于DMA的资料发现,DMA在传输数据时会获得地址数据总线的控制权,这时CPU就处于挂起状态了,但是有个问题没想明白,用DMA传输数据就是为了能让CPU干别的事情,但是总线的控制权却在DMA那,CPU啥也干不了,岂不是没用了? 但是我实验中却发现用DMA传输大量数据时CPU还是能够响应其他中断的,比如键盘中断,定时器中断等,这是怎么回事?
楼主你好!
1、由于内部数据地址总线只有一套,要么CPU占用,要么DMA占用;
2、CPU搬运工作需要的周期数比DMA时间长。CPU需要经过取指令、译码、执行等步骤,而DMA的工作方式是死的,使用时钟数少;