完成后的状态
你的项目 .build/bin/ 目录下生成了固件 switch_demo_QIO_1.0.0.bin,可直接烧录。编译结束时会在终端打印完整路径。
tos.py build首次运行时会把对应工具链下载到platform/,因此首次编译较慢。- 输出 bin 命名规则为
<app>_<QIO>_<version>.bin,其中QIO是 flash 读取模式。 - 必须在应用项目目录中执行
tos.py build。
选择项目
TuyaOpen 从 apps/ 与 examples/ 目录编译应用。本页以 switch_demo(一个云连接的小开关)作为示例。
cd apps/tuya_cloud/switch_demo配置项目
运行 tos.py config choice 列出本项目已验证的开发板配置,选择与你的硬件匹配的一项。所选配置会写入项目路径下的 app_default.config。
❯ tos.py config choice
[INFO]: Fullclean success.
--------------------
1. LN882H.config
2. EWT103-W15.config
3. Ubuntu.config
4. ESP32-C3.config
5. ESP32-S3.config
6. ESP32.config
7. T3.config
8. T5AI.config
9. T2.config
10. BK7231X.config
--------------------
Input "q" to exit.
Choice config file:常见开发板 → 配置
选择与你的开发板匹配的配置:
config 操作可能切换工具链,因此会先执行一次深度清理。若项目自带 config/ 目录,其中的配置优先于 boards/ —— 运行 tos.py config -d choice 可强制只显示 boards/ 中的配置。
编译
在项目目录中运行 tos.py build。如需诊断失败,加 -v 查看详细输出。
❯ tos.py build
...
[INFO]: ******************************
[INFO]: /xxx/TuyaOpen/apps/tuya_cloud/switch_demo/.build/bin/switch_demo_QIO_1.0.0.bin
[INFO]: ******************************
[INFO]: ******* Build Success ********
[INFO]: ******************************- 编译过程:下载工具链 → 执行其
prepare→ 创建.build→ 运行ninja→ 产物放入.build/bin。 - 编译以
Build Success结束并打印 bin 路径 —— 这就是要烧录的文件。 - Windows 下若每个文件编译耗时约 3 秒,参见下方故障排查。
清理编译
运行 tos.py clean 清理编译缓存;加 -f 进行深度清理,会在 ninja clean 后删除 .build 目录。
❯ tos.py clean -f
[INFO]: Running tos.py ...
[INFO]: Fullclean success.故障排查
用 Ctrl+Shift+Esc 打开任务管理器,找到并关闭 MSPCManagerService 进程。若无效,将整个 TuyaOpen 目录移到非系统盘(如 D 盘),并在 Windows 安全中心 → 病毒和威胁防护中将其加入排除列表。
列表优先取自项目 config/ 目录,再取 TuyaOpen/boards/。运行 tos.py config -d choice 可强制只显示 boards/ 中的配置。若仍未列出,该板可能尚无此应用的已验证配置。
改配置可能导致编译失败。重新运行 tos.py config choice 选择已验证配置,或 tos.py clean -f 后重新编译,也可联系技术支持。
这是残留的 ~/.gitconfig.lock 导致。手动删除:rm ~/.gitconfig.lock,然后重试。