Thanks Davor,

 

My goal is to still stay with the DM6446 and the codec engine but I just
wanted to have a way I can switch and simulate so I can get more in depth
profile analysis and use tools like Cache Tune, etc.  I haven't been able to
profile deeply using the JTAG XDS5120 emulator. So I figured use simulation
for optimizing and then be able to quickly switch back to the real hardware
for testing.

 

Thanks again,

 

Josh

 

 

From: Davor Magdic [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, February 06, 2008 10:47 AM
To: Joshua Hintze
Cc: [email protected]
Subject: Re: Simulator Memory_contigAlloc

 

Josh,

Memory_contigAlloc() function on the DSP allocates data from the segment
defined in the "osalGlobal.defaultMemSegId" field  in your .cfg
configuration file. If this field is left undefined, which it typically is,
the system assigns this field to be "DDR2".

... which is fine for Memory_alloc() which is used to dynamically allocate
small amounts of memory for system needs, but not for Memory_contigAlloc()
which usually asks for much more, as you know.

So adding this line to your .cfg file,

    osalGlobal.defaultMemSegId = "DDRALGHEAP";

should solve the problem. (I'm assuming you have a 'var osalGlobal =
xdc.useModule( "ti.sdo.ce.osal.Global" );' in your .cfg file already.)

Another way to solve the problem is to combine DDRALGHEAP and DDR2 into just
one large segment, DDR2 (which is often what people on DSP-only systems do),
but I don't know if that would work with your simulator.

Regards,
Davor

Joshua Hintze wrote: 

My next question is how does the Memory_contigAlloc function work in the
simulator? My understanding is that normally (on linux) it works by
accessing the CMEMK module and having that allocate a region that I define. 

 

However since I'm running this local to the DSP (for testing purposes). I
would have thought that it would have just been a wrapper for malloc(). The
problem is that it is allocating memory in the DDR2 section I have defined
in my .tcf file. Even though I have 

 

prog.module("MEM").MALLOCSEG  = bios.DDRALGHEAP;

 

So when I try to allocate a 4 Meg continous buffer it fails becauses its
trying to allocate in the DD2 which is a lot smaller than my DDRALGHEAP.

 

For the time being I can probably just replace it with malloc but I would
like to know if anybody has ideas.

 

Thanks,

 

Josh

 

 



  _____  



 
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
  
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to