README.md 4.4 KB
Newer Older
B
Bernard Xiong 已提交
1
# RT-Thread #
B
Bernard Xiong 已提交
2

B
Bernard Xiong 已提交
3 4
[中文页](README_zh.md) |

B
Bernard Xiong 已提交
5
[![GitHub release](https://img.shields.io/github/release/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/releases)
6
[![Build Status](https://travis-ci.org/RT-Thread/rt-thread.svg)](https://travis-ci.org/RT-Thread/rt-thread)
armink_ztl's avatar
armink_ztl 已提交
7
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/RT-Thread/rt-thread?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
B
Bernard Xiong 已提交
8 9
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/pulls)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://github.com/RT-Thread/rt-thread/pulls)
R
Rogerz Zhang 已提交
10

B
Bernard Xiong 已提交
11
RT-Thread is an open source IoT operating system from China, which has strong scalability: from a tiny kernel running on a tiny core, for example ARM Cortex-M0, or Cortex-M3/4/7, to a rich feature system running on MIPS32, ARM Cortex-A8, ARM Cortex-A9 DualCore etc.
B
Bernard Xiong 已提交
12

B
Bernard Xiong 已提交
13 14
## Overview ##

B
Bernard Xiong 已提交
15
RT-Thread RTOS like a traditional real-time operating system. The kernel has real-time multi-task scheduling, semaphore, mutex, mail box, message queue, signal etc. However, it has three different things:
B
Bernard Xiong 已提交
16 17

* Device Driver;
B
Bernard Xiong 已提交
18
* Component;
B
Bernard Xiong 已提交
19
* Dyanmic Module
B
Bernard Xiong 已提交
20

B
Bernard Xiong 已提交
21
The device driver is more like a driver framework, UART, IIC, SPI, SDIO, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then combined with the upper framework, he/she can use lots of features.
B
Bernard Xiong 已提交
22

B
Bernard Xiong 已提交
23 24
The Component is a software concept upon RT-Thread kernel, for example a shell (finsh/msh shell), virtual file system (FAT, YAFFS, UFFS, ROM/RAM file system etc), TCP/IP protocol stack (lwIP), POSIX (thread) interface etc. One component must be a directory under RT-Thread/Components and one component can be descripted by a SConscript file (then be compiled and linked into the system).

B
Bernard Xiong 已提交
25
The Dyanmic Module, formerly named as User Applicaion (UA) is a dyanmic loaded module or library, it can be compiled standalone without Kernel. Each Dyanmic Module has its own object list to manage thread/semaphore/kernel object which was created or initialized inside this UA. More information about UA, please visit another [git repo](https://github.com/RT-Thread/rtthread-apps).
B
Bernard Xiong 已提交
26 27 28 29 30 31

## Board Support Package ##

RT-Thread RTOS can support many architectures:

* ARM Cortex-M0
B
Bernard Xiong 已提交
32
* ARM Cortex-M3/M4/7
B
Bernard Xiong 已提交
33 34 35
* ARM Cortex-R4
* ARM Cortex-A8/A9
* ARM920T/ARM926 etc
B
Bernard Xiong 已提交
36
* MIPS32
B
Bernard Xiong 已提交
37
* x86
B
Bernard Xiong 已提交
38 39 40
* Andes
* C-Sky
* RISC-V
B
Bernard Xiong 已提交
41 42 43 44
* PowerPC

## License ##

B
Bernard Xiong 已提交
45
RT-Thread is Open Source software under the Apache License 2.0 since RT-Thread v3.1.1. License and copyright information can be found within the code.
B
Bernard Xiong 已提交
46

B
Bernard Xiong 已提交
47 48 49 50 51 52 53 54 55 56 57
    /*
     * Copyright (c) 2006-2018, RT-Thread Development Team
     *
     * SPDX-License-Identifier: Apache-2.0
     */

Since 9th of September 2018, PRs submitted by the community may be merged into the main line only after signing the Contributor License Agreement(CLA).

NOTE:

RT-Thread using the Apache license v2.0 is only launched after the release of v3.1.1, and is still in preparation right now.
B
Bernard Xiong 已提交
58 59 60

## Usage ##

B
Bernard Xiong 已提交
61 62
RT-Thread RTOS uses [scons](http://www.scons.org) as building system. Therefore, please install scons and Python 2.7 firstly. 
So far, the RT-Thread scons building system support the command line compile or generate some IDE's project. There are some option varaibles in the scons building script (rtconfig.py):
B
Bernard Xiong 已提交
63

B
Bernard Xiong 已提交
64
* ```CROSS_TOOL``` the compiler which you want to use, gcc/keil/iar. 
B
Bernard Xiong 已提交
65 66 67 68
* ```EXEC_PATH``` the path of compiler. 

In SConstruct file:

B
Bernard Xiong 已提交
69
```RTT_ROOT``` This variable is the root directory of RT-Thread RTOS. If you build the porting in the bsp directory, you can use the default setting. Also, you can set the root directory in ```RTT_ROOT``` environment variable and not modify SConstruct files.
B
Bernard Xiong 已提交
70 71 72

When you set these variables correctly, you can use command:

B
Bernard Xiong 已提交
73
    scons
B
Bernard Xiong 已提交
74

B
Bernard Xiong 已提交
75
under BSP directory to simplely compile RT-Thread RTOS.
B
Bernard Xiong 已提交
76

B
Bernard Xiong 已提交
77
If you want to generate the IDE's project file, you can use command:
B
Bernard Xiong 已提交
78

B
Bernard Xiong 已提交
79
    scons --target=mdk/mdk4/mdk5/iar/cb -s
B
Bernard Xiong 已提交
80

B
Bernard Xiong 已提交
81
to generate the project file.
B
Bernard Xiong 已提交
82

B
Bernard Xiong 已提交
83
NOTE: RT-Thread scons building system will tailor the system according to your rtconfig.h configuration header file. For example, if you disable the lwIP in the rtconfig.h by commenting the ```#define RT_USING_LWIP```, the generated project file should have no lwIP related files.
B
Bernard Xiong 已提交
84

B
Bernard Xiong 已提交
85 86
## Contribution ##

B
Bernard Xiong 已提交
87
Please refer the contributors in the github. Thank all of RT-Thread Developers.