| 
 
| 本帖最后由 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那样写成无限循环的配置。
 
 
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |