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.

关于C6678的EDMA

请问我怎么把类似ti.csl.ae66的库加到CCS里边呢?

另外,我在做EDMA传输时,直接设置寄存器,没有用CSL库,设置完DCHMAP;设置完相应的PaRAM,在设置一下ESR怎么不能完成数据传输呢,手册上说要设置Queue,我没有设置,不可以吗?在6416上的设置成功的直接移植到C6678或6455处理器上不可以了吗?

  • lei wang您好,

    可以有两种方式添加CSL库:

    1. 如果使用RTSC的话,在cfg文件中添加,具体请参考pdk例程;

    2. 如果不带RTSC的话,在properties->c/c++ build->settings->c6000 linker->file searche path中lncludeCSL库文件。

    EDMA设置中少了一步使能EER,对于Queue没有设置的话默认map到Queue0.

  • 请问我怎么把类似ti.csl.ae66的库加到CCS里边呢?

    推荐一种方法:.选中Project右键-> Properties -> Setting -> C6000 Linker -> File Search path, 设定使用的lib如下图,使用时include包含lib中函数的*.h文件

     

    另外,我在做EDMA传输时,直接设置寄存器,没有用CSL库,设置完DCHMAP;设置完相应的PaRAM,在设置一下ESR怎么不能完成数据传输呢,手册上说要设置Queue,我没有设置,不可以吗?在6416上的设置成功的直接移植到C6678或6455处理器上不可以了吗?

    CSL库的函数是直接操作寄存器的;您问题定位的很准,在设置了传输通道后,应该设置Event Queue,C6678上的EDMA结构如下,与6416相比,结构和功能上都发生变化了。Event queue是实现channel,event and PaRAM的映射,CC与TC的映射等功能的重要组成部件,同时不同的queue具有不同的数据传输优先级等。MCSDK中有EDMA传送的example可以参考。

  • Anna

    这样的做法是加入.lib文件的呀。

    我按照您提供的加入文件的方法加入后,编译提示说,undefined symbol   _CSL_CPINTC_open

  • CSL_CPINTC_open是定义在ti.csl.ae66的;同时使用了中断相关的CSL库函数的工程应添加ti.csl.intc.ae66

  • lei wang

    建议你使用CSL库操作EDMA,不建议自己去配置,因为现在芯片的驱动都比较复杂,TI 提供的CSL库的API接口功能丰富,移植性强,保护性好。自己开发驱动的话对开放人员的底层开发能力要求比较高,在项目时间紧张的情况下,可能适得其反。

    建议供参考,谢谢!

  • 这是否和采用的是ELF格式,还是COFF格式,如果采用COFF格式好像就不行?

  • 没错,目前C66的CSL库仅支持elf文件格式。