|
15 | 15 |
|
16 | 16 | ### 整体架构图 |
17 | 17 |
|
18 | | -``` |
19 | | -┌────────────────────────────────────────────────────────────────────┐ |
20 | | -│ 用户接口层 │ |
21 | | -│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌──────────┐│ |
22 | | -│ │ 命令行接口 │ │ menuconfig │ │ 环境变量 │ │ 配置文件 ││ |
23 | | -│ │ (scons) │ │ (Kconfig) │ │ (RTT_xxx) │ │ (.config)││ |
24 | | -│ └──────┬──────┘ └──────┬───────┘ └──────┬──────┘ └─────┬────┘│ |
25 | | -└─────────┼─────────────────┼──────────────────┼───────────────┼─────┘ |
26 | | - │ │ │ │ |
27 | | -┌─────────▼─────────────────▼──────────────────▼───────────────▼─────┐ |
28 | | -│ 构建引擎层 │ |
29 | | -│ ┌─────────────────────────────────────────────────────────────┐ │ |
30 | | -│ │ building.py │ │ |
31 | | -│ ├─────────────┬───────────────┬─────────────┬────────────────┤ │ |
32 | | -│ │ 环境准备 │ 组件收集 │ 依赖处理 │ 构建执行 │ │ |
33 | | -│ │ Prepare │ DefineGroup │ GetDepend │ DoBuilding │ │ |
34 | | -│ └─────────────┴───────────────┴─────────────┴────────────────┘ │ |
35 | | -└────────────────────────────────────────────────────────────────────┘ |
36 | | - │ │ │ │ |
37 | | -┌─────────▼─────────────────▼──────────────────▼───────────────▼─────┐ |
38 | | -│ 工具支撑层 │ |
39 | | -│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ ┌──────┐│ |
40 | | -│ │ utils.py │ │options.py│ │package.py│ │mkdist.py│ │预处理││ |
41 | | -│ │ 工具函数 │ │命令选项 │ │包管理 │ │分发打包 │ │器 ││ |
42 | | -│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ └──────┘│ |
43 | | -└────────────────────────────────────────────────────────────────────┘ |
44 | | - │ │ │ │ |
45 | | -┌─────────▼─────────────────▼──────────────────▼───────────────▼─────┐ |
46 | | -│ 目标生成器层 │ |
47 | | -│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────────┐ │ |
48 | | -│ │keil.py │ │iar.py │ │gcc.py │ │vsc.py │ │cmake.py等 │ │ |
49 | | -│ └────────┘ └────────┘ └────────┘ └────────┘ └────────────┘ │ |
50 | | -└────────────────────────────────────────────────────────────────────┘ |
51 | | -``` |
| 18 | + |
52 | 19 |
|
53 | 20 | ### 设计原则 |
54 | 21 |
|
@@ -598,45 +565,7 @@ def MkDist_Strip(program, BSP_ROOT, RTT_ROOT, Env): |
598 | 565 |
|
599 | 566 | ### 完整构建流程图 |
600 | 567 |
|
601 | | -``` |
602 | | -┌──────────────┐ |
603 | | -│ 用户输入 │ |
604 | | -│ scons │ |
605 | | -└──────┬───────┘ |
606 | | - │ |
607 | | -┌──────▼───────┐ |
608 | | -│ SConstruct │ ← 读取rtconfig.py |
609 | | -│ 主脚本 │ ← 调用PrepareBuilding |
610 | | -└──────┬───────┘ |
611 | | - │ |
612 | | -┌──────▼───────┐ |
613 | | -│ 环境初始化 │ |
614 | | -│ ·设置路径 │ |
615 | | -│ ·检测工具链 │ |
616 | | -│ ·解析配置 │ |
617 | | -└──────┬───────┘ |
618 | | - │ |
619 | | -┌──────▼───────┐ |
620 | | -│ 递归处理 │ |
621 | | -│ SConscript │ ← 调用DefineGroup |
622 | | -│ ·收集源文件 │ ← 检查依赖GetDepend |
623 | | -│ ·设置参数 │ |
624 | | -└──────┬───────┘ |
625 | | - │ |
626 | | -┌──────▼───────┐ |
627 | | -│ 构建执行 │ |
628 | | -│ DoBuilding │ |
629 | | -│ ·合并对象 │ |
630 | | -│ ·链接程序 │ |
631 | | -└──────┬───────┘ |
632 | | - │ |
633 | | -┌──────▼───────┐ |
634 | | -│ 后处理 │ |
635 | | -│ ·生成bin文件 │ |
636 | | -│ ·显示大小 │ |
637 | | -│ ·自定义动作 │ |
638 | | -└──────────────┘ |
639 | | -``` |
| 568 | + |
640 | 569 |
|
641 | 570 | ### 依赖解析流程 |
642 | 571 |
|
|
0 commit comments