跳到主要内容

修改 SyNAP 框架

本教程将指导您完成修改 SyNAP 框架的步骤,以构建类似于 synap_clisynap_cli_ic 等的自定义 C++ 应用程序。

要了解更多关于 SyNAP 框架的信息,您可以访问 SyNAP 框架仓库 的最新发布分支。您可以在 SyNAP 文档 中了解这些 C++ 应用程序的使用方法。这些应用程序允许您在 Synaptics Astra™ Machina™ 的 NPU 上运行网络。

让我们开始逐步了解如何构建这些应用程序。

步骤 1:启动构建环境容器

您将使用 Ubuntu 作为主机开发机器。为了确保环境配置正确且干净,构建必须在 Docker 容器内进行。

使用以下 docker 命令启动容器:

docker run --rm -it -v $(pwd):$(pwd) ghcr.io/synaptics-astra/crops:1.0.0 --workdir=$(pwd)

此命令将在容器内生成一个 pokyuser@xyz:/path/to/workspace/ shell。

备注

在 Ubuntu 20 和 18 LTS 上,创建构建容器时必须通过添加 --rm 参数后的 --security-opt "seccomp=unconfined" 参数来禁用 Docker 的 seccomp 保护功能。因此请使用以下命令:

docker run --rm --security-opt "seccomp=unconfined" -it -v $(pwd):$(pwd) ghcr.io/synaptics-astra/crops:1.0.0 --workdir=$(pwd)
备注

如果您的环境需要代理才能连接到互联网,请按照这些说明配置 Docker 守护进程Docker 客户端 以使用代理服务器。

步骤 2:从 GitHub 克隆源代码

Synaptics Yocto SDK 发布版本可以通过克隆 Astra SDK git 仓库 的最新版本下载。此命令将从 Astra SDK git 仓库克隆所有必需的层作为子模块。

git clone -b v1.3.0 --recurse-submodules https://github.com/synaptics-astra/sdk
备注

确保克隆 SDK 的最新版本,例如,上述命令正在克隆 v1.3.0 分支。

要设置构建树,请使用:

cd sdk
source meta-synaptics/setup/setup-environment
选择处理器

系统将提示您选择要构建/运行示例应用程序的处理器。

选择要构建的 MACHINE:

  1. sl1620
  2. sl1640
  3. sl1680

上述命令创建一个名为 build-sl16xx 的新构建文件夹(取决于您选择的处理器),并将其设置为当前工作目录。

步骤 3:构建 SyNAP 框架

现在,您需要提取 SyNAP 框架的源代码。您可以使用以下命令检出源文件:

devtool modify synasdk-synap-framework

这将在以下位置提取源代码:sdk/build-sl16xx/workspace/sources/synasdk-synap-framework/synap/framework

这个 framework 文件夹包含 app 文件夹,其中包含所有不同 C++ 应用程序的源代码,如 synap_clisynap_cli_od 等。

如果您想修改或创建自己的 C++ 应用程序,可以根据需要在这里进行,无论是预处理还是后处理。

提示

这是 SyNAP 框架的目录结构。根据您的要求,在应用程序或依赖库中进行更改。

您可以在 app 文件夹下找到这些应用程序。这些应用程序依赖于一些库,如 synap_imgsynap_preprocesssynap_postprocess 等,这些库可以在 lib 文件夹中找到。

framework
├── app
│ ├── ...
│ ├── synap_cli
│ ├── synap_cli_ic
│ ├── synap_cli_od
│ └── ...
├── ...
└── lib
├── ...
├── synap_app
├── synap_img
├── synap_postprocess
├── synap_preprocess
└── ...

步骤 4:构建您自己的 C++ 应用程序

一旦您自定义了 C++ 应用程序,就可以使用 devtool build 命令来构建您的应用程序。

devtool build synasdk-synap-framework

步骤 5:在 Machina 上部署您的应用程序

此命令构建您的 C++ 应用程序的二进制文件并将您的应用程序推送到 Machina 开发板。它还更新了您 Machina 开发板上的 SyNAP 框架。

确保为以下命令提供开发板的地址 user@hostname:/

devtool deploy-target synasdk-synap-framework root@10.3.10.158:/ -s

恭喜!您已经能够使用 SyNAP 构建 C++ 应用程序并将其推送到您的 Machina 开发板上。

连接到开发板后,您可以在这里找到所有 C++ 应用程序:/usr/bin/