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)
步骤如下:

  1. 安装交叉编译工具链
  • 下载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 ,成功的话,终端应该有以下的自动补全

在这里插入图片描述

  1. 添加opencv库和官方依赖库
  • 下载预编译好的 OpenCV 库文件 AX620A/U 匹配
  • 在 ax-samples工程根目录下创建 3rdparty 文件夹,并将下载好的 OpenCV 库文件压缩包解压到该文件夹中。
  • 下载 ax-samples 交叉编译的依赖库文件并同样解压到3rdparty 文件夹中
  • 此时目录内容如下:
    在这里插入图片描述
  1. 源码交叉编译
  • 先确保安装了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开发环境

  1. 安装vscode linux版,具体去官网下载
  2. 切换到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

猜你喜欢

转载自blog.csdn.net/flamebox/article/details/127103964