AnsweredAssumed Answered

Issue arround LDF and EXPAND_ERROR

Question asked by MikeSmithCanada on May 30, 2010
Latest reply on Jun 3, 2010 by amcl

My LDF has this format

 

p0_gdt
      {
         FORCE_CONTIGUITY
         INPUT_SECTION_ALIGN(4)
         INPUT_SECTIONS($OBJECTS_CORE_A(.gdt) $LIBRARIES_CORE_A(.gdt))
         INPUT_SECTIONS($LIBRARIES_SML3_CM(.gdt))
         INPUT_SECTIONS($LIBRARIES_EMBEDDEDUNIT(.gdt))
         INPUT_SECTIONS($OBJECTS_CORE_A(.gdtl) $LIBRARIES_CORE_A(.gdtl))
         INPUT_SECTIONS($LIBRARIES_SML3_CM(.gdtl))
         INPUT_SECTIONS($LIBRARIES_SML2_CM(.gdtl))
      } > MEM_A_L1_DATA_B

 

L1_data_b_stack_heap
      {
         INPUT_SECTION_ALIGN(4)
         RESERVE_EXPAND(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length , 0, 4)
         ldf_stack_space = heaps_and_stack_in_L1_data_b;
         ldf_stack_end = (ldf_stack_space + (heaps_and_stack_in_L1_data_b_length - 4)) & 0xfffffffc;
      } > MEM_A_L1_DATA_B

 

     
      /*$VDSG<insert-new-sections-at-the-end-for-CORE-A>        */
    EMBEDDED_UNIT_p0_gdt
      {
         FORCE_CONTIGUITY
         INPUT_SECTION_ALIGN(4)
         INPUT_SECTIONS($LIBRARIES_EMBEDDEDUNIT(.gdt))
      } > MEM_A_L1_DATA_B
      /* Text inserted between these $VDSG comments will be preserved */
      /*$VDSG<insert-new-sections-at-the-end-for-CORE-A>        */

and generates an error

 

855 RESERVE_EXPAND command on line 848 of file ".\NewUnitTest_BF561SingleApplicationBothCores_30May2010.ldf" might claim the remainder of 'MEM_A_L1_DATA_B' memory, leaving no space for 'EMBEDDED_UNIT_p0_gdt' output section.

 

How can I get this section to go before

     
       /*$VDSG<insert-new-sections-at-the-end-for-CORE-A>        */
     EMBEDDED_UNIT_p0_gdt
       {
          FORCE_CONTIGUITY
          INPUT_SECTION_ALIGN(4)
          INPUT_SECTIONS($LIBRARIES_EMBEDDEDUNIT(.gdt))
       } > MEM_A_L1_DATA_B
       /* Text inserted between these $VDSG comments will be preserved */
       /*$VDSG<insert-new-sections-at-the-end-for-CORE-A>        */

 

to go before this section L1_data_b_stack_heap
       {
          INPUT_SECTION_ALIGN(4)
          RESERVE_EXPAND(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length , 0, 4)
          ldf_stack_space = heaps_and_stack_in_L1_data_b;
          ldf_stack_end = (ldf_stack_space + (heaps_and_stack_in_L1_data_b_length - 4)) & 0xfffffffc;
       } > MEM_A_L1_DATA_B

 

and be guarenteed that my new section order will not be destroyed.

 

I can't customize the p0_gdt section

Outcomes