1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/core/thread_float
2024-07-29 11:45:58 +02:00
..
tests tests: move core related applications to tests/core/ subdirectory 2023-05-10 15:41:38 +02:00
main.c treewide: remove THREAD_CREATE_STACKTEST from thread creation 2024-07-29 11:45:58 +02:00
Makefile examples, tests: Changes for the native64 board 2024-02-05 22:02:14 +01:00
Makefile.ci boards/weact-g030f6: add new board 2024-02-05 00:45:42 +01:00
README.md tests: move core related applications to tests/core/ subdirectory 2023-05-10 15:41:38 +02:00

Testing for Absence of Interactions between Floating Point Calculations and Context Switches

This tests launches three threads, t1, t2 and t3 that will perform a long and costly series of floating point calculations with different input data, while a software timer triggers context switches. The threads t1 and t3 will print the results. All threads will do this in an endless loop.

This allows for testing the following:

  1. When using the pseudo module printf_float, floating point numbers can be correctly printed
  2. THREAD_STACKSIZE_MAIN is large enough to print floats without stack overflows.
  3. Context switches while the (soft) FPU is busy does not result in precision loss.
    • This could happen if the FPU state is not properly saved / restored on context switch. This could be needed if the FPU internally uses a higher resolution that float / double (e.g. the x86 FPU uses 80 bits internally, instead of 64 bits for double)