请教Tong Tang有关6748 eDMA传输的问题

请教Tong Tang有关6748 eDMA传输的问题,第1张

Tong Tang

你好!请教你有关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

有的,例如System_printf,Vps_rprintf之类的,其中Vps_rprintf可以把信息输出到串口打印出来。

旗语模块使用Semaphore_create()、Semaphore_pend()、Semaphore_post()来实现,对于SYS/BIOS API函数查询,具体可以参考附件所提供SYS/BIOS API文档。

回复

whzbest

的帖子看来你没有好好读TI的文档资料啊。在使用DSP/BIOS,调用硬件中断时,一定要去掉main函数中的while(1)循环,这样,DSP/BIOS内核才能进行进程的调度。你的硬件中断之所以没有检测到,可能是因为你对中断的配置没有配置好。另外,要想在HWI中触发SWI,直接在HWI

ISR中使用SWI_post()即可。若要在HWI中调用TSK,需要使用SEM_post(&semaphore)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/220499.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存