50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# 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'
|
|
```
|