ubuntu22.04搭建AX620A官方例程开发环境
前言
爱芯元智旗下最新的AX620A,是一款兼具高算力、低功耗、高能效比、高算力利用的ai方案芯片。作为第二代自研边缘侧芯片,AX620A搭载有四核Cortex-A7 CPU、14.4TOPs@INT4或3.6TOPs@INT8 的高算力NPU,支持多路sensor同时工作,支持多路子码流,支持千兆Ethernet。除此之外,AX620A不但能够满足传统的智慧城市、智能家居应用需求,还因为其功耗极小,能够满足电池应用方案的功耗需求,兼顾IOT、智能运动相机、手机等应用场景,尤其在快速唤醒类产品领域拥有卓越表现。
官方的例程仓库更新很勤快,里面有很多主流算法的demo,十分好玩。作为尝鲜,在ubuntu22.04下,使用vscode搭建了开发环境,整个过程体验下来,还是非常简单愉快的。
下载仓库和编译
git clone https://github.com/AXERA-TECH/ax-samples
我是使用交叉编译,参考编译文档:源码编译(Linux)
步骤如下:
- 安装交叉编译工具链
- 下载Arm32 Linux 交叉编译工具链获取地址, 而AX630A 的工具链是不一样的。
- 将其解压到电脑的任意目录,我的是放在
~/ax620_build/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/
目录里 - 编辑
~/.bashrc
文件,在最后加上:
export PATH=$PATH:~/ax620_build/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
- 执行:
source ~/.bashrc
,成功的话,终端应该有以下的自动补全
- 添加opencv库和官方依赖库
- 下载预编译好的 OpenCV 库文件 AX620A/U 匹配;
- 在 ax-samples工程根目录下创建 3rdparty 文件夹,并将下载好的 OpenCV 库文件压缩包解压到该文件夹中。
- 下载 ax-samples 交叉编译的依赖库文件并同样解压到3rdparty 文件夹中
- 此时目录内容如下:
- 源码交叉编译
- 先确保安装了cmake,如果没有,安装一下:
sudo apt install cmake
$ cd ax-samples
$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DBSP_MSP_DIR=../3rdparty/ax_bsp ..
$ make install
编译完成后,生成的可执行示例存放在 ax-samples/build/install/bin/
路径下
搭建vscode开发环境
- 安装vscode linux版,具体去官网下载
- 切换到ax-samples,打开vscode创建工程
$ cd ax-samples
$ code .
- 如果前面源码编译一步是正确的话,vscode会自动读取cmake的配置文件,并提示下载各种相关的插件,比如c++、cmake等插件支持。还有这里点一下,选择系统中上一步配置好的交叉编译工具链
- 此时,直接点击vscode底部的build图标就可以编译工程,和上一步命令行是一样效果的,还有可以指定只编译哪一个例程文件,十分方便。
使用gdbServer实现在线调试
- 配置launch.json文件
在vscode中创建launch.json文件。
创建好后,选择c++启动模板
对模板文件修改以下三处地方:
"program"
:要调试的程序位置。编译源码后,可以在/build/examples/
目录下找到。
miDebuggerPath
:gdb调试器arm-linux-gnueabihf-gdb
的位置,位于工具链的bin目录下。
miDebuggerServerAddress
:板子的IP地址和gdbserver服务启动的端口号。
保存launch.json
文件后,就可以在vscode通过网络连接板子进行在线调试了。
当然首先要去到板子终端里启动gdbserver服务,gdbserver 开发板ip:端口号 要调试的程序
,如:
gdbserver 192.168.3.12:9001 ax_classification_nv12 [程序参数]
gdbserver 程序要放在板子的系统路径下,如果没有,去工具链目录中/arm-linux-gnueabihf/libc/usr/bin
找到复制到板子里面。
最后,就可以在vscode上愉快调试了
- 遇到的问题点:
在过程中,如果遇到提示xxx不存在或者找不到的,一般使用sudo apt install xxx
就能解决。比如我在执行调试时,就两次提示动态库缺失。
一个是libncurses.so.5
,执行sudo apt install libncurses5
一个是libpython2.7.so.1.0
,执行sudo apt install libpython2.7