diff --git a/README.md b/README.md index 0d13ae0..d8e645b 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,11 @@ Similarly, automatic initialization of the task scheduler by the MTAPI C++ interface can be disabled with -DUSE_AUTOMATIC_INITIALIZATION=OFF. This way, unexpected delays after startup can be avoided, e.g. for timing measurements. +Furthermore, EMBĀ² can be built to work with threading analysis tools such as +Helgrind or ThreadSanitizer. +To enable support for them use -DTHREADING_ANALYSIS_MODE=ON. This uses mutexes +around atomics to avoid false positives and degrades performance significantly. + The tutorial of EMBĀ² comes with example source files in doc/examples/. These can be built with the other source files using CMake option -DBUILD_EXAMPLES=ON in the generation step. Note, however, that the examples use C++11 features and diff --git a/base_c/include/embb/base/c/internal/atomic/and_assign.h b/base_c/include/embb/base/c/internal/atomic/and_assign.h index d2c0d05..63a8712 100644 --- a/base_c/include/embb/base/c/internal/atomic/and_assign.h +++ b/base_c/include/embb/base/c/internal/atomic/and_assign.h @@ -133,7 +133,7 @@ EMBB_DEFINE_AND_ASSIGN(4, "") /* * Now, using the basic functions above, we generate the respective functions * for all basic data types, like "unsigned short". For that purpose, the - * following generator macro is used. This macro is calleuild-work-Desktop-Defaultd by the macros in the + * following generator macro is used. This macro is called by the macros in the * generator header, defining the implementation for the basic data types. * * For unsigned short and for and_assign.h, the following method would be