This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6670 edma3 example用例里 关于逻辑通道申请的问题



hello

       我测试了\Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程,均可以正确执行。

       根据自己项目的设计,修改了dma_chain_test.c。要求实现3个通道的chain,对前两个通道使用EDMA3_DRV_requestChannel这个函数的时候,可以正常分配,但是对自己新加的第三个通道使用这个函数的时候,返回了错误码-132(0xFFFFFF7C)无法分配。

       使用的实现代码和用例的一致:   

    tcc3 = EDMA3_DRV_TCC_ANY;
    ch3Id = EDMA3_DRV_DMA_CHANNEL_ANY;

    if (result == EDMA3_DRV_SOK)
        {
        result = EDMA3_DRV_requestChannel (hEdma, &ch3Id, &tcc3,
                                            (EDMA3_RM_EventQueue)0,
                                            &callback1, NULL);
        }

       请大侠指教!谢谢!

 

 

  • 您好,

    建议单步跟踪到函数内部分析到底什么原因导致的出错

  • Hi  hanzhi zhou

    可以在pdk/mcsdk的source code中找到 EDMA3_DRV_requestChannel 函数,进而代步跟踪,具体分析

  • Hi Andy & Thomas:

        我单步进去以后,执行到调用EDMA3_rm_allocResource函数后返回了错误值-162“all resources of this type not availavble error”。

        此外,ccs5自带的用例工程无法编译通过,路径是edma3_lld_02_11_02_04\examples\edma3_driver\evm6670\sample_app,我把引用头文件的路径添加进去以后编译提示:std.h line76 #error xdc_target_types__ must be defined to name a target-specific header containing definitions of xdc_Int8, xdc_Int16, ...(这个错误信息就是这一行的代码)

        我是将此工程里的dma_chain.c文件放在已经编译成功tcp3e/d工程中才能进行测试的,同时产生了最开始的问题。

        请指教。谢谢!

  • 您好:我现在也在看EDMA部分的内容,想问下,Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程怎么建立的,是在EVM板上运行的还是使用CCS仿真的呢?由于是头一次接触DSP,所以好多不懂呀,望指教,谢谢!

  • hanzhi zhou 说:

    hello

           我测试了\Texas Instruments\edma3_lld_02_11_03_02\examples\edma3_driver\src路径下的用例工程,均可以正确执行。

           根据自己项目的设计,修改了dma_chain_test.c。要求实现3个通道的chain,对前两个通道使用EDMA3_DRV_requestChannel这个函数的时候,可以正常分配,但是对自己新加的第三个通道使用这个函数的时候,返回了错误码-132(0xFFFFFF7C)无法分配。

           使用的实现代码和用例的一致:   

        tcc3 = EDMA3_DRV_TCC_ANY;
        ch3Id = EDMA3_DRV_DMA_CHANNEL_ANY;

        if (result == EDMA3_DRV_SOK)
            {
            result = EDMA3_DRV_requestChannel (hEdma, &ch3Id, &tcc3,
                                                (EDMA3_RM_EventQueue)0,
                                                &callback1, NULL);
            }

           请大侠指教!谢谢!

     

     

    你好,你的问题解决了么?我现在也遇到类似问题,requestChannel时候,出现了返回错误码 -132.

    但是,我奇怪的是,我只是第一次申请,就失败了。不知道为什么,我的工程里面没有其他使用

    DMA的地方。

  • 您是怎么单步跟进去的,我找到源代码,怎么没法跟踪进去?

  • 请检查工程属性里优化选项设置

    单步跟踪看发生了什么情况,

    另要明白edma的工作机制

  • 我把EDMA driver 库的源代码加进来,可以跟踪了。但我不知道这是不是最简单的方法。谢谢你