AnsweredAssumed Answered

Rules for allocating external memory on 21469

Question asked by ForExample on Nov 22, 2010
Latest reply on Nov 30, 2010 by DeepV

I'm looking for documentation/information on the rules for allocating external DDR2 memory on the 21469.  What I'd like to do is allocate a certain amount of memory for program code (16 or 48-bit), another chunk for data (32-bit) and the remainder as heap.  The amount required for program and data can change over time.


Because of legacy code, I need to be able to deal with the possibility of using either normal or short-word instructions.  I am manually editing a custom .ldf file.


What I'd like to know is how to specify the address ranges and widths.  Instinctively I would do something like this for normal-word instructions:

     seg_ext_pmco    { TYPE(PM RAM) START(0x00200000) END(0x0020ffff) WIDTH(48) }
     seg_ext_dmda    { TYPE(DM RAM) START(0x00230000) END(0x002fffff) WIDTH(32) }
     seg_heap            { TYPE(DM RAM) START(0x00300000) END(0x021e8000) WIDTH(32) }


but that gives me a "Invalid memory range and/or width for memory 'seg_ext_pmco'".


I'm also not sure how to account for varying widths.  Do I skip addresses between segments (because 48-bits take up 50% more memory) or just account for it at the end of the memory map?


Note:  My total available DDR2 memory = 1 Gb (8 MWords x 16 bits x 8 banks = 64 megawords) and it's on DDR2 bank 0 (which can only address 62 MWords)


Can anyone point me in the right direction?