This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Fwd: Re: Memory segments
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Federico Dios Vila <fdiosv at yahoo dot es>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Sun, 23 Jan 2005 17:57:57 +0100
- Subject: Re: [ECOS] Fwd: Re: [ECOS] Memory segments
- References: <20050123103001.11500.qmail@web41706.mail.yahoo.com>
> This is my memory layout from my ecc file.
>
> I guess I have misconfigured this in some way and
> that's my problem. Both .bss and .data sections are
> configured to be in the int_sram, but I really get
> confused with the starting address param. The data
> section starts in 0x1000 while the bss section
> starts in ALIGN(0x4). I'm not sure what that value
> means.....
>
> I'm completely lost.
You are not the only one. I've never seen a memory configuration like
this before. Who ever did the port has done something different than
usual.
Anyway ALIGN(0x4) is a linker directive. You have find out more about
this in the ld documentation.
http://www.delorie.com/gnu/docs/binutils/ld_toc.html
ALIGN(0x4) will mean follow on from the previous section, but align
the start of the section on a 4byte boundary.
I suggest you talk to who ever give you the HAL. Since this is not a
standard HAL for eCos it is hard for me to help you.
Andrew
> > # <
> > # Memory layout
> > #
> > cdl_component CYGHWR_MEMORY_LAYOUT {
> > # Calculated value: "mlt_arm_stepp"
> > # Flavor: data
> > # Current_value: mlt_arm_stepp
> > };
> >
> > # >
> > # Start address of the internal ram, usable by the
> > application
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_INT_RAM_APPL_ORIGIN
> > {
> > # Flavor: data
> > # No user value, uncomment the following line to
> > provide one.
> > # user_value "ALIGN (0x4)"
> > # value_source default
> > # Default value: (CYG_HAL_STARTUP == "ROM") ?
> > "ALIGN (0x4)" : 0x6900
> > # CYG_HAL_STARTUP == ROM
> > # --> "ALIGN (0x4)"
> > };
> >
> > # Memory segment for .text section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_TEXT_MEM {
> > # Flavor: data
> > # No user value, uncomment the following line to
> > provide one.
> > # user_value ext_flash
> > # value_source default
> > # Default value: CYGPKG_REDBOOT ?
> > (CYG_HAL_STARTUP == "ROM") ? "ext_flash" :
> > "ext_sram"
> > : (CYG_HAL_STARTUP == "ROM") ? "ext_flash" :
> > "ext_sram"
> > # CYGPKG_REDBOOT (unknown) == 0
> > # CYG_HAL_STARTUP == ROM
> > # CYG_HAL_STARTUP == ROM
> > # --> ext_flash
> > # Legal values: "int_sram" "ext_flash"
> > "ext_sram"
> > (CYGHWR_HAL_ARM_STEPP_VARIANT == "S2SDK") ?
> > "ext_slow_sram" : ""
> > # CYGHWR_HAL_ARM_STEPP_VARIANT == STEPP
> > };
> >
> > # Start address for .text section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_TEXT_ORIGIN {
> > # Flavor: data
> > # No user value, uncomment the following line to
> > provide one.
> > # user_value 0x40000000
> > # value_source default
> > # Default value: CYGPKG_REDBOOT ?
> > (CYG_HAL_STARTUP == "ROM") ?
> > (CYG_HAL_STARTUP_MEMORYAREA == "0") ? 0x40000000 :
> > 0x40040000 : 0x41000000 : (CYG_HAL_STARTUP ==
> > "ROM")
> > ? (CYG_HAL_STARTUP_MEMORYAREA == "0") ? 0x40000000
> > :
> > 0x40040000 : 0x41000000
> > # CYGPKG_REDBOOT (unknown) == 0
> > # CYG_HAL_STARTUP == ROM
> > # CYG_HAL_STARTUP_MEMORYAREA == 0
> > # CYG_HAL_STARTUP == ROM
> > # CYG_HAL_STARTUP_MEMORYAREA == 0
> > # --> 0x40000000
> > };
> >
> > # Memory segment for .data section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_DATA_MEM {
> > # Flavor: data
> > user_value int_sram
> > # value_source user
> > # Default value: CYGPKG_REDBOOT ?
> > (CYG_HAL_STARTUP == "ROM") ? "int_sram" :
> > "ext_sram"
> > : "ext_sram"
> > # CYGPKG_REDBOOT (unknown) == 0
> > # CYG_HAL_STARTUP == ROM
> > # --> ext_sram
> > # Legal values: "int_sram" "ext_sram"
> > (CYGHWR_HAL_ARM_STEPP_VARIANT == "S2SDK") ?
> > "ext_slow_sram" : ""
> > # CYGHWR_HAL_ARM_STEPP_VARIANT == STEPP
> > };
> >
> > # Start address for .data section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_DATA_ORIGIN {
> > # Flavor: data
> > user_value 0x1000
> > # value_source user
> > # Default value: CYGPKG_REDBOOT ?
> > (CYG_HAL_STARTUP == "ROM") ? 0x1000 : "ALIGN (0x4)"
> >
> > : (CYG_HAL_STARTUP == "ROM") ? 0x41000000 : "ALIGN
> > (0x4)"
> > # CYGPKG_REDBOOT (unknown) == 0
> > # CYG_HAL_STARTUP == ROM
> > # CYG_HAL_STARTUP == ROM
> > # --> 0x41000000
> > };
> >
> > # Memory segment for .bss section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_BSS_MEM {
> > # Flavor: data
> > user_value int_sram
> > # value_source user
> > # Default value: CYGPKG_REDBOOT ?
> > (CYG_HAL_STARTUP == "ROM") ? "int_sram" :
> > "ext_sram"
> > : "ext_sram"
> > # CYGPKG_REDBOOT (unknown) == 0
> > # CYG_HAL_STARTUP == ROM
> > # --> ext_sram
> > # Legal values: "int_sram" "ext_sram"
> > (CYGHWR_HAL_ARM_STEPP_VARIANT == "S2SDK") ?
> > "ext_slow_sram" : ""
> > # CYGHWR_HAL_ARM_STEPP_VARIANT == STEPP
> > };
> >
> > # Start address for .bss section
> > #
> > #
> > cdl_option CYGHWR_HAL_ARM_STEPP_BSS_ORIGIN {
> > # Flavor: data
> > user_value "ALIGN (0x4)"
> > # value_source user
> > # Default value: "ALIGN (0x4)"
> > };
> >
> > # Memory layout linker script fragment
> > #
> > cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
> > # Calculated value:
> > "<pkgconf/mlt_arm_stepp.ldi>"
> >
> > # Flavor: data
> > # Current_value: <pkgconf/mlt_arm_stepp.ldi>
> > };
> >
> > # Memory layout header file
> > #
> > cdl_option CYGHWR_MEMORY_LAYOUT_H {
> > # Calculated value: "<pkgconf/mlt_arm_stepp.h>"
> >
> > # Flavor: data
> > # Current_value: <pkgconf/mlt_arm_stepp.h>
> > };
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss