当前位置: 首页 > news >正文

昇腾Atlas 200I DK A2 C++交叉编译和远程调试教程

一、概述

由于昇腾Atlas 200I DK A2进行开发时存在以下问题:

  1. 编译速度慢;
  2. 存储空间有限;
  3. vscode插件安装较多时启动缓慢,特别是使用GitHub Copilot经常会出现插件重启,断连等问题(现在GitHub Copilot越来越好用了,已经离不开了)。
    因此考虑使用交叉编译的方式进行昇腾Atlas 200I DK A2软件开发。

二、环境说明

项目 开发环境 运行环境
架构 x86-64 工作站 aarch64 Atlas 200I DK A2 开发套件
操作系统 Ubuntu 24.04 Ubuntu 22.04
说明 用于代码开发、编译和调试的环境 用于部署和实际运行的嵌入式设备环境
软件依赖 vscode、build-essential、cmake、 gdb-multiarch、gcc-11-aarch64-linux-gnu g+±11-aarch64-linux-gnu CANN7.0.RC1、openssh-server、gdbserver

注: 实际代码编写可以在Windows,通过vscode的远程开发插件连接到开发环境进行开发和编译。

三、交叉编译环境搭建

1. 运行环境端

CANN安装在默认路径:/usr/local/Ascend/下,并安装官方要求配置环境变量,具体安装教程可以参考官方教程。
其他依赖软件比如opencv、ffmpeg等无论通过apt安装还是通过源码make install安装,相关的库和头文件都应该在/usr/lib//usr/include/下。或者根据官方要求,第三方软件也可以安装在/usr/local/Ascend/thirdpart/aarch64/路径下。
调试是使用gdbserver因此需要安装openssh-server、gdbserver

sudo apt install openssh-server gdbserver

2. 开发环境端

2.1 安装依赖

sudo apt update
sudo apt instll build-essential \cmake \gdb-multiarch \gcc-11-aarch64-linux-gnu \g++-11-aarch64-linux-gnu

2.2 同步环境

创建一个路径来同步运行环境的库和头文件,比如我这里创建/opt/ascend/sysroot

sudo mkdir -p /opt/ascend/sysroot
export SYSROOT=/opt/ascend/sysroot

同步环境,这里同步了所有的库,第一次同步会花一些时间,如果你明确需要哪些库也可以只同步指定的库,但如果不知道还是推荐同步所有的库和头文件。

rsync -a root@200DK_IP:/usr/lib/ $SYSROOT/usr/lib/
rsync -a root@200DK_IP:/usr/include/ $SYSROOT/usr/include/
rsync -a root@200DK_IP:/usr/local/Ascend/ $SYSROOT/usr/local/Ascend/

注: 1. 这里运行环境我用了root,也可以用其他用户比如HwHiAiUser等;2. 200DK_IP为运行环境的IP地址,请确保可以和开发环境ping通,并安装ssh

2.3 创建环境变量

export CPU_ARCH=aarch64
export SYSROOT=/opt/ascend/sysroot
export INSTALL_DIR=$SYSROOT/usr/local/Ascend/ascend-toolkit/latest
export THIRDPART_PATH=$SYSROOT/usr/local/Ascend/thirdpart/aarch64

四、开发实例

以官方例子,中的YOLOV3_coco_detec

http://www.dtcms.com/a/581572.html

相关文章:

  • 2025_11_7_刷题
  • 邓州微网站建设毕业季网站如何做网页
  • 网站是用什么软件做的吗网站设置访问权限
  • AWS + 苹果CMS:影视站建站的高效组合方案
  • 【动手学深度学习】
  • H2 vs SQLite 全面对比
  • python+django/flask的城市供水管网爆管预警系统-数据可视化
  • SQLite 方言解决方案
  • Jenkins + Docker 打造自动化持续部署流水线
  • 利用DeepSeek改写SQLite版本的二进制位数独求解SQL
  • python+django/flask的校园活动中心场地预约系统
  • 建设网站公司哪好html5手机网站开发环境
  • Python高效实现Word转HTML:从基础到进阶的全流程方案
  • 智能驱动,安全可控:EasyGBS平台如何构建企业生产智能监控新模式
  • 建设部网站官网证书查询做网站建设最好学什么
  • 【深度解析】Performance API 与 UKM:从开发者工具到浏览器遥测,全面解锁 Web 性能优化格局
  • 前端项目打包后报错 Uncaught ReferenceError: process is not defined
  • 基于Python的历届奥运会数据可视化分析系统-django+spider
  • 【ZeroRang WebRTC】ICE 在 WebRTC 中的角色与工作原理(深入指南)
  • 计算机视觉(一):相机标定
  • OJ项目面经
  • 免费空间领取网站为企业设计网站
  • 邮储政务金融云平台官网地址无法百度
  • Flutter AnimatedRotation 实现旋转动画
  • 五、CSS盒子模型(下)
  • 网站建设的方法有四种怎样创建公众号
  • 开源项目ruoyi-ai本地部署
  • 乡镇同城O2O系统开发:Java与PHP技术选型对比
  • google提交网站入口能打开各种网站的搜索引擎
  • MyBatis完整教程IDEA版(3)--动态SQL/MyBatis缓存