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.
Hi,
I have a board with a TMS320F28379D Delfino part along with some SDRAM. I have looked through the examples for EMIF but all of them use memcpy_fast_far() to transfer data to and from the SDRAM device. The EMIF design guidelines (http://www.ti.com/lit/an/sprac96a/sprac96a.pdf) says "The contents of the external memory devices are mapped through the EMIF to the C28x program and data memory spaces. All read and write accesses to the EMIF memory space will initiate corresponding read and write operations between the EMIF and external memory." but I don't see how this mapping is done in a linker file or how the code looks for accessing said memory.
Is it actually possible to map external SDRAM devices to memory addresses on the Delfino microcontroller and access the memory transparently (via variables mapped to those memory locations)?
Thanks,
Aditya
Aditya Gaddam said:I have looked through the examples for EMIF but all of them use memcpy_fast_far() to transfer data to and from the SDRAM device.
The memcpy_fast_far() function is written in C28x assembly and the source is included for inspection to see how the SDRAM memory is accessed by the CPU. This SDRAM appnote goes into more detail about how the function is constructed and includes recommendations for how to declare variables in C for safe usage with SDRAM.
Aditya Gaddam said:The EMIF design guidelines (http://www.ti.com/lit/an/sprac96a/sprac96a.pdf) says "The contents of the external memory devices are mapped through the EMIF to the C28x program and data memory spaces. All read and write accesses to the EMIF memory space will initiate corresponding read and write operations between the EMIF and external memory." but I don't see how this mapping is done in a linker file or how the code looks for accessing said memory.
You can find the memory-mapped address ranges for EMIF in the datasheet:
And the previously mentioned SDRAM appnote explains how to allocate memory space for "far" SDRAM variables in the linker file:
Aditya Gaddam said:Is it actually possible to map external SDRAM devices to memory addresses on the Delfino microcontroller and access the memory transparently (via variables mapped to those memory locations)?
Yes.
Thanks much! That appnote was super useful. Have it working now. I got too caught up in searching for EMIF that I didn't bother just searching for SDRAM in the list of tech. docs.
Sincerely,
Aditya
Aditya,
I'm glad that your system is up and running now. Let us know if you run into any other issues.
-Tommy