TR : Hello world with leon2 problem
Arquer Stephane
stephane.arquer at c-s.cnes.fr
Thu Jan 24 14:10:12 UTC 2008
Hello,
I'm trying to execute the hello world example compiled with rtems 4.7.1, Bsp leon2 on an AX2000 target with a LEON2-LGPL .
The following error is catched by grmon . For the moment I don't know where the problem is.
As I explained in my previous mail, the same program compiled with rtems v4.6.6 works.
Thanks ahead for your help.
Sa.
grlib> lo o-optimize/hello.exe
section: .text at 0x40060000, size 81520 bytes
section: .jcr at 0x40073e70, size 4 bytes
section: .data at 0x40073e78, size 3480 bytes
total size: 85004 bytes (89.0 kbit/s)
read 657 symbols
entry point: 0x40060000
grlib> run
IU in error mode (tt = 0x01)
a7580000 00000000 unimp
grlib>
> -----Message d'origine-----
> De : Arquer Stephane
> Envoyé : mardi 22 janvier 2008 16:47
> À : rtems-users at rtems.com
> Objet : Hello world with leon2 problem
>
> Hi,
>
> I'm trying to compile a simple hello_world.c example with rtems v4.7.1 using the BSP leon2.
> The same example compiled with rtems v4.6.6 runs on the target, but when I compile it with rtems v4.7.1 an error occurs just after the "go".
> I don't have grmon for the moment, so I don't know anything else about the error.
>
> Is there something else to configure regarding the previous rtems version ?
>
> Thanks ahead for any help.
>
> Sa.
>
>
> I use the following linkcmds file:
> /* linkcmds
> *
> * linkcmds,v 1.4 2003/01/20 20:19:35 joel Exp
> */
>
> OUTPUT_ARCH(sparc)
> __DYNAMIC = 0;
>
> /*
> * The memory map looks like this:
> * +--------------------+ <- low memory
> * | .text |
> * | etext |
> * | ctor list | the ctor and dtor lists are for
> * | dtor list | C++ support
> * | _endtext |
> * +--------------------+
> * | .data | initialized data goes here
> * | _sdata |
> * | _edata |
> * +--------------------+
> * | .bss |
> * | __bss_start | start of bss, cleared by crt0
> * | _end | start of heap, used by sbrk()
> * +--------------------+
> * | heap space |
> * | _ENDHEAP |
> * | stack space |
> * | __stack | top of stack
> * +--------------------+ <- high memory
> */
>
>
> /*
> * User modifiable values:
> *
> * _CLOCK_SPEED in Mhz (used to program the counter/timers)
> *
> * _PROM_SIZE size of PROM (permissible values are 128K, 256K,
> * 512K, 1M, 2M, 4M, 8M and 16M)
> * _RAM_SIZE size of RAM (permissible values are 256K, 512K,
> * 1M, 2M, 4M, 8M, 16M, and 32M)
> *
> */
>
> /* Default values, can be overridden */
>
> /*_CLOCK_SPEED = 8;*/ /* carte inicore */
> /*_CLOCK_SPEED = 5;*/ /* carte bertin */
> _CLOCK_SPEED = 20;
>
> _PROM_SIZE = 4M;
> _RAM_SIZE = 2M;
>
> /* _RAM_START = 0x60000000;*/
> /*_RAM_START = 0x40020000;*/
> _RAM_START = 0x40060000;
> _RAM_END = _RAM_START + _RAM_SIZE;
>
> _PROM_START = 0x00000000;
> _PROM_END = _PROM_START + _PROM_SIZE;
>
> /*
> * Alternate names without leading _.
> */
>
> PROM_START = _PROM_START;
> PROM_SIZE = _PROM_SIZE;
> PROM_END = _PROM_END;
>
> RAM_START = _RAM_START;
> RAM_SIZE = _RAM_SIZE;
> RAM_END = _RAM_END;
>
> /*
> * Base address of the on-CPU peripherals
> */
>
> _LEON_REG = 0x80000000;
> LEON_REG = 0x80000000;
>
> /* these are the maximum values */
>
> MEMORY
> {
> rom : ORIGIN = 0x00000000, LENGTH = 256M
> /* ram : ORIGIN = 0x60000000, LENGTH = 1024M */
> ram : ORIGIN = 0x40060000, LENGTH = 1024M
> }
>
> /*
> * stick everything in ram (of course)
> */
> SECTIONS
> {
> .text :
> {
> CREATE_OBJECT_SYMBOLS
> text_start = .;
> _text_start = .;
> *(.text)
> . = ALIGN (16);
>
> /*
> * Special FreeBSD sysctl sections.
> */
> . = ALIGN (16);
> __start_set_sysctl_set = .;
> *(set_sysctl_*);
> __stop_set_sysctl_set = ABSOLUTE(.);>
> *(set_domain_*);
> *(set_pseudo_*);
>
> *(.eh_frame)
> . = ALIGN (16);
>
> *(.gnu.linkonce.t*)
>
> /*
> * C++ constructors
> */
> __CTOR_LIST__ = .;
> LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
> *(.ctors)
> LONG(0)
> __CTOR_END__ = .;
> __DTOR_LIST__ = .;
> LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
> *(.dtors)
> LONG(0)
> __DTOR_END__ = .;
>
> _rodata_start = . ;
> *(.rodata*)
> *(.gnu.linkonce.r*)
> _erodata = ALIGN( 0x10 ) ;
>
> etext = ALIGN(0x10);
> _etext = .;
> *(.init)
> *(.fini)
> *(.lit)
> *(.shdata)
> . = ALIGN (16);
> _endtext = .;
> } > ram
> .dynamic : { *(.dynamic) } >ram
> .jcr : { *(.jcr) } >ram
> .got : { *(.got) } >ram
> .plt : { *(.plt) } >ram
> .hash : { *(.hash) } >ram
> .dynrel : { *(.dynrel) } >ram
> .dynsym : { *(.dynsym) } >ram
> .dynstr : { *(.dynstr) } >ram
> .hash : { *(.hash) } >ram
> .data :
> {
> data_start = .;
> _data_start = .;
> _sdata = . ;
> *(.data)
> *(.gnu.linkonce.d*)
> *(.gcc_except_table)
> . = ALIGN(0x10);
> edata = .;
> _edata = .;
> } > ram
> .shbss :
> {
> *(.shbss)
> } > ram
> .bss :
> {
> __bss_start = ALIGN(0x8);
> _bss_start = .;
> bss_start = .;
> *(.bss)
> *(COMMON)
> end = .;
> _end = ALIGN(0x8);
> __end = ALIGN(0x8);
> } > ram
> .stab . (NOLOAD) :
> {
> [ .stab ]
> }
> .stabstr . (NOLOAD) :
> {
> [ .stabstr ]
> }
> }
>
>
More information about the users
mailing list