Grzegorz Reszka wrote:
>Hello,
>
> Thanks for link to the lpc-ARM-book_srn.pdf. I read it and my knowledge about LPC uControllers now is better ;). Actually, I`m using startup.s and linker.ld from KEIL uVision. I was making some tests with WinARM crt0.s and LPC2138-ROM.ld files and using them is possible but only when I change STACK_SIZE from 0x400 to 0x000, So it is quite strange - size of stack equals zero???? What do you think about it?
>
> By the way, can you send me your *.s and *.ld files? It doesn`t matter that they are commented in portuguese. I will compare them with my files and I wil try to understand them. Eventually I will use to do it some translator or dictionary ;).
>
>
Your linker script does look odd, this is mine from a gcc-4.0.2 Thumb
dev environ (binutils-2.16.1, gcc-4.0.2):
=============== begin LPC2138ROM.ld ====================
/***********************************************************************/
/* */
/* ROM.ld: Linker Script File */
/* */
/***********************************************************************/
SEARCH_DIR( ../libs )
SEARCH_DIR( ./)
ENTRY(_boot)
STACK_SIZE = 0x800;
/* Memory Definitions */
MEMORY
{
ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000
RAM (rw) : ORIGIN = 0x40000000, LENGTH = 0x00008000
}
/* Section Definitions */
SECTIONS
{
/* first section is .text which is used for code */
.text :
{
*crt0.o (.text) /* Startup code */
*(.text) /* remaining code */
*(.rodata) /* read-only data (constants) */
*(.rodata*)
*(.glue_7)
*(.glue_7t)
} > ROM
. = ALIGN(4);
_etext = . ;
PROVIDE (etext = .);
/* .data section which is used for initialized data */
.data : AT (_etext)
{
_data = .;
*(.data)
} > RAM
. = ALIGN(4);
_edata = . ;
PROVIDE (edata = .);
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
__bss_start = . ;
__bss_start__ = . ;
*(.bss)
*(COMMON)
. = ALIGN(4);
} > RAM
. = ALIGN(4);
__bss_end__ = . ;
PROVIDE (__bss_end = .);
.stack ALIGN(256) :
{
. += STACK_SIZE;
PROVIDE (_stack = .);
} > RAM
_end = . ;
PROVIDE (end = .);
/* 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) }
}
/* Libraries to link against. */
INPUT( -lc -lstdc -lgcc );
==================== snip ==========================
I use the above script to create the elf image, then this image is then
used to create the binary image that goes into flash. If you are
running cygwin, it would be a good idea to install the manpages and run
an 'info ld' to see what is in these linker scripts. The ld info pages
have a tutorial guiding you through just what is in these scripts.
Please note, the information regarding debugging information is strictly
for where to place this into the elf file. It is not used in the
binary. That debug info is used for Insight (gdb + gui).
I don't run cygwin (linux here) so I don't know what the details of
getting the manpages installed would be.
Regards,
TomW
--
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------Message
Re: [lpc2000] stack, crt0.S and *.ld files in WinARM
2006-03-06 by Tom Walsh
Attachments
- No local attachments were found for this message.