This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Issues while Initializing AIF module on C6474 EVM

Other Parts Discussed in Thread: TMS320C6474

Hello All,

I am modifying an existing medical application running on C6474 EVM.  I have to read data that are sent over 4 AIF lanes.  For initializing the AIF,  I am using an ABT library provided by TI.  The ABT library aims at providing customer applications with an abstraction layer of TMS320C6474 AIF peripheral to generate asynchronous bursty
traffic. It also supports a streaming mode with large data size notifier in each stream for OBSAI only. The ABT library is built on top of  TMS320C6474 Chip Support Library (register and functional layers)

While trying to setup  the AIF  using the ABT library,  I am facing issues.

1. We are able to bring the AIF out of power saver  - Success
2. Identify DSP_1 or DSP_2 on the EVM - Success
3. Initialize PLL - Success
4. Initialize Call Back Handler - Success
5. Initialize FSYNC and EDMA3 ISR - Success
6. ABT Channels creation and Configure Ring Buffer EDMA3 Machine Gun for ABT outbound data channel - Success

Next step is to Configure Ring Buffer EDMA3 Machine Gun for  ABT inbound data channel
7. Configure an ABT inbound data channel - Failure

Here the DSP Aborts the running code and enters the on abort error function. On further examination, I have found that in
the fumction "ABT_commonStartEdmaInbound", while reading the  value of aifRamPtr and comparing it with a known value, it is timing out.(it reads for
1000 times and then comes out with error flag set)

AifRamptr is arrived with following code -
(Uint8*)(CSL_AIF_0_DATA + (linkIndex*AIF_LINK_BLOCK_SIZE) + (hAif->linkConfig[linkIndex].inBurstSizeInChips * AIF_MAX_NUM_STREAMS * 4)*4);
The aifRamPtr points to the memory region 0xA0XXXXXX, which is correct as per the soc.h

 

The details of the platform file is a below

The  platform file is as follows

Device Name: TMS320C6474
Device Family: c6000
Clock Speed (MHz) 1044

Name                      Base      Length             Space          Access
L2RAM         0x00800000    0x00100000    code/data     RWX
L1PSRAM    0xE0000000    0x00004000    Code            RWX
L1DSRAM    0x00F00000     0x00004000    Data             RW
DDR2          0x80000000      0x08000000    code/data    RWX

L1D Cache: 16k
L1P Cache: 32k
L2 Cache: 0k

Code Memory: L2RAM
Data Memory: L2RAM
Stack Memory: L2RAM

I am unable to proceed further as configuring the inbound datA channel is failing, Any pointers to where we are going wrong.

I am using the default gel files provided along with  EVM


Thanks in Advance
Narendra

  • I am not familiar with the ABT library. Where did you find it?

    Were you able to get any examples to run, that came with the library?

    What do you refer to as a "platform file"? The addresses and lengths do not match up with each other in the text above, so it is likely you have errors that would be corrected by starting from the examples delivered with the ABT library, assuming there are some and assuming you have not already done that.

    Sorry that I do not have answers, but I hope my questions will help lead you to an answer.

    Regards,
    RandyP