开发板来源与扫描路径

[English]

idf.py bmgr 在生成代码前,从以下来源汇总当前工程可用的开发板。

自动扫描来源

BMGR 默认按如下顺序扫描,同名开发板以后扫描到的来源为准

  1. managed_components/ 下名称含 boards 的组件:通过组件管理器下载的开发板集合,例如 espressif__esp_boards/,最多向下递归 3 层。

  2. 工程 components/ 目录components/):工程内独立维护的开发板组件,例如 components/my_board/,最多向下递归 3 层。适合存放自定义开发板或对官方开发板做改动后的副本。同名时,工程 components/ 中的开发板优先于 managed_components/ 中的开发板。

  3. main/idf_component.yml 中 path 覆盖的板级依赖:在主组件清单中通过 override_path:path: 将某个 board 依赖指向本地目录,最多向下递归 3 层,常用于本地调试。

  4. -c 指定的板根目录-c <path>):通过命令行传入的附加板集合根目录,最多向下递归 3 层。扫描顺序最后,同名时优先级最高。

备注

向下递归 N 层:从给定根目录出发,最多展开 N 层子目录,超出部分不再展开。

执行 idf.py bmgr -l 可列出当前工程识别到的全部开发板及其来源标记。

备注

idf.py bmgr -l 的输出顺序由当前工程可见的开发板来源、依赖版本和自定义板路径共同决定。文档或示例中的开发板列表和序号仅作参考,选择开发板时请以当前工程的实际输出为准。CI 脚本建议直接使用开发板名称,不使用列表序号。

按名称选板:-b <name>

-b 传入开发板名称时,BMGR 先按上述顺序汇总扫描池,再从中查找匹配项:

idf.py bmgr -b esp32_s3_korvo_2_3

若多个来源存在同名开发板,扫描顺序即为覆盖顺序(后扫描到的生效)。-b 也接受序号,序号与 idf.py bmgr -l 输出的顺序对应。

直接指定路径:-b <path>

-b 的值是磁盘上已存在的开发板目录(绝对路径,或相对工程根的路径),BMGR 直接使用该目录,并覆盖扫描池中同名的已有条目,优先级高于所有自动扫描来源:

idf.py bmgr -b /abs/path/to/my_board

适用于临时验证、CI 中指向代码仓库路径,或调试外部目录而无需将开发板复制进工程。

-c-b 组合

-c <path> 将指定目录加入扫描池(第 4 来源)。典型组合:

按名称从自定义目录选板:若目标开发板仅存在于 -c 路径,可在扩展后的扫描池中直接按名称选中:

idf.py bmgr -b my_custom_board -c /path/to/custom_boards

版本说明

  • 0.5.x:官方开发板内置于 BMGR 组件,无需额外声明依赖即可使用。

  • 0.6 及以上版本:官方开发板从 BMGR 组件内移除,拆分为多个独立板级组件:

    • espressif/esp_boards 提供乐鑫官方开发板(BMGR 0.6 默认声明此依赖)。

    • espressif/esp_friends_boards 提供合作伙伴与社区开发板。

    • espressif/m5stack_boards 提供 M5Stack 系列开发板。

    工程需要在主组件清单(idf_component.yml)中声明所需板级组件依赖。组件下载后,BMGR 通过来源 1 自动识别其中的开发板。各开发板所属组件,参见 开发板参考

推荐做法

  • 使用官方开发板:在工程主组件清单中声明对应板级组件依赖,例如 espressif/esp_boardsespressif/esp_friends_boardsespressif/m5stack_boards。各开发板所属组件见 开发板参考

  • 自定义开发板:放在工程 components/<board_name>/,或发布为独立板级组件后在工程中声明依赖。idf.py bmgr -x 清理生成代码时不会影响自定义开发板目录。

  • 临时调试idf.py bmgr -b /abs/path/to/board,无需将开发板复制进工程。

  • 发布板级组件:将开发板目录发布为独立组件,方便其他工程引用。


此文档对您有帮助吗?