Sign in

username:

password:



Not a member?

Search c6x



Search tips

Subscribe to c6x



c6x by Keywords

AD535 | BIOS | Booting | Bootloader | C621 | C6211 | C6415 | C671 | C6711 | C6711DSK | C6713 | CCS | Chassaing | COFF | DAT | DM64 | DM642 | DMA | DSK671 | DSK6711 | EDM | EDMA | EMIF | Emulator | EVM | EVM620 | FFT | FIR | GPIO | Halting | HPI | HWI | IDK | JTAG | LDB | LDH | LDW | Linker | LMS | LOG_printf | Matlab | McBSP | MEM_alloc | MIPS | PCI | PCM3003 | Pipeline | Profiling | QDM | Reset | ROM | RTDX | Sampling | SDRAM | Stack | TEB | THS1206 | TMS320C621 | TMS320C6416 | TMS320C6711 | TMS320C6713 | UART | Vector Table | XBUS | XDS560


Discussion Groups

Discussion Groups | TMS320C6x | Problems with EDMA3

Technical discussions about the TI C6000 DSPs (including the c62x, c64x and c67x DSPs).

  

Post a new Thread

Problems with EDMA3 - Fernando Pescador - Sep 25 7:55:01 2008



Hello,
Currently we are working with the EVMDM6437 and we cannot make EDMA3 works 
fine on DM6437 as we did on DM642 and DM6446.

The project is really complex and large so we decided to symplify it and try 
to fix the EDMA3 troubles with an small program. The problem is related with 
linked transfers. The aplication works fine if three transfers are linked 
but when we link 4 transfers the following error appear: TC Program Set 
already active.

We transfer the contexts of the transfers with IDMA from internal memory to 
the Parameter Set table, specifically PaRam 20, 21, 22 and 23.
Transfers (through channel 2) are configured to be auto-triggered when the 
seventh word of 23th PaRam Set was written. We get the error just when the 
first auto-trigger transfer is performed and the program stop the execution.

We tested this code on a DM6446 DSP with 4 and more linked transfers without 
problems.

Next We show a piece of the code we have written.

Does anybody know what mean exactly "TC Program Set already active" ?
How could we solve this problem? Any ideas?

Regards,

Fernando & Gonzalo

CODE:

void ddr2_a_L2_2(void) // cuatro Y de 8x8 enlazadas params:20-23
{
 int i;

 *(volatile uint *)((uint)QEESR)= (2<<2);
 *(volatile uint *)((uint)QCHMAPn+(2<<2))= (23<<5)|(7<<2);

 /* contexto de la transferencia Y1 */
 Params[0].option    = 0x0011F00C;
 Params[0].src    = (unsigned int)y_mb_DDR2;
 Params[0].bcnt_acnt   = ((8)<<16)|8;
 Params[0].dst    = (unsigned int)y_mb_L2;
 Params[0].dstbidx_srcbidx  = ((8)<<16)|32;
 Params[0].bcntrld_link   = 0xFFFF;
 Params[0].dstcidx_srccidx  = 0;
 Params[0].ccnt    = 1;
 /* contexto de la transferencia Y2 */
 Params[1].option    = 0x0001F004;
 Params[1].src    = (unsigned int)(y_mb_DDR2+8);
 Params[1].bcnt_acnt   = ((8)<<16)|8;
 Params[1].dst    = (unsigned int)(y_mb_L2+8*8);
 Params[1].dstbidx_srcbidx  = ((8)<<16)|32;
 Params[1].bcntrld_link   = 0x4280;
 Params[1].dstcidx_srccidx  = 0;
 Params[1].ccnt    = 1;
 /* contexto de la transferencia Y3 */
 Params[2].option    = 0x0001F004;
 Params[2].src    = (unsigned int)(y_mb_DDR2+8*32);
 Params[2].bcnt_acnt   = ((8)<<16)|8;
 Params[2].dst    = (unsigned int)(y_mb_L2+8*8*2);
 Params[2].dstbidx_srcbidx  = ((8)<<16)|32;
 Params[2].bcntrld_link   = 0x42A0;
 Params[2].dstcidx_srccidx  = 0;
 Params[2].ccnt    = 1;
 /* contexto de la transferencia Y4 */
 Params[3].option    = 0x0001F004;
 Params[3].src    = (unsigned int)(y_mb_DDR2+8+8*32);
 Params[3].bcnt_acnt   = ((8)<<16)|8;
 Params[3].dst    = (unsigned int)(y_mb_L2+8*8*3);
 Params[3].dstbidx_srcbidx  = ((8)<<16)|32;
 Params[3].bcntrld_link   = 0x42C0;
 Params[3].dstcidx_srccidx  = 0;
 Params[3].ccnt    = 1;

 /* copio param a la tabla y se autodispara QDMA */
 *(volatile uint *)((uint)IDMA0_MASK)=    (uint)0x00000000;
 *(volatile uint *)((uint)IDMA0_SOURCE)=    (uint)Params;
 *(volatile uint *)((uint)IDMA0_DEST)=      (uint)0x01C04280; // PaRAM 20
 *(volatile uint *)((uint)IDMA0_COUNT)=     (uint)0x00000000; // trigger 
IDMA0
} 
------------------------------------

OMAP35x EVM jump-starts low-power apps
------------------------------------
The modular and extensible OMAP35x Evaluation Module (EVM) enables developers to start building
applications based on the OMAP35x architecture:http://www.DSPRelated.com/omap35x



(You need to be a member of c6x -- send a blank email to c6x-subscribe@yahoogroups.com )