Noob Hello World sparc/leon2 console not working

Ralph Preston rpreston at mitre.org
Tue Jan 10 15:58:09 UTC 2006


Hello,

The board has 512Kbytes RAM.  The MCFG2 register has the setting 0x00000c6e
and the stack pointer is set to 0x4007fff0.

As I run the program the stack pointer doesn't change.  I've stepped through
a number of "save" instructions similar to: "save %sp, -112, %sp".  The
value from the grmon command "stack" should change here, shouldn't it?

If I try to manually change the value of the stack pointer to 0x4007ffe0,
when I check the value it shows 0x4007ff00.

Any thoughts what's going on?

Jiri Gaisler -
> 
> Check the amount of memory you have on the board, and the
> stack pointer as set by grmon. You need around 200 Kbyte
> to run hello.exe.
> 
> Jiri.
> 
> Ralph Preston wrote:
>> Hello,
>> 
>> I just installed RTEMS 4.6.5 and am trying to run the example Hello
>> World on a Sparc/Leon2 board.  The problem is there is no console
>> output, the program hangs.  Is there a compile option/define/or anything
>> I need to set in order to get console output?  The makefile includes
>> "Managers=io".
>> 
>> Following is the output from the compile and gdb.
>> 
>> % make
>> test -d o-optimize || mkdir o-optimize
>> sparc-rtems-gcc --pipe -B/opt/rtems/sparc-rtems/leon2/lib/ -specs
>> bsp_specs -qrtems   -g -Wall  -O2 -g     -mcpu=cypress -msoft-float
>> -c   -o o-optimize/test.o test.c
>> sparc-rtems-gcc --pipe -B/opt/rtems/sparc-rtems/leon2/lib/ -specs
>> bsp_specs -qrtems   -g -Wall  -O2 -g     -mcpu=cypress -msoft-float
>> -o o-optimize/hello.exe
>> o-optimize/test.o   /opt/rtems/sparc-rtems/leon2/lib/no-dpmem.rel
>> /opt/rtems/sparc-rtems/leon2/lib/no-event.rel /opt/rtems/sparc-rt
>> ems/leon2/lib/no-msg.rel /opt/rtems/sparc-rtems/leon2/lib/no-mp.r
>> el /opt/rtems/sparc-rtems/leon2/lib/no-part.rel /opt/rtems/sparc-
>> rtems/leon2/lib/no-signal.rel /opt/rtems/sparc-rtems/leon2/lib/no-
>> timer.rel /opt/rtems/sparc-rtems/leon2/lib/no-rtmon.rel
>> sparc-rtems-nm -g -n o-optimize/hello.exe > o-optimize/hello.num
>> sparc-rtems-size o-optimize/hello.exe
>>    text    data     bss     dec     hex filename
>>   92368    2868    4956  100192   18760 o-optimize/hello.exe
>> 
>> % sparc-rtems-objcopy -O srec o-optimize/hello.exe o-optimize/hello.srec
>> 
>> I then run GRMON, target it with gdb and load the srec.  The program
>> hangs, so I kill it and produce this output:
>> 
>> Program received signal SIGINT, Interrupt.
>> 0x40002cdc in _Internal_error_Occurred (the_source=4210657,
>> is_internal=0,
>>     the_error=5)
>> at ../../../../../../rtems-4.6.5/cpukit/score/src/interr.c:57
>> 57        _CPU_Fatal_halt( the_error );
>> (gdb) bt
>> #0  0x40002cdc in _Internal_error_Occurred (the_source=4210657,
>> is_internal=0,
>>     the_error=5)
>> at ../../../../../../rtems-4.6.5/cpukit/score/src/interr.c:57
>> #1  0x40001cac in console_initialize (major=0, minor=0, arg=0x0)
>> 
>> at 
>> ../../../../../../../../../rtems-4.6.5/c/src/lib/libbsp/sparc/leon2/console/c
>> onsole.c:328
>> #2  0x400031c4 in rtems_io_initialize (major=0, minor=0, argument=0x0)
>>     at ../../../../../../rtems-4.6.5/cpukit/sapi/src/io.c:268
>> #3  0x40002fb4 in _IO_Initialize_all_drivers ()
>>     at ../../../../../../rtems-4.6.5/cpukit/sapi/src/io.c:97
>> #4  0x40002ae4 in rtems_initialize_executive_early (
>>     configuration_table=0x400174ac, cpu_table=0x40017484)
>>     at ../../../../../../rtems-4.6.5/cpukit/sapi/src/exinit.c:263
>> #5  0x40001ac0 in boot_card (argc=0, argv=0x0, envp=0x0)
>> 
>> at 
>> ../../../../../../../../../rtems-4.6.5/c/src/lib/libbsp/shared/bootcard.c:115
>> #6  0x400010dc in zerobss ()
>> 
>> I've also used GRMON to step through the assembly and it looks like the
>> offending function is rtems_io_register_name() -> mknod(), but that's as
>> far as I've gotten, and I figured there must be something simple I'm
>> missing.  Any assistance would be greatly appreciated.
 

Ralph A. Preston
The MITRE Corporation
202 Burlington Road MS E095
Bedford, MA 01730
Phone: 781-271-7914   Fax: 781-271-8915   Cell: 617-335-2226
http://www.mitre.org




More information about the users mailing list