查看: 3408|回复: 4

[求助] MK26FN2M0xxx18的scatter_gather 怎样循环传输

[复制链接]
  • TA的每日心情
    奋斗
    2019-7-4 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    12

    帖子

    0

    注册会员

    Rank: 2

    积分
    71
    最后登录
    2019-7-31
    发表于 2019-7-5 11:12:02 | 显示全部楼层 |阅读模式
    在使用MK26FN2M0的EDMA的分散加载
    根据SDK_2.5.0_MK26FN2M0xxx18\boards\twrk65f180m\driver_examples\edma\scatter_gather的官方例程来做的,但是例程里面只传输了一次就结束了
        EDMA_StartTransfer(&g_EDMA_Handle);
        /* Wait for EDMA transfer finish */
        while (g_Transfer_Done != true)
        {
        }
        /* Print destination buffer */
        PRINTF("\r\n\r\nEDMA scatter gather transfer example finish.\r\n\r\n");
        PRINTF("Destination Buffer:\r\n");
        for (i = 0; i < BUFFER_LENGTH; i++)
        {
            PRINTF("%d\t", destAddr);
        }
        /* Free the memory space allocated */
        while (1)
        {
        }



    现在有两个问题,
    1,怎样才能循环传输,就是一直在DAM传输不会停止?(就是TCD0->TCD1->TCD2->TCD0.....这样循环传输。)
    2,程序怎样才能知道TCD切换了,或者说TCD切换的时候能不能中断?

    最佳答案

    幽灵骑士 发表于 2019-7-6 23:13 eDMA高阶技能: scatter/gather使用介绍 这个里面有介绍,和例程,根据这个修改的。不过例程里面是根据寄存 ... 那篇文章(eDMA高阶技能: scatter/gather使用介绍)算是已经从底层 ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-7-4 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    12

    帖子

    0

    注册会员

    Rank: 2

    积分
    71
    最后登录
    2019-7-31
     楼主| 发表于 2019-7-6 23:13:23 | 显示全部楼层
    本帖最后由 幽灵骑士 于 2019-7-6 23:15 编辑

    eDMA高阶技能: scatter/gather使用介绍
    这个里面有介绍,和例程,根据这个修改的。不过例程里面是根据寄存器配置实现的,没有用到sdk
    https://www.nxpic.org.cn/document/detail/index/id-12904


    自己的问题自己解决,看来飞思卡尔被收了之后确实变成后妈生的了。。。。。。
    谁来回复一下啊,我好结帖啊?????
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25450
    最后登录
    2025-9-4
    发表于 2019-7-8 09:37:34 | 显示全部楼层
    幽灵骑士 发表于 2019-7-6 23:13
    eDMA高阶技能: scatter/gather使用介绍
    这个里面有介绍,和例程,根据这个修改的。不过例程里面是根据寄存 ...

    那篇文章(eDMA高阶技能: scatter/gather使用介绍)算是已经从底层角度解释了scatter/gather的步骤,SDK提供的调用API从代码架构上说肯定是对底层应用做了封装,方便开发者从头开始编写,是方便其开发应用的,我的意思是你只要明白了文章里的介绍就不难完成SDK内例程的修改的,那你现在是卡在哪一步了呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-7-4 09:22
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    12

    帖子

    0

    注册会员

    Rank: 2

    积分
    71
    最后登录
    2019-7-31
     楼主| 发表于 2019-7-9 12:40:19 | 显示全部楼层
    小恩GG 发表于 2019-7-8 09:37
    那篇文章(eDMA高阶技能: scatter/gather使用介绍)算是已经从底层角度解释了scatter/gather的步骤,SDK ...

    感谢回复,现在通过底层寄存器配置已经调试好了。
    那篇文章里和对应的例程里面只配置了TCD0,少了TCD1的配置。而且申请的tcd[]数组也没多大意义。(也可能我没看懂)。


    顺便扯两句,
    像这篇文章里的通过寄存器配置的方式写的demo非常清晰,加上芯片的说明文档对每个寄存器都有详细介绍,比较适合新的开发着上手很容易。
    SDK里面用的句柄的写法,加入了很多指针,熟悉了之后开发会方便一些。这种写法有点类似st的hal库,应用起来比较方便,但是效率不高。读起来非常麻烦。出了问题很难排查。不适合新上手的同学。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25450
    最后登录
    2025-9-4
    发表于 2019-7-9 17:32:26 | 显示全部楼层
    幽灵骑士 发表于 2019-7-9 12:40
    感谢回复,现在通过底层寄存器配置已经调试好了。
    那篇文章里和对应的例程里面只配置了TCD0,少了TCD1的配 ...

    你说的是,我们也是建议客户在验证期间可以首先从简单的,直接操作寄存器的代码入手,掌握原理和应用后,可以直接调用SDK里的函数提升编程效率
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 22:27 , Processed in 0.094476 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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