AnsweredAssumed Answered

ADSP-21363 Code Overlay. DMA with program memory.

Question asked by Amarrako on Feb 4, 2014
Latest reply on Feb 5, 2014 by MaheshN

Hi,

 

I´m trying to implement code overlays in ADSP-21363, with visualDSP 4.0. I have modified ldf file and I am using the overlay manager taken from EE-230 (with 2 overlays, not four) . I have configured "live section" as PM RAM, ¿is this correct?, and I am using the PACKING that apears in EE-230 for 8 bit memories. (the same, is this correct?

I can see that when I call overlay function, "plit code" starts and program jumps to overlay manager. The overlay manager, configures Parallel port DMA correctly and starts DMA transfer, but I cant never see external data in program memory. Program memory never changes. So when overlay manager´s last intruction jumps to run memory, aplication fails, because there is no "program" in these addresses.

As I have not got the code overlay, I have tried to write directly in program memory, configuring parallel port registers

 

I´m trying to access to PM memory using DMA. I want to transfer 2 instruction stored in an external RAM to program memory

I configure :

 

* (volatile int *)IIPP  = 0xb0000          //Internal PM memory (48 bits) but I have to use like if it was a 32 bit memory.

* (volatile int *)IMPP  = 1;

* (volatile int *)ICPP  = 0x3;               // 2 x 48bits = 3 x 32 bits

* (volatile int *)EMPP  = 1;

* (volatile int *)EIPP  = 0x1280000;    //External RAM 

* (volatile int *)ECPP  = 0xc;             // 3 x 4 x 8bits 

 

* (volatile int *)PPCTL =  PPBHC | PPDUR15;

 

* (volatile int *)PPCTL | = PPDEN | PPEN;

 

If I put in external memory:

 

0x1280000   12 34 56 78

0x1280004   12 34 56 78

0x1280008   12 34 56 78

 

and execute the code, when I open program memory window ( Memory -> Three Column), I should see:

 

0xb0000  12 34 56 78 12 34

0xb0001  56 78 12 34 56 78

 

but I dont any changes. In these addresses I see the same values.

 

I have the same problems that with code overlays.

 

 

If I use data memory addresses instead of program memory addresses, I see that data are written...but I need to write program memory!

 

 

Could anyone help me?

 

Thank you!

Outcomes