summaryrefslogtreecommitdiff
path: root/components/cplusplus/cpp11/README.md
diff options
context:
space:
mode:
authorguo <[email protected]>2021-09-28 10:36:54 +0800
committerGitHub <[email protected]>2021-09-28 10:36:54 +0800
commit55a302cd092758a44b589d65470a69d9e8ae4ced (patch)
treee60fc53994c426007e9eb4877e5bd123f124ef39 /components/cplusplus/cpp11/README.md
parent00727d6b6db92dc1cf98f028f26fd6168594b905 (diff)
parent00d42ef73cff61ecda7ff006b077a73e1a4ff669 (diff)
Merge branch 'master' into usbh_construct
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'
+ ```