These forums are read only, please use our new forums here.

Main :: ToneCore Development Kit

external memory
by awesomecoolguy on 2011-04-12 20:06:50.1900

Hi everybody!

I'd really like to get a delay effect online, but I'm having a hard time wrapping my head around using external memory.  I see the example in the tonecore Appendix A that programs a DMA transfer for the routine, which I'm pretty sure I'll have to try to understand at some point.  The thing that is confusing me is all this buisiness about memory mapping and the pictures in the Freescale manuals that show some of the X and Y space labeled as "External."  Is it possible to do external memory transfers by just moving data to the "External" spaces of the X and Y memories?

Thanks ahead of time!

Re: external memory
by audioartillery on 2011-04-13 06:37:50.1990

I'm not familiar with the X/Y mapping that you're referring to.  Not because you're wrong, but I probably didn't look into it that closely.  Or are you talking about how the DMA controller can do DMA's using either X or Y busses to get at the external memory?

Anyways, what I do is use single-word DMA's to/from the external memory.  I treat the entire memory as a circular buffer, though that's more delay than you actually need.

Re: external memory
by awesomecoolguy on 2011-04-26 20:37:12.4990

thanks for the advice.  i've had some more time to look into it more in depth lately.  basically my issue was that even with the DMA transferring scheme that they show you in the example code, the destination address is in the y memory.  why not use the 'move' instruction?  probably cause it wouldn't work.  but i can't quite bring myself to experiment with that because i am still going for the delay effect and i have a new problem:

can you use the example code they give in the Line6 manual to read from external memory as well?  i'm trouble shooting my code and as far as i can tell, you shouldn't have to tweak the code outside of switching the source and destination addresses.  am i mistaken here?

Re: external memory
by audioartillery on 2011-04-27 08:31:30.2110

Yes, you can use a direct move since it's memory mapped.  I played with this briefly early on.  I had byte ordering issues that I didn't spend much time on.  It may be that I was DMA'ing to the ext memory and move'ing from the ext memory and that the two methods use a different byte order.

I don't recall using the example code for this, I think some old forum post showed how to do the DMA.  Once you figure this out, can you write up some examples and I'll include it in the dev kit guide that I maintain (  That'd be great.

The information above may not be current, and you should direct questions to the current forum or review the manual.