OpenEdv-开源电子网

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

RT1052 EDMA MemoryToMemory一次最大能传输多少数据

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-8-11
在线时间
16 小时
发表于 2019-8-12 15:00:27 | 显示全部楼层 |阅读模式
1金钱
使用官方的SDK包中的MemoryToMemory的示例代码,是使用eDMA拷贝SDRAM的数据到SDRAM,示例中只传输了4*4字节的数据。我把代码移到原子开发板,并把传输的数据量增大到800*480*2,结果无法正常传输(Test_EDMA_Callback回调没有进入)。把传输数据减少到320*240*2又能正常传输。请问1052的eDMA有传输数据长度限制吗?如果我确实需要在SDRAM中拷贝大量数据怎么办呢?
例程代码如下:
edma_handle_t g_TestEDMA_Handle;
__align(64) u16 DMATestSouse[480*800]  __attribute__((section("NonCacheable"), zero_init));
__align(64) u16 DMATestTarget[480*800]  __attribute__((section("NonCacheable"), zero_init));
void Test_EDMA_Callback(edma_handle_t *handle, void *param, bool transferDone, uint32_t tcds)
{
    if (transferDone)
    {

    }               
}
#define Test_DMA_CHANNEL   0
void TestDMAConfig()
{
        edma_transfer_config_t transferConfig;
        edma_config_t userConfig;
        DMAMUX_Init(DMAMUX);
        //DMAMUX_EnableAlwaysOn(DMAMUX, Test_DMA_CHANNEL   , true);
        DMAMUX_SetSource(DMAMUX, Test_DMA_CHANNEL   , (u32)DMATestSouse);
        DMAMUX_EnableChannel(DMAMUX, Test_DMA_CHANNEL   );
        EDMA_GetDefaultConfig(&userConfig);
        EDMA_Init(DMA0, &userConfig);       
        EDMA_CreateHandle(&g_TestEDMA_Handle, DMA0, Test_DMA_CHANNEL   );
        EDMA_SetCallback(&g_TestEDMA_Handle, Test_EDMA_Callback, NULL);
        EDMA_PrepareTransfer(&transferConfig, DMATestSouse, 2 DMATestTarget, 2,
                         2, sizeof(DMATestSouse), kEDMA_MemoryToMemory);       
        EDMA_SubmitTransfer(&g_TestEDMA_Handle, &transferConfig);
       
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1041

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3696
金钱
3696
注册时间
2011-5-23
在线时间
2008 小时
发表于 2019-8-12 15:35:43 | 显示全部楼层
可以多次拼起来。

如果DMA支持链式,就直接组成链。
如果不支持,就在完成中断里面继续开启下一次。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 11:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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