Releases: lupyuen/nuttx-riscv64
special-qemu-riscv-knsh64-2024-10-15-05-52-27
Validate all defconfig files
special-qemu-riscv-knsh64-2024-10-15-04-39-24
Validate all defconfig files
special-qemu-riscv-knsh-2024-10-15-06-04-42
Validate all defconfig files
special-qemu-riscv-knsh-2024-10-15-05-59-17
Validate all defconfig files
special-qemu-riscv-knsh-2024-10-15-05-52-22
Validate all defconfig files
special-qemu-riscv-knsh-2024-10-15-04-39-17
Validate all defconfig files
qemu-riscv-nsh64-2024-11-14
Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Error: Test Failed
ERROR AT ATTEMPT 3
Thu Nov 14 08:34:28 +08 2024
----- Download the latest NuttX build for 2024-11-14
Archive: nuttx.zip
inflating: nuttx
inflating: nuttx.S
inflating: nuttx.config
inflating: nuttx.hash
inflating: nuttx.manifest
inflating: nuttx.map
inflating: System.map
Thu Nov 14 08:34:29 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/5d87319cb6af14131e0b547e0bcfb88629c1bfed
NuttX Apps: https://github.com/apache/nuttx-apps/tree/1c7a7f7529475b0d535e2088a9c4e1532c487156
total 163944
-rw-r--r-- 1 luppy wheel 48153 Nov 14 08:32 System.map
-rwxr-xr-x 1 luppy wheel 3150096 Nov 14 08:32 nuttx
-rw-r--r-- 1 luppy wheel 68593229 Nov 14 08:32 nuttx.S
-rw-r--r-- 1 luppy wheel 48383 Nov 14 08:30 nuttx.config
-rw-r--r-- 1 luppy wheel 187 Nov 14 08:30 nuttx.hash
-rw-r--r-- 1 luppy wheel 27 Nov 14 08:32 nuttx.manifest
-rw-r--r-- 1 luppy wheel 2398360 Nov 14 08:32 nuttx.map
-rw-r--r--@ 1 luppy wheel 9676764 Nov 14 08:32 nuttx.zip
-rwxr-xr-x@ 1 luppy wheel 1296 Nov 14 08:34 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/5d87319cb6af14131e0b547e0bcfb88629c1bfed
NuttX Apps: https://github.com/apache/nuttx-apps/tree/1c7a7f7529475b0d535e2088a9c4e1532c487156
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Thu Nov 14 08:34:30 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 5d87319cb6 Nov 14 2024 00:31:37 risc-v rv-virt
nsh> free
total used free maxused maxfree nused nfree name
33350520 8328 33342192 9008 33342192 22 1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 142 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 119 msec
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=9
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 1 1
mxordblk 1fc9140 1fc9140
uordblks 5238 5238
fordblks 1fc9140 1fc9140
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 1 1
mxordblk 1fc9140 1fc9140
uordblks 5238 5238
fordblks 1fc9140 1fc9140
user_main: libc tests
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 1 1
mxordblk 1fc9140 1fc9140
uordblks 5238 5238
fordblks 1fc9140 1fc9140
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 1 2
mxordblk 1fc9140 1fc9140
uordblks 5238 5218
fordblks 1fc9140 1fc9160
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 2 2
mxordblk 1fc9140 1fc9140
uordblks 5218 5138
fordblks 1fc9160 1fc9240
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 2 2
mxordblk 1fc9140 1fc9140
uordblks 5138 5138
fordblks 1fc9240 1fc9240
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 2 2
mxordblk 1fc9140 1fc9140
uordblks 5138 5138
fordblks 1fc9240 1fc9240
user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
FPU#2: pass 1
FPU#1: pass 2
FPU#2: pass 2
FPU#1: pass 3
FPU#2: pass 3
FPU#1: pass 4
FPU#2: pass 4
FPU#1: pass 5
FPU#2: pass 5
FPU#1: pass 6
FPU#2: pass 6
FPU#1: pass 7
FPU#2: pass 7
FPU#1: pass 8
FPU#2: pass 8
FPU#1: pass 9
FPU#2: pass 9
FPU#1: pass 10
FPU#2: pass 10
FPU#1: pass 11
FPU#2: pass 11
FPU#1: pass 12
FPU#2: pass 12
FPU#1: pass 13
FPU#2: pass 13
FPU#1: pass 14
FPU#2: pass 14
FPU#1: pass 15
FPU#2: pass 15
FPU#1: pass 16
FPU#2: pass 16
FPU#1: Succeeded
FPU#2: Succeeded
fpu_test: Returning
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 2 3
mxordblk 1fc9140 1fc7540
uordblks 5138 6748
fordblks 1fc9240 1fc7c30
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 3 2
mxordblk 1fc7540 1fc6b40
uordblks 6748 7798
fordblks 1fc7c30 1fc6be0
user_main: waitpid test
Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD. That may be
acceptable because child status is disabled on this thread.
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 2 5
mxordblk 1fc6b40 1fc1ec0
uordblks 7798 bda8
fordblks 1fc6be0 1fc25d0
user_main: mutex test
Initializing mutex
Starting thread 1
Starting thread 2
Thread1 Thread2
Loops 32 32
Errors 0 0
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce378 1fce378
ordblks 5 2
mxordblk 1fc1ec0 1fc7e60
uordblks bda8 6478
fordblks 1fc25d0 1fc7f00
user_main: timed mutex test
mutex_test: Initializing mutex
mutex_test: Starting thread
pthread: Started
pthread: Waiti...
qemu-riscv-nsh64-2024-11-13
Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful
Wed Nov 13 08:36:20 +08 2024
----- Download the latest NuttX build for 2024-11-13
Archive: nuttx.zip
inflating: nuttx
inflating: nuttx.S
inflating: nuttx.config
inflating: nuttx.hash
inflating: nuttx.manifest
inflating: nuttx.map
inflating: System.map
Wed Nov 13 08:36:21 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/1d1ef52d1a40c40dd5b2d060f4d56053a992dc09
NuttX Apps: https://github.com/apache/nuttx-apps/tree/bb03ef0ce3ac34a6f86906148fbcca0f71da073b
total 163936
-rw-r--r-- 1 luppy wheel 48119 Nov 13 08:31 System.map
-rwxr-xr-x 1 luppy wheel 3150008 Nov 13 08:31 nuttx
-rw-r--r-- 1 luppy wheel 68590882 Nov 13 08:31 nuttx.S
-rw-r--r-- 1 luppy wheel 48420 Nov 13 08:30 nuttx.config
-rw-r--r-- 1 luppy wheel 187 Nov 13 08:30 nuttx.hash
-rw-r--r-- 1 luppy wheel 27 Nov 13 08:31 nuttx.manifest
-rw-r--r-- 1 luppy wheel 2397901 Nov 13 08:31 nuttx.map
-rw-r--r--@ 1 luppy wheel 9676682 Nov 13 08:31 nuttx.zip
-rwxr-xr-x@ 1 luppy wheel 1296 Nov 13 08:36 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/1d1ef52d1a40c40dd5b2d060f4d56053a992dc09
NuttX Apps: https://github.com/apache/nuttx-apps/tree/bb03ef0ce3ac34a6f86906148fbcca0f71da073b
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Wed Nov 13 08:36:21 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 1d1ef52d1a Nov 13 2024 00:31:08 risc-v rv-virt
nsh> free
total used free maxused maxfree nused nfree name
33350552 8328 33342224 9008 33342224 22 1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 56 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 54 msec
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=9
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 1 1
mxordblk 1fc9160 1fc9160
uordblks 5238 5238
fordblks 1fc9160 1fc9160
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 1 1
mxordblk 1fc9160 1fc9160
uordblks 5238 5238
fordblks 1fc9160 1fc9160
user_main: libc tests
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 1 1
mxordblk 1fc9160 1fc9160
uordblks 5238 5238
fordblks 1fc9160 1fc9160
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 1 2
mxordblk 1fc9160 1fc9160
uordblks 5238 5218
fordblks 1fc9160 1fc9180
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 2 2
mxordblk 1fc9160 1fc9160
uordblks 5218 5138
fordblks 1fc9180 1fc9260
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 2 2
mxordblk 1fc9160 1fc9160
uordblks 5138 5138
fordblks 1fc9260 1fc9260
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 2 2
mxordblk 1fc9160 1fc9160
uordblks 5138 5138
fordblks 1fc9260 1fc9260
user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
FPU#2: pass 1
FPU#1: pass 2
FPU#2: pass 2
FPU#1: pass 3
FPU#2: pass 3
FPU#1: pass 4
FPU#2: pass 4
FPU#1: pass 5
FPU#2: pass 5
FPU#1: pass 6
FPU#2: pass 6
FPU#1: pass 7
FPU#2: pass 7
FPU#1: pass 8
FPU#2: pass 8
FPU#1: pass 9
FPU#2: pass 9
FPU#1: pass 10
FPU#2: pass 10
FPU#1: pass 11
FPU#2: pass 11
FPU#1: pass 12
FPU#2: pass 12
FPU#1: pass 13
FPU#2: pass 13
FPU#1: pass 14
FPU#2: pass 14
FPU#1: pass 15
FPU#2: pass 15
FPU#1: pass 16
FPU#2: pass 16
FPU#1: Succeeded
FPU#2: Succeeded
fpu_test: Returning
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 2 4
mxordblk 1fc9160 1fc7560
uordblks 5138 6158
fordblks 1fc9260 1fc8240
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce398 1fce398
ordblks 4 2
mxordblk 1fc7560 1fc6b60
uordblks 6158 7798
fordblks 1fc8240 1fc6c00
user_main: waitpid test
Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_main: PID 15 exitting with result=14
waitpid_last: PASS: PID 15 waitpid succeeded with stat_loc=0e00
End of test memory usage:
VARIABLE BEFORE AFTER
====...
qemu-riscv-nsh64-2024-11-12
Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful
Tue Nov 12 09:13:15 +08 2024
----- Download the latest NuttX build for 2024-11-12
Archive: nuttx.zip
inflating: nuttx
inflating: nuttx.S
inflating: nuttx.config
inflating: nuttx.hash
inflating: nuttx.manifest
inflating: nuttx.map
inflating: System.map
Tue Nov 12 09:13:17 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/2464b3207d3819a0ab98e493e8a76b163e3c193a
NuttX Apps: https://github.com/apache/nuttx-apps/tree/0c467dc02d1f03f3f9f3defb16f36cb4f53b4c9d
total 163728
-rw-r--r-- 1 luppy wheel 48017 Nov 12 08:31 System.map
-rwxr-xr-x 1 luppy wheel 3145328 Nov 12 08:31 nuttx
-rw-r--r-- 1 luppy wheel 68512895 Nov 12 08:31 nuttx.S
-rw-r--r-- 1 luppy wheel 48223 Nov 12 08:30 nuttx.config
-rw-r--r-- 1 luppy wheel 187 Nov 12 08:30 nuttx.hash
-rw-r--r-- 1 luppy wheel 27 Nov 12 08:31 nuttx.manifest
-rw-r--r-- 1 luppy wheel 2391930 Nov 12 08:31 nuttx.map
-rw-r--r--@ 1 luppy wheel 9664122 Nov 12 08:31 nuttx.zip
-rwxr-xr-x@ 1 luppy wheel 1296 Nov 12 09:13 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/2464b3207d3819a0ab98e493e8a76b163e3c193a
NuttX Apps: https://github.com/apache/nuttx-apps/tree/0c467dc02d1f03f3f9f3defb16f36cb4f53b4c9d
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Tue Nov 12 09:13:18 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 2464b3207d Nov 12 2024 00:30:43 risc-v rv-virt
nsh> free
total used free maxused maxfree nused nfree name
33351576 8328 33343248 9008 33343248 22 1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 93 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 97 msec
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=9
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
user_main: libc tests
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 2
mxordblk 1fc9560 1fc9560
uordblks 5238 5218
fordblks 1fc9560 1fc9580
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5218 5138
fordblks 1fc9580 1fc9660
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5138 5138
fordblks 1fc9660 1fc9660
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5138 5138
fordblks 1fc9660 1fc9660
user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
FPU#2: pass 1
FPU#1: pass 2
FPU#2: pass 2
FPU#1: pass 3
FPU#2: pass 3
FPU#1: pass 4
FPU#2: pass 4
FPU#1: pass 5
FPU#2: pass 5
FPU#1: pass 6
FPU#2: pass 6
FPU#1: pass 7
FPU#2: pass 7
FPU#1: pass 8
FPU#2: pass 8
FPU#1: pass 9
FPU#2: pass 9
FPU#1: pass 10
FPU#2: pass 10
FPU#1: pass 11
FPU#2: pass 11
FPU#1: pass 12
FPU#2: pass 12
FPU#1: pass 13
FPU#2: pass 13
FPU#1: pass 14
FPU#2: pass 14
FPU#1: pass 15
FPU#2: pass 15
FPU#1: pass 16
FPU#2: pass 16
FPU#1: Succeeded
FPU#2: Succeeded
fpu_test: Returning
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 3
mxordblk 1fc9560 1fc7960
uordblks 5138 6748
fordblks 1fc9660 1fc8050
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 3 2
mxordblk 1fc7960 1fc6f60
uordblks 6748 7798
fordblks 1fc8050 1fc7000
user_main: waitpid test
Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD. That may be
acceptable because child status is dis...
qemu-riscv-nsh64-2024-11-11
Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful
Mon Nov 11 09:15:08 +08 2024
----- Download the latest NuttX build for 2024-11-11
Archive: nuttx.zip
inflating: nuttx
inflating: nuttx.S
inflating: nuttx.config
inflating: nuttx.hash
inflating: nuttx.manifest
inflating: nuttx.map
inflating: System.map
Mon Nov 11 09:15:09 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/5e8f1eefb086fd6cb1a59453a4c350d4fd5e734c
NuttX Apps: https://github.com/apache/nuttx-apps/tree/ebc19a60ff5d32750384f5a99a315d5533d62058
total 163728
-rw-r--r-- 1 luppy wheel 48017 Nov 11 08:33 System.map
-rwxr-xr-x 1 luppy wheel 3145528 Nov 11 08:33 nuttx
-rw-r--r-- 1 luppy wheel 68510174 Nov 11 08:33 nuttx.S
-rw-r--r-- 1 luppy wheel 48223 Nov 11 08:31 nuttx.config
-rw-r--r-- 1 luppy wheel 187 Nov 11 08:31 nuttx.hash
-rw-r--r-- 1 luppy wheel 27 Nov 11 08:33 nuttx.manifest
-rw-r--r-- 1 luppy wheel 2391522 Nov 11 08:33 nuttx.map
-rw-r--r--@ 1 luppy wheel 9663783 Nov 11 08:33 nuttx.zip
-rwxr-xr-x@ 1 luppy wheel 1296 Nov 11 09:15 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/5e8f1eefb086fd6cb1a59453a4c350d4fd5e734c
NuttX Apps: https://github.com/apache/nuttx-apps/tree/ebc19a60ff5d32750384f5a99a315d5533d62058
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Mon Nov 11 09:15:10 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 5e8f1eefb0 Nov 11 2024 00:32:33 risc-v rv-virt
nsh> free
total used free maxused maxfree nused nfree name
33351576 8328 33343248 9008 33343248 22 1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 73 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 65 msec
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=9
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
user_main: libc tests
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 1
mxordblk 1fc9560 1fc9560
uordblks 5238 5238
fordblks 1fc9560 1fc9560
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 1 2
mxordblk 1fc9560 1fc9560
uordblks 5238 5218
fordblks 1fc9560 1fc9580
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5218 5138
fordblks 1fc9580 1fc9660
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5138 5138
fordblks 1fc9660 1fc9660
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 2
mxordblk 1fc9560 1fc9560
uordblks 5138 5138
fordblks 1fc9660 1fc9660
user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
FPU#2: pass 1
FPU#1: pass 2
FPU#2: pass 2
FPU#1: pass 3
FPU#2: pass 3
FPU#1: pass 4
FPU#2: pass 4
FPU#1: pass 5
FPU#2: pass 5
FPU#1: pass 6
FPU#2: pass 6
FPU#1: pass 7
FPU#2: pass 7
FPU#1: pass 8
FPU#2: pass 8
FPU#1: pass 9
FPU#2: pass 9
FPU#1: pass 10
FPU#2: pass 10
FPU#1: pass 11
FPU#2: pass 11
FPU#1: pass 12
FPU#2: pass 12
FPU#1: pass 13
FPU#2: pass 13
FPU#1: pass 14
FPU#2: pass 14
FPU#1: pass 15
FPU#2: pass 15
FPU#1: pass 16
FPU#2: pass 16
FPU#1: Succeeded
FPU#2: Succeeded
fpu_test: Returning
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 2 3
mxordblk 1fc9560 1fc7960
uordblks 5138 6748
fordblks 1fc9660 1fc8050
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started restart_main at PID=12
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fce798 1fce798
ordblks 3 2
mxordblk 1fc7960 1fc6f60
uordblks 6748 7798
fordblks 1fc8050 1fc7000
user_main: waitpid test
Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD. That may be
acceptable because child status is dis...