rt-thread 私人库
Go to file
zhangjun 3ede7630c0 [components][libc][compilers][common]拆分armcc和iar的time相关函数到common目录,同时修复原来在使用LIBC时time相关函数的BUG(armcc下使用gmtime、localtime、mktime会导致崩溃) 2019-08-22 15:34:50 +08:00
.github Update PULL_REQUEST_TEMPLATE.md 2019-01-23 10:05:23 +08:00
bsp Merge pull request #2979 from tyustli/flash 2019-08-21 19:32:39 +08:00
components [components][libc][compilers][common]拆分armcc和iar的time相关函数到common目录,同时修复原来在使用LIBC时time相关函数的BUG(armcc下使用gmtime、localtime、mktime会导致崩溃) 2019-08-22 15:34:50 +08:00
documentation There is some "micro" word (e.g. section6), maybe "macro"? 2018-09-26 18:48:17 +09:00
examples [examples][pm]add wakeup application for pm. 2019-05-09 20:55:35 +08:00
include 改回O_DIRCTORY与O_NONBLOCK,解决O_DIRCOTY与newlib中O_BINARY的相同定义 2019-08-20 09:16:42 +08:00
libcpu 参照龙芯1c手册更正看门狗寄存器宏定义 2019-08-21 13:44:55 +08:00
src Create IPC.ipch 2019-08-10 22:45:00 +08:00
tools [tools] Fix eclipse configuration for lib paths. 2019-08-15 10:22:29 +08:00
.gitattributes update .gitattributes 2013-01-08 23:57:29 +08:00
.gitignore Update .gitignore 2018-11-09 10:08:31 +08:00
.travis.yml [ci] remove gcc-4.6-base:i386 from ci env. 2019-08-18 07:30:29 +08:00
AUTHORS update CRLF 2013-01-09 00:06:34 +08:00
ChangeLog.md Update ChangeLog.md 2019-05-16 20:25:15 +08:00
Kconfig [Kconfig] Rename all of KConfig files to 'Kconfig' 2017-11-30 20:12:53 +08:00
LICENSE Update license information. 2018-09-09 11:13:41 +08:00
README.md fix typo 2019-05-11 10:39:24 +04:00
README_zh.md Update license information. 2018-09-09 11:13:41 +08:00

README.md

RT-Thread

中文页 |

GitHub GitHub release Build Status Gitter GitHub pull-requests PRs Welcome

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.

Overview

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:

  • Device Driver;
  • Component;
  • Dynamic Module

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.

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 Dynamic Module, formerly named as User Applicaion (UA) is a dynamic loaded module or library, it can be compiled standalone without Kernel. Each Dynamic 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.

Board Support Package

RT-Thread RTOS can support many architectures:

  • ARM Cortex-M0
  • ARM Cortex-M3/M4/7
  • ARM Cortex-R4
  • ARM Cortex-A8/A9
  • ARM920T/ARM926 etc
  • MIPS32
  • x86
  • Andes
  • C-Sky
  • RISC-V
  • PowerPC

License

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.

/*
 * 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).

Usage

RT-Thread RTOS uses scons 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):

  • CROSS_TOOL the compiler which you want to use, gcc/keil/iar.
  • EXEC_PATH the path of compiler.

In SConstruct file:

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.

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

scons

under BSP directory to simplely compile RT-Thread RTOS.

If you want to generate the IDE's project file, you can use command:

scons --target=mdk/mdk4/mdk5/iar/cb -s

to generate the project file.

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.

Contribution

Please refer the contributors in the github. Thank all of RT-Thread Developers.