AnsweredAssumed Answered

How to map the SDRAM address in LDF of 21489?

Question asked by Aresc on Jan 5, 2018
Latest reply on Jan 23, 2018 by Kader.M

// ------------------------- SDRAM -------------------------------------------
// 0x00200000 to 0x009FFFFF Normal word (32) Space (32MB RAM) as found on the
// ADSP-21489 Ez-Board.
//
// Notes:
// 1) For Code accesses, which are only supported in Bank 0 of External
// port, address range is:
// - For VISA code (i.e 16bit accesses) : 0x600000 - 0xFFFFFF
// - For NonVISA code (i.e 48 bit accesses) : 0x200000 - 0x5FFFFF
//
// 2) The linker does not understand address translation so does not detect
// overlaps correctly which means that errors can be issued for non-
// overlapping sections and also that no errors are issued for overlapping
// sections. (TAR-43296)

seg_ext_swco { TYPE(SW RAM) START(0x00600000) END(0x0065FFFF) WIDTH(16) }
seg_ext_nwco { TYPE(PM RAM) START(0x00220000) END(0x0043FFFF) WIDTH(16) }
seg_ext_dmda { TYPE(DM RAM) START(0x00660000) END(0x009FFFFF) WIDTH(16) }
seg_ext_pmda { TYPE(DM RAM) START(0x00A00000) END(0x00AFFFFF) WIDTH(16) }

seg_flash { TYPE(DM RAM) START(0x04000000) END(0x043FFFFF) WIDTH(8) }
seg_sram { TYPE(DM RAM) START(0x0C000000) END(0x0C07FFFF) WIDTH(16) }

 

The upper is cut from default LDF file for 21489 CPP project.

From the comment( second line) the SDRAM size is 8M words, the word is 32 bit, so the address space is from 0x00200000 to 0x009FFFFF.   My question is below:

 

How to map the space 0x00200000 to 0x009FFFFF to the below 4 external sections?

seg_ext_swco { TYPE(SW RAM) START(0x00600000) END(0x0065FFFF) WIDTH(16) }
seg_ext_nwco { TYPE(PM RAM) START(0x00220000) END(0x0043FFFF) WIDTH(16) }
seg_ext_dmda { TYPE(DM RAM) START(0x00660000) END(0x009FFFFF) WIDTH(16) }
seg_ext_pmda { TYPE(DM RAM) START(0x00A00000) END(0x00AFFFFF) WIDTH(16) }

 

For example what's the address range in (0x00200000 to 0x009FFFFF) that is occupied by each section?

 

 

Outcomes