本帖最后由 PanDaerr 于 2017-2-13 23:52 编辑
目前在调试两片OmapL138中的DSP芯片间通过MCBSP+EDMA数据通信的问题
现在的状态是,使用其中一片DSP轮询DXR发送,另一片通过MCBSP+EDMA方式触发EDMA中断接收数据没有问题
但是在使用MCBSP+EDMA发送数据时候遇到了一些问题
1.通过手册可知,DXR->XSR过程会触发XEVT事件,此时就会关联EDMA的MCBSP发送事件,读取PARAM,进行数据传输,那么,如果我想传输一个100字节的数据,我是写DXR呢?还是写EDMA的ESR寄存器手动触发事件呢?
2.不管是用上面说的哪种方式触发,100字节是否需要手动触发100次?还是手动触发1次,后面99次就自动执行了?
3.附件里是目前的程序,开发环境为CCS6,由于对DSP偏底层一点的开发实在没什么经验,希望大家可以指出问题所在!
----------------------------------------------------------------------------------------------------------------------------------------------------------
刚才加了会班,解决了…………
因为发送数据之前我是知道数据长度的,所以这里需要手动触发EDMA事件,写ESR寄存器,然后就会触发第一次DXR->XSR,这时会产生XEVT事件对ER寄存器赋值,此时如果EDMA的EER使能了,那么就会进行下一次传输。对于数据长度的控制,需要通过OPT参数中的B_INDEX来控制,对于传输的终止,对OPT中的LINK向置0xFFFF即可,这里不能像接收OPT那样写成无限循环的配置。
|