[ECOS] About adding new platform

Iztok Zupet iz@vsr.si
Mon Jun 10 08:57:00 GMT 2002


Hi:

 First You must add a new directory into the packages/hal source tree. Your 
packages/hal/xxx should be populated with at least cdl, src and include.

in the cdl directory there shoul be the basic cdl file describing your target.
In that particular file you must have the option from example below.
You just replace the GLOBAL COMMAND PREFIX with Your xxx-elf toolset prefix

    cdl_component CYGBLD_GLOBAL_OPTIONS {
        display "Global build options"
        flavor  none
        parent  CYGPKG_NONE
        description   "
	    Global build options including control over
	    compiler flags, linker flags and choice of toolchain."


        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
            display "Global command prefix"
            flavor  data
            no_define
            default_value { "i386-elf" }
            description "
                This option specifies the command prefix used when
                invoking the build tools. If your host operating system
                is Linux you can set this to empty to use your native tools.
                If so, your native gcc must be gcc-2.95.2 or later, and
                \"ld -v\" must report a version more recent than 2.9.1."
        }

        cdl_option CYGBLD_GLOBAL_CFLAGS {
            display "Global compiler flags"
            flavor  data
            no_define
            default_value { "-Wall -Wpointer-arith -Wstrict-prototypes 
-Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections 
-fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
            description   "
                This option controls the global compiler flags which
                are used to compile all packages by
                default. Individual packages may define
                options which override these global flags."
        }

        cdl_option CYGBLD_GLOBAL_LDFLAGS {
            display "Global linker flags"
            flavor  data
            no_define
            default_value { "-g -nostdlib -Wl,--gc-sections -Wl,-static" }
            description   "
                This option controls the global linker flags. Individual
                packages may define options which override these global 
flags."
        }

        cdl_option CYGBLD_BUILD_GDB_STUBS {
            display "Build GDB stub loader image"
            default_value 0
            requires { CYG_HAL_STARTUP == "FLOPPY" }
            requires CYGSEM_HAL_ROM_MONITOR
            requires CYGBLD_BUILD_COMMON_GDB_STUBS
            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
            requires ! CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
            requires ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
            requires ! CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
            no_define
            description "
                This option enables the building of the GDB stubs for the
                board. The common HAL controls takes care of most of the
                build process, but the final conversion from ELF image to
                binary data is handled by the platform CDL, allowing
                relocation of the data if necessary."

            make -priority 320 {
                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
                $(OBJCOPY) -O binary $< $@
            }
        }
    }

Sincerily
iz


On Monday 10 June 2002 17:42, jameshq wrote:
> Thanks for your reply.
>   What I want to do is to use another set of gcc development tools (for
> example If I configured another tools set  xxx-elf-gcc, xxx-elf-g++ .... I
> want to use the new tool set as the development when I build the library)
> for the new platform that's why I want to add a new platform.
>
> Thanks again.
>
> best regards!
>
> james
>
> -----Original Message-----
> From: Andrew Lunn [mailto:andrew.lunn@ascom.ch]
> Sent: 10 June 2002 16:33
> To: jameshq
> Cc: ecos-discuss@sources.redhat.com
> Subject: Re: [ECOS] About adding new platform
>
> On Mon, Jun 10, 2002 at 04:20:34PM +0100, jameshq wrote:
> > Hi:
> >     I try to use ecos configuration tool v2.08 and I found it is not
>
> allowed
>
> > to add a new platform via the menu: Tools -> Platforms -> Add. the OK
>
> button
>
> > can be pressed all the time. Is that right? and if so how can I add a new
> > platform into ecos? Thanks a lot!
> >
> > james
>
> Do you mean you have written a new HAL and you now what the GUI to be
> able to use it in a configuration?
>
> I've never actually done this, but i think you need to edit the
> ecos.db in the packages directory. You see entries like
>
>
> target ebsa285 {
>         alias { "Intel EBSA285 StrongARM board" ebsa }
>         packages { CYGPKG_HAL_ARM
>                    CYGPKG_HAL_ARM_EBSA285
>                    CYGPKG_IO_PCI
>                    CYGPKG_DEVS_ETH_ARM_EBSA285
>                    CYGPKG_DEVS_ETH_INTEL_I82559
>                    CYGPKG_IO_SERIAL_ARM_EBSA285
>                    CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285
>                    CYGPKG_DEVS_FLASH_EBSA285
>         }
>         description "
>         The ebsa285 target provides the packages needed to run
>         eCos on an Intel EBSA285 StrongARM board."
> }
>
> I think you need to add a new one for your platform.
>
>   Andrew


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list