OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12134|回复: 6

DMA内存地址增长使能失败,求解

[复制链接]

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-7-25
在线时间
0 小时
发表于 2013-8-4 14:38:28 | 显示全部楼层 |阅读模式
 最近在学习SDIO——DMA,对DMA的配置如下:
void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC, uint32_t BufferSize)
{
  DMA_InitTypeDef SDDMA_InitStructure;

  DMA_ClearFlag(SD_SDIO_DMA_STREAM, SD_SDIO_DMA_FLAG_FEIF | SD_SDIO_DMA_FLAG_DMEIF | SD_SDIO_DMA_FLAG_TEIF | SD_SDIO_DMA_FLAG_HTIF | SD_SDIO_DMA_FLAG_TCIF);

  /* DMA2 Stream3  or Stream6 disable */
  DMA_Cmd(SD_SDIO_DMA_STREAM, DISABLE);

  /* DMA2 Stream3  or Stream6 Config */
  DMA_DeInit(SD_SDIO_DMA_STREAM);

  SDDMA_InitStructure.DMA_Channel = SD_SDIO_DMA_CHANNEL;
  SDDMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)SDIO_FIFO_ADDRESS;
  SDDMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)BufferSRC;
  SDDMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;
  SDDMA_InitStructure.DMA_BufferSize = BUFFERSIZE;
  SDDMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  SDDMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;  
SDDMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  SDDMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
  SDDMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
  SDDMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
  SDDMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;
  SDDMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
  SDDMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_INC4;
  SDDMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_INC4;
  DMA_Init(SD_SDIO_DMA_STREAM, &SDDMA_InitStructure);
  DMA_ITConfig(SD_SDIO_DMA_STREAM, DMA_IT_TC, ENABLE);
  DMA_FlowControllerConfig(SD_SDIO_DMA_STREAM, DMA_FlowCtrl_Peripheral);

  /* DMA2 Stream3  or Stream6 enable */
  DMA_Cmd(SD_SDIO_DMA_STREAM, ENABLE);
   
}

但从调试的结果来看,结果只写了BUFFERSIZE/4的内容,且内存地址并没有增加。求高人解答
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-4 14:51:35 | 显示全部楼层
回复【楼主位】just0511:
---------------------------------
你一次传输多少数据?

内存地址自动增加是指DMA操作的时候,你是看不到的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-7-25
在线时间
0 小时
 楼主| 发表于 2013-8-4 15:37:27 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
您好,一次传送512个Word,写到SD卡的数据都是第一个“DMA_PeripheralDataSize ”的数据的重复,请问这是怎么回事?谢谢了
回复 支持 反对

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-7-25
在线时间
0 小时
 楼主| 发表于 2013-8-4 15:38:15 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
您好,还有请问,SDIO与DMA之间的时钟关系跟这个有关系么?有没有什么参考资料,谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-4 17:52:12 | 显示全部楼层
回复【3楼】just0511:
---------------------------------
这是我们战舰板SDIO例程的DMA配置,测试运行良好.

//配置SDIO DMA  
//mbuf:存储器地址
//bufsize:传输数据量
//dir:方向;1,存储器-->SDIO(写数据);0,SDIO-->存储器(读数据);
void SD_DMA_Config(u32*mbuf,u32 bufsize,u8 dir)
{   
  DMA2->IFCR|=(0XF<<12); //清除DMA2通道4的各种标记
  DMA2_Channel4->CCR&=~(1<<0); //关闭DMA 通道4
   DMA2_Channel4->CCR&=~(0X7FF<<4); //清除之前的设置,DIR,CIRC,PINC,MINC,PSIZE,MSIZE,PL,MEM2MEM
  DMA2_Channel4->CCR|=dir<<4;   //从存储器读   
DMA2_Channel4->CCR|=0<<5;   //普通模式
DMA2_Channel4->CCR|=0<<6;  //外设地址非增量模式
DMA2_Channel4->CCR|=1<<7;   //存储器增量模式
DMA2_Channel4->CCR|=2<<8;   //外设数据宽度为32位
DMA2_Channel4->CCR|=2<<10;  //存储器数据宽度32位
DMA2_Channel4->CCR|=2<<12;  //高优先级   
   DMA2_Channel4->CNDTR=bufsize/4;    //DMA2,传输数据量   
  DMA2_Channel4->CPAR=(u32)&SDIO->FIFO;//DMA2 外设地址 
DMA2_Channel4->CMAR=(u32)mbuf;  //DMA2,存储器地址
  DMA2_Channel4->CCR|=1<<0;  //开启DMA通道
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-4 17:52:44 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-7-25
在线时间
0 小时
 楼主| 发表于 2013-8-4 18:58:45 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
en ,嗯,谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 14:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表