Hello Alan,

On 08/04/2020 17:48, Alan Cudmore wrote:
Regarding the LEON3: I am noticing something with the release that I
don't understand yet.

I am able to build and run a number of ARM BSPs including raspberrypi,
raspberrypi2, beagleboneblack, and xlinx_zynq_a9_qemu
When I build my application for the leon3, most of it appears to work,
but I have a task demo that crashes when I try to print a variable
that is on the task stack. ( task ID, similar to what ticker does )
I went back and ran a number of the testsuite programs on both my
patched QEMU and sparc-rtems5-sis with no problems.
I then cloned the latest rtems-examples git repository and built the
ticker examples using the (obsolete) Makefile. When built this way,
the ticker program crashes as well on both QEMU and SIS.

I'm trying to narrow down the differences by comparing the flags used
to build the testsuite in the build tree vs. my applications and the
rtems-examples repository.

Should I try building the examples with waf?

I was able to reproduce this issue. It seems to be a problem with the use of the FPU in a non-FP task:

Program received signal SIGTERM, Terminated.
syscall () at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/cpu/sparc/syscall.S:44 44              ta      0                       ! syscall 1, halt with %g1,%g2,%g3 info
(gdb) bt
#0  syscall () at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/cpu/sparc/syscall.S:44 #1  0x4000f888 in _User_extensions_Fatal_visitor (executing=0x0, arg=0x26, callouts=0x40020ca8 <_User_extensions_List+4>) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/src/userextiterate.c:131 #2  0x4001cdc4 in _CPU_Fatal_halt (source=10, source@entry=0, error=0, error@entry=38) at /home/EB/sebastian_h/src/rtems/c/src/lib/libbsp/sparc/leon3/../../../../../../bsps/sparc/leon3/start/bsp_fatal_halt.c:33 #3  0x4000fb68 in _Terminate (the_source=the_source@entry=INTERNAL_ERROR_CORE, the_error=38, the_error@entry=0) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/src/interr.c:44 #4  0x4000fb7c in _Internal_error (core_error=0, core_error@entry=INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/src/interr.c:52 #5  0x40001664 in bsp_spurious_handler (trap=260, isf=0x40028518) at /home/EB/sebastian_h/src/rtems/c/src/lib/libbsp/sparc/leon3/../../../../../../bsps/sparc/leon3/start/spurious.c:124 #6  0x40012390 in pil_fixed () at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/cpu/sparc/cpu_asm.S:592

It would be good to add support for the RTEMS Tester to the examples.

I was not able to build the examples with waf:

Waf: Entering directory `/home/EB/sebastian_h/src/rtems-examples/build/sparc-rtems5-leon3'
[ 1/14] Compiling hello/hello_world_c/test.c
[ 2/14] Compiling hello/posix_hello_world/test.c
[ 3/14] Compiling hello/both_hello/test.c
[ 4/14] Compiling hello/both_hello/test.c
[ 5/14] Compiling hello/both_hello/test.c
[ 6/14] Linking build/sparc-rtems5-leon3/hello/posix_hello_world/posix_hello.exe
[ 7/14] Linking build/sparc-rtems5-leon3/hello/hello_world_c/hello.exe
[ 8/14] Compiling build/sparc-rtems5-leon3/hello/both_hello/test.c.2.o
[ 9/14] Compiling build/sparc-rtems5-leon3/hello/both_hello/test.c.1.o
[10/14] Linking build/sparc-rtems5-leon3/hello/both_hello/both_hello.exe
[11/14] Compiling gdb/overwrite/rtems_init.c
[12/14] Compiling gdb/overwrite/overwrite.c
[13/14] Compiling filesystem/fat_ramdisk/rootfs/shell-init
[14/14] Linking build/sparc-rtems5-leon3/gdb/overwrite/overwrite.exe
[15/15] Compiling build/sparc-rtems5-leon3/filesystem/fat_ramdisk/rootfs/shell-init [16/16] Compiling build/sparc-rtems5-leon3/filesystem/fat_ramdisk/fs-root.tar [17/29] Compiling build/sparc-rtems5-leon3/filesystem/fat_ramdisk/fs-root-tar.c
[18/29] Compiling filesystem/fat_ramdisk/init.c
[19/29] Compiling build/sparc-rtems5-leon3/filesystem/fat_ramdisk/fs-root-tar.c
[20/29] Compiling filesystem/fat_ramdisk/init.c
[21/29] Compiling classic_api/classic_signal/test.c
[22/29] Compiling classic_api/triple_period/tasks.c
Waf: Leaving directory `/home/EB/sebastian_h/src/rtems-examples/build/sparc-rtems5-leon3'
Build failed
Traceback (most recent call last):
  File "/home/EB/sebastian_h/src/rtems-examples/.waf-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Task.py", line 190, in process
    self.post_run()
  File "/home/EB/sebastian_h/src/rtems-examples/rtems_waf/gccdeps.py", line 144, in post_run
    raise ValueError('could not find %r for %r' % (x, self))
ValueError: could not find ['filesystem', 'fat_ramdisk', 'fs-root-tar.h'] for
        {task 140228625202304: c init.c -> init.c.6.o}

Traceback (most recent call last):
  File "/home/EB/sebastian_h/src/rtems-examples/.waf-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Task.py", line 190, in process
    self.post_run()
  File "/home/EB/sebastian_h/src/rtems-examples/rtems_waf/gccdeps.py", line 144, in post_run
    raise ValueError('could not find %r for %r' % (x, self))
ValueError: could not find ['filesystem', 'fat_ramdisk', 'fs-root-tar.h'] for
        {task 140228625202904: c init.c -> init.c.5.o}

This used to work some days ago. Maybe commit 341747b0a03ffce9082ed84a94905cd9a3ea32fc cased this issue?


_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to