forked from Imagelibrary/rtems
2011-03-29 Sebastian Huber <sebastian.huber@embedded-brains.de>
* shared/start/start.S: Default exception handler will result in bsp_reset(). * shared/startup/linkcmds.base: Move unsupported sections into read-only section. Changed barrier sections.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2011-03-29 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||||
|
|
||||||
|
* shared/start/start.S: Default exception handler will result in
|
||||||
|
bsp_reset().
|
||||||
|
* shared/startup/linkcmds.base: Move unsupported sections into
|
||||||
|
read-only section. Changed barrier sections.
|
||||||
|
|
||||||
2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* shared/abort/abort.c, shared/abort/simple_abort.c:
|
* shared/abort/abort.c, shared/abort/simple_abort.c:
|
||||||
|
|||||||
@@ -68,31 +68,31 @@ handler_addr_reset:
|
|||||||
|
|
||||||
handler_addr_undef:
|
handler_addr_undef:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_swi:
|
handler_addr_swi:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_prefetch:
|
handler_addr_prefetch:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_abort:
|
handler_addr_abort:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_reserved:
|
handler_addr_reserved:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_irq:
|
handler_addr_irq:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
handler_addr_fiq:
|
handler_addr_fiq:
|
||||||
|
|
||||||
.word twiddle
|
.word reset
|
||||||
|
|
||||||
/* Start entry */
|
/* Start entry */
|
||||||
|
|
||||||
@@ -184,15 +184,18 @@ bsp_start_hook_0_done:
|
|||||||
mov r0, #0
|
mov r0, #0
|
||||||
bl boot_card
|
bl boot_card
|
||||||
|
|
||||||
|
twiddle:
|
||||||
|
|
||||||
/* Branch to reset function */
|
/* Branch to reset function */
|
||||||
bl bsp_reset
|
bl bsp_reset
|
||||||
|
|
||||||
SWITCH_FROM_THUMB_TO_ARM
|
b twiddle
|
||||||
|
|
||||||
/* Spin forever */
|
.arm
|
||||||
|
|
||||||
twiddle:
|
reset:
|
||||||
|
|
||||||
|
SWITCH_FROM_ARM_TO_THUMB r0
|
||||||
b twiddle
|
b twiddle
|
||||||
|
|
||||||
DEFINE_FUNCTION_ARM(bsp_start_memcpy)
|
DEFINE_FUNCTION_ARM(bsp_start_memcpy)
|
||||||
|
|||||||
@@ -32,8 +32,9 @@ ENTRY (_start)
|
|||||||
|
|
||||||
bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
|
bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
|
||||||
|
|
||||||
bsp_section_vbarrier_align = DEFINED (bsp_section_vbarrier_align) ? bsp_section_vbarrier_align : 1;
|
bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
|
||||||
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
|
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
|
||||||
|
bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
|
||||||
|
|
||||||
bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;
|
bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;
|
||||||
|
|
||||||
@@ -102,107 +103,47 @@ SECTIONS {
|
|||||||
bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
|
bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
|
||||||
bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
|
bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
|
||||||
|
|
||||||
.vbarrier : {
|
.xbarrier : {
|
||||||
. = ALIGN (bsp_section_vbarrier_align);
|
. = ALIGN (bsp_section_xbarrier_align);
|
||||||
} > REGION_VECTOR
|
} > REGION_VECTOR
|
||||||
|
|
||||||
.interp : {
|
.fast_text : {
|
||||||
|
bsp_section_fast_text_begin = .;
|
||||||
|
*(.bsp_fast_text)
|
||||||
|
bsp_section_fast_text_end = .;
|
||||||
|
} > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
|
||||||
|
bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
|
||||||
|
bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
|
||||||
|
bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
|
||||||
|
|
||||||
|
.text : {
|
||||||
bsp_section_text_begin = .;
|
bsp_section_text_begin = .;
|
||||||
*(.interp)
|
*(.text.unlikely .text.*_unlikely)
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||||
.note.gnu.build-id : {
|
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||||
*(.note.gnu.build-id)
|
*(.gnu.warning)
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
|
||||||
.hash : {
|
|
||||||
*(.hash)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.gnu.hash : {
|
|
||||||
*(.gnu.hash)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.dynsym : {
|
|
||||||
*(.dynsym)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.dynstr : {
|
|
||||||
*(.dynstr)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.gnu.version : {
|
|
||||||
*(.gnu.version)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.gnu.version_d : {
|
|
||||||
*(.gnu.version_d)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.gnu.version_r : {
|
|
||||||
*(.gnu.version_r)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.rel.dyn : {
|
|
||||||
*(.rel.init)
|
|
||||||
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
|
||||||
*(.rel.fini)
|
|
||||||
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
|
||||||
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
|
|
||||||
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
|
||||||
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
|
||||||
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
|
||||||
*(.rel.ctors)
|
|
||||||
*(.rel.dtors)
|
|
||||||
*(.rel.got)
|
|
||||||
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
|
||||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
|
||||||
*(.rel.iplt)
|
|
||||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
|
||||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
|
||||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.rela.dyn : {
|
|
||||||
*(.rela.init)
|
|
||||||
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
|
||||||
*(.rela.fini)
|
|
||||||
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
|
||||||
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
|
||||||
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
|
||||||
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
|
||||||
*(.rela.ctors)
|
|
||||||
*(.rela.dtors)
|
|
||||||
*(.rela.got)
|
|
||||||
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
|
||||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
|
||||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
|
||||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
|
||||||
*(.rela.iplt)
|
|
||||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.rel.plt : {
|
|
||||||
*(.rel.plt)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.rela.plt : {
|
|
||||||
*(.rela.plt)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
||||||
.init : {
|
.init : {
|
||||||
KEEP (*(.init))
|
KEEP (*(.init))
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
||||||
.fini : {
|
.fini : {
|
||||||
KEEP (*(.fini))
|
KEEP (*(.fini))
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.plt : {
|
|
||||||
*(.plt)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.iplt : {
|
|
||||||
*(.iplt)
|
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
|
||||||
.text : {
|
|
||||||
*(.text.unlikely .text.*_unlikely)
|
|
||||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
|
||||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
|
||||||
*(.gnu.warning)
|
|
||||||
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
|
|
||||||
bsp_section_text_end = .;
|
bsp_section_text_end = .;
|
||||||
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
} > REGION_TEXT AT > REGION_TEXT_LOAD
|
||||||
bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
|
bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
|
||||||
bsp_section_text_load_begin = LOADADDR (.interp);
|
bsp_section_text_load_begin = LOADADDR (.text);
|
||||||
bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
|
bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
|
||||||
|
|
||||||
.rodata1 : {
|
.robarrier : {
|
||||||
|
. = ALIGN (bsp_section_robarrier_align);
|
||||||
|
} > REGION_RODATA
|
||||||
|
|
||||||
|
.rodata : {
|
||||||
bsp_section_rodata_begin = .;
|
bsp_section_rodata_begin = .;
|
||||||
|
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.rodata1 : {
|
||||||
*(.rodata1)
|
*(.rodata1)
|
||||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
.ARM.extab : {
|
.ARM.extab : {
|
||||||
@@ -276,17 +217,89 @@ SECTIONS {
|
|||||||
.got : {
|
.got : {
|
||||||
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
|
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
|
||||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
.rodata : {
|
.interp : {
|
||||||
/* Special FreeBSD sysctl sections */
|
*(.interp)
|
||||||
. = ALIGN (16);
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.note.gnu.build-id : {
|
||||||
|
*(.note.gnu.build-id)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.hash : {
|
||||||
|
*(.hash)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.gnu.hash : {
|
||||||
|
*(.gnu.hash)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.dynsym : {
|
||||||
|
*(.dynsym)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.dynstr : {
|
||||||
|
*(.dynstr)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.gnu.version : {
|
||||||
|
*(.gnu.version)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.gnu.version_d : {
|
||||||
|
*(.gnu.version_d)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.gnu.version_r : {
|
||||||
|
*(.gnu.version_r)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.rel.dyn : {
|
||||||
|
*(.rel.init)
|
||||||
|
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
||||||
|
*(.rel.fini)
|
||||||
|
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
||||||
|
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
|
||||||
|
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
||||||
|
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
||||||
|
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
||||||
|
*(.rel.ctors)
|
||||||
|
*(.rel.dtors)
|
||||||
|
*(.rel.got)
|
||||||
|
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
||||||
|
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||||
|
*(.rel.iplt)
|
||||||
|
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||||
|
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||||
|
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.rela.dyn : {
|
||||||
|
*(.rela.init)
|
||||||
|
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
||||||
|
*(.rela.fini)
|
||||||
|
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
||||||
|
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
||||||
|
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
||||||
|
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
||||||
|
*(.rela.ctors)
|
||||||
|
*(.rela.dtors)
|
||||||
|
*(.rela.got)
|
||||||
|
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
||||||
|
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||||
|
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||||
|
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||||
|
*(.rela.iplt)
|
||||||
|
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.rel.plt : {
|
||||||
|
*(.rel.plt)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.rela.plt : {
|
||||||
|
*(.rela.plt)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.plt : {
|
||||||
|
*(.plt)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.iplt : {
|
||||||
|
*(.iplt)
|
||||||
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
|
.robsdsets : {
|
||||||
|
/* Special FreeBSD linker set sections */
|
||||||
__start_set_sysctl_set = .;
|
__start_set_sysctl_set = .;
|
||||||
*(set_sysctl_*);
|
*(set_sysctl_*);
|
||||||
__stop_set_sysctl_set = ABSOLUTE(.);
|
__stop_set_sysctl_set = .;
|
||||||
*(set_domain_*);
|
*(set_domain_*);
|
||||||
*(set_pseudo_*);
|
*(set_pseudo_*);
|
||||||
_bsd__start_set_sysinit_set = .;
|
|
||||||
*(_bsd_set_sysinit_set);
|
|
||||||
_bsd__stop_set_sysinit_set = .;
|
|
||||||
_bsd__start_set_modmetadata_set = .;
|
_bsd__start_set_modmetadata_set = .;
|
||||||
*(_bsd_set_modmetadata_set);
|
*(_bsd_set_modmetadata_set);
|
||||||
_bsd__stop_set_modmetadata_set = .;
|
_bsd__stop_set_modmetadata_set = .;
|
||||||
@@ -294,38 +307,15 @@ SECTIONS {
|
|||||||
*(_bsd_set_sysctl_set);
|
*(_bsd_set_sysctl_set);
|
||||||
_bsd__stop_set_sysctl_set = .;
|
_bsd__stop_set_sysctl_set = .;
|
||||||
|
|
||||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
|
||||||
bsp_section_rodata_end = .;
|
bsp_section_rodata_end = .;
|
||||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||||
bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
|
bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
|
||||||
bsp_section_rodata_load_begin = LOADADDR (.rodata1);
|
bsp_section_rodata_load_begin = LOADADDR (.rodata);
|
||||||
bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
|
bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
|
||||||
|
|
||||||
.robarrier : {
|
.rwbarrier : {
|
||||||
. = ALIGN (bsp_section_robarrier_align);
|
. = ALIGN (bsp_section_rwbarrier_align);
|
||||||
} > REGION_RODATA
|
} > REGION_DATA
|
||||||
|
|
||||||
.data1 : {
|
|
||||||
bsp_section_data_begin = .;
|
|
||||||
*(.data1)
|
|
||||||
} > REGION_DATA AT > REGION_DATA_LOAD
|
|
||||||
.data : {
|
|
||||||
*(.data .data.* .gnu.linkonce.d.*)
|
|
||||||
SORT(CONSTRUCTORS)
|
|
||||||
bsp_section_data_end = .;
|
|
||||||
} > REGION_DATA AT > REGION_DATA_LOAD
|
|
||||||
bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
|
|
||||||
bsp_section_data_load_begin = LOADADDR (.data1);
|
|
||||||
bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
|
|
||||||
|
|
||||||
.fast_text : {
|
|
||||||
bsp_section_fast_text_begin = .;
|
|
||||||
*(.bsp_fast_text)
|
|
||||||
bsp_section_fast_text_end = .;
|
|
||||||
} > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
|
|
||||||
bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
|
|
||||||
bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
|
|
||||||
bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
|
|
||||||
|
|
||||||
.fast_data : {
|
.fast_data : {
|
||||||
bsp_section_fast_data_begin = .;
|
bsp_section_fast_data_begin = .;
|
||||||
@@ -336,6 +326,26 @@ SECTIONS {
|
|||||||
bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
|
bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
|
||||||
bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
|
bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
|
||||||
|
|
||||||
|
.data : {
|
||||||
|
bsp_section_data_begin = .;
|
||||||
|
*(.data .data.* .gnu.linkonce.d.*)
|
||||||
|
SORT(CONSTRUCTORS)
|
||||||
|
} > REGION_DATA AT > REGION_DATA_LOAD
|
||||||
|
.data1 : {
|
||||||
|
*(.data1)
|
||||||
|
} > REGION_DATA AT > REGION_DATA_LOAD
|
||||||
|
.rwbsdsets : {
|
||||||
|
/* Special FreeBSD linker set sections */
|
||||||
|
_bsd__start_set_sysinit_set = .;
|
||||||
|
*(_bsd_set_sysinit_set);
|
||||||
|
_bsd__stop_set_sysinit_set = .;
|
||||||
|
|
||||||
|
bsp_section_data_end = .;
|
||||||
|
} > REGION_DATA AT > REGION_DATA_LOAD
|
||||||
|
bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
|
||||||
|
bsp_section_data_load_begin = LOADADDR (.data);
|
||||||
|
bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
bsp_section_bss_begin = .;
|
bsp_section_bss_begin = .;
|
||||||
*(.dynbss)
|
*(.dynbss)
|
||||||
|
|||||||
Reference in New Issue
Block a user