RTEMS Release Snapshot: 5.0.0-m2004 (02 Apr 2020)

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Apr 9 11:51:36 UTC 2020


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 at entry=0, error=0, 
error at 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 at entry=INTERNAL_ERROR_CORE, the_error=38, 
the_error at 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 at 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?




More information about the devel mailing list