AnsweredAssumed Answered

ADSP-21479 LDF question

Question asked by marc_s1 on Mar 4, 2013
Latest reply on Mar 28, 2013 by marc_s1

Hello,

 

I am developing an application for the ADSP-21479. The region seg_dmda is too small for my application, so I decided to reduce seg_heap to 1 and remove seg_pdma. Instead I added to regions: seg_dmda2 and seg_dmda3:

 

  // -------------------------- BLOCK 1 ----------------------------------------
  // 0x000A C000 to 0x000B 3FFF  Normal word (48) Space (1.5 Mbit RAM)
  // 0x000B 2000 to 0x000B DFFF  Normal word (32) Space (1.5 Mbit RAM)
  // 0x0016 4000 to 0x0017 BFFF  Short word (16)  Space (1.5 Mbit RAM)
#ifdef IDDE_ARGS
#define ARGV_START 0xb2000
  mem_argv { TYPE(DM RAM) START(0x000b2000) END(0x000b20ff) WIDTH(32) }
  seg_dmda { TYPE(DM RAM) START(0x000b2100) END(0x000bbfff) WIDTH(32) }
#else
  seg_dmda { TYPE(DM RAM) START(0x000b2000) END(0x000bbfff) WIDTH(32) }
#endif
  seg_stak { TYPE(DM RAM) START(0x000bc000) END(0x000bdfff) WIDTH(32) }

  // -------------------------- BLOCK 2 ----------------------------------------
  // 0x000C 0000 to 0x000C 5554  Normal word (48) Space (1 Mbit RAM)
  // 0x000C 0000 to 0x000C 7FFF  Normal word (32) Space (1 Mbit RAM)
  // 0x0018 0000 to 0x0018 FFFF  Short word (16) Space (1 Mbit RAM)
//  seg_pmda { TYPE(PM RAM) START(0x000C0000) END(0x000C7FFF) WIDTH(32) }
  seg_dmda2 { TYPE(DM RAM) START(0x000C0000) END(0x000C7FFF) WIDTH(32) }

  // ------------------------- BLOCK 3 -----------------------------------------
  // 0x000E 0000 to 0x000E 5554  Normal word (48) Space (1 Mbit RAM)
  // 0x000E 0000 to 0x000E 7FFF  Normal word (32) Space (1 Mbit RAM)
  // 0x001C 0000 to 0x001C FFFF  Short word (16)  Space (1 Mbit RAM)
  seg_heap { TYPE(DM RAM) START(0x000e0000) END(0x000e0000) WIDTH(32) }
  seg_dmda3 { TYPE(DM RAM) START(0x000e0001) END(0x000e7fff) WIDTH(32) }

 

In the default ldf I saw the following lines:

seg_dmda2

{

  // use unused space in seg_pmda for dmda

  INPUT_SECTIONS( $OBJECTS(seg_dmda) $LIBRARIES(seg_dmda))

} > seg_pmda

 

So I decided to use this information to be able to use my new 2 regions like this:

seg_dmda2
{
  INPUT_SECTIONS( $OBJECTS(seg_dmda) $LIBRARIES(seg_dmda))
} > seg_dmda2

 

seg_dmda3
{
  INPUT_SECTIONS( $OBJECTS(seg_dmda) $LIBRARIES(seg_dmda))

} > seg_dmda3

 

However, when linking I get the following error messages:

Linking...

[Error li1040] ".\device\bos\sys\ADSP-21479.LDF":340 Out of memory in output section 'seg_dmda' in processor 'p0'
        Total of 0xc008 word(s) were not mapped.
For more details, see 'linker_log.xml' in the output directory.


[Error li1040] ".\device\bos\sys\ADSP-21479.LDF":348 Out of memory in output section 'seg_dmda2' in processor 'p0'
        Total of 0xc008 word(s) were not mapped.
For more details, see 'linker_log.xml' in the output directory.


[Error li1040] ".\device\bos\sys\ADSP-21479.LDF":353 Out of memory in output section 'seg_dmda3' in processor 'p0'
        Total of 0xc008 word(s) were not mapped.
For more details, see 'linker_log.xml' in the output directory.

 

I have no idea why this is not working. Does anyone have any tips for me?

 

Thanks in advance for your support!

Outcomes