Project Home
Project Home
Source Code
Source Code
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Queries related to SDMA & MCBSP driver in OMAP3530: (2 Items)
   
Queries related to SDMA & MCBSP driver in OMAP3530  
I am working on audio capture using McBSP2 & SDMA devices, (I am not using IO-Audio).
When I print CCFN & CDAC register values are as shown below,

ccfn 741 Cdac 0x88946cec
ccfn 738 Cdac 0x88947800
ccfn 735 Cdac 0x88948400
ccfn 730 Cdac 0x88949800
ccfn 724 Cdac 0x8894b000
ccfn 717 Cdac 0x8894cc04
ccfn 713 Cdac 0x8894dc00
ccfn 707 Cdac 0x8894f400
ccfn 702 Cdac 0x88950800
ccfn 697 Cdac 0x88951c00
ccfn 690 Cdac 0x88953800
ccfn 685 Cdac 0x88954c00
ccfn 680 Cdac 0x88956004
ccfn 674 Cdac 0x88957800
ccfn 667 Cdac 0x88959400
ccfn 661 Cdac 0x8895ac00
ccfn 656 Cdac 0x8895c000
ccfn 650 Cdac 0x8895d804
ccfn 644 Cdac 0x8895f00c
ccfn 638 Cdac 0x88960800
ccfn 633 Cdac 0x88961c00
ccfn 629 Cdac 0x88962c00
ccfn 623 Cdac 0x88964400
ccfn 620 Cdac 0x88965000
ccfn 615 Cdac 0x88966400
ccfn 610 Cdac 0x88967800
ccfn 607 Cdac 0x88968400
ccfn 601 Cdac 0x88969c00
ccfn 598 Cdac 0x8896a800

CCFN & CDAC register values are jumping (i.e. if CCFN value jumps by 3 then CDAC register value is jumping 3*1024 bytes)
 between 2 ISR calls,
 
My steps in ISR & thread are as below,

In ISR,

1. I am checking whether it is a Frame interrupt.

2. If 1 is true I am masking the interrupt.

3. Copying CCFN, CSR & CDAC register values in structure variables & returning to the main thread.

In the main thread

1. I am clearing the frame interrupt.

2. I am clearing irqstatus register.

3. 

    Case 1: I am unmasking the interrupt 

                   Printing the values stored in the variables.

    OR 

   Case 2: I am printing values stored in the variables.

                  unmasking the interrupt 

In both the case there is a jump in register values.

For debugging purpose I have commented all other parts in the code between receiving the interrupt & unmasking it 
(except the one that I have shared above) i.e. actual processing part is commented but still I observe this behaviour !!
!

Do you have any clue why it is so ???

I am using QNX 6.5.0.
Re: Queries related to SDMA & MCBSP driver in OMAP3530  
Also I am using InterruptAttach function as below

InterruptAttach(SDMA_BASE_IRQ + pi32ChanNum, InterruptHandler, 
          &stISRCtxt, sizeof(t_ISRCtxt), _NTO_INTR_FLAGS_TRK_MSK)) ).
I suspect that there are some interrupt missing inbetween 2 invocations of ISRs.