On Wed, Jan 10, 2024 at 12:10 PM Alin Jerpelea wrote: > Hello all, > Apache NuttX 12.4.0 RC0 has been staged under [1] and it's > time to vote on accepting it for release. Voting will be open for 72hr.
Hello beautiful world :-) +1 here with details below :-) ALL THE BEST IN NEW YEAR! :-) Tomek HOST: FreeBSD octagon 13.2-RELEASE-p8 FreeBSD 13.2-RELEASE-p8 GENERIC amd64 TARGETS: 1. ESP32. 2. ESP32-C3. 3. ESP32-S2. 4. ESP32-S3. 5.SIM. === ESP32 === % xtensa-esp32-elf-cc --version xtensa-esp32-elf-cc (crosstool-NG esp-2021r2-patch5) 8.4.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:nsh 3,31s real 1,70s user 1,66s sys % /usr/bin/time -h gmake -j8 19,15s real 58,86s user 44,09s sys % /usr/bin/time -h gmake flash 11,48s real 2,02s user 1,40s sys % cu -l /dev/cuaU0 -s 115200 Connected rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4540 ho 0 tail 12 room 4 load:0x40078000,len:12344 ho 0 tail 12 room 4 load:0x40080400,len:4124 entry 0x40080680 NuttShell (NSH) NuttX-12.4.0 nsh> uname -a NuttX 12.4.0 96c2707737 Jan 13 2024 01:24:16 xtensa esp32-devkitc nsh> help help usage: help [-v] [<cmd>] . cp exit mkrd set unset [ cmp false mount sleep uptime ? dirname fdinfo mv source usleep alias dd free pidof test xd unalias df help printf time basename dmesg hexdump ps true break echo kill pwd truncate cat env ls rm uname cd exec mkdir rmdir umount Builtin Apps: nsh sh % /usr/bin/time -h gmake clean distclean 8,53s real 4,27s user 4,37s sys % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:coremark 3,30s real 1,59s user 1,75s sys % /usr/bin/time -h gmake -j8 19,31s real 1m0,84s user 42,71s sys % /usr/bin/time -h gmake flash 10,48s real 1,63s user 1,05s sys % cu -l /dev/cuaU0 -s 115200 Connected rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4540 ho 0 tail 12 room 4 load:0x40078000,len:12344 ho 0 tail 12 room 4 load:0x40080400,len:4124 entry 0x40080680 Running CoreMark... 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 1218 Total time (secs): 12.180000 Iterations/Sec : 985.221675 Iterations : 12000 Compiler version : GCC8.4.0 Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections Parallel PThreads : 2 Memory location : HEAP seedcrc : 0xe9f5 [0]crclist : 0xe714 [1]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [1]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [1]crcstate : 0x8e3a [0]crcfinal : 0xa14c [1]crcfinal : 0xa14c Correct operation validated. See README.md for run and reporting rules. CoreMark 1.0 : 985.221675 / GCC8.4.0 -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP / 2:PThreads % /usr/bin/time -h gmake clean distclean 8,21s real 3,83s user 4,48s sys % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:ostest 3,34s real 1,66s user 1,71s sys % /usr/bin/time -h gmake -j8 20,00s real 1m2,34s user 45,68s sys % /usr/bin/time -h gmake flash 14,20s real 2,24s user 1,49s sys % cu -l /dev/cuaU0 -s 115200 Connected rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4540 ho 0 tail 12 room 4 load:0x40078000,len:12344 ho 0 tail 12 room 4 load:0x40080400,len:4124 entry 0x40080680 NuttShell (NSH) NuttX-12.4.0 nsh> help help usage: help [-v] [<cmd>] . cp exit mkrd set unset [ cmp false mount sleep uptime ? dirname fdinfo mv source usleep alias dd free pidof test xd unalias df help printf time basename dmesg hexdump ps true break echo kill pwd truncate cat env ls rm uname cd exec mkdir rmdir umount Builtin Apps: nsh ostest sh 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=3 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 4f3f8 4f3f8 ordblks 3 3 mxordblk 2d418 2d418 uordblks 4c38 4c38 fordblks 4a7c0 4a7c0 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 4f3f8 4f3f8 ordblks 3 3 mxordblk 2d418 2d418 uordblks 4c38 4c38 fordblks 4a7c0 4a7c0 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 4f3f8 4f3f8 ordblks 3 4 mxordblk 2d418 2d418 uordblks 4c38 4c18 fordblks 4a7c0 4a7e0 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 4f3f8 4f3f8 ordblks 4 5 mxordblk 2d418 2d418 uordblks 4c18 4bb0 fordblks 4a7e0 4a848 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 4f3f8 4f3f8 ordblks 5 5 mxordblk 2d418 2d418 uordblks 4bb0 4bb0 fordblks 4a848 4a848 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 4f3f8 4f3f8 ordblks 5 5 mxordblk 2d418 2d418 uordblks 4bb0 4bb0 fordblks 4a848 4a848 user_main: FPU test Starting task FPU#1 fpu_test: Started task FPU#1 at PID=4 FPU#1: pass 1 Starting task FPU#2 fpu_test: Started task FPU#2 at PID=5 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 4f3f8 4f3f8 ordblks 5 8 mxordblk 2d418 2d418 uordblks 4bb0 5d20 fordblks 4a848 496d8 user_main: task_restart test Test task_restart() restart_main: setenv(VarName, VarValue, TRUE) restart_main: Started restart_main at PID=6 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=6 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 4f3f8 4f3f8 ordblks 8 5 mxordblk 2d418 2d418 uordblks 5d20 6c98 fordblks 496d8 48760 user_main: waitpid test Test waitpid() waitpid_start_child: Started waitpid_main at PID=7 waitpid_main: PID 7 Started waitpid_start_child: Started waitpid_main at PID=12 waitpid_main: PID 12 Started waitpid_start_child: Started waitpid_main at PID=13 waitpid_main: PID 13 Started waitpid_test: Waiting for PID=7 with waitpid() waitpid_main: PID 7 exitting with result=14 waitpid_test: PID 7 waitpid succeeded with stat_loc=0e00 waitpid_last: Waiting for PID=13 with waitpid() waitpid_main: PID 12 exitting with result=14 waitpid_main: PID 13 exitting with result=14 waitpid_last: PASS: PID 13 waitpid succeeded with stat_loc=0e00 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 7 mxordblk 2d418 2d418 uordblks 6c98 adf8 fordblks 48760 44600 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 4f3f8 4f3f8 ordblks 7 5 mxordblk 2d418 2d418 uordblks adf8 54a8 fordblks 44600 49f50 user_main: timed mutex test mutex_test: Initializing mutex mutex_test: Starting thread pthread: Started pthread: Waiting for lock or timeout mutex_test: Unlocking pthread: Got the lock pthread: Waiting for lock or timeout pthread: Got the timeout. Terminating mutex_test: PASSED End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 4 mxordblk 2d418 2d418 uordblks 54a8 54a8 fordblks 49f50 49f50 user_main: cancel test cancel_test: Test 1a: Normal Cancellation cancel_test: Starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 2: Asynchronous Cancellation ... Skipped cancel_test: Test 3: Cancellation of detached thread cancel_test: Re-starting thread restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: PASS pthread_join failed with status=ESRCH cancel_test: Test 5: Non-cancelable threads cancel_test: Re-starting thread (non-cancelable) restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition sem_waiter: Setting non-cancelable cancel_test: Canceling thread cancel_test: Joining sem_waiter: Releasing mutex sem_waiter: Setting cancelable cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 6: Cancel message queue wait cancel_test: Starting thread (cancelable) Skipped cancel_test: Test 7: Cancel signal wait cancel_test: Starting thread (cancelable) Skipped End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 4 mxordblk 2d418 2d418 uordblks 54a8 6ca8 fordblks 49f50 48750 user_main: robust test robust_test: Initializing mutex robust_test: Starting thread robust_waiter: Taking mutex robust_waiter: Exiting with mutex robust_test: Take the lock again robust_test: Make the mutex consistent again. robust_test: Take the lock again robust_test: Joining robust_test: waiter exited with result=0 robust_test: Test complete with nerrors=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 4 mxordblk 2d418 2d418 uordblks 6ca8 6ca8 fordblks 48750 48750 user_main: semaphore test sem_test: Initializing semaphore to 0 sem_test: Starting waiter thread 1 sem_test: Set thread 1 priority to 191 waiter_func: Thread 1 Started waiter_func: Thread 1 initial semaphore value = 0 sem_test: Starting waiter thread 2 waiter_func: Thread 1 waiting on semaphore sem_test: Set thread 2 priority to 128 waiter_func: Thread 2 Started waiter_func: Thread 2 initial semaphore value = -1 waiter_func: Thread 2 waiting on semaphore sem_test: Starting poster thread 3 sem_test: Set thread 3 priority to 64 poster_func: Thread 3 started poster_func: Thread 3 semaphore value = -2 poster_func: Thread 3 posting semaphore waiter_func: Thread 1 awakened waiter_func: Thread 1 new semaphore value = -1 waiter_func: Thread 1 done poster_func: Thread 3 new semaphore value = -1 poster_func: Thread 3 semaphore value = -1 poster_func: Thread 3 posting semaphore waiter_func: Thread 2 awakened waiter_func: Thread 2 new semaphore value = 0 poster_func: Thread 3 new semaphore value = 0 waiter_func: Thread 2 done poster_func: Thread 3 done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 5 mxordblk 2d418 2d418 uordblks 6ca8 54a8 fordblks 48750 49f50 user_main: timed semaphore test semtimed_test: Initializing semaphore to 0 semtimed_test: Waiting for two second timeout semtimed_test: PASS: first test returned timeout BEFORE: (56 sec, 830000000 nsec) AFTER: (58 sec, 840000000 nsec) semtimed_test: Starting poster thread semtimed_test: Set thread 1 priority to 191 semtimed_test: Starting poster thread 3 semtimed_test: Set thread 3 priority to 64 semtimed_test: Waiting for two second timeout poster_func: Waiting for 1 second poster_func: Posting semtimed_test: PASS: sem_timedwait succeeded BEFORE: (58 sec, 840000000 nsec) AFTER: (59 sec, 850000000 nsec) End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 4 mxordblk 2d418 2d418 uordblks 54a8 54a8 fordblks 49f50 49f50 user_main: condition variable test cond_test: Initializing mutex cond_test: Initializing cond cond_test: Starting waiter cond_test: Set thread 1 priority to 128 waiter_thread: Started cond_test: Starting signaler cond_test: Set thread 2 priority to 64 thread_signaler: Started thread_signaler: Terminating cond_test: signaler terminated, now cancel the waiter cond_test: Waiter Signaler cond_test: Loops 32 32 cond_test: Errors 0 0 cond_test: cond_test: 0 times, waiter did not have to wait for data cond_test: 0 times, data was already available when the signaler run cond_test: 0 times, the waiter was in an unexpected state when the signaler ran End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 5 mxordblk 2d418 2d418 uordblks 54a8 54a8 fordblks 49f50 49f50 user_main: pthread_exit() test pthread_exit_test: Started pthread_exit_main at PID=39 pthread_exit_main 39: Starting pthread_exit_thread pthread_exit_main 39: Sleeping for 5 seconds pthread_exit_thread 44: Sleeping for 10 second pthread_exit_main 39: Calling pthread_exit() pthread_exit_thread 44: Still running... pthread_exit_thread 44: Exiting End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 5 mxordblk 2d418 2d418 uordblks 54a8 54a8 fordblks 49f50 49f50 user_main: pthread_rwlock test pthread_rwlock: Initializing rwlock End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 5 mxordblk 2d418 2d418 uordblks 54a8 54a8 fordblks 49f50 49f50 user_main: pthread_rwlock_cancel test pthread_rwlock_cancel: Starting test End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 4 mxordblk 2d418 2d418 uordblks 54a8 4be8 fordblks 49f50 4a810 user_main: timed wait test thread_waiter: Initializing mutex timedwait_test: Initializing cond timedwait_test: Starting waiter timedwait_test: Set thread 2 priority to 177 thread_waiter: Taking mutex timedwait_test: Joining thread_waiter: Starting 5 second wait for condition thread_waiter: pthread_cond_timedwait timed out thread_waiter: Releasing mutex thread_waiter: Exit with status 0x12345678 timedwait_test: waiter exited with result=0x12345678 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 4 mxordblk 2d418 2d418 uordblks 4be8 54a8 fordblks 4a810 49f50 user_main: message queue test mqueue_test: Starting receiver mqueue_test: Set receiver priority to 128 receiver_thread: Starting mqueue_test: Starting sender mqueue_test: Set sender thread priority to 64 mqueue_test: Waiting for sender to complete sender_thread: Starting receiver_thread: mq_receive succeeded on msg 0 sender_thread: mq_send succeeded on msg 0 receiver_thread: mq_receive succeeded on msg 1 sender_thread: mq_send succeeded on msg 1 receiver_thread: mq_receive succeeded on msg 2 sender_thread: mq_send succeeded on msg 2 receiver_thread: mq_receive succeeded on msg 3 sender_thread: mq_send succeeded on msg 3 receiver_thread: mq_receive succeeded on msg 4 sender_thread: mq_send succeeded on msg 4 receiver_thread: mq_receive succeeded on msg 5 sender_thread: mq_send succeeded on msg 5 receiver_thread: mq_receive succeeded on msg 6 sender_thread: mq_send succeeded on msg 6 receiver_thread: mq_receive succeeded on msg 7 sender_thread: mq_send succeeded on msg 7 receiver_thread: mq_receive succeeded on msg 8 sender_thread: mq_send succeeded on msg 8 receiver_thread: mq_receive succeeded on msg 9 sender_thread: mq_send succeeded on msg 9 sender_thread: returning nerrors=0 mqueue_test: Killing receiver receiver_thread: mq_receive interrupted! receiver_thread: returning nerrors=0 mqueue_test: Canceling receiver mqueue_test: receiver has already terminated End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 4 mxordblk 2d418 2d418 uordblks 54a8 6d00 fordblks 49f50 486f8 user_main: timed message queue test timedmqueue_test: Starting sender timedmqueue_test: Waiting for sender to complete sender_thread: Starting sender_thread: mq_timedsend succeeded on msg 0 sender_thread: mq_timedsend succeeded on msg 1 sender_thread: mq_timedsend succeeded on msg 2 sender_thread: mq_timedsend succeeded on msg 3 sender_thread: mq_timedsend succeeded on msg 4 sender_thread: mq_timedsend succeeded on msg 5 sender_thread: mq_timedsend succeeded on msg 6 sender_thread: mq_timedsend succeeded on msg 7 sender_thread: mq_timedsend succeeded on msg 8 sender_thread: mq_timedsend 9 timed out as expected sender_thread: returning nerrors=0 timedmqueue_test: Starting receiver timedmqueue_test: Waiting for receiver to complete receiver_thread: Starting receiver_thread: mq_timedreceive succeed on msg 0 receiver_thread: mq_timedreceive succeed on msg 1 receiver_thread: mq_timedreceive succeed on msg 2 receiver_thread: mq_timedreceive succeed on msg 3 receiver_thread: mq_timedreceive succeed on msg 4 receiver_thread: mq_timedreceive succeed on msg 5 receiver_thread: mq_timedreceive succeed on msg 6 receiver_thread: mq_timedreceive succeed on msg 7 receiver_thread: mq_timedreceive succeed on msg 8 receiver_thread: Receive 9 timed out as expected receiver_thread: returning nerrors=0 timedmqueue_test: Test complete End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 4 5 mxordblk 2d418 2d418 uordblks 6d00 6d30 fordblks 486f8 486c8 user_main: sigprocmask test sigprocmask_test: SUCCESS End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 5 mxordblk 2d418 2d418 uordblks 6d30 6d30 fordblks 486c8 486c8 user_main: signal handler test sighand_test: Initializing semaphore to 0 sighand_test: Starting waiter task sighand_test: Started waiter_main pid=68 waiter_main: Waiter started waiter_main: Unmasking signal 32 waiter_main: Registering signal handler waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 waiter_main: Waiting on semaphore sighand_test: Signaling pid=68 with signo=32 sigvalue=42 waiter_main: sem_wait() successfully interrupted by signal waiter_main: done sighand_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 5 7 mxordblk 2d418 2d418 uordblks 6d30 6d98 fordblks 486c8 48660 user_main: nested signal handler test signest_test: Starting signal waiter task at priority 101 waiter_main: Waiter started waiter_main: Setting signal mask waiter_main: Registering signal handler signest_test: Started waiter_main pid=69 waiter_main: Waiting on semaphore signest_test: Starting interfering task at priority 102 interfere_main: Waiting on semaphore signest_test: Started interfere_main pid=70 signest_test: Simple case: Total signalled 1240 Odd=620 Even=620 Total handled 1240 Odd=620 Even=620 Total nested 0 Odd=0 Even=0 signest_test: With task locking Total signalled 2480 Odd=1240 Even=1240 Total handled 2480 Odd=1240 Even=1240 Total nested 0 Odd=0 Even=0 signest_test: With intefering thread Total signalled 3720 Odd=1860 Even=1860 Total handled 3720 Odd=1860 Even=1860 Total nested 0 Odd=0 Even=0 signest_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 7 7 mxordblk 2d418 2d418 uordblks 6d98 9550 fordblks 48660 45ea8 user_main: POSIX timer test timer_test: Initializing semaphore to 0 timer_test: Unmasking signal 32 timer_test: Registering signal handler timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 timer_test: Creating timer timer_test: Starting timer timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=1 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=2 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=3 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=4 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=5 timer_test: Deleting timer timer_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 7 7 mxordblk 2d418 2d418 uordblks 9550 9550 fordblks 45ea8 45ea8 user_main: round-robin scheduler test rr_test: Set thread priority to 1 rr_test: Set thread policy to SCHED_RR rr_test: Starting first get_primes_thread First get_primes_thread: 71 rr_test: Starting second get_primes_thread Second get_primes_thread: 76 rr_test: Waiting for threads to complete -- this should take awhile If RR scheduling is working, they should start and complete at about the same time get_primes_thread id=1 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=2 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=1 finished, found 1230 primes, last one was 9973 get_primes_thread id=2 finished, found 1230 primes, last one was 9973 rr_test: Done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 7 7 mxordblk 2d418 2d418 uordblks 9550 6570 fordblks 45ea8 48e88 user_main: barrier test barrier_test: Initializing barrier barrier_test: Thread 0 created barrier_test: Thread 1 created barrier_test: Thread 2 created barrier_test: Thread 3 created barrier_func: Thread 0 started barrier_func: Thread 1 started barrier_func: Thread 2 started barrier_func: Thread 3 started barrier_test: Thread 4 created barrier_func: Thread 4 started barrier_test: Thread 5 created barrier_func: Thread 5 started barrier_test: Thread 6 created barrier_func: Thread 6 started barrier_test: Thread 7 created barrier_func: Thread 7 started barrier_func: Thread 0 calling pthread_barrier_wait() barrier_func: Thread 1 calling pthread_barrier_wait() barrier_func: Thread 2 calling pthread_barrier_wait() barrier_func: Thread 3 calling pthread_barrier_wait() barrier_func: Thread 4 calling pthread_barrier_wait() barrier_func: Thread 5 calling pthread_barrier_wait() barrier_func: Thread 6 calling pthread_barrier_wait() barrier_func: Thread 7 calling pthread_barrier_wait() barrier_func: Thread 7, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL) barrier_func: Thread 0, back with status=0 (I am not special) barrier_func: Thread 1, back with status=0 (I am not special) barrier_func: Thread 2, back with status=0 (I am not special) barrier_func: Thread 3, back with status=0 (I am not special) barrier_func: Thread 4, back with status=0 (I am not special) barrier_func: Thread 5, back with status=0 (I am not special) barrier_func: Thread 6, back with status=0 (I am not special) barrier_func: Thread 7 done barrier_func: Thread 0 done barrier_func: Thread 1 done barrier_func: Thread 2 done barrier_test: Thread 0 completed with result=0 barrier_test: Thread 1 completed with result=0 barrier_test: Thread 2 completed with result=0 barrier_func: Thread 3 done barrier_func: Thread 4 done barrier_test: Thread 3 completed with result=0 barrier_test: Thread 4 completed with result=0 barrier_func: Thread 5 done barrier_func: Thread 6 done barrier_test: Thread 5 completed with result=0 barrier_test: Thread 6 completed with result=0 barrier_test: Thread 7 completed with result=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 7 12 mxordblk 2d418 2d418 uordblks 6570 5cf8 fordblks 48e88 49700 user_main: setjmp test setjmp_test: Initializing jmp_buf setjmp_test: Try jump setjmp_test: Jump succeed End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 12 12 mxordblk 2d418 2d418 uordblks 5cf8 5cf8 fordblks 49700 49700 user_main: scheduler lock test sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Finished End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 12 10 mxordblk 2d418 2d418 uordblks 5cf8 5cf8 fordblks 49700 49700 Final memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4f3f8 4f3f8 ordblks 3 10 mxordblk 2d418 2d418 uordblks 4c38 5cf8 fordblks 4a7c0 49700 user_main: Exiting ostest_main: Exiting with status 0 nsh> % /usr/bin/time -h gmake clean distclean 8,77s real 4,09s user 4,76s sys === ESP32-S2 === % riscv32-esp-elf-gcc -v Using built-in specs. COLLECT_GCC=riscv32-esp-elf-gcc COLLECT_LTO_WRAPPER=/usr/home/cederom/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8.4.0/riscv32-esp-elf/bin/../libexec/gcc/riscv32-esp-elf/8.4.0/lto-wrapper Target: riscv32-esp-elf Configured with: /builds/idf/crosstool-NG/.build/riscv32-esp-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=riscv32-esp-elf --prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf --exec_prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf --with-headers=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf/include --with-newlib --enable-threads=no --disable-shared --with-arch=rv32gc --with-abi=ilp32 --with-pkgversion='crosstool-NG esp-2021r2-patch5' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes Thread model: posix gcc version 8.4.0 (crosstool-NG esp-2021r2-patch5) % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:nsh 3,31s real 1,83s user 1,53s sys % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found expr: syntax error (..) 19,49s real 1m1,52s user 45,56s sys % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- 12,70s real 2,11s user 2,11s sys % cu -l /dev/cuaU0 -s 115200 can't open log file /var/log/aculog. Connected ESP-ROM:esp32c3-api1-20210207 Build:Feb 7 2021 rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) SPIWP:0xee mode:DIO, clock div:1 load:0x3fcd5820,len:0x16c0 load:0x403cc710,len:0x87c load:0x403ce710,len:0x2f54 entry 0x403cc710 I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader I (30) boot: compile time Mar 15 2023 12:14:06 I (31) boot: chip revision: v0.3 I (35) boot.esp32c3: SPI Speed : 80MHz I (40) boot.esp32c3: SPI Mode : DIO I (44) boot.esp32c3: SPI Flash Size : 4MB I (49) boot: Enabling RNG early entropy source... I (54) boot: Partition Table: I (58) boot: ## Label Usage Type ST Offset Length I (65) boot: 0 factory factory app 00 00 00010000 00100000 I (73) boot: End of partition table I (77) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=038b8h ( 14520) map I (88) esp_image: segment 1: paddr=000138e0 vaddr=3fc82ed0 size=001f4h ( 500) load I (94) esp_image: segment 2: paddr=00013adc vaddr=40380000 size=0197ch ( 6524) load I (103) esp_image: segment 3: paddr=00015460 vaddr=00000000 size=0ac98h ( 44184) I (117) esp_image: segment 4: paddr=00020100 vaddr=42000100 size=15694h ( 87700) map I (133) boot: Loaded app from partition at offset 0x10000 I (133) boot: Disabling RNG early entropy source... NuttShell (NSH) NuttX-12.4.0 nsh> uname -a NuttX 12.4.0 96c2707737 Jan 13 2024 01:43:34 risc-v esp32c3-devkit % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- 10,54s real 4,99s user 7,09s sys % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:coremark 3,30s real 1,70s user 1,64s sys % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found expr: syntax error (..) 18,61s real 55,81s user 42,59s sys % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- 10,20s real 1,80s user 1,46s sys % cu -l /dev/cuaU0 -s 115200 Connected ESP-ROM:esp32c3-api1-20210207 Build:Feb 7 2021 rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) SPIWP:0xee mode:DIO, clock div:1 load:0x3fcd5820,len:0x16c0 load:0x403cc710,len:0x87c load:0x403ce710,len:0x2f54 entry 0x403cc710 I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader I (30) boot: compile time Mar 15 2023 12:14:06 I (31) boot: chip revision: v0.3 I (35) boot.esp32c3: SPI Speed : 80MHz I (40) boot.esp32c3: SPI Mode : DIO I (44) boot.esp32c3: SPI Flash Size : 4MB I (49) boot: Enabling RNG early entropy source... I (54) boot: Partition Table: I (58) boot: ## Label Usage Type ST Offset Length I (65) boot: 0 factory factory app 00 00 00010000 00100000 I (73) boot: End of partition table I (77) esp_image: segment 0: paddr=00010020 vaddr=3c010020 size=00c08h ( 3080) map I (86) esp_image: segment 1: paddr=00010c30 vaddr=3fc83810 size=00168h ( 360) load I (94) esp_image: segment 2: paddr=00010da0 vaddr=40380000 size=01ed8h ( 7896) load I (104) esp_image: segment 3: paddr=00012c80 vaddr=00000000 size=0d478h ( 54392) I (119) esp_image: segment 4: paddr=00020100 vaddr=42000100 size=0d46ch ( 54380) map I (128) boot: Loaded app from partition at offset 0x10000 I (128) boot: Disabling RNG early entropy source... Running CoreMark... 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 1472 Total time (secs): 14.720000 Iterations/Sec : 407.608696 Iterations : 6000 Compiler version : GCC8.4.0 Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections Memory location : HEAP seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0xa14c Correct operation validated. See README.md for run and reporting rules. CoreMark 1.0 : 407.608696 / GCC8.4.0 -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- 10,10s real 5,22s user 6,40s sys % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:ostest 3,33s real 1,54s user 1,83s sys % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found expr: syntax error Create version.h (..) 19,33s real 58,71s user 45,92s sys % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- 15,12s real 2,15s user 2,03s sys % cu -l /dev/cuaU0 -s 115200 Connected ESP-ROM:esp32c3-api1-20210207 Build:Feb 7 2021 rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) SPIWP:0xee mode:DIO, clock div:1 load:0x3fcd5820,len:0x16c0 load:0x403cc710,len:0x87c load:0x403ce710,len:0x2f54 entry 0x403cc710 I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader I (30) boot: compile time Mar 15 2023 12:14:06 I (31) boot: chip revision: v0.3 I (35) boot.esp32c3: SPI Speed : 80MHz I (40) boot.esp32c3: SPI Mode : DIO I (44) boot.esp32c3: SPI Flash Size : 4MB I (49) boot: Enabling RNG early entropy source... I (54) boot: Partition Table: I (58) boot: ## Label Usage Type ST Offset Length I (65) boot: 0 factory factory app 00 00 00010000 00100000 I (73) boot: End of partition table I (77) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=0a598h ( 42392) map I (92) esp_image: segment 1: paddr=0001a5c0 vaddr=3fc83450 size=00230h ( 560) load I (94) esp_image: segment 2: paddr=0001a7f8 vaddr=40380000 size=01894h ( 6292) load I (103) esp_image: segment 3: paddr=0001c094 vaddr=00000000 size=04064h ( 16484) I (113) esp_image: segment 4: paddr=00020100 vaddr=42000100 size=1b3a8h (111528) map I (136) boot: Loaded app from partition at offset 0x10000 I (136) boot: Disabling RNG early entropy source... NuttShell (NSH) NuttX-12.4.0 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=3 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 5b9dc 5b9dc ordblks 1 1 mxordblk 56e20 56e20 uordblks 4bbc 4bbc fordblks 56e20 56e20 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 5b9dc 5b9dc ordblks 1 1 mxordblk 56e20 56e20 uordblks 4bbc 4bbc fordblks 56e20 56e20 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 5b9dc 5b9dc ordblks 1 2 mxordblk 56e20 56e20 uordblks 4bbc 4b9c fordblks 56e20 56e40 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 5b9dc 5b9dc ordblks 2 3 mxordblk 56e20 56e20 uordblks 4b9c 4b34 fordblks 56e40 56ea8 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 5b9dc 5b9dc ordblks 3 3 mxordblk 56e20 56e20 uordblks 4b34 4b34 fordblks 56ea8 56ea8 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 5b9dc 5b9dc ordblks 3 3 mxordblk 56e20 56e20 uordblks 4b34 4b34 fordblks 56ea8 56ea8 user_main: task_restart test Test task_restart() restart_main: setenv(VarName, VarValue, TRUE) restart_main: Started restart_main at PID=4 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=4 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 5b9dc 5b9dc ordblks 3 4 mxordblk 56e20 54a78 uordblks 4b34 6c1c fordblks 56ea8 54dc0 user_main: waitpid test Test waitpid() waitpid_start_child: Started waitpid_main at PID=5 waitpid_main: PID 5 Started waitpid_start_child: Started waitpid_main at PID=6 waitpid_main: PID 6 Started waitpid_start_child: Started waitpid_main at PID=7 waitpid_main: PID 7 Started waitpid_test: Waiting for PID=5 with waitpid() waitpid_main: PID 5 exitting with result=14 waitpid_test: PID 5 waitpid succeeded with stat_loc=0e00 waitpid_last: Waiting for PID=7 with waitpid() waitpid_main: PID 6 exitting with result=14 waitpid_main: PID 7 exitting with result=14 waitpid_last: PASS: PID 7 waitpid succeeded with stat_loc=0e00 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 6 mxordblk 54a78 50300 uordblks 6c1c ad7c fordblks 54dc0 50c60 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 5b9dc 5b9dc ordblks 6 5 mxordblk 50300 54a78 uordblks ad7c 542c fordblks 50c60 565b0 user_main: timed mutex test mutex_test: Initializing mutex mutex_test: Starting thread pthread: Started pthread: Waiting for lock or timeout mutex_test: Unlocking pthread: Got the lock pthread: Waiting for lock or timeout pthread: Got the timeout. Terminating mutex_test: PASSED End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 4 mxordblk 54a78 54a78 uordblks 542c 542c fordblks 565b0 565b0 user_main: cancel test cancel_test: Test 1a: Normal Cancellation cancel_test: Starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 2: Asynchronous Cancellation ... Skipped cancel_test: Test 3: Cancellation of detached thread cancel_test: Re-starting thread restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: PASS pthread_join failed with status=ESRCH cancel_test: Test 5: Non-cancelable threads cancel_test: Re-starting thread (non-cancelable) restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition sem_waiter: Setting non-cancelable cancel_test: Canceling thread cancel_test: Joining sem_waiter: Releasing mutex sem_waiter: Setting cancelable cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 6: Cancel message queue wait cancel_test: Starting thread (cancelable) Skipped cancel_test: Test 7: Cancel signal wait cancel_test: Starting thread (cancelable) Skipped End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 4 mxordblk 54a78 54a78 uordblks 542c 6c2c fordblks 565b0 54db0 user_main: robust test robust_test: Initializing mutex robust_test: Starting thread robust_waiter: Taking mutex robust_waiter: Exiting with mutex robust_test: Take the lock again robust_test: Make the mutex consistent again. robust_test: Take the lock again robust_test: Joining robust_test: waiter exited with result=0 robust_test: Test complete with nerrors=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 4 mxordblk 54a78 54a78 uordblks 6c2c 6c2c fordblks 54db0 54db0 user_main: semaphore test sem_test: Initializing semaphore to 0 sem_test: Starting waiter thread 1 sem_test: Set thread 1 priority to 191 waiter_func: Thread 1 Started waiter_func: Thread 1 initial semaphore value = 0 sem_test: Starting waiter thread 2 waiter_func: Thread 1 waiting on semaphore sem_test: Set thread 2 priority to 128 waiter_func: Thread 2 Started waiter_func: Thread 2 initial semaphore value = -1 waiter_func: Thread 2 waiting on semaphore sem_test: Starting poster thread 3 sem_test: Set thread 3 priority to 64 poster_func: Thread 3 started poster_func: Thread 3 semaphore value = -2 poster_func: Thread 3 posting semaphore waiter_func: Thread 1 awakened waiter_func: Thread 1 new semaphore value = -1 waiter_func: Thread 1 done poster_func: Thread 3 new semaphore value = -1 poster_func: Thread 3 semaphore value = -1 poster_func: Thread 3 posting semaphore waiter_func: Thread 2 awakened poster_func: Thread 3 new semaphore value = 0 waiter_func: Thread 2 new semaphore value = 0 waiter_func: Thread 2 done poster_func: Thread 3 done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 5 mxordblk 54a78 54a78 uordblks 6c2c 542c fordblks 54db0 565b0 user_main: timed semaphore test semtimed_test: Initializing semaphore to 0 semtimed_test: Waiting for two second timeout semtimed_test: PASS: first test returned timeout BEFORE: (33 sec, 970000000 nsec) AFTER: (35 sec, 980000000 nsec) semtimed_test: Starting poster thread semtimed_test: Set thread 1 priority to 191 semtimed_test: Starting poster thread 3 semtimed_test: Set thread 3 priority to 64 semtimed_test: Waiting for two second timeout poster_func: Waiting for 1 second poster_func: Posting semtimed_test: PASS: sem_timedwait succeeded BEFORE: (35 sec, 980000000 nsec) AFTER: (36 sec, 990000000 nsec) End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 4 mxordblk 54a78 54a78 uordblks 542c 542c fordblks 565b0 565b0 user_main: condition variable test cond_test: Initializing mutex cond_test: Initializing cond cond_test: Starting waiter cond_test: Set thread 1 priority to 128 waiter_thread: Started cond_test: Starting signaler cond_test: Set thread 2 priority to 64 thread_signaler: Started thread_signaler: Terminating cond_test: signaler terminated, now cancel the waiter cond_test: Waiter Signaler cond_test: Loops 32 32 cond_test: Errors 0 0 cond_test: cond_test: 0 times, waiter did not have to wait for data cond_test: 0 times, data was already available when the signaler run cond_test: 0 times, the waiter was in an unexpected state when the signaler ran End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 5 mxordblk 54a78 54a78 uordblks 542c 542c fordblks 565b0 565b0 user_main: pthread_exit() test pthread_exit_test: Started pthread_exit_main at PID=37 pthread_exit_main 37: Starting pthread_exit_thread pthread_exit_main 37: Sleeping for 5 seconds pthread_exit_thread 38: Sleeping for 10 second pthread_exit_main 37: Calling pthread_exit() pthread_exit_thread 38: Still running... pthread_exit_thread 38: Exiting End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 4 mxordblk 54a78 541b8 uordblks 542c 542c fordblks 565b0 565b0 user_main: pthread_rwlock test pthread_rwlock: Initializing rwlock End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 5 mxordblk 541b8 54a78 uordblks 542c 542c fordblks 565b0 565b0 user_main: pthread_rwlock_cancel test pthread_rwlock_cancel: Starting test End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 4 mxordblk 54a78 54a78 uordblks 542c 4b6c fordblks 565b0 56e70 user_main: timed wait test thread_waiter: Initializing mutex timedwait_test: Initializing cond timedwait_test: Starting waiter timedwait_test: Set thread 2 priority to 177 thread_waiter: Taking mutex timedwait_test: Joining thread_waiter: Starting 5 second wait for condition thread_waiter: pthread_cond_timedwait timed out thread_waiter: Releasing mutex thread_waiter: Exit with status 0x12345678 timedwait_test: waiter exited with result=0x12345678 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 4 mxordblk 54a78 54a78 uordblks 4b6c 542c fordblks 56e70 565b0 user_main: message queue test mqueue_test: Starting receiver mqueue_test: Set receiver priority to 128 receiver_thread: Starting mqueue_test: Starting sender mqueue_test: Set sender thread priority to 64 mqueue_test: Waiting for sender to complete sender_thread: Starting receiver_thread: mq_receive succeeded on msg 0 sender_thread: mq_send succeeded on msg 0 receiver_thread: mq_receive succeeded on msg 1 sender_thread: mq_send succeeded on msg 1 receiver_thread: mq_receive succeeded on msg 2 sender_thread: mq_send succeeded on msg 2 receiver_thread: mq_receive succeeded on msg 3 sender_thread: mq_send succeeded on msg 3 receiver_thread: mq_receive succeeded on msg 4 sender_thread: mq_send succeeded on msg 4 receiver_thread: mq_receive succeeded on msg 5 sender_thread: mq_send succeeded on msg 5 receiver_thread: mq_receive succeeded on msg 6 sender_thread: mq_send succeeded on msg 6 receiver_thread: mq_receive succeeded on msg 7 sender_thread: mq_send succeeded on msg 7 receiver_thread: mq_receive succeeded on msg 8 sender_thread: mq_send succeeded on msg 8 receiver_thread: mq_receive succeeded on msg 9 sender_thread: mq_send succeeded on msg 9 sender_thread: returning nerrors=0 mqueue_test: Killing receiver receiver_thread: mq_receive interrupted! receiver_thread: returning nerrors=0 mqueue_test: Canceling receiver mqueue_test: receiver has already terminated End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 3 mxordblk 54a78 54a78 uordblks 542c 6c8c fordblks 565b0 54d50 user_main: timed message queue test timedmqueue_test: Starting sender timedmqueue_test: Waiting for sender to complete sender_thread: Starting sender_thread: mq_timedsend succeeded on msg 0 sender_thread: mq_timedsend succeeded on msg 1 sender_thread: mq_timedsend succeeded on msg 2 sender_thread: mq_timedsend succeeded on msg 3 sender_thread: mq_timedsend succeeded on msg 4 sender_thread: mq_timedsend succeeded on msg 5 sender_thread: mq_timedsend succeeded on msg 6 sender_thread: mq_timedsend succeeded on msg 7 sender_thread: mq_timedsend succeeded on msg 8 sender_thread: mq_timedsend 9 timed out as expected sender_thread: returning nerrors=0 timedmqueue_test: Starting receiver timedmqueue_test: Waiting for receiver to complete receiver_thread: Starting receiver_thread: mq_timedreceive succeed on msg 0 receiver_thread: mq_timedreceive succeed on msg 1 receiver_thread: mq_timedreceive succeed on msg 2 receiver_thread: mq_timedreceive succeed on msg 3 receiver_thread: mq_timedreceive succeed on msg 4 receiver_thread: mq_timedreceive succeed on msg 5 receiver_thread: mq_timedreceive succeed on msg 6 receiver_thread: mq_timedreceive succeed on msg 7 receiver_thread: mq_timedreceive succeed on msg 8 receiver_thread: Receive 9 timed out as expected receiver_thread: returning nerrors=0 timedmqueue_test: Test complete End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 3 4 mxordblk 54a78 54a78 uordblks 6c8c 6cbc fordblks 54d50 54d20 user_main: sigprocmask test sigprocmask_test: SUCCESS End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 4 mxordblk 54a78 54a78 uordblks 6cbc 6cbc fordblks 54d20 54d20 user_main: signal handler test sighand_test: Initializing semaphore to 0 sighand_test: Starting waiter task sighand_test: Started waiter_main pid=62 waiter_main: Waiter started waiter_main: Unmasking signal 32 waiter_main: Registering signal handler waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 waiter_main: Waiting on semaphore sighand_test: Signaling pid=62 with signo=32 sigvalue=42 waiter_main: sem_wait() successfully interrupted by signal waiter_main: done sighand_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 4 5 mxordblk 54a78 52a70 uordblks 6cbc 6d24 fordblks 54d20 54cb8 user_main: nested signal handler test signest_test: Starting signal waiter task at priority 101 waiter_main: Waiter started waiter_main: Setting signal mask waiter_main: Registering signal handler signest_test: Started waiter_main pid=63 waiter_main: Waiting on semaphore signest_test: Starting interfering task at priority 102 interfere_main: Waiting on semaphore signest_test: Started interfere_main pid=68 signest_test: Simple case: Total signalled 1240 Odd=620 Even=620 Total handled 1240 Odd=620 Even=620 Total nested 0 Odd=0 Even=0 signest_test: With task locking Total signalled 2480 Odd=1240 Even=1240 Total handled 2480 Odd=1240 Even=1240 Total nested 0 Odd=0 Even=0 signest_test: With intefering thread Total signalled 3720 Odd=1860 Even=1860 Total handled 3720 Odd=1860 Even=1860 Total nested 0 Odd=0 Even=0 signest_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 5 mxordblk 52a70 50a68 uordblks 6d24 94dc fordblks 54cb8 52500 user_main: POSIX timer test timer_test: Initializing semaphore to 0 timer_test: Unmasking signal 32 timer_test: Registering signal handler timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 timer_test: Creating timer timer_test: Starting timer timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=1 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=2 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=3 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=4 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=5 timer_test: Deleting timer timer_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 5 mxordblk 50a68 54a78 uordblks 94dc 537c fordblks 52500 56660 user_main: round-robin scheduler test rr_test: Set thread priority to 1 rr_test: Set thread policy to SCHED_RR rr_test: Starting first get_primes_thread First get_primes_thread: 69 rr_test: Starting second get_primes_thread Second get_primes_thread: 70 rr_test: Waiting for threads to complete -- this should take awhile If RR scheduling is working, they should start and complete at about the same time get_primes_thread id=1 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=2 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=1 finished, found 1230 primes, last one was 9973 get_primes_thread id=2 finished, found 1230 primes, last one was 9973 rr_test: Done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 5 mxordblk 54a78 54a78 uordblks 537c 64fc fordblks 56660 554e0 user_main: barrier test barrier_test: Initializing barrier barrier_test: Thread 0 created barrier_test: Thread 1 created barrier_test: Thread 2 created barrier_test: Thread 3 created barrier_func: Thread 0 started barrier_func: Thread 1 started barrier_func: Thread 2 started barrier_func: Thread 3 started barrier_test: Thread 4 created barrier_func: Thread 4 started barrier_test: Thread 5 created barrier_func: Thread 5 started barrier_test: Thread 6 created barrier_func: Thread 6 started barrier_test: Thread 7 created barrier_func: Thread 7 started barrier_func: Thread 0 calling pthread_barrier_wait() barrier_func: Thread 1 calling pthread_barrier_wait() barrier_func: Thread 2 calling pthread_barrier_wait() barrier_func: Thread 3 calling pthread_barrier_wait() barrier_func: Thread 4 calling pthread_barrier_wait() barrier_func: Thread 5 calling pthread_barrier_wait() barrier_func: Thread 6 calling pthread_barrier_wait() barrier_func: Thread 7 calling pthread_barrier_wait() barrier_func: Thread 7, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL) barrier_func: Thread 0, back with status=0 (I am not special) barrier_func: Thread 1, back with status=0 (I am not special) barrier_func: Thread 2, back with status=0 (I am not special) barrier_func: Thread 3, back with status=0 (I am not special) barrier_func: Thread 4, back with status=0 (I am not special) barrier_func: Thread 5, back with status=0 (I am not special) barrier_func: Thread 6, back with status=0 (I am not special) barrier_func: Thread 7 done barrier_func: Thread 0 done barrier_func: Thread 1 done barrier_func: Thread 2 done barrier_test: Thread 0 completed with result=0 barrier_test: Thread 1 completed with result=0 barrier_test: Thread 2 completed with result=0 barrier_func: Thread 3 done barrier_func: Thread 4 done barrier_test: Thread 3 completed with result=0 barrier_test: Thread 4 completed with result=0 barrier_func: Thread 5 done barrier_func: Thread 6 done barrier_test: Thread 5 completed with result=0 barrier_test: Thread 6 completed with result=0 barrier_test: Thread 7 completed with result=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 5 9 mxordblk 54a78 52250 uordblks 64fc 5c7c fordblks 554e0 55d60 user_main: scheduler lock test sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Finished End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 9 8 mxordblk 52250 54c38 uordblks 5c7c 5c7c fordblks 55d60 55d60 user_main: vfork() test vfork_test: Child 91 ran successfully Final memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 5b9dc 5b9dc ordblks 1 7 mxordblk 56e20 52c38 uordblks 4bbc 7464 fordblks 56e20 54578 user_main: Exiting ostest_main: Exiting with status 0 % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- 10,63s real 5,06s user 7,12s sys === ESP32-S2 === xtensa-esp32s2-elf-gcc -v Using built-in specs. COLLECT_GCC=xtensa-esp32s2-elf-gcc COLLECT_LTO_WRAPPER=/usr/home/cederom/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/bin/../libexec/gcc/xtensa-esp32s2-elf/8.4.0/lto-wrapper Target: xtensa-esp32s2-elf Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32s2-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf/xtensa-esp32s2-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf/xtensa-esp32s2-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-2021r2-patch5' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes Thread model: posix gcc version 8.4.0 (crosstool-NG esp-2021r2-patch5) Using updated .config: 207 # CONFIG_ESP32S2_UART0_RS485 is not set 208 CONFIG_ESP32S2_UART0_TXPIN=2 209 CONFIG_ESP32S2_UART0_RXPIN=3 % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:nsh 3,31s real 1,59s user 1,76s sys % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- 31,17s real 1m14,23s user 56,48s sys % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- 5,49s real 2,12s user 1,49s sys % cu -l /dev/cuaU0 -s 115200 Connected NuttShell (NSH) NuttX-12.4.0 nsh> uname -a NuttX 12.4.0 96c2707737 Jan 13 2024 02:38:01 xtensa esp32s2-saola-1 % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- 8,86s real 3,98s user 4,98s sys % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:coremark 3,32s real 1,52s user 1,84s sys % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- 30,55s real 1m13,80s user 54,41s sys % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- 4,85s real 1,77s user 1,01s sys % cu -l /dev/cuaU0 -s 115200 Connected Running CoreMark... 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 1279 Total time (secs): 12.790000 Iterations/Sec : 469.116497 Iterations : 6000 Compiler version : GCC8.4.0 Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections Memory location : HEAP seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0xa14c Correct operation validated. See README.md for run and reporting rules. CoreMark 1.0 : 469.116497 / GCC8.4.0 -O3 -fno-strict-aliasing -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- 8,47s real 3,99s user 4,59s sys % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:ostest 3,34s real 1,60s user 1,78s sys % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- 32,13s real 1m17,88s user 57,65s sys % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- 6,19s real 2,42s user 1,46s sys % cu -l /dev/cuaU0 -s 115200 Connected NuttShell (NSH) NuttX-12.4.0 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=3 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 4a33c 4a33c ordblks 1 1 mxordblk 45338 45338 uordblks 5004 5004 fordblks 45338 45338 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 4a33c 4a33c ordblks 1 1 mxordblk 45338 45338 uordblks 5004 5004 fordblks 45338 45338 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 4a33c 4a33c ordblks 1 2 mxordblk 45338 45338 uordblks 5004 4fe4 fordblks 45338 45358 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 4a33c 4a33c ordblks 2 3 mxordblk 45338 45338 uordblks 4fe4 4f7c fordblks 45358 453c0 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 4a33c 4a33c ordblks 3 3 mxordblk 45338 45338 uordblks 4f7c 4f7c fordblks 453c0 453c0 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 4a33c 4a33c ordblks 3 3 mxordblk 45338 45338 uordblks 4f7c 4f7c fordblks 453c0 453c0 user_main: task_restart test Test task_restart() restart_main: setenv(VarName, VarValue, TRUE) restart_main: Started restart_main at PID=4 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=4 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 4a33c 4a33c ordblks 3 4 mxordblk 45338 42f70 uordblks 4f7c 7064 fordblks 453c0 432d8 user_main: waitpid test Test waitpid() waitpid_start_child: Started waitpid_main at PID=5 waitpid_main: PID 5 Started waitpid_start_child: Started waitpid_main at PID=6 waitpid_main: PID 6 Started waitpid_start_child: Started waitpid_main at PID=7 waitpid_main: PID 7 Started waitpid_test: Waiting for PID=5 with waitpid() waitpid_main: PID 5 exitting with result=14 waitpid_test: PID 5 waitpid succeeded with stat_loc=0e00 waitpid_last: Waiting for PID=7 with waitpid() waitpid_main: PID 6 exitting with result=14 waitpid_main: PID 7 exitting with result=14 waitpid_last: PASS: PID 7 waitpid succeeded with stat_loc=0e00 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 6 mxordblk 42f70 3e7b8 uordblks 7064 b1c4 fordblks 432d8 3f178 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 4a33c 4a33c ordblks 6 5 mxordblk 3e7b8 42f70 uordblks b1c4 5874 fordblks 3f178 44ac8 user_main: timed mutex test mutex_test: Initializing mutex mutex_test: Starting thread pthread: Started pthread: Waiting for lock or timeout mutex_test: Unlocking pthread: Got the lock pthread: Waiting for lock or timeout pthread: Got the timeout. Terminating mutex_test: PASSED End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 4 mxordblk 42f70 42f70 uordblks 5874 5874 fordblks 44ac8 44ac8 user_main: cancel test cancel_test: Test 1a: Normal Cancellation cancel_test: Starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 2: Asynchronous Cancellation ... Skipped cancel_test: Test 3: Cancellation of detached thread cancel_test: Re-starting thread restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition cancel_test: Canceling thread cancel_test: Joining cancel_test: PASS pthread_join failed with status=ESRCH cancel_test: Test 5: Non-cancelable threads cancel_test: Re-starting thread (non-cancelable) restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread start_thread: Yielding sem_waiter: Taking mutex sem_waiter: Starting wait for condition sem_waiter: Setting non-cancelable cancel_test: Canceling thread cancel_test: Joining sem_waiter: Releasing mutex sem_waiter: Setting cancelable cancel_test: waiter exited with result=0xffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 6: Cancel message queue wait cancel_test: Starting thread (cancelable) Skipped cancel_test: Test 7: Cancel signal wait cancel_test: Starting thread (cancelable) Skipped End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 4 mxordblk 42f70 42f70 uordblks 5874 7074 fordblks 44ac8 432c8 user_main: robust test robust_test: Initializing mutex robust_test: Starting thread robust_waiter: Taking mutex robust_waiter: Exiting with mutex robust_test: Take the lock again robust_test: Make the mutex consistent again. robust_test: Take the lock again robust_test: Joining robust_test: waiter exited with result=0 robust_test: Test complete with nerrors=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 4 mxordblk 42f70 42f70 uordblks 7074 7074 fordblks 432c8 432c8 user_main: semaphore test sem_test: Initializing semaphore to 0 sem_test: Starting waiter thread 1 sem_test: Set thread 1 priority to 191 waiter_func: Thread 1 Started waiter_func: Thread 1 initial semaphore value = 0 sem_test: Starting waiter thread 2 waiter_func: Thread 1 waiting on semaphore sem_test: Set thread 2 priority to 128 waiter_func: Thread 2 Started waiter_func: Thread 2 initial semaphore value = -1 waiter_func: Thread 2 waiting on semaphore sem_test: Starting poster thread 3 sem_test: Set thread 3 priority to 64 poster_func: Thread 3 started poster_func: Thread 3 semaphore value = -2 poster_func: Thread 3 posting semaphore waiter_func: Thread 1 awakened waiter_func: Thread 1 new semaphore value = -1 waiter_func: Thread 1 done poster_func: Thread 3 new semaphore value = -1 poster_func: Thread 3 semaphore value = -1 poster_func: Thread 3 posting semaphore waiter_func: Thread 2 awakened poster_func: Thread 3 new semaphore value = 0 waiter_func: Thread 2 new semaphore value = 0 waiter_func: Thread 2 done poster_func: Thread 3 done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 5 mxordblk 42f70 42f70 uordblks 7074 5874 fordblks 432c8 44ac8 user_main: timed semaphore test semtimed_test: Initializing semaphore to 0 semtimed_test: Waiting for two second timeout semtimed_test: PASS: first test returned timeout BEFORE: (37 sec, 460000000 nsec) AFTER: (39 sec, 470000000 nsec) semtimed_test: Starting poster thread semtimed_test: Set thread 1 priority to 191 semtimed_test: Starting poster thread 3 semtimed_test: Set thread 3 priority to 64 semtimed_test: Waiting for two second timeout poster_func: Waiting for 1 second poster_func: Posting semtimed_test: PASS: sem_timedwait succeeded BEFORE: (39 sec, 470000000 nsec) AFTER: (40 sec, 480000000 nsec) End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 4 mxordblk 42f70 42f70 uordblks 5874 5874 fordblks 44ac8 44ac8 user_main: condition variable test cond_test: Initializing mutex cond_test: Initializing cond cond_test: Starting waiter cond_test: Set thread 1 priority to 128 waiter_thread: Started cond_test: Starting signaler cond_test: Set thread 2 priority to 64 thread_signaler: Started thread_signaler: Terminating cond_test: signaler terminated, now cancel the waiter cond_test: Waiter Signaler cond_test: Loops 32 32 cond_test: Errors 0 0 cond_test: cond_test: 0 times, waiter did not have to wait for data cond_test: 0 times, data was already available when the signaler run cond_test: 0 times, the waiter was in an unexpected state when the signaler ran End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 5 mxordblk 42f70 42f70 uordblks 5874 5874 fordblks 44ac8 44ac8 user_main: pthread_exit() test pthread_exit_test: Started pthread_exit_main at PID=37 pthread_exit_main 37: Starting pthread_exit_thread pthread_exit_main 37: Sleeping for 5 seconds pthread_exit_thread 38: Sleeping for 10 second pthread_exit_main 37: Calling pthread_exit() pthread_exit_thread 38: Still running... pthread_exit_thread 38: Exiting End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 4 mxordblk 42f70 426b0 uordblks 5874 5874 fordblks 44ac8 44ac8 user_main: pthread_rwlock test pthread_rwlock: Initializing rwlock End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 5 mxordblk 426b0 42f70 uordblks 5874 5874 fordblks 44ac8 44ac8 user_main: pthread_rwlock_cancel test pthread_rwlock_cancel: Starting test End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 4 mxordblk 42f70 42f70 uordblks 5874 4fb4 fordblks 44ac8 45388 user_main: timed wait test thread_waiter: Initializing mutex timedwait_test: Initializing cond timedwait_test: Starting waiter timedwait_test: Set thread 2 priority to 177 thread_waiter: Taking mutex timedwait_test: Joining thread_waiter: Starting 5 second wait for condition thread_waiter: pthread_cond_timedwait timed out thread_waiter: Releasing mutex thread_waiter: Exit with status 0x12345678 timedwait_test: waiter exited with result=0x12345678 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 4 mxordblk 42f70 42f70 uordblks 4fb4 5874 fordblks 45388 44ac8 user_main: message queue test mqueue_test: Starting receiver mqueue_test: Set receiver priority to 128 receiver_thread: Starting mqueue_test: Starting sender mqueue_test: Set sender thread priority to 64 mqueue_test: Waiting for sender to complete sender_thread: Starting receiver_thread: mq_receive succeeded on msg 0 sender_thread: mq_send succeeded on msg 0 receiver_thread: mq_receive succeeded on msg 1 sender_thread: mq_send succeeded on msg 1 receiver_thread: mq_receive succeeded on msg 2 sender_thread: mq_send succeeded on msg 2 receiver_thread: mq_receive succeeded on msg 3 sender_thread: mq_send succeeded on msg 3 receiver_thread: mq_receive succeeded on msg 4 sender_thread: mq_send succeeded on msg 4 receiver_thread: mq_receive succeeded on msg 5 sender_thread: mq_send succeeded on msg 5 receiver_thread: mq_receive succeeded on msg 6 sender_thread: mq_send succeeded on msg 6 receiver_thread: mq_receive succeeded on msg 7 sender_thread: mq_send succeeded on msg 7 receiver_thread: mq_receive succeeded on msg 8 sender_thread: mq_send succeeded on msg 8 receiver_thread: mq_receive succeeded on msg 9 sender_thread: mq_send succeeded on msg 9 sender_thread: returning nerrors=0 mqueue_test: Killing receiver receiver_thread: mq_receive interrupted! receiver_thread: returning nerrors=0 mqueue_test: Canceling receiver mqueue_test: receiver has already terminated End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 3 mxordblk 42f70 42f70 uordblks 5874 70d4 fordblks 44ac8 43268 user_main: timed message queue test timedmqueue_test: Starting sender timedmqueue_test: Waiting for sender to complete sender_thread: Starting sender_thread: mq_timedsend succeeded on msg 0 sender_thread: mq_timedsend succeeded on msg 1 sender_thread: mq_timedsend succeeded on msg 2 sender_thread: mq_timedsend succeeded on msg 3 sender_thread: mq_timedsend succeeded on msg 4 sender_thread: mq_timedsend succeeded on msg 5 sender_thread: mq_timedsend succeeded on msg 6 sender_thread: mq_timedsend succeeded on msg 7 sender_thread: mq_timedsend succeeded on msg 8 sender_thread: mq_timedsend 9 timed out as expected sender_thread: returning nerrors=0 timedmqueue_test: Starting receiver timedmqueue_test: Waiting for receiver to complete receiver_thread: Starting receiver_thread: mq_timedreceive succeed on msg 0 receiver_thread: mq_timedreceive succeed on msg 1 receiver_thread: mq_timedreceive succeed on msg 2 receiver_thread: mq_timedreceive succeed on msg 3 receiver_thread: mq_timedreceive succeed on msg 4 receiver_thread: mq_timedreceive succeed on msg 5 receiver_thread: mq_timedreceive succeed on msg 6 receiver_thread: mq_timedreceive succeed on msg 7 receiver_thread: mq_timedreceive succeed on msg 8 receiver_thread: Receive 9 timed out as expected receiver_thread: returning nerrors=0 timedmqueue_test: Test complete End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 3 4 mxordblk 42f70 42f70 uordblks 70d4 7104 fordblks 43268 43238 user_main: sigprocmask test sigprocmask_test: SUCCESS End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 4 mxordblk 42f70 42f70 uordblks 7104 7104 fordblks 43238 43238 user_main: signal handler test sighand_test: Initializing semaphore to 0 sighand_test: Starting waiter task sighand_test: Started waiter_main pid=62 waiter_main: Waiter started waiter_main: Unmasking signal 32 waiter_main: Registering signal handler waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 waiter_main: Waiting on semaphore sighand_test: Signaling pid=62 with signo=32 sigvalue=42 waiter_main: sem_wait() successfully interrupted by signal waiter_main: done sighand_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 4 5 mxordblk 42f70 40f68 uordblks 7104 716c fordblks 43238 431d0 user_main: nested signal handler test signest_test: Starting signal waiter task at priority 101 waiter_main: Waiter started waiter_main: Setting signal mask waiter_main: Registering signal handler signest_test: Started waiter_main pid=63 waiter_main: Waiting on semaphore signest_test: Starting interfering task at priority 102 interfere_main: Waiting on semaphore signest_test: Started interfere_main pid=68 signest_test: Simple case: Total signalled 1240 Odd=620 Even=620 Total handled 1240 Odd=620 Even=620 Total nested 0 Odd=0 Even=0 signest_test: With task locking Total signalled 2480 Odd=1240 Even=1240 Total handled 2480 Odd=1240 Even=1240 Total nested 0 Odd=0 Even=0 signest_test: With intefering thread Total signalled 3720 Odd=1860 Even=1860 Total handled 3720 Odd=1860 Even=1860 Total nested 0 Odd=0 Even=0 signest_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 5 mxordblk 40f68 3ef60 uordblks 716c 9924 fordblks 431d0 40a18 user_main: POSIX timer test timer_test: Initializing semaphore to 0 timer_test: Unmasking signal 32 timer_test: Registering signal handler timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 timer_test: Creating timer timer_test: Starting timer timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=1 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=2 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=3 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=4 timer_test: Waiting on semaphore timer_expiration: Received signal 32 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=5 timer_test: Deleting timer timer_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 5 mxordblk 3ef60 3ef60 uordblks 9924 9924 fordblks 40a18 40a18 user_main: round-robin scheduler test rr_test: Set thread priority to 1 rr_test: Set thread policy to SCHED_RR rr_test: Starting first get_primes_thread First get_primes_thread: 69 rr_test: Starting second get_primes_thread Second get_primes_thread: 70 rr_test: Waiting for threads to complete -- this should take awhile If RR scheduling is working, they should start and complete at about the same time get_primes_thread id=1 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=2 started, looking for primes < 10000, doing 10 run(s) get_primes_thread id=1 finished, found 1230 primes, last one was 9973 get_primes_thread id=2 finished, found 1230 primes, last one was 9973 rr_test: Done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 5 mxordblk 3ef60 42f70 uordblks 9924 6944 fordblks 40a18 439f8 user_main: barrier test barrier_test: Initializing barrier barrier_test: Thread 0 created barrier_test: Thread 1 created barrier_test: Thread 2 created barrier_test: Thread 3 created barrier_func: Thread 0 started barrier_func: Thread 1 started barrier_func: Thread 2 started barrier_func: Thread 3 started barrier_test: Thread 4 created barrier_func: Thread 4 started barrier_test: Thread 5 created barrier_func: Thread 5 started barrier_test: Thread 6 created barrier_func: Thread 6 started barrier_test: Thread 7 created barrier_func: Thread 7 started barrier_func: Thread 0 calling pthread_barrier_wait() barrier_func: Thread 1 calling pthread_barrier_wait() barrier_func: Thread 2 calling pthread_barrier_wait() barrier_func: Thread 3 calling pthread_barrier_wait() barrier_func: Thread 4 calling pthread_barrier_wait() barrier_func: Thread 5 calling pthread_barrier_wait() barrier_func: Thread 6 calling pthread_barrier_wait() barrier_func: Thread 7 calling pthread_barrier_wait() barrier_func: Thread 7, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL) barrier_func: Thread 0, back with status=0 (I am not special) barrier_func: Thread 1, back with status=0 (I am not special) barrier_func: Thread 2, back with status=0 (I am not special) barrier_func: Thread 3, back with status=0 (I am not special) barrier_func: Thread 4, back with status=0 (I am not special) barrier_func: Thread 5, back with status=0 (I am not special) barrier_func: Thread 6, back with status=0 (I am not special) barrier_func: Thread 7 done barrier_func: Thread 0 done barrier_func: Thread 1 done barrier_func: Thread 2 done barrier_test: Thread 0 completed with result=0 barrier_test: Thread 1 completed with result=0 barrier_test: Thread 2 completed with result=0 barrier_func: Thread 3 done barrier_func: Thread 4 done barrier_test: Thread 3 completed with result=0 barrier_test: Thread 4 completed with result=0 barrier_func: Thread 5 done barrier_func: Thread 6 done barrier_test: Thread 5 completed with result=0 barrier_test: Thread 6 completed with result=0 barrier_test: Thread 7 completed with result=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 5 8 mxordblk 42f70 40748 uordblks 6944 60c4 fordblks 439f8 44278 user_main: setjmp test setjmp_test: Initializing jmp_buf setjmp_test: Try jump setjmp_test: Jump succeed End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 8 8 mxordblk 40748 40748 uordblks 60c4 60c4 fordblks 44278 44278 user_main: scheduler lock test sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Starting lowpri_thread at 97 sched_lock: Set lowpri_thread priority to 97 sched_lock: Starting highpri_thread at 98 sched_lock: Set highpri_thread priority to 98 sched_lock: Waiting... sched_lock: PASSED No pre-emption occurred while scheduler was locked. sched_lock: Finished End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 8 7 mxordblk 40748 43150 uordblks 60c4 60c4 fordblks 44278 44278 Final memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 4a33c 4a33c ordblks 1 7 mxordblk 45338 43150 uordblks 5004 60c4 fordblks 45338 44278 user_main: Exiting ostest_main: Exiting with status 0 % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- 8,96s real 3,99s user 5,08s sys === ESP32-S3 === None ESP32-S3 USB Device nor ESP32-S3-Pico UART converter CH343 is still supported. Out of scope. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272803 === SIM === Fails here but will not block needs to be reviewed in a free moment probably FreeBSD / CLANG 14 only. Sorry I did not use SIM for a while :-) % cc --version FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c) Target: x86_64-unknown-freebsd13.2 Thread model: posix InstalledDir: /usr/bin % /usr/bin/time -h ./tools/configure.sh -B sim:nsh 3,39s real 1,73s user 1,70s sys % /usr/bin/time -h gmake -j8 Create version.h LN: platform/board to /XXX/nuttx/workbench/releases/12.4.0-RC0/apps/platform/dummy Register: dumpstack Register: hello Register: gpio Register: nsh Register: sh CP: /XXX/nuttx/workbench/releases/12.4.0-RC0/nuttx/include/nuttx/config.h CP: /XXX/nuttx/workbench/releases/12.4.0-RC0/nuttx/include/nuttx/fs/hostfs.h CC: dummy.c sim/posix/sim_hostfs.c:81:12: warning: implicit declaration of function 'S_TYPEISSEM' is invalid in C99 [-Wimplicit-function-declaration] else if (S_TYPEISSEM(hostbuf)) ^ implicit declaration of function 'S_TYPEISMQ' is invalid in C99 [-Wimplicit-function-declaration] else if (S_TYPEISMQ(hostbuf)) ^ sim/posix/sim_hostfs.c:89:12: warning: implicit declaration of function 'S_TYPEISSHM' is invalid in C99 [-Wimplicit-function-declaration] else if (S_TYPEISSHM(hostbuf)) ^ 3 warnings generated. LD: nuttx ld: error: -Ttext-segment is not supported. Use --image-base if you intend to set the base address cc: error: linker command failed with exit code 1 (use -v to see invocation) gmake[1]: *** [Makefile:376: nuttx] Error 1 gmake: *** [tools/Unix.mk:545: nuttx] Error 2 18,06s real 1m2,85s user 36,55s sys -- CeDeROM, SQ7MHZ, http://www.tomek.cedro.info