"); //-->
DMA优点是其进行数据传输时不需要CPU的干涉,可以大大提高CPU的工作效率。
DMA大容量数据传输中非常重要,比如图像数据传输,SD卡数据传输,USB数据传输等等。
S3C2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同。
那么怎么使用DMA呢,S3C2410内部集成了DMA控制器,我们只需要简单的配置一下寄存器就可以实现DMA的传输了。
步骤与要点:
1. 数据从哪里来,到哪里去?
使用DMA当然首先我们要知道数据的流向,DISRCx寄存器是DMA初始源寄存器存放了数据的源地址。DIDSTx是DMA的初始目的寄存器,应该存放数据的目的地址。
2. 数据走得什么总线?地址是否是固定的?
我们还要知道源与目的数据存储设备是在什么总线上(AHB系统总线,一般是高速的比如内存,APB外围总线低速的,比如SD,UART);
以及数据传输结束以后起始地址还原到发送前的起始地址呢,还是在现在的末尾+1做为新的起始地址。
这些设置在DISRCCx与DIDSTCx两个寄存器里面配置。
3. 数据以什么方式传输?源与目的是什么设备?要不要自动重载?
需要确定数据的传输方式有请求还是握手(推荐使用HANDSHAKE),根据上面的总线确定与什么时钟同步(HCLK,PCLK),是单元传输还是突发传输,是以字节传输还是字传输,是否重载。是单服务(只发送一次)还是多服务(不停循环发送),以及数据的传送大小。
选择源与目的设备,这里DMA控制器支持:
Ch0:nXDREQ0,UART0,SDI,Timer,USB EP1
Ch1: nXDREQ1,UART1,I2SSDI,SPI0,USB EP2
Ch2:I2SSDO,I2SSDI,SDI,Timer, USB EP3
Ch3:UART1,SDI,SPI1,Timer, USB EP4
最后还要确定中断是不是传输结束发生(CURR_TC记数是不是0)。
这些都在DCONx中设置。
4. 怎么开始传输DMA和停止DMA,这些在DMASKTRIG中设置。
下面是DMA在SD卡中使用的一段示例:
SD卡读的DMA设置:
pISR_DMA0=(unsigned)DMA_end; //DMA中断服务函数入口地址,一次DMA传送结束发生rINTMSK = ~(BIT_DMA0); //开DMA中断
rDISRC0=(int)(Tx_buffer); //源地址在内存 就是从内存读数据到SD卡
rDISRCC0=(0<<1)+(0<<0); //内存的总线是 AHB, 地址是自动增加inc
rDIDST0=(U32)(SDIDAT); // 目的地址SD卡
rDIDSTC0=(1<<1)+(1<<0); // 在总线APB, 地址是固定的因为SD的FIFO是固定大的
rDCON0=(1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(1<<22)+(2<<20)+128*block;
//handshake握手模式, 与 PCLK同步,发送完产生中断, 单元传输, 单服务, SDI
//不自动重载,每次发送一个字,发送大小
rDMASKTRIG0=(0<<2)+(1<<1)+0; //不停止, DMA0 channel 启动,不用SW触发
SD卡写的相应代码
pISR_DMA0=(unsigned)DMA_end;
rINTMSK = ~(BIT_DMA0);
rDISRC0=(int)(Tx_buffer);
rDISRCC0=(0<<1)+(0<<0);
rDIDST0=(U32)(SDIDAT);
rDIDSTC0=(1<<1)+(1<<0);
rDCON0=(1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(1<<22)+(2<<20)+128*block;
rDMASKTRIG0=(0<<2)+(1<<1)+0;
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
PCB线路板制造全过程
PCB设计的ESD抑止准则
面向先进处理解决方案的低压大电流设计
英披露在研电磁装甲系统
555游戏定时器电路
555电子触摸游戏电路
见面礼!
人形机器人,带火这些国产芯片
英海军45型驱逐舰首舰“果敢”号下水
以贵宾的名义保证,不听绝对后悔!
英新一代攻击型核潜艇即将下水
先进开发工具赋能国产车规级MCU在新能源汽车动力系统落地
国产高精度、高速率ADC芯片,正在崛起
印度准备接收俄“阿库拉”级核潜艇
PCB压板工艺技术(1)
PCB压板工艺技术
IDC发布2026全球IT行业十大预测:塑造未来IT领导力的三大力量
淼森波×泰克科技联合实验室正式揭牌
国外芯片业兴师问罪 中国偏“芯”从何说起
赋能边缘人工智能:2025贸泽与你大咖说即将重磅启幕
我军防空网络集群系统验收 对空作战能力跃升
PCB设计基础教程汇集
农村网吧隐患更多 网络净化器大多形同虚设
555射击游戏机电路
英国海军在研主战装备
555投弹游戏机电路
中美达成贸易框架,可避免100%关税并暂停稀土限制
意法半导体半桥栅极驱动器简化低压系统中的GaN电路设计
半导体靶材,如何左右7nm以下制程?
555活动光电电子靶电路