hs-fbb-cli:基于 HiSpark fbb 框架的命令行工具项目

HiSpark fbb 框架(fbb_ws63 / fbb_bs2x 等)跨平台一键开发环境。自带 fbb CLI,调用即激活、镜像加速、AI Agent 友好。

分支1Tags0
文件最后提交记录最后更新时间
2 个月前
20 天前
20 天前
2 个月前
2 个月前
2 个月前
27 天前
2 个月前
2 个月前
27 天前
23 天前
23 天前
2 个月前
2 个月前
1 个月前
1 个月前
23 天前
2 个月前
1 个月前

fbb — HiSpark fbb framework CLI

语言:简体中文 | English

fbb 是开发 HiSpark fbb 框架系列任意 SDK 的统一命令行工具 —— fbb_ws63fbb_bs2x,以及其他支持 fbb 框架的 SDK。安装一次,即可用同一个 fbb 对它们进行 构建 / 烧录 / 串口监视等。


目录


快速开始

0. 一键安装(推荐)

一条自托管命令即可完成开发环境配置 —— 从镜像源 (dl.hispark.hisilicon.com)拉取 uv、安装 fbb,再运行 fbb setup

# Linux / macOS
curl -fsSL https://dl.hispark.hisilicon.com/bootstrap.sh | sh
# Windows (PowerShell)
irm https://dl.hispark.hisilicon.com/bootstrap.ps1 | iex

然后直接跳到第 3 步。 如果你想手动配置,请走下面的步骤:

1. 安装 uv

# Linux / macOS
curl -fsSL https://dl.hispark.hisilicon.com/fbb-tools/uv/uv-0.11.17-linux-x86_64.tar.gz | tar -xz -C ~/.local/bin --strip-components=1
# (或上游) curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex

uv 装到 ~/.local/bin/。装完请开一个新终端

2. 安装 fbb + 准备构建环境

uv tool install git+https://gitcode.com/HiSpark/hs-fbb-cli.git
fbb setup

fbb setup 准备管理器 + Python 3.12.10 构建 venv,以及与芯片无关的工具 (ccache、Git)。芯片相关的工具链 在你 运行 fbb sdk install <chip>(推荐)、fbb setup --targets <chip>fbb setup --sdk-dir <sdk> 时,按 SDK 的要求从镜像源按需下载安装。本地安装路径为 ~/.hs-fbb/tools/<name>/<version>/

3. 安装 SDK,然后 构建 → 烧录 → 串口监视

fbb sdk install ws63@master              # 安装最新 master 分支代码
cd ~/hispark/fbb_ws63/master/src         # 或使用安装完成后打印的 cd 路径
fbb build   ws63-liteos-app
fbb flash   ws63-liteos-app --port COM3
fbb monitor --port COM3 --reset --until "device_module_init:: succ!" --timeout 30

fbb flash ... --then-monitor 会在烧录后直接在同一端口接入 monitor 会话。


命令参考

fbb <verb> [args]。verb 分为三组。

组 A — 环境

fbb setup

准备构建环境。

Flag 作用
--force 清空 ~/.hs-fbb/ 并全部重新准备
--dry-run 只打印安装计划,不动文件系统
--skip-tools 只装 Python venv;跳过工具链 + Git
--skip-python 只装工具链 + Git;跳过 venv
--no-uv 跳过 uv;用内嵌 Python + bootstrap pip(较慢的回退路径)
--targets ws63[,bs2x] 只准备这些芯片的工具链(默认:清单里的全部)
--sdk-dir PATH 按照该 SDK 路径下的 json 文件中的 requires 配置来安装对应工具链(默认:自动检测)

fbb sdk install <name>[@<ref>] [flags]

安装对应版本的 SDK 源码。SDK 会安装到版本化目录 —— $FBB_SDK_ROOT/<repo>/<ref>(FBB_SDK_ROOT 默认 ~/hispark)。这样多个 release / branch 可以并存。安装完成后,命令会打印准确的 cd .../src 下一步。

名字 → 仓库 的解析(既能按仓库(推荐),也能按芯片):

  • 一个明确的仓库(hs-fbbfbb_ws63fbb_bs2x)
  • 一个裸芯片/模块(hiditingws63bs2x)
Flag 作用
<name> 仓库/芯片;用 @<tag|branch|sha> 指定版本(默认:最新 release tag)
--dir PATH 安装到这个确切目录,而非 $FBB_SDK_ROOT/<repo>/<ref>
--no-provision 只安装;跳过工具链准备
--force 覆盖一个已存在的非空目标目录
--json-summary 输出一行 JSON 摘要
fbb sdk install ws63                 # 旧式仓库 -> ~/hispark/fbb_ws63/<latest-release>
fbb sdk install ws63@1.10.103        # 指定某个 tag
fbb sdk install hs-fbb               # 统一主干(多颗芯片)
fbb sdk install hiditing             # 主干里的芯片 -> ~/hispark/hs-fbb/<latest-release>

来源:${FBB_SDK_GIT_BASE:-https://gitcode.com/HiSpark}/<repo>.git

fbb sdk versions <chip> [--all] [--json]

列出远端可用版本 —— release tag(最新在前、标注 latest)和分支 (master / release/*)。安装前先发现,无需去翻仓库。--all 还会显示 预发布 / 非 semver 的 tag。

fbb sdk versions ws63                # 看 release + 分支
fbb sdk install ws63@1.10.103        # 安装某个固定 release
fbb sdk install ws63@master          # 安装开发主干

fbb sdk list [--json]

列出 $FBB_SDK_ROOT 下已安装的 SDK(芯片、git ref、路径)。

fbb sdk uninstall <chip> [--dry-run] [--no-gc] [--json-summary]

移除一个 SDK,然后清理对应不用的工具链 —— 即不再被任何剩余 SDK 使用的版本 (清单里的 recommended / 默认版本始终保留)。--dry-run 预览;--no-gc 跳过回收。

fbb doctor

诊断构建环境 —— 检查 venv、工具链、关键 Python 模块;对任何失败都打印确切的修复命令。无 flag。

fbb describe [--json] [--sdk-dir PATH]

一次性快照:环境 + 工具链 + 检测到的 SDK。--json 输出机器可读形式(见 JSON 输出)。

fbb env [--print {sh|bash|ps1|bat|cmd|json}]

打印一段环境激活片段,供 eval / IDE 集成使用。无副作用。--json--print json 的简写。

fbb run -- <cmd> [args...]

在已激活的构建环境里运行任意命令(于是 pythonninjacmake 等可被解析)。 例:fbb run -- python --version

fbb shell

开一个已激活环境的交互子 shell。exit 退出。

fbb help

显示用法。

组 B — 构建

fbb build [<target>] [--clean] [--sdk-dir PATH] [extra...]

构建一个目标。这是唯一会转发给 SDK(<SDK>/build.py)的 verb。

参数 作用
<target> 目标名,如 ws63-liteos-app。省略则让 build.py 打印合法列表。
--clean 构建前清理(转发为 build.py 的 -c)。较慢。
--sdk-dir PATH 覆盖 SDK 自动检测。
extra... 目标之后的任何内容原样转发给 build.py(-j 8-dump……)。
fbb build ws63-liteos-app                # 增量构建,在 SDK src 下运行
fbb build --clean ws63-liteos-app        # 先清理后构建
fbb build                                # 不给目标 -> build.py 列出合法目标

fbb 自己的 flag(--clean--sdk-dir)放在目标之前

两种模式 —— 自动选择

fbb build 从 cwd 向上查找 fbb-project.toml。找到则进入树外(out-of-tree) 模式;否则**树内(in-tree)**模式。

模式 触发条件 fbb 做什么 目标来源
树内 cwd 是 SDK src(cwd 及任何父目录都无 fbb-project.toml) 原样转发给 <SDK>/build.py <target>。向后兼容。 CLI 参数
树外 cwd / 某个父目录存在 fbb-project.toml 从清单读 chip / target,导出 FBB_PROJECT_DIR + FBB_PROJECT_TARGET + FBB_SDK_DIR,再转发给 <SDK>/build.py。SDK 的 cmake 源目录翻转为用户工程。 清单(或给了 CLI 参数则用之)
# 树外用法
cd my_app/                     # 有 fbb-project.toml,含 chip + target
fbb build                      # 不需要目标 —— 从清单读
fbb build --clean              # 先清理再构建

SDK 侧必须支持这一点。

fbb menuconfig [<target>] [--mode ...] [--sdk-dir PATH]

打开 SDK 的交互式 Kconfig 菜单(一个 curses TUI),编辑该目标的 .config。 树外组件(fbb add / fbb create-component)带来的选项会自动出现。--mode 选择 一个非交互的批处理动作来替代菜单:defconfig(重置为默认)、allyesconfigallnoconfig

fbb menuconfig ws63-liteos-app           # 交互菜单(给人用,需真实终端)
fbb menuconfig ws63-liteos-app --mode defconfig   # 重置为默认,无 UI

交互菜单需要真实终端(Windows 上构建 venv 里还需 windows-curses)。 脚本 / CI / AI agent 不需要用它 —— 用下面的 fbb config

fbb config <get|set|unset> <OPTION> [--target T] [--sdk-dir PATH]

无需任何菜单地读取或修改单个 Kconfig 选项 —— 可脚本化、对 choice 安全。 set/unset 驱动 SDK 的非交互 setconfig(kconfiglib set_value),因此启用一个 choice 块的某个成员会自动反选它的兄弟 —— 无需手动"=y + 逐个 unset 兄弟"。

fbb config get   CONFIG_SAMPLE_ENABLE
fbb config set   CONFIG_SAMPLE_SUPPORT_SLE_SAMPLE=y   # choice 兄弟自动反选
fbb config unset CONFIG_FOO                           # = 关闭(n)

给自动化 / AI agent: 改配置时,始终用 fbb config set/get/unset不要手改 *.config,也不要手动添加 # CONFIG_..._<sibling> is not set 这类行 —— fbb config set 已替你处理 choice 互斥。fbb menuconfig 仅交互、 无法被程序驱动。

组 C — 芯片 verb(原生;读取 <chip>.json)

下列每个 verb 都由 fbb 自身实现,从 <SDK>/build/config/target_config/<chip>/<chip>.json 读取芯片数据。全部接受 --sdk-dir PATH(覆盖自动检测)和 --json-summary(把最后一行 stdout 输出为 一行 JSON)。

fbb flash [<target|path>] [flags]

把构建好的目标固件烧到板子上。烧录器 hsflashfbb setup 准备; 下面面向用户的 flag 不依赖烧录器自身的命令行语法。

Flag 作用
<target> 目标名(如 ws63-liteos-app)—— 在 SDK 下定位 fwpkg。也可以是一个 .fwpkg 路径。
-p, --port COMx 选择串口烧写并指定端口;仅支持串口的芯片省略时可自动检测唯一端口。
-d, --device [VID:PID] 选择 USB DFU 烧写;可选值用于覆盖 SDK 配置的 USB 设备 ID。
--trigger-port COMx USB DFU 的 AT 控制串口;省略时自动探测能响应 AT 的 USB 串口。
--baud N 传输波特率(默认:<chip>.jsonflash.signalbaud,否则 921600)。
-c, --chip NAME 芯片名(默认:从目标 / fwpkg 名推断)。
-f, --file PATH 烧这个确切的 .fwpkg —— 树外 / 独立;无需 SDK(配 --chip)。
--manual-reset 不自动复位;按芯片要求手动按 RESET 或断电重上电进入下载模式。
--no-elevate 不显示 Windows UAC;USB DFU 需要管理员权限时直接失败。
--load-only *_load_only.fwpkg(仅 app)而非 *_all.fwpkg
--timeout SECONDS 可选的整体烧录时限。未指定时由 hsflash 使用芯片相关的阶段超时。
--then-monitor [monitor args...] 烧录成功后接入 monitor;端口自动传递。
--json-summary 输出 flash 的 JSON 摘要。
fbb flash ws63-liteos-app --port COM6 --json-summary
fbb flash ws63-liteos-app --port COM6 --then-monitor --reset --until "device_module_init:: succ!" --timeout 30
fbb flash -f ./build/ws63-liteos-app_all.fwpkg --chip ws63 --port COM6   # 独立,无 SDK
fbb flash ws63-liteos-app --port COM6 --manual-reset                      # 按芯片要求手动复位或重新上电
fbb flash -f ./diting-community.fwpkg --chip 3322 -d --then-monitor --baud 750000 --until "APP\|run:" --timeout 45

-p 保持原有串口流程,-d 选择 USB;同时支持两种介质的芯片可在未传参数时 使用 flash.transport。USB 模式先启动 hsflash,等待其进入 DFU 等待状态后 发送 SDK 配置的触发命令,烧写后通过 --after-reset 自动复位并检查 AT 串口恢复, 需要时继续进入 --then-monitor。Windows 管理员终端直接执行 USB DFU;普通 PowerShell 第一次 USB 烧写时只请求一次 UAC,并在该 PowerShell 关闭前复用临时提权 Broker。串口烧写不会启动 Broker。无人值守任务可用 --no-elevate 禁止 UAC 并直接失败。 串口出现 DEVICE_NOT_RESPONDING 时仍可用 --manual-reset 重试,并按芯片要求按 RESET 或断电重上电。

fbb monitor [flags]

打开串口控制台;配 --until / --timeout 对 HIL 友好。

Flag 作用
--port COMx 串口(省略则自动检测)。
--baud N 波特率(默认:<chip>.jsonmonitor.default_baud,典型 115200)。
--chip NAME 芯片名(单芯片 SDK 自动选)。
--until REGEX 首次匹配时退出 0;超时未匹配退出 4。
--timeout SECONDS 墙钟时限。脚本化使用时与 --until 配套必填。
--reset 读取前发送 <chip>.json 里的复位命令。
--log FILE 把捕获到的字节同时输出到 FILE 与 stdout。
--json-summary 输出 monitor 的 JSON 摘要。
# 脚本化启动检查
fbb monitor --port COM3 --reset --until "device_module_init:: succ!" --timeout 30 --json-summary
# 交互控制台(Ctrl+C 退出)
fbb monitor --port COM3

fbb create-project <name> [flags]

<SDK>/tools/templates/sample_project/ 脚手架一个新工程。

Flag 作用
-p, --path DIR 父目录(默认:当前目录)。
--template NAME 用另一个 template / example 作为来源。
--json-summary 输出 create 的 JSON 摘要。

fbb create-component <name> [-p DIR] [--json-summary]

<SDK>/tools/templates/sample_component/ 脚手架一个新组件。

fbb create-project-from-example <example> [flags]

克隆某芯片 examples.roots(在 <chip>.json 中)声明的一个 example。

Flag 作用
--name NAME 工程目录名(默认:与 example 同名)。
-p, --path DIR 父目录(默认:当前目录)。
--json-summary 输出 create 的 JSON 摘要。
fbb create-project        myapp
fbb create-component      mywidget
fbb create-project-from-example helloworld --name my_hello

fbb set-target <target> [--json-summary]

把一个默认目标存入 <project>/.fbb-target(一个按工程维度的状态文件;工程根是 FBB_BUILD_ROOT_PATH 或当前目录)。目标会对照 SDK 的可构建目标列表做校验。

fbb get-target [--json-summary]

打印 set-target 保存的目标。无状态文件时退出 3。

fbb list-targets [--json] [--json-summary]

枚举可构建目标,按芯片分组。--json 输出完整结构化形式。

fbb list-examples [--json] [--json-summary]

从每颗芯片的 examples.roots(在 <chip>.json 中)枚举可克隆的 example。

JSON 输出与退出码

这是给脚本和 skills 的稳定接口。请针对它编码,而非针对人类可读文本。

退出码

含义
0 成功
1 命令失败(构建错误、烧录失败……)
2 用法错误(参数错、未知 verb)
3 资源缺失(无串口、无 fwpkg、无 SDK、无烧录器)
4 配置错误(chip JSON 缺某段、--until 超时……)

--json-summary 约定

组 C 的 verb 接受 --json-summary。给了它时,stdout 的最后一行是一个单行 JSON 对象。前面的行可能带人类可读进度 —— 消费者只解析最后一行。

每个摘要都有:verbschema_version(当前 1)、success(bool)、 duration_seconds,以及 error(null 或一个对象)。

error 对象

"error": { "code": "DEVICE_NOT_RESPONDING", "message": "...", "recoverable": true }

recoverable 出现在 flash 错误上;true 表示重试(如配 --manual-reset)可能成功。

error.code 枚举(基于它分支)

Verb
flash FWPKG_NOT_FOUND · FWPKG_OPEN_FAILED · PORT_NOT_FOUND · PORT_BUSY · FLASHER_NOT_FOUND · CHIP_UNKNOWN · CHIP_FLASH_CONFIG_MISSING · FLASH_TRANSPORT_UNSUPPORTED · DEVICE_NOT_RESPONDING (recoverable) · FLASH_PROTOCOL_ERROR · FLASH_FAILED
monitor PORT_NOT_FOUND · PORT_OPEN_FAILED · IO_ERROR · INVALID_USAGE
create-* INVALID_NAME · TEMPLATE_NOT_FOUND · EXAMPLE_NOT_FOUND · DEST_NOT_EMPTY · COPY_FAILED
set-target TARGET_NOT_FOUND · STATE_WRITE_FAILED
get-target STATE_NOT_FOUND
list-targets ENUMERATION_FAILED

flash 摘要

{
  "verb": "flash", "schema_version": 1, "success": true,
  "duration_seconds": 35.7, "target": "ws63-liteos-app", "chip": "ws63",
  "port": "COM3", "baud": 921600,
  "fwpkg": "...ws63-liteos-app_all.fwpkg", "fwpkg_size_bytes": 1458920,
  "attempt": "auto",                       // "auto" | "manual"
  "die_id": null, "burned_sections": 6,
  "backend": "hsflash", "requested_backend": "hsflash",
  "flasher_exit_code": 0, "burntool_exit_code": null, "optlog_path": null,
  "error": null
}

flasher_exit_code 是 hsflash 进程退出码。burntool_exit_code 保留 schema v1 中的 BurnTool 语义,因此现在为 nullburned_sections 只是观测到的诊断计数; 自动化应基于 successerror.code 分支。

monitor 摘要

{
  "verb": "monitor", "schema_version": 1, "success": true,
  "duration_seconds": 1.0,
  "exit_reason": "matched",                // matched|timeout|user_interrupt|io_error
  "matched": true, "match_pattern": "device_module_init:: succ!",
  "match_text": "...context around the match...",
  "bytes_read": 895, "port": "COM3", "baud": 115200,
  "log_path": null, "error": null
}

create / set-target / list 摘要

create-*{ verb, schema_version, success, name, path, template, files_created, error }set-target / get-target{ verb, success, target, state_file, available_targets_count, error }list-targets --json{ by_chip, all_targets, total_targets, ... }; list-examples --json{ by_root, all_examples, total }


面向 AI agent 与 skills

fbb机制层。skills 是策略层 —— 它们决定何时调用某个 verb、如何反应。 两者之间的契约就是 JSON 输出与退出码 里的一切。

自举(幂等):

uv tool install git+https://gitcode.com/HiSpark/hs-fbb-cli.git && fbb setup

每次 fbb 调用都会自激活环境 —— agent 无需在调用间共享 shell 状态。

fbb describe --json —— 态势感知探针

一次调用返回规划所需的一切:

含义
schema_version 快照模式版本。
fbb_cli.version 已安装的 fbb 版本。
build_env.exists / venv_python / toolchain_dir fbb setup 是否已运行。
toolchain.ninja / riscv_gcc / flasher / hsflash / git 解析到的路径(或 null)。burntool 保留 v1 原语义,BurnTool 退役后为 null
python_packages.pyserial venv 里的版本(或 null)。
sdk.path / name / chips SDK 位置、fbb_<chip> 名,以及 target_config/ 下发现的芯片。
sdk.build_entry <SDK>/build.py 路径(fbb build 转发去处),或 null
sdk.supported_verbs fbb 为该 SDK 提供的 verb(固定集合)。
sdk.targets 可构建目标。
sdk.templates / sdk.examples 脚手架模板与可克隆 example。

给 skills 的推荐烧录流程

result = fbb flash <target> --port COMx --json-summary       # 解析最后一行 stdout
  success                                  -> 完成
  error.code == DEVICE_NOT_RESPONDING      -> 引导用户按 RESET,
                                              用 --manual-reset 重试一次
  otherwise                                -> 呈现 error.message,不要重试

SDK 自动检测

芯片 verb 与 build 按此顺序解析 SDK:

  1. --sdk-dir <path> flag
  2. FBB_SDK_DIR 环境变量
  3. 从当前目录向上查找 src/build.py + CMakeLists.txt

若都无法解析,该 verb 退出 3 并给出定向提示。


镜像配置

所有默认值都是自托管。在 fbb setup 前设置这些:

变量 默认值 用于
FBB_PIP_INDEX https://pypi.tuna.tsinghua.edu.cn/simple 所有安装器
FBB_PYTHON_MIRROR https://mirrors.huaweicloud.com/python pip 路径(主)
FBB_PYTHON_MIRROR_B https://mirrors.cloud.tencent.com/python pip 路径(回退)
UV_PYTHON_INSTALL_MIRROR https://dl.hispark.hisilicon.com/fbb-tools/python uv 路径
FBB_OBS_BASE https://dl.hispark.hisilicon.com 清单 + 工具链制品
FBB_TOOLS_MANIFEST_URL $FBB_OBS_BASE/tools.json 工具可用性清单
FBB_SDK_ROOT ~/hispark fbb sdk install 安装 SDK 的位置
FBB_SDK_GIT_BASE https://gitcode.com/HiSpark SDK 仓库基址(/<repo>.git)
FBB_SDK_TRUNK hs-fbb fbb_<chip> 仓库时裸芯片落到的统一 SDK 仓库
FBB_GETPIP_URL https://mirrors.aliyun.com/pypi/get-pip.py pip 路径(回退)
export FBB_PIP_INDEX='https://mirrors.aliyun.com/pypi/simple/'   # bash
$env:FBB_PIP_INDEX = 'https://mirrors.aliyun.com/pypi/simple/'   # PowerShell
fbb setup --force

安装了哪些东西

~/.local/bin/fbb            the CLI (managed by `uv tool install`)
~/.hs-fbb/                  the managed build env (provisioned by `fbb setup`)
├── venv/                   Python 3.12.10 + numpy + kconfiglib + cmake 3.20.5 + ...
├── tools/                  manifest-provisioned, version-keyed:
│   ├── hcc/7.3.0-20240618/     RISC-V cross-compiler
│   ├── ccache/4.13.6/          compiler cache
│   └── <name>/<version>/       ... (shared across SDKs that pin the same version)
├── Git/                    portable Git on Windows when no system git is found
└── .install-state.json     resume marker

~/hispark/                  SDK source checkouts (FBB_SDK_ROOT; visible, yours)
└── fbb_ws63/
    └── 1.10.103/           one installed SDK ref
        └── src/            build from here

~/.hs-fbb/ 内置绝对路径、与机器相关 —— 每个开发者用 fbb setup 各自重建;它不可 再分发。~/hispark/ 下的 SDK 检出是你正常编辑与构建的 git 树;每个 <repo>/<ref>/ 是一份独立检出。

Windows 下,fbb setup 还会确保 Git 提供 patchtarxz。完整的系统 Git 会被复用;能力不完整时安装清单托管的 PortableGit。Git 的 GNU tar/xz 路径只在 fbb build 启动的 SDK 子进程中优先,不修改系统 PATH。


手动激活

fbb 时无需此操作。给想要长期激活 shell 的高级用户 / CI:

eval "$(fbb env --print sh)"                                   # bash / zsh
fbb env --print ps1 | Out-String | Invoke-Expression           # PowerShell

疑难排查

始终先从 fbb doctor 开始 —— 它逐组件诊断并打印修复方法。

症状 修复
fbb: command not found ~/.local/bin 不在 PATH。uv tool update-shell 或开新终端。
[fbb] build environment not provisioned 运行 fbb setup
because running scripts is disabled on this system PowerShell 策略。Set-ExecutionPolicy -Scope Process Bypass
CMake was unable to find ... "Ninja" 工具链不在 PATH。fbb doctor,缺则 fbb setup --force
gcc: error: CreateProcess: No such file or directory Windows 32K 命令行长度限制。把 SDK 安装到更短的路径。
import numpy ... ModuleNotFoundError 在环境外用了裸 python。用 fbb run -- python ...fbb shell
fbb setup 把 cmake 升到 3.31.x 后构建坏了 requirements.txt 锁定 cmake==3.20.5。强制重装、绕过缓存:uv tool install --force --reinstall --no-cache git+https://gitcode.com/HiSpark/hs-fbb-cli.git,然后 fbb setup --force
fbb flashDEVICE_NOT_RESPONDING 板子未自动复位。用 --manual-reset 重试并按板子的 RESET 键。
fbb flashPORT_BUSY (退出 17) 一个串口监视器 / 残留烧录器占着端口。关掉它再试。
fbb <verb>cannot run '<verb>': no SDK in scope cd 进一个 fbb_* 检出、传 --sdk-dir <path>,或设 FBB_SDK_DIR
在企业代理后面 fbb setup 前设 HTTPS_PROXY / HTTP_PROXY

重装与清理

fbb setup --force            # 清空 + 重新准备构建环境
rm -rf ~/.hs-fbb && fbb setup # 全删,从头来
uv tool uninstall hs-fbb-cli # 卸掉 CLI 本身

延伸文档

许可证

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2026-2026. All rights reserved.

基于 Apache License, Version 2.0 授权。见 LICENSENOTICE。准备阶段下载的制品保留其各自上游许可证;本仓库不再分发它们。

项目介绍

HiSpark fbb 框架(fbb_ws63 / fbb_bs2x 等)跨平台一键开发环境。自带 fbb CLI,调用即激活、镜像加速、AI Agent 友好。

定制我的领域