背景介绍
1. 为何慢
1. 为何慢
####1.1 机器性能不高
- 机器性能不足是造成编译速度慢的主要原因之一。
1.2 环境影响
- 加特兰助手、杀毒软件、加密软件等环境因素也会影响编译速度。
1.3 工程数量和冗余
- 单板7个,级联14个的工程数量,以及工程中的冗余代码都是影响编译速度的因素。
远程编译加速机制
2. Overview
2. Overview
####2.1 放一张图
- 这里应该放一张远程编译加速机制的图,以便更直观地展示整个流程。
3. Patch生成
3. Patch生成
####3.1 获取本地与远程的diff
- 通过获取本地与远程的diff,可以支持Gerrit仓库。
3.2 支持Debug
- 远程编译目录与本地一致,使用mklink /J
实现。 - 同步elf至本地bin目录。
使用方法及参数介绍
4. 使用方法
- 使用命令:python make_bin.py
5. 参数说明
5. 参数说明
####5.1 Wiki介绍
- Wiki介绍:https://wiki.calterah.com/pages/viewpage.action?pageId=46541634
常见问题
6. 环境要求
- 需要python 3.8 + 和pip包requests psutil。
- 不需要安装xplorer。
7. 代码仓库磁盘路径限制
- 仅支持D盘、C:\workspace,以防止C盘权限问题,导致无法模拟本地路径。
8. Patch生成
8. Patch生成
####8.1 本地改动无需commit
- 本地改动无需commit,必须为gerrit上clone的仓库,release的包不行。
8.2 新文件
- 有untracked文件时,会提示。
- 若新文件需参与编译,需要先用git add添加到暂存区。
9. 文件大小限制
- Patch大小不能超过30M。
10. 参数使用
10. 参数使用
####10.1 -p参数
- -p参数可以使用多个。
10.2 -s参数
- 指定的xml中,包含的loader无效,使用-pack参数,会自动编译loader。
- 若需要单编译loader,可以使用-a boot -p loader。
11. 排队
- 暂时仅支持单任务,使用-wait参数,可以看到排队序列。
12. 工程结果同步
- 仅同步4个文件:elf、img、dump及map。
13. IDE使用
- 使用远程编译时,需停止debug,否则有可能同步失败。
- 若debug找不到工程,可以重启IDE。
14. 编译日志
- 使用-wait,命令行中会有输出。
- 邮件通知:Jenkins用户发送,建议加规则。
- 编译日志保留3天。
15. 编译结果
- -wait参数会自动同步。
- 手动同步,可以从命令行输出或邮件中找到路径。
- 结果保存3天。

