summaryrefslogtreecommitdiff
path: root/components/cplusplus/cpp11/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'components/cplusplus/cpp11/README.md')
-rw-r--r--components/cplusplus/cpp11/README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/components/cplusplus/cpp11/README.md b/components/cplusplus/cpp11/README.md
new file mode 100644
index 0000000000..a292051608
--- /dev/null
+++ b/components/cplusplus/cpp11/README.md
@@ -0,0 +1,49 @@
+# C++ 11 support for RT-Thread
+
+## Features
+
+Here are some features about rt-thread c++11 threading futures.
+
+- Atomic.
+- Conditional variables.
+- Clocks.
+- Future.
+- Mutexes.
+- Threads.
+- TLS.
+
+## How To Use
+
+Note that using C++ 11 in rt-thread requires modifying some of the files in the toolchain. Before modifying the tool, back up the tool chain.
+
+1. Enable c++11 support
+
+ ![](figures/Snipaste_2021-09-02_16-00-09.png)
+
+2. Download toolchain GCC 10.2.1:
+
+ ```shell
+ gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
+ ```
+
+3. Delete the following files:
+
+ ```shell
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/thread
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/mutex
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/condition_variable
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/future
+ rm -f toolchain/arm-none-eabi/include/pthread.h
+ ```
+
+4. Clear the contents of the following files and keep them to prevent compilation failures:
+
+ ```shell
+ toolchain/arm-none-eabi/include/sys/_pthreadtypes.h
+ ```
+
+5. Update `rtconfig.py` file. add compilation parameters:
+
+ ```shell
+ CXXFLAGS = CFLAGS + ' -std=c++11 -fabi-version=0 -MMD -MP -MF'
+ ```