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