你好!请教你有关6748的EDMA传输(pingpong )的问题。
一、我的意图
1、McASP接口实现pingpong传输
2、实现pingpong传输完成中断
二、目前近展情况:
1、McASP接口配置完成 (也是在你的帮助下实现的)
2、AIC3106 CODEC配置正常
3、CPU方式读写McASP接口工作正常(通过AudioLineIn函数能正常播放音乐)
三、部分代码说明(详细代码请看附件)
void setup_edma_pingpong_xmt(void *src_ping, void *src_pong, void *dst,
Uint32 acnt, Uint32 bcnt)//设置发送的EDMA链
void setup_edma_pingpong_rcv(void *src, void *dst_ping, void *dst_pong,
Uint32 acnt, Uint32 bcnt)//设置接收的EDMA链
// setup codec and McASP
printf("[audio TSK]: initializing audio device...")
I2C_init(I2C0, I2C_CLK_100K)
AIC3106_init()
MCASP_init()
还有一些不明白的代码也像你请教一下,我是从别的例程上看到的。
SEM_new(&xmt_ping_sem, 0)
SEM_post(&rcv_ping_sem)
SEM_pend(&rcv_ping_sem, SYS_FOREVER)
这些代码是不是有关多线程的,而且也找不到源头,究竟需要不需要这些代码呢。要是需要,我怎么用?
是不是要安装6748 BIOSPSP,我发现TI公司的edma3_lld_02_11_02_04这个文件,好像已经实现pingpong传输功能了,
只是苦于不会用,6748 BIOSPSP里面好多功能,就是不会用。有没有这方面的培训呀,我比较笨,看不懂。
四、调试情况
软件环境:CCS5.5 仿真器是合达众的560plus 片子型号:6748
回复whzbest
的帖子看来你没有好好读TI的文档资料啊。在使用DSP/BIOS,调用硬件中断时,一定要去掉main函数中的while(1)循环,这样,DSP/BIOS内核才能进行进程的调度。你的硬件中断之所以没有检测到,可能是因为你对中断的配置没有配置好。另外,要想在HWI中触发SWI,直接在HWI
ISR中使用SWI_post()即可。若要在HWI中调用TSK,需要使用SEM_post(&semaphore)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)