From 06433b2d64673ad6814a9c2da8e059e2e682cb4a Mon Sep 17 00:00:00 2001 From: ntfreak Date: Sat, 1 Mar 2008 16:26:48 +0000 Subject: - updated svn:eol-style prop to native git-svn-id: svn://svn.berlios.de/openocd/trunk@418 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- testing/examples/STR912Test/prj/eclipse_ram.gdb | 42 +- testing/examples/STR912Test/prj/eclipse_rom.gdb | 42 +- testing/examples/STR912Test/prj/str912_jtagkey.cfg | 90 ++-- .../examples/STR912Test/prj/str912_program.script | 18 +- testing/examples/STR912Test/prj/str912_ram.ld | 436 +++++++++--------- testing/examples/STR912Test/prj/str912_rom.ld | 498 ++++++++++----------- 6 files changed, 563 insertions(+), 563 deletions(-) (limited to 'testing/examples/STR912Test') diff --git a/testing/examples/STR912Test/prj/eclipse_ram.gdb b/testing/examples/STR912Test/prj/eclipse_ram.gdb index 56a7091f..00a62d70 100644 --- a/testing/examples/STR912Test/prj/eclipse_ram.gdb +++ b/testing/examples/STR912Test/prj/eclipse_ram.gdb @@ -1,21 +1,21 @@ -target remote localhost:3333 -monitor reset -monitor sleep 500 -monitor poll -monitor soft_reset_halt -monitor arm7_9 sw_bkpts enable - -# Set SRAM size to 96 KB -monitor mww 0x5C002034 0x0197 -monitor mdw 0x5C002034 - -# Set Flash, Bank0 size to 512 KB -monitor mww 0x54000000 0xf - -load -break main -continue - - - - +target remote localhost:3333 +monitor reset +monitor sleep 500 +monitor poll +monitor soft_reset_halt +monitor arm7_9 sw_bkpts enable + +# Set SRAM size to 96 KB +monitor mww 0x5C002034 0x0197 +monitor mdw 0x5C002034 + +# Set Flash, Bank0 size to 512 KB +monitor mww 0x54000000 0xf + +load +break main +continue + + + + diff --git a/testing/examples/STR912Test/prj/eclipse_rom.gdb b/testing/examples/STR912Test/prj/eclipse_rom.gdb index 87d1abc0..58977cfc 100644 --- a/testing/examples/STR912Test/prj/eclipse_rom.gdb +++ b/testing/examples/STR912Test/prj/eclipse_rom.gdb @@ -1,21 +1,21 @@ -target remote localhost:3333 -monitor reset -monitor sleep 500 -monitor poll -monitor soft_reset_halt -monitor arm7_9 force_hw_bkpts enable - -# Set SRAM size to 96 KB -monitor mww 0x5C002034 0x0197 -monitor mdw 0x5C002034 - -# Set Flash, Bank0 size to 512 KB -monitor mww 0x54000000 0xf - -load -break main -continue - - - - +target remote localhost:3333 +monitor reset +monitor sleep 500 +monitor poll +monitor soft_reset_halt +monitor arm7_9 force_hw_bkpts enable + +# Set SRAM size to 96 KB +monitor mww 0x5C002034 0x0197 +monitor mdw 0x5C002034 + +# Set Flash, Bank0 size to 512 KB +monitor mww 0x54000000 0xf + +load +break main +continue + + + + diff --git a/testing/examples/STR912Test/prj/str912_jtagkey.cfg b/testing/examples/STR912Test/prj/str912_jtagkey.cfg index 7ba8dd24..614e0422 100644 --- a/testing/examples/STR912Test/prj/str912_jtagkey.cfg +++ b/testing/examples/STR912Test/prj/str912_jtagkey.cfg @@ -1,45 +1,45 @@ -#daemon configuration -telnet_port 4444 -gdb_port 3333 - -# tell gdb our flash memory map -# and enable flash programming -gdb_memory_map enable -gdb_flash_program enable - -#interface -interface ft2232 -ft2232_device_desc "Amontec JTAGkey A" -ft2232_layout jtagkey -ft2232_vid_pid 0x0403 0xcff8 -jtag_speed 1 - -jtag_nsrst_delay 100 -jtag_ntrst_delay 100 - -#use combined on interfaces or targets that can't set TRST/SRST separately -reset_config trst_and_srst - -#jtag scan chain -#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) -jtag_device 8 0x1 0x1 0xfe -jtag_device 4 0x1 0xf 0xe -jtag_device 5 0x1 0x1 0x1e - -#target configuration -daemon_startup reset - -#target -#target arm7tdmi -target arm966e little reset_halt 1 arm966e -run_and_halt_time 0 30 - -target_script 0 gdb_program_config .\prj\str912_program.script - -working_area 0 0x50000000 16384 nobackup - -#flash bank str7x 0 0 -flash bank str9x 0x00000000 0x00080000 0 0 0 - -# For more information about the configuration files, take a look at: -# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger +#daemon configuration +telnet_port 4444 +gdb_port 3333 + +# tell gdb our flash memory map +# and enable flash programming +gdb_memory_map enable +gdb_flash_program enable + +#interface +interface ft2232 +ft2232_device_desc "Amontec JTAGkey A" +ft2232_layout jtagkey +ft2232_vid_pid 0x0403 0xcff8 +jtag_speed 1 + +jtag_nsrst_delay 100 +jtag_ntrst_delay 100 + +#use combined on interfaces or targets that can't set TRST/SRST separately +reset_config trst_and_srst + +#jtag scan chain +#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) +jtag_device 8 0x1 0x1 0xfe +jtag_device 4 0x1 0xf 0xe +jtag_device 5 0x1 0x1 0x1e + +#target configuration +daemon_startup reset + +#target +#target arm7tdmi +target arm966e little reset_halt 1 arm966e +run_and_halt_time 0 30 + +target_script 0 gdb_program_config .\prj\str912_program.script + +working_area 0 0x50000000 16384 nobackup + +#flash bank str7x 0 0 +flash bank str9x 0x00000000 0x00080000 0 0 0 + +# For more information about the configuration files, take a look at: +# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger diff --git a/testing/examples/STR912Test/prj/str912_program.script b/testing/examples/STR912Test/prj/str912_program.script index 07e366dc..df0239b9 100644 --- a/testing/examples/STR912Test/prj/str912_program.script +++ b/testing/examples/STR912Test/prj/str912_program.script @@ -1,9 +1,9 @@ -str9x flash_config 0 4 2 0 0x80000 -flash protect 0 0 7 off - - - - - - - +str9x flash_config 0 4 2 0 0x80000 +flash protect 0 0 7 off + + + + + + + diff --git a/testing/examples/STR912Test/prj/str912_ram.ld b/testing/examples/STR912Test/prj/str912_ram.ld index 0974b390..269ada9b 100644 --- a/testing/examples/STR912Test/prj/str912_ram.ld +++ b/testing/examples/STR912Test/prj/str912_ram.ld @@ -1,218 +1,218 @@ -/*********************************************************************************** -* Copyright 2005 Anglia Design -* This demo code and associated components are provided as is and has no warranty, -* implied or otherwise. You are free to use/modify any of the provided -* code at your own risk in your applications with the expressed limitation -* of liability (see below) -* -* LIMITATION OF LIABILITY: ANGLIA OR ANGLIA DESIGNS SHALL NOT BE LIABLE FOR ANY -* LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA, INTERRUPTION OF BUSINESS, NOR FOR -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER -* THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* -* Author : Spencer Oliver -* Web : www.anglia-designs.com -* -***********************************************************************************/ - -/* Stack Sizes */ - - _STACKSIZE = 1024; - _STACKSIZE_IRQ = 256; - _STACKSIZE_FIQ = 0; - _STACKSIZE_SVC = 1024; - _STACKSIZE_ABT = 0; - _STACKSIZE_UND = 0; - _HEAPSIZE = 1024; - -/* Memory Definitions */ - -MEMORY -{ - DATA (rw) : ORIGIN = 0x04000000, LENGTH = 0x00018000 -} - -/* Section Definitions */ - -SECTIONS -{ - /* first section is .text which is used for code */ - - .text : - { - KEEP(*(.vectors)) - KEEP(*(.init)) - *(.text .text.*) - *(.gnu.linkonce.t.*) - *(.glue_7t .glue_7) - KEEP(*(.fini)) - *(.gcc_except_table) - } >DATA =0 - . = ALIGN(4); - - /* .ctors .dtors are used for c++ constructors/destructors */ - - .ctors : - { - PROVIDE(__ctors_start__ = .); - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - PROVIDE(__ctors_end__ = .); - } >DATA - - .dtors : - { - PROVIDE(__dtors_start__ = .); - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - PROVIDE(__dtors_end__ = .); - } >DATA - - /* .rodata section which is used for read-only data (constants) */ - - .rodata : - { - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - } >DATA - . = ALIGN(4); - - _etext = .; - PROVIDE (etext = .); - - /* .data section which is used for initialized data */ - - .data : AT (_etext) - { - *(.data .data.*) - *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } >DATA - . = ALIGN(4); - - __data_start = .; - _edata = .; - PROVIDE (edata = .); - - /* .bss section which is used for uninitialized data */ - - .bss : - { - __bss_start = .; - __bss_start__ = .; - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >DATA - . = ALIGN(4); - __bss_end__ = .; - - _end = .; - PROVIDE(end = .); - - /* .heap section which is used for memory allocation */ - - .heap (NOLOAD) : - { - __heap_start__ = .; - *(.heap) - . = MAX(__heap_start__ + _HEAPSIZE , .); - } >DATA - __heap_end__ = __heap_start__ + SIZEOF(.heap); - - /* .stack section - user mode stack */ - - .stack (__heap_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_start__ = .; - *(.stack) - . = MAX(__stack_start__ + _STACKSIZE , .); - } >DATA - __stack_end__ = __stack_start__ + SIZEOF(.stack); - - /* .stack_irq section */ - - .stack_irq (__stack_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_irq_start__ = .; - *(.stack_irq) - . = MAX(__stack_irq_start__ + _STACKSIZE_IRQ , .); - } >DATA - __stack_irq_end__ = __stack_irq_start__ + SIZEOF(.stack_irq); - - /* .stack_fiq section */ - - .stack_fiq (__stack_irq_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_fiq_start__ = .; - *(.stack_fiq) - . = MAX(__stack_fiq_start__ + _STACKSIZE_FIQ , .); - } >DATA - __stack_fiq_end__ = __stack_fiq_start__ + SIZEOF(.stack_fiq); - - /* .stack_svc section */ - - .stack_svc (__stack_fiq_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_svc_start__ = .; - *(.stack_svc) - . = MAX(__stack_svc_start__ + _STACKSIZE_SVC , .); - } >DATA - __stack_svc_end__ = __stack_svc_start__ + SIZEOF(.stack_svc); - - /* .stack_abt section */ - - .stack_abt (__stack_svc_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_abt_start__ = .; - *(.stack_abt) - . = MAX(__stack_abt_start__ + _STACKSIZE_ABT , .); - } >DATA - __stack_abt_end__ = __stack_abt_start__ + SIZEOF(.stack_abt); - - /* .stack_und section */ - - .stack_und (__stack_abt_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_und_start__ = .; - *(.stack_und) - . = MAX(__stack_und_start__ + _STACKSIZE_UND , .); - } >DATA - __stack_und_end__ = __stack_und_start__ + SIZEOF(.stack_und); - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} - +/*********************************************************************************** +* Copyright 2005 Anglia Design +* This demo code and associated components are provided as is and has no warranty, +* implied or otherwise. You are free to use/modify any of the provided +* code at your own risk in your applications with the expressed limitation +* of liability (see below) +* +* LIMITATION OF LIABILITY: ANGLIA OR ANGLIA DESIGNS SHALL NOT BE LIABLE FOR ANY +* LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA, INTERRUPTION OF BUSINESS, NOR FOR +* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER +* THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* Author : Spencer Oliver +* Web : www.anglia-designs.com +* +***********************************************************************************/ + +/* Stack Sizes */ + + _STACKSIZE = 1024; + _STACKSIZE_IRQ = 256; + _STACKSIZE_FIQ = 0; + _STACKSIZE_SVC = 1024; + _STACKSIZE_ABT = 0; + _STACKSIZE_UND = 0; + _HEAPSIZE = 1024; + +/* Memory Definitions */ + +MEMORY +{ + DATA (rw) : ORIGIN = 0x04000000, LENGTH = 0x00018000 +} + +/* Section Definitions */ + +SECTIONS +{ + /* first section is .text which is used for code */ + + .text : + { + KEEP(*(.vectors)) + KEEP(*(.init)) + *(.text .text.*) + *(.gnu.linkonce.t.*) + *(.glue_7t .glue_7) + KEEP(*(.fini)) + *(.gcc_except_table) + } >DATA =0 + . = ALIGN(4); + + /* .ctors .dtors are used for c++ constructors/destructors */ + + .ctors : + { + PROVIDE(__ctors_start__ = .); + KEEP(*(SORT(.ctors.*))) + KEEP(*(.ctors)) + PROVIDE(__ctors_end__ = .); + } >DATA + + .dtors : + { + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + } >DATA + + /* .rodata section which is used for read-only data (constants) */ + + .rodata : + { + *(.rodata .rodata.*) + *(.gnu.linkonce.r.*) + } >DATA + . = ALIGN(4); + + _etext = .; + PROVIDE (etext = .); + + /* .data section which is used for initialized data */ + + .data : AT (_etext) + { + *(.data .data.*) + *(.gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + } >DATA + . = ALIGN(4); + + __data_start = .; + _edata = .; + PROVIDE (edata = .); + + /* .bss section which is used for uninitialized data */ + + .bss : + { + __bss_start = .; + __bss_start__ = .; + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(4); + } >DATA + . = ALIGN(4); + __bss_end__ = .; + + _end = .; + PROVIDE(end = .); + + /* .heap section which is used for memory allocation */ + + .heap (NOLOAD) : + { + __heap_start__ = .; + *(.heap) + . = MAX(__heap_start__ + _HEAPSIZE , .); + } >DATA + __heap_end__ = __heap_start__ + SIZEOF(.heap); + + /* .stack section - user mode stack */ + + .stack (__heap_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_start__ = .; + *(.stack) + . = MAX(__stack_start__ + _STACKSIZE , .); + } >DATA + __stack_end__ = __stack_start__ + SIZEOF(.stack); + + /* .stack_irq section */ + + .stack_irq (__stack_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_irq_start__ = .; + *(.stack_irq) + . = MAX(__stack_irq_start__ + _STACKSIZE_IRQ , .); + } >DATA + __stack_irq_end__ = __stack_irq_start__ + SIZEOF(.stack_irq); + + /* .stack_fiq section */ + + .stack_fiq (__stack_irq_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_fiq_start__ = .; + *(.stack_fiq) + . = MAX(__stack_fiq_start__ + _STACKSIZE_FIQ , .); + } >DATA + __stack_fiq_end__ = __stack_fiq_start__ + SIZEOF(.stack_fiq); + + /* .stack_svc section */ + + .stack_svc (__stack_fiq_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_svc_start__ = .; + *(.stack_svc) + . = MAX(__stack_svc_start__ + _STACKSIZE_SVC , .); + } >DATA + __stack_svc_end__ = __stack_svc_start__ + SIZEOF(.stack_svc); + + /* .stack_abt section */ + + .stack_abt (__stack_svc_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_abt_start__ = .; + *(.stack_abt) + . = MAX(__stack_abt_start__ + _STACKSIZE_ABT , .); + } >DATA + __stack_abt_end__ = __stack_abt_start__ + SIZEOF(.stack_abt); + + /* .stack_und section */ + + .stack_und (__stack_abt_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_und_start__ = .; + *(.stack_und) + . = MAX(__stack_und_start__ + _STACKSIZE_UND , .); + } >DATA + __stack_und_end__ = __stack_und_start__ + SIZEOF(.stack_und); + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} + diff --git a/testing/examples/STR912Test/prj/str912_rom.ld b/testing/examples/STR912Test/prj/str912_rom.ld index 8cbb7f75..804149d2 100644 --- a/testing/examples/STR912Test/prj/str912_rom.ld +++ b/testing/examples/STR912Test/prj/str912_rom.ld @@ -1,249 +1,249 @@ -/*********************************************************************************** -* Copyright 2005 Anglia Design -* This demo code and associated components are provided as is and has no warranty, -* implied or otherwise. You are free to use/modify any of the provided -* code at your own risk in your applications with the expressed limitation -* of liability (see below) -* -* LIMITATION OF LIABILITY: ANGLIA OR ANGLIA DESIGNS SHALL NOT BE LIABLE FOR ANY -* LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA, INTERRUPTION OF BUSINESS, NOR FOR -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER -* THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* -* Author : Spencer Oliver -* Web : www.anglia-designs.com -* -***********************************************************************************/ - -/* Stack Sizes */ - - _STACKSIZE = 1024; - _STACKSIZE_IRQ = 256; - _STACKSIZE_FIQ = 0; - _STACKSIZE_SVC = 1024; - _STACKSIZE_ABT = 0; - _STACKSIZE_UND = 0; - _HEAPSIZE = 1024; - -/* Memory Definitions */ - -MEMORY -{ - CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000 - DATA (rw) : ORIGIN = 0x04000000, LENGTH = 0x00018000 -} - -/* Section Definitions */ - -SECTIONS -{ - /* first section is .text which is used for code */ - - .text : - { - CREATE_OBJECT_SYMBOLS - KEEP(*(.vectors)) - KEEP(*(.init)) - *(.text .text.*) - *(.gnu.linkonce.t.*) - *(.glue_7t) *(.glue_7) *(.vfp11_veneer) - KEEP(*(.fini)) - *(.gcc_except_table) - } >CODE =0 - . = ALIGN(4); - - /* .ctors .dtors are used for c++ constructors/destructors */ - - .ctors : - { - PROVIDE(__ctors_start__ = .); - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - PROVIDE(__ctors_end__ = .); - } >CODE - - .dtors : - { - PROVIDE(__dtors_start__ = .); - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - PROVIDE(__dtors_end__ = .); - } >CODE - - /* .rodata section which is used for read-only data (constants) */ - - .rodata : - { - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - } >CODE - . = ALIGN(4); - - .init_array : - { - *(.init) - *(.fini) - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(.fini_array)) - KEEP (*(SORT(.fini_array.*))) - PROVIDE_HIDDEN (__fini_array_end = .); - } >CODE - - . = ALIGN(4); - - /* .ARM.exidx is sorted, so has to go in its own output section. */ - __exidx_start = .; - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } >CODE - __exidx_end = .; - - _etext = .; - PROVIDE (etext = .); - - /* .data section which is used for initialized data */ - - .data : AT (_etext) - { - __data_start = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - . = ALIGN(4); - *(.fastrun .fastrun.*) - } >DATA - . = ALIGN(4); - - _edata = .; - PROVIDE (edata = .); - - /* .bss section which is used for uninitialized data */ - - .bss : - { - __bss_start = .; - __bss_start__ = .; - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >DATA - . = ALIGN(4); - __bss_end__ = .; - - _end = .; - PROVIDE(end = .); - - /* .heap section which is used for memory allocation */ - - .heap (NOLOAD) : - { - __heap_start__ = .; - *(.heap) - . = MAX(__heap_start__ + _HEAPSIZE , .); - } >DATA - __heap_end__ = __heap_start__ + SIZEOF(.heap); - - /* .stack section - user mode stack */ - - .stack (__heap_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_start__ = .; - *(.stack) - . = MAX(__stack_start__ + _STACKSIZE , .); - } >DATA - __stack_end__ = __stack_start__ + SIZEOF(.stack); - - /* .stack_irq section */ - - .stack_irq (__stack_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_irq_start__ = .; - *(.stack_irq) - . = MAX(__stack_irq_start__ + _STACKSIZE_IRQ , .); - } >DATA - __stack_irq_end__ = __stack_irq_start__ + SIZEOF(.stack_irq); - - /* .stack_fiq section */ - - .stack_fiq (__stack_irq_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_fiq_start__ = .; - *(.stack_fiq) - . = MAX(__stack_fiq_start__ + _STACKSIZE_FIQ , .); - } >DATA - __stack_fiq_end__ = __stack_fiq_start__ + SIZEOF(.stack_fiq); - - /* .stack_svc section */ - - .stack_svc (__stack_fiq_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_svc_start__ = .; - *(.stack_svc) - . = MAX(__stack_svc_start__ + _STACKSIZE_SVC , .); - } >DATA - __stack_svc_end__ = __stack_svc_start__ + SIZEOF(.stack_svc); - - /* .stack_abt section */ - - .stack_abt (__stack_svc_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_abt_start__ = .; - *(.stack_abt) - . = MAX(__stack_abt_start__ + _STACKSIZE_ABT , .); - } >DATA - __stack_abt_end__ = __stack_abt_start__ + SIZEOF(.stack_abt); - - /* .stack_und section */ - - .stack_und (__stack_abt_end__ + 3) / 4 * 4 (NOLOAD) : - { - __stack_und_start__ = .; - *(.stack_und) - . = MAX(__stack_und_start__ + _STACKSIZE_UND , .); - } >DATA - __stack_und_end__ = __stack_und_start__ + SIZEOF(.stack_und); - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} - +/*********************************************************************************** +* Copyright 2005 Anglia Design +* This demo code and associated components are provided as is and has no warranty, +* implied or otherwise. You are free to use/modify any of the provided +* code at your own risk in your applications with the expressed limitation +* of liability (see below) +* +* LIMITATION OF LIABILITY: ANGLIA OR ANGLIA DESIGNS SHALL NOT BE LIABLE FOR ANY +* LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA, INTERRUPTION OF BUSINESS, NOR FOR +* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER +* THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* Author : Spencer Oliver +* Web : www.anglia-designs.com +* +***********************************************************************************/ + +/* Stack Sizes */ + + _STACKSIZE = 1024; + _STACKSIZE_IRQ = 256; + _STACKSIZE_FIQ = 0; + _STACKSIZE_SVC = 1024; + _STACKSIZE_ABT = 0; + _STACKSIZE_UND = 0; + _HEAPSIZE = 1024; + +/* Memory Definitions */ + +MEMORY +{ + CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000 + DATA (rw) : ORIGIN = 0x04000000, LENGTH = 0x00018000 +} + +/* Section Definitions */ + +SECTIONS +{ + /* first section is .text which is used for code */ + + .text : + { + CREATE_OBJECT_SYMBOLS + KEEP(*(.vectors)) + KEEP(*(.init)) + *(.text .text.*) + *(.gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + KEEP(*(.fini)) + *(.gcc_except_table) + } >CODE =0 + . = ALIGN(4); + + /* .ctors .dtors are used for c++ constructors/destructors */ + + .ctors : + { + PROVIDE(__ctors_start__ = .); + KEEP(*(SORT(.ctors.*))) + KEEP(*(.ctors)) + PROVIDE(__ctors_end__ = .); + } >CODE + + .dtors : + { + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + } >CODE + + /* .rodata section which is used for read-only data (constants) */ + + .rodata : + { + *(.rodata .rodata.*) + *(.gnu.linkonce.r.*) + } >CODE + . = ALIGN(4); + + .init_array : + { + *(.init) + *(.fini) + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >CODE + + . = ALIGN(4); + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >CODE + __exidx_end = .; + + _etext = .; + PROVIDE (etext = .); + + /* .data section which is used for initialized data */ + + .data : AT (_etext) + { + __data_start = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + . = ALIGN(4); + *(.fastrun .fastrun.*) + } >DATA + . = ALIGN(4); + + _edata = .; + PROVIDE (edata = .); + + /* .bss section which is used for uninitialized data */ + + .bss : + { + __bss_start = .; + __bss_start__ = .; + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(4); + } >DATA + . = ALIGN(4); + __bss_end__ = .; + + _end = .; + PROVIDE(end = .); + + /* .heap section which is used for memory allocation */ + + .heap (NOLOAD) : + { + __heap_start__ = .; + *(.heap) + . = MAX(__heap_start__ + _HEAPSIZE , .); + } >DATA + __heap_end__ = __heap_start__ + SIZEOF(.heap); + + /* .stack section - user mode stack */ + + .stack (__heap_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_start__ = .; + *(.stack) + . = MAX(__stack_start__ + _STACKSIZE , .); + } >DATA + __stack_end__ = __stack_start__ + SIZEOF(.stack); + + /* .stack_irq section */ + + .stack_irq (__stack_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_irq_start__ = .; + *(.stack_irq) + . = MAX(__stack_irq_start__ + _STACKSIZE_IRQ , .); + } >DATA + __stack_irq_end__ = __stack_irq_start__ + SIZEOF(.stack_irq); + + /* .stack_fiq section */ + + .stack_fiq (__stack_irq_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_fiq_start__ = .; + *(.stack_fiq) + . = MAX(__stack_fiq_start__ + _STACKSIZE_FIQ , .); + } >DATA + __stack_fiq_end__ = __stack_fiq_start__ + SIZEOF(.stack_fiq); + + /* .stack_svc section */ + + .stack_svc (__stack_fiq_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_svc_start__ = .; + *(.stack_svc) + . = MAX(__stack_svc_start__ + _STACKSIZE_SVC , .); + } >DATA + __stack_svc_end__ = __stack_svc_start__ + SIZEOF(.stack_svc); + + /* .stack_abt section */ + + .stack_abt (__stack_svc_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_abt_start__ = .; + *(.stack_abt) + . = MAX(__stack_abt_start__ + _STACKSIZE_ABT , .); + } >DATA + __stack_abt_end__ = __stack_abt_start__ + SIZEOF(.stack_abt); + + /* .stack_und section */ + + .stack_und (__stack_abt_end__ + 3) / 4 * 4 (NOLOAD) : + { + __stack_und_start__ = .; + *(.stack_und) + . = MAX(__stack_und_start__ + _STACKSIZE_UND , .); + } >DATA + __stack_und_end__ = __stack_und_start__ + SIZEOF(.stack_und); + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} + -- cgit v1.2.3