Skip to content

Commit a65efe6

Browse files
BernardXiongRbb666
authored andcommitted
[Tools] Add documents for tools script; Add NG for tools
1 parent 5347500 commit a65efe6

16 files changed

+5686
-0
lines changed

tools/docs/README.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# RT-Thread 构建系统文档
2+
3+
欢迎使用RT-Thread构建系统文档。本文档集详细介绍了RT-Thread基于SCons的构建系统的使用方法和技术原理。
4+
5+
## 文档目录
6+
7+
### 📚 用户指南
8+
9+
1. **[构建系统使用指南](构建系统使用指南.md)**
10+
- 快速开始
11+
- 命令行选项详解
12+
- 工具链配置
13+
- 项目生成
14+
- 软件包管理
15+
- 高级功能
16+
- 常见问题解答
17+
18+
2. **[SConscript编写指南](SConscript编写指南.md)**
19+
- 基础语法
20+
- 常用模式
21+
- 高级技巧
22+
- 最佳实践
23+
- 示例集合
24+
25+
### 🔧 技术文档
26+
27+
3. **[构建系统技术原理](构建系统技术原理.md)**
28+
- 系统架构设计
29+
- 核心模块分析
30+
- 构建流程详解
31+
- 依赖管理机制
32+
- 工具链适配层
33+
- 项目生成器架构
34+
- 扩展机制
35+
36+
## 快速导航
37+
38+
### 常用命令
39+
40+
```bash
41+
# 基础编译
42+
scons # 默认编译
43+
scons -j8 # 8线程并行编译
44+
scons -c # 清理编译产物
45+
46+
# 配置管理
47+
menuconfig # 图形化配置
48+
scons --pyconfig # Python脚本配置
49+
50+
# 项目生成
51+
scons --target=mdk5 # 生成Keil MDK5项目
52+
scons --target=iar # 生成IAR项目
53+
scons --target=vsc # 生成VS Code项目
54+
scons --target=cmake # 生成CMake项目
55+
56+
# 软件包管理
57+
pkgs --update # 更新软件包
58+
pkgs --list # 列出已安装包
59+
```
60+
61+
### 核心概念
62+
63+
- **SConstruct**: BSP根目录的主构建脚本
64+
- **SConscript**: 各个组件/目录的构建脚本
65+
- **rtconfig.py**: 工具链和平台配置
66+
- **rtconfig.h**: RT-Thread功能配置
67+
- **DefineGroup**: 定义组件的核心函数
68+
- **GetDepend**: 检查依赖的核心函数
69+
70+
## 构建系统架构图
71+
72+
```
73+
┌─────────────────────────────────────┐
74+
│ 用户命令 (scons) │
75+
└──────────────┬──────────────────────┘
76+
77+
┌──────────────▼──────────────────────┐
78+
│ SConstruct (主脚本) │
79+
│ ┌─────────────────────┐ │
80+
│ │ PrepareBuilding() │ │
81+
│ │ 环境初始化 │ │
82+
│ └──────────┬──────────┘ │
83+
└────────────────┼───────────────────┘
84+
85+
┌────────────────▼────────────────────┐
86+
│ building.py │
87+
│ ┌──────────┬──────────┐ │
88+
│ │ 组件收集 │ 依赖处理 │ │
89+
│ └──────────┴──────────┘ │
90+
└─────────────────────────────────────┘
91+
92+
┌────────┴────────┐
93+
│ │
94+
┌───────▼──────┐ ┌────────▼────────┐
95+
│ SConscript │ │ rtconfig.h │
96+
│ 组件脚本 │ │ 功能配置 │
97+
└──────────────┘ └─────────────────┘
98+
```
99+
100+
## 主要特性
101+
102+
**多工具链支持**
103+
- GCC (ARM/RISC-V/x86)
104+
- Keil MDK (ARMCC/ARMClang)
105+
- IAR
106+
- Visual Studio
107+
108+
**灵活的配置系统**
109+
- Kconfig图形配置
110+
- 条件编译支持
111+
- 本地编译选项
112+
113+
**丰富的项目生成器**
114+
- IDE项目文件生成
115+
- CMake支持
116+
- Makefile生成
117+
- VS Code配置
118+
119+
**模块化设计**
120+
- 组件独立构建
121+
- 清晰的依赖管理
122+
- 可扩展架构
123+
124+
## 开发工作流
125+
126+
```mermaid
127+
graph LR
128+
A[配置系统] --> B[编写代码]
129+
B --> C[构建项目]
130+
C --> D[调试运行]
131+
D --> E{是否完成?}
132+
E -->|否| B
133+
E -->|是| F[发布]
134+
135+
A1[menuconfig] -.-> A
136+
C1[scons] -.-> C
137+
C2[IDE项目] -.-> C
138+
```
139+
140+
## 相关链接
141+
142+
- [RT-Thread官网](https://www.rt-thread.org)
143+
- [RT-Thread GitHub](https://github.com/RT-Thread/rt-thread)
144+
- [SCons官方文档](https://scons.org/documentation.html)
145+
146+
## 贡献指南
147+
148+
如果您发现文档中的错误或有改进建议,欢迎:
149+
150+
1. 在GitHub上提交Issue
151+
2. 提交Pull Request
152+
3. 在RT-Thread社区论坛反馈
153+
154+
## 版本信息
155+
156+
- 文档版本:1.0.0
157+
- 更新日期:2024-01
158+
- 适用版本:RT-Thread 4.1.0+
159+
160+
---
161+
162+
**注意**:本文档基于RT-Thread最新版本编写,部分功能可能需要特定版本支持。使用前请确认您的RT-Thread版本。

0 commit comments

Comments
 (0)