Как выполнить итерацию по набору папок в Windows Shell?

Я пытаюсь понять, как выполняется перенос uboot на плату на базе процессора powerpc mpc8313. Во время этой процедуры я наткнулся на файл uboot.lds, файл сценария компоновщика.

Мне нужно разобраться в этом файле. Я имею в виду важность упомянутого содержимого и то, где фактические адреса определены в пакете uboot.

например; в РАЗДЕЛАХ, где я могу найти значение следующей информации:

/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash          : { *(.hash)  }
.dynsym        : { *(.dynsym)  }
.dynstr        : { *(.dynstr)  }
.rel.text      : { *(.rel.text)  }
.rela.text     : { *(.rela.text)  }
.rel.data      : { *(.rel.data)  }
.rela.data     : { *(.rela.data)  }
.rel.rodata    : { *(.rel.rodata)  }
.rela.rodata   : { *(.rela.rodata)  }
.rel.got       : { *(.rel.got)  }
.rela.got      : { *(.rela.got)  }
.rel.ctors     : { *(.rel.ctors) }
.rela.ctors    : { *(.rela.ctors) }
.rel.dtors     : { *(.rel.dtors) }
.rela.dtors    : { *(.rela.dtors) }
.rel.bss       : { *(.rel.bss)  }
.rela.bss      : { *(.rela.bss)  }
.rel.plt       : { *(.rel.plt)  }
.rela.plt      : { *(.rela.plt)  }
.init          : { *(.init) }
.plt : { *(.plt) }
.text      :
{
  cpu/mpc83xx/start.o (.text)
  *(.text)
  *(.fixup)
  *(.got1)
  . = ALIGN(16);
  *(.rodata)
  *(.rodata1)
  *(.rodata.str1.4)
  *(.eh_frame)
}
.fini      : { *(.fini)    } =0
.ctors     : { *(.ctors)   }
.dtors     : { *(.dtors)   }

/* Read-write section, merged into data segment: */
. = (. + 0x0FFF) & 0xFFFFF000;
_erotext = .;
PROVIDE (erotext = .);
.reloc   :
{
  *(.got)
  _GOT2_TABLE_ = .;
  *(.got2)
  _FIXUP_TABLE_ = .;
  *(.fixup)
}
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
__fixup_entries = (. - _FIXUP_TABLE_) >> 2;

.data    :
{
  *(.data)
  *(.data1)
  *(.sdata)
  *(.sdata2)
  *(.dynamic)
  CONSTRUCTORS
}
_edata  =  .;
PROVIDE (edata = .);

. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;


. = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;

. = ALIGN(4096);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(4096);
__init_end = .;

__bss_start = .;
.bss       :
{
 *(.sbss) *(.scommon)
 *(.dynbss)
 *(.bss)
 *(COMMON)
}
_end = . ;
PROVIDE (end = .);
}

где искать эту информацию и как определить изменения, которые необходимо внести в файл lds?

Пожалуйста, подтвердите или, по крайней мере, дайте несколько указателей для чтения информации , спасибо

Regads, Виджей

8
задан tsaeger 4 March 2011 в 15:09
поделиться