Maix-III 系列 AXera-Pi 开发板 SDK 使用介绍
获取 SDK 源码
上一篇介绍了基础的开发环境搭建和使用方法,这一篇介绍如何应用这些 sdk 源码。
由爱芯提供 AI 模型的开发与评估验证,提供给有经验的 AI 开发者使用,不涉及任何硬件外设有关的内容。
由 sipeed 提供在 linux 平台统一的嵌入式开发环境,主要有摄像头、屏幕、视觉、图像处理、NPU pipiline 相关的实机部署例程,适合刚入门嵌入式 linux 开发的同学使用。
芯片商用时所用的 bsp 开发包,这里主要提供的是芯片的原始开发资料,如 uboot 、 linux 、 msp 、msp 等工程代码,这个部分是逐步开源的,你可以从这里得到商业评估用的代码,例如 ipcdemo 这样的程序,但这些代码会很复杂且高耦合,适合有经验的同行使用。
libmaix
这是一个适用于 sipeed 所用 linux 芯片开发的 C/C++ 基础开发框架,使用 cmake 构建,提供了许多开箱参考的案例,还有一些第三方库代码的链接,如 opencv openmv 这些视觉库的链接。
SDK 源码在 libmaix, 需要使用 git 命令下载:
git clone https://github.com/sipeed/libmaix.git --recursive
注意这里
--recursive
参数是必须的,用来下载仓库里面的子模块,如果没有这个参数,代码会不完整,导致编译出错
中国国内可能下载速度较慢,可以多取消重试几次,可能会遇到速度快的节点,当然最好还是通过设置代理来加速下载。
另外, AI 模型及例程在 MaixHub 模型库 可以找到, 以及 AXERA-TECH/ax-samples 仓库。
编译 SDK
编译有两种方式:
- 直接在开发板上编译:编译速度较慢,但是不需要额外的环境配置
- 在 PC 上编译,然后拷贝可执行文件到开发板,也就是交叉编译: 编译速度更快,但是需要额外的环境配置
libmaix
对于 libmaix
, 按照其README.md
文件描述的方法编译即可, 不过需要在menuconfig
命令中选择 AXera-Pi
作为编译目标。
这里简要介绍一下编译过程(libmaix 目前还未稳定,未来可能会有大的更新),实际以libmaix 仓库代码和说明为准。
- 先安装依赖
apt install build-essential cmake python3 sshpass git
sshpass 也可以不安装, build-essential, cmake, git, python3 必须安装
- 克隆仓库到本地或者开发板
git clone https://github.com/sipeed/libmaix --recursive
注意
--recursive
参数是必须的,用以克隆子模块,否则会缺代码
在开发板上编译
cd libmaix
cd examples/axpi
python3 project.py distclean
# python3 project.py menuconfig # 可以配置相关参数
python3 project.py build # 如果增加文件了,需要 python3 project.py rebuild 命令
./dist/start_app.sh # 运行示例程序
交叉编译
TODO:
ax-samples
ax-samples 是爱芯官方提供的例程,包含了一些 AI 模型和运行代码,编译完能直接在开发板上运行,只不过输入是图片,不是摄像头。
在开发板上编译
进入开发板终端,执行
git clone https://github.com/AXERA-TECH/ax-samples.git
cd ax-samples
mkdir build
cd build
cmake ..
make install
然后就能在ax-samples/build/install/bin/
目录下找到编译好的可执行文件。
交叉编译
稍微复杂一点,需要在 PC 上配置交叉编译环境,然后在 PC 上编译,最后拷贝可执行文件到开发板,见ax-samples 源码编译
组合 SDK 和 AI 模型例程
比如我们要跑一个视觉 AI 模型,需要用到摄像头,屏幕,还有 AI 模型。
其中 摄像头和屏幕的使用在libmaix
中已经有例程,可以直接使用,基于摄像头屏幕使用例程,将 AI 模型的例程拷贝到例程目录中,调整一下 API 调用即可。
举例:
TODO: