28377S DMA读取固定地址的值到DACVALS中

[复制链接]
 楼主| adming 发表于 2016-10-16 13:28 | 显示全部楼层 |阅读模式
我想在一个固定的地址放一个数组:const unsigned int wave[]={5,6,7,8,8,7,6,5,9,8,7,6,5,4,3,2,2,3,4,5,6,7,8,9};
将这个数组的地址直接给DMAsoure源地址,目的地址DMADest=&DacaRegs.DACVALS.all
burst 7次,transfer 1次。结果DacaRegs.DACVALS.all地址上始终无数据。
DMA代码如下:
DMASource = (volatile Uint16 *)0xFE000;
DMACH6AddrConfig(&DacaRegs.DACVALS.all,DMASource);
DMACH6BurstConfig(7,1,1);
DMACH6TransferConfig(1,1,1);
DMACH6ModeConfig(0,PERINT_ENABLE,ONESHOT_DISABLE,CONT_DISABLE,
                     SYNC_DISABLE,SYNC_SRC,OVRFLOW_DISABLE,SIXTEEN_BIT,
                     CHINT_END,CHINT_ENABLE);
StartDMACH6();
请那位给指导下。
 楼主| adming 发表于 2016-10-17 14:34 | 显示全部楼层
自己顶一下
jimmhu 发表于 2016-10-17 22:42 | 显示全部楼层
你的地址的配置对了吗?
jimmhu 发表于 2016-10-17 22:45 | 显示全部楼层
DMA不怎么常用,都忘了。
 楼主| adming 发表于 2016-10-18 09:02 | 显示全部楼层
我运行后查看了地址的分配,都对着了。我用的时软件触发中断,感觉是MODECOFIG的配置和中断这块有问题,目前还在学习中。
谢谢关注和和回答。
 楼主| adming 发表于 2016-10-18 09:47 | 显示全部楼层
问题发现了,我从RAM中读数就可以,从FLASH中读数就不行。DMA不能直接访问FLASH吗
 楼主| adming 发表于 2016-10-18 11:21 | 显示全部楼层
我将DMA源地址中的值往另一个RAM中的数组中写,可以写进去,但怎么写不到DA的&DacaRegs.DACVALS.all中?
angerbird 发表于 2016-10-18 22:16 | 显示全部楼层
这个还没操作过的,不便评论的。
smilingangel 发表于 2016-10-19 20:44 | 显示全部楼层
地址是需要注意的。。
 楼主| adming 发表于 2016-10-20 09:12 | 显示全部楼层
smilingangel 发表于 2016-10-19 20:44
地址是需要注意的。。

能详细说说吗?我用同样的方法,给SPIbuf,串口的BUF都可以写进去。
而且在单步仿真时我可以看到DACVALS的地址已经赋给DMA的目标地址了。
Snow7 发表于 2016-10-26 21:01 | 显示全部楼层
怎么知道没写到DA的&DacaRegs.DACVALS.all中
kkzz 发表于 2016-10-26 22:01 | 显示全部楼层
你的代码呢看一下
chuntian2016 发表于 2016-10-26 22:04 | 显示全部楼层
DMA要根据具体的外设模块的应用配套使用的
chuntian2016 发表于 2016-10-26 22:05 | 显示全部楼层
主要用来完成外设数据的快速传输的。
kkzz 发表于 2016-10-26 22:08 | 显示全部楼层
dma修改代码试试看。
 楼主| adming 发表于 2016-11-1 14:37 | 显示全部楼层
Snow7 发表于 2016-10-26 21:01
怎么知道没写到DA的&DacaRegs.DACVALS.all中

我在线仿真产看相应寄存器对值
 楼主| adming 发表于 2016-11-1 14:38 | 显示全部楼层
kkzz 发表于 2016-10-26 22:01
你的代码呢看一下

DMASource = (volatile Uint16 *)0xFE000;
DMACH6AddrConfig(&DacaRegs.DACVALS.all,DMASource);
DMACH6BurstConfig(0,1,1);
DMACH6TransferConfig(1,1,1);
DMACH6ModeConfig(0,PERINT_ENABLE,ONESHOT_DISABLE,CONT_DISABLE,
                     SYNC_DISABLE,SYNC_SRC,OVRFLOW_DISABLE,SIXTEEN_BIT,
                     CHINT_END,CHINT_ENABLE);
StartDMACH6();
pmp 发表于 2016-11-5 17:01 | 显示全部楼层
DMASource的地址配置的对吗?
pmp 发表于 2016-11-5 17:03 | 显示全部楼层
通过手册查看DMASource的地址代码,然后才能读取。
jimmhu 发表于 2016-11-7 22:31 | 显示全部楼层
DMA配置对了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

86

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部