TI中文支持网
TI专业的中文技术问题搜集分享网站

请教C5416的mcbsp和DMA的中断方式的结合使用问题

我实验了下CCS3.3的example,C:\CCStudio_v3.3\examples\dsk5416\csl\dma\dma4,发现测试打印的log一直停留在<DMA4>的位置,CCS3.3出现光标停在空白行,我想这个例子应该是可以没有问题,请教下是什么原因导致的?

Shine:

你好,

这个例子没有问题, 我这边有正确的打印信息.

你跟一下程序运行到哪里了?

xiaoling zhou:

回复 Shine:

光标停下来就是个空白的位置,如下所示,

 在 while(!(MCBSP_xrdy(myhMcbsp))){

    ;

  }

  MCBSP_write16(myhMcbsp,src[0]);

设置断点的话,会发现死在这个while的位置;

补充一下,我使用的不是DSK。我本来是想参考这个例子,使用mcbsp的CSL库函数,采用挂接中断的接收发送数据,可是在IRQ_globalEnable()后没有进入中断,停下来也是一个空的位置,不知道代码跑到什么地方去了,所以回头就试验了下这个例子,结果发现结果一样。不知是什么地方出了问题

Shine:

回复 xiaoling zhou:

你好,

你对dma4例程没做什么修改吧? 你试试附件我的.out文件, 我是在simulator模式下运行的.

xiaoling zhou:

回复 Shine:

没有改过,我的如果在simulator上运行也是正常的,为何到板子上运行会有问题呢 

Shine:

回复 xiaoling zhou:

你试试dma1, timer和mcbsp1自环例程, 看是否能运行? 如果只是mcbsp1不能运行, 其他两个可以运行的话, 可能mcbsp模块有问题了.

xiaoling zhou:

回复 Shine:

dma1,mcbsp1运行正常,timer看样子不正常。运行3次。第1次就只打印出<TIMER>,第2次在timerIsr里设置了断点,打印出来是

<TIMER>

TEST PASSED

<TIMER>

TEST PASSED

第3次打印出来的是

<TIMER>

<TIMER>

<TIMER>

这个是怎么回事?

 

Shine:

回复 xiaoling zhou:

你的板子是新做的还是以前的旧板?

量一下clkout输出看芯片是否稳定工作.

xiaoling zhou:

回复 Shine:

旧板子, 我上网查了下其他参考例子,增加了 PMST=PMST&0XFF, 发现在板子上可以正常运行,进中断。但是如果在SIMULATOR环境下,加这一句,则会出现反复进入main()函数的情况,类似打印如下:

<TIMER>

TEST PASSED

<TIMER>

TEST PASSED

不是很理解为什么这句话可解决这个问题,但是又会导致在SIMULATOR上发生这样的异常情况。补充:在板上,运行的gel文件,对PMST初始化=0XFFE0, 在SIMULATOR环境下初始化=0XFFE8. 

赞(0)
未经允许不得转载:TI中文支持网 » 请教C5416的mcbsp和DMA的中断方式的结合使用问题
分享到: 更多 (0)