查看: 1452|回复: 0
打印 上一主题 下一主题

RT-Thread (RTOS)介绍

[复制链接]

7

主题

7

帖子

1290万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12902412
跳转到指定楼层
楼主
发表于 2019-3-26 22:13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

RT-Thread是一个来自中国的开源物联网操作系统,它提供了非常强的可伸缩能力:从一个可以运行在ARM Cortex-M0芯片上的极小内核,到中等的ARM Cortex-M3/4/7系统,甚至是运行于MIPS32、ARM Cortex-A系列处理器上功能丰富系统。
简介
RT-Thread包含了一个自有的、传统的硬实时内核:可抢占的多任务实时调度器,信号量,互斥量,邮箱,消息队列,信号等。当然,它和传统的实时操作系统还存在着三种不同:
  • 设备驱动框架;
  • 软件组件;
  • 应用模块
设备驱动框架更类似一套驱动框架,涉及到UART,IIC,SPI,SDIO,USB从设备/主设备,EMAC,NAND闪存设备等。它会把这些设备驱动中的共性抽象/抽取出来,而驱动工程师只需要按照固定的模式实现少量的底层硬件操作及板级配置。通过这样的方式,让一个硬件外设更容易地对接到RT-Thread系统中,并获得RT-Thread平台上的完整软件栈功能。
支持的芯片架构
RT-Thread支持数种芯片体系架构,已经覆盖当前应用中的主流体系架构:
  • 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
许可证
RT-Thread从v3.1.1版本开始,是一个以Apache许可证2.0版本授权的开源软件,许可证信息以及版权信息一般的可以在代码首部看到:
/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 */
从2018/09/09开始,开发者提交PR需要签署贡献者许可协议(CLA)。
注意:
以Apache许可协议v2.0版本授权仅在RT-Thread v3.1.1正式版发布之后才正式实施,当前依然在准备阶段(准备所有原有开发者签署CLA协议)。
编译
RT-Thread使用了scons做为自身的编译构建系统,并进行一定的定制以满足自身的需求(可以通过scons --help查看RT-Thread中额外添加的命令)。在编译RT-Thread前,请先安装Python 2.7.x及scons。
截至目前,RT-Thread scons构建系统可以使用命令行方式编译代码,或者使用scons来生成不同IDE的工程文件。在使用scons时,需要对构建配置文件(rtconfig.py)中如下的变量进行配置:
  • CROSS_TOOL 指定希望使用的工具链,例如gcc/keil/iar.
  • EXEC_PATH 工具链的路径.
注:在SConstruct文件中:
RTT_ROOT 这个变量指向了RT-Thread的发布源代码根目录。如果你仅计划编译bsp目录下的target,这个RTT_ROOT可以使用默认配置。另外,你也可以设置同名的环境变量来指向不同的RT-Thread源代码根目录。
当你把相关的配置都配置正确后,你可以在具有目标目录下(这个目录应包括rtconfig.py、SContruct文件)执行以下命令:
scons
从而简单地就编译好RT-Thread。
如果你希望使用IDE来编译RT-Thread,你也可以使用命令行:
scons --target=mdk/mdk4/mdk5/iar/cb -s
来生成mdk/iar等的工程文件。而后在IDE中打开project前缀的工程文件来编译RT-Thread。
注意:RT-Thread的scons构建系统会根据配置头文件rtconfig.h来裁剪系统。例如,如果你关闭了rtconfig.h中的lwIP定义(通过注释掉#define RT_USING_LWIP的方式),则scons生成的IDE工程文件中将自动不包括lwIP相关的文件。而在RT-Thread 3.0版本中,可以通过menuconfig的方式来配置整个系统,而不需要再手工更改rtconfig.h配置头文件。
贡献者
请访问github上RT-Thread项目上的contributors了解已经为RT-Thread提交过代码,PR的贡献者。感谢所有为RT-Thread付出的开发者们!


github 仓库https://github.com/RT-Thread/rt-thread

本版积分规则

快速回复 返回顶部 返回列表