This repository has been archived on 2023-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
bl_mcu_sdk/components/rt-thread/README_zh.md

179 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 简介
RT-Thread诞生于2006年是一款以开源、中立、社区化发展起来的物联网操作系统。
RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上。RT-Thread把面向对象的设计方法应用到实时系统设计中使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。
RT-Thread有完整版和Nano版对于资源受限的微控制器MCU系统可通过简单易用的工具裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本而相对资源丰富的物联网设备可使用RT-Thread完整版通过在线的软件包管理工具配合系统配置工具实现直观快速的模块化裁剪并且可以无缝地导入丰富的软件功能包实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。
## **RT-Thread架构**
RT-Thread是一个集实时操作系统RTOS内核、中间件组件的物联网操作系统架构如下
![architecturezh](./documentation/figures/architecturezh.png)
- 内核层RT-Thread内核是 RT-Thread的核心部分包括了内核系统中对象的实现例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等libcpu/BSP芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
- 组件与服务层:组件是基于 RT-Thread内核之上的上层软件例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计做到组件内部高内聚组件之间低耦合。
- RT-Thread软件包运行于 RT-Thread物联网操作系统平台上面向不同应用领域的通用软件组件由描述信息、源代码或库文件组成。RT-Thread提供了开放的软件包平台这里存放了官方提供或开发者提供的软件包该平台为开发者提供了众多可重用软件包的选择这也是 RT-Thread生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要因为这些软件包具有很强的可重用性模块化程度很高极大的方便应用开发者在最短时间内打造出自己想要的系统。RT-Thread已经支持的软件包数量已经达到 180+。
## RT-Thread的特点
- 资源占用极低超低功耗设计最小内核Nano版本仅需1.2KB RAM3KB Flash。
- 组件丰富,繁荣发展的软件包生态 。
- 简单易用 ,优雅的代码风格,易于阅读、掌握。
- 高度可伸缩,优质的可伸缩的软件架构,松耦合,模块化,易于裁剪和扩展。
- 强大,支持高性能应用。
- 跨平台、芯片支持广泛。
## **代码目录**
RT-Thread源代码目录结构如下图所示
| 名称 | 描述 |
| ------------- | ------------------------------------------------------- |
| BSP | Board Support Package板级支持包基于各种开发板的移植 |
| components | RT-Thread 的各个组件代码,例如 finshgui 等。 |
| documentation | 相关文档,如编码规范等 |
| examples | 相关示例代码 |
| include | RT-Thread 内核的头文件。 |
| libcpu | 各类芯片的移植代码。 |
| src | RT-Thread 内核的源文件。 |
| tools | RT-Thread 命令构建工具的脚本文件。 |
目前RT-Thread已经针对将近90种开发板做好了移植大部分 BSP 都支持 MDK﹑IAR开发环境和GCC编译器并且已经提供了默认的 MDK 和 IAR 工程,用户可以直接基于这个工程添加自己的应用代码。 每个 BSP 的目录结构高度统一,且都提供一个 README.md 文件,包含了对这个 BSP 的基本介绍,以及相应的说明,方便用户快速上手。
Env 是RT-Thread推出的开发辅助工具针对基于RT-Thread操作系统的项目工程提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
[下载 Env 工具](https://www.rt-thread.org/page/download.html)
[Env 用户手册](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/env/env.md)
# 资源文档
## **硬件支持**
RT-Thread RTOS 支持许多架构,并且已经涵盖了当前应用中的主要架构。涉及的架构和芯片制造商有:
- ARM Cortex-M0/M0+:如芯片制造商 ST
- ARM Cortex-M3如芯片制造商 ST、全志、灵动等.
- ARM Cortex-M4如芯片制造商 ST、Nuvton、NXP、GigaDevice、Realtek、Ambiq Micro等
- ARM Cortex-M7如芯片制造商 ST、NXP
- ARM Cortex-M23如芯片制造商 GigaDevice
- ARM Cortex-R4
- ARM Cortex-A8/A9如芯片制造商 NXP
- ARM7如芯片制造商Samsung
- ARM9如芯片制造商Allwinner、Xilinx 、GOKE
- ARM11如芯片制造商Fullhan
- MIPS32如芯片制造商loongson、Ingenic
- RISC-V如芯片制造商Hifive、Kendryte、[芯来Nuclei](https://nucleisys.com/)
- ARC如芯片制造商SYNOPSYS
- DSP如芯片制造商 TI
- C-Sky
- x86
## **支持的 IDE 和编译器**
RT-Thread主要支持的IDE/编译器包括:
- MDK KEIL
- IAR
- Gcc
- RT-Thread Studio
使用基于 Python 的 [scons](http://www.scons.org/) 进行命令行生成。
RT-Thread Studio演示
![studiozh](./documentation/figures/studiozh.gif)
## **快速上手**
RT-Thread BSP可以直接编译并下载到相应的开发板使用。此外RT-Thread还提供 qemu-vexpress-a9 BSP无需硬件平台即可使用。有关详细信息请参阅下面的入门指南。
[QEMU 入门指南(Windows)](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/documentation/quick_start_qemu/quick_start_qemu.md)
[QEMU 入门指南(Ubuntu)](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/documentation/quick_start_qemu/quick_start_qemu_linux.md)
## 文档
[文档中心](https://www.rt-thread.org/document/site/ ) | [编程指南](https://www.rt-thread.org/document/site/programming-manual/basic/basic/ )
[应用 RT-Thread 实现蜂鸣器播放器教程](https://www.rt-thread.org/document/site/tutorial/beep-player/) | [分布式温度监控系统教程](https://www.rt-thread.org/document/site/tutorial/temperature-system/ ) | [智能车连载教程](https://www.rt-thread.org/document/site/tutorial/smart-car/ )
## 例程
[内核示例](https://github.com/RT-Thread-packages/kernel-sample) | [设备示例代码](https://github.com/RT-Thread-packages/peripheral-sample ) | [文件系统示例代码](https://github.com/RT-Thread-packages/filesystem-sample ) | [网络示例代码](https://github.com/RT-Thread-packages/network-sample ) | [RT-Thread API参考手册](https://www.rt-thread.org/document/api/ )
[基于STM32L475 IoT Board 开发板SDK](https://github.com/RT-Thread/IoT_Board) | [基于W601 IoT Board 开发板SDK](https://github.com/RT-Thread/W601_IoT_Board)
## 视频
RT-Thread视频中心提供了一系列RT-Thread相关教程及分享内容。
如:内核入门系列 | Env系列 | 网络系列 | Nano移植系列 | RT-Thread Studio系列 | 柿饼UI系列 | 答疑直播系列 | 社区作品系列
更多详情,请前往 [视频中心](https://www.rt-thread.org/page/video.html)
# **许可协议**
RT-Thread系统完全开源3.1.0 及以前的版本遵循 GPL V2 + 开源许可协议。从 3.1.0 以后的版本遵循Apache License 2.0开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。
```
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*/
```
# 社区支持
RT-Thread非常感谢所有社区小伙伴的支持在使用RT-Thread的过程中若您有任何的想法建议或疑问都可通过以下方式联系到 RT-Thread我们也实时在这些频道更新RT-Thread的最新讯息。同时任何问题都可以在 [issue section](https://github.com/RT-Thread/rtthread-manual-doc/issues) 中提出。通过创建一个issue来描述您的问题社区成员将回答这些问题。
[官网]( https://www.rt-thread.org) | [论坛]( https://www.rt-thread.org/qa/forum.php) | [哔哩哔哩官方账号](https://space.bilibili.com/423462075?spm_id_from=333.788.b_765f7570696e666f.2) | [微博官方账号](https://weibo.com/rtthread?is_hot=1) | [知乎官方账号](https://www.zhihu.com/topic/19964581/hot)
RT-Thread微信公众号
![qrcode](./documentation/figures/qrcode.png)
# 贡献代码
如果您对RT-Thread感兴趣并希望参与RT-Thread的开发并成为代码贡献者请参阅[代码贡献指南](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/documentation/contribution_guide/contribution_guide.md)。