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

B
Bernard Xiong 已提交
3 4
**The master branch is frozen util v3.0.0 has been updated**

5
[![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 已提交
6
[![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)
R
Rogerz Zhang 已提交
7

B
Bernard Xiong 已提交
8
RT-Thread is an open source real-time operating system for embedded devices 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 ARM Cortex-A8, ARM Cortex-A9 DualCore etc.
B
Bernard Xiong 已提交
9

B
Bernard Xiong 已提交
10 11
## Overview ##

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

* Device Driver;
B
Bernard Xiong 已提交
15 16
* Component;
* Application Module
B
Bernard Xiong 已提交
17

B
Bernard Xiong 已提交
18
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 已提交
19

B
Bernard Xiong 已提交
20 21 22
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).

The Appliation Module, or User Applicaion (UA) is a dyanmic loaded module, it can be compiled standalone without Kernel. Each UA has its own object container 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 已提交
23 24 25 26 27 28

## Board Support Package ##

RT-Thread RTOS can support many architectures:

* ARM Cortex-M0
B
Bernard Xiong 已提交
29
* ARM Cortex-M3/M4/7
B
Bernard Xiong 已提交
30 31 32 33 34 35 36 37 38
* ARM Cortex-R4
* ARM Cortex-A8/A9
* ARM920T/ARM926 etc
* MIPS 
* x86
* PowerPC

## License ##

B
Bernard Xiong 已提交
39 40 41
RT-Thread RTOS is free software; you can redistribute it and/or modify it under terms of the GNU General Public License version 2 as published by the Free Software Foundation. RT-Thread RTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with RT-Thread; see file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

As a special exception, including RT-Thread RTOS header files in a file, instantiating RT-Thread RTOS generics or templates, or linking other files with RT-Thread RTOS objects to produce an executable application, does not by itself cause the resulting executable application to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.
B
Bernard Xiong 已提交
42 43 44

## Usage ##

B
Bernard Xiong 已提交
45 46
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 已提交
47

B
Bernard Xiong 已提交
48
* ```CROSS_TOOL``` the compiler which you want to use, gcc/keil/iar. 
B
Bernard Xiong 已提交
49 50 51 52
* ```EXEC_PATH``` the path of compiler. 

In SConstruct file:

B
Bernard Xiong 已提交
53
```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 已提交
54 55 56 57 58

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

    scons 

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

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

B
Bernard Xiong 已提交
63
    scons --target=mdk/mdk4/mdk5/iar/cb -s 
B
Bernard Xiong 已提交
64 65 66

to generate the project file. 

B
Bernard Xiong 已提交
67
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 已提交
68

B
Bernard Xiong 已提交
69 70
## Contribution ##

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