Qualcomm 机器人 RB5 开发套件用户指南(7)

150 篇文章 12 订阅
5 篇文章 0 订阅


5.2 构建和部署示例应用程序

笔记
Linux 嵌入式系统不支持。## 5.3 使用交叉编译器开发

在构建和部署示例应用程序之前,您必须克隆 Git 存储库。

5.2.1 克隆 Git 存储库

笔记
Linux 嵌入式系统不支持。

用于测试设备功能的示例代码可在GitHub上获取。要克隆 RB5 开发套件上的存储库,请执行以下操作:

  1. 要检索设备列表,请运行以下命令:

    adb devices
    
  2. adb通过shell 或进入终端ssh。例如:

    ssh root@qrb5165-rb5#
    
  3. 要创建目录,请运行以下命令:

    mkdir -p ~/DEVELOPMENT/qrb5165
    
  4. 要克隆 Git 存储库,请运行以下命令:

    git clone https://github.com/quic/sample-apps-for-Qualcomm-Robotics-RB5- platform
    

5.2.2 示例应用程序

笔记
Linux 嵌入式系统不支持。

Qualcomm Robotics RB5 开发套件的示例应用程序可在GitHub上获取。

示例应用程序分为几类,每个类别都有一个相应的文件夹。有关构建、部署和测试示例应用程序的说明,请参阅相应示例应用程序文件夹中的 README 文件。以下是可用示例应用程序的列表:

  • AI-ML-应用程序
    此类别包括在 Qualcomm Robotics RB5 开发套件上启用 AI 工作负载的应用程序以及实现选定 AI 使用案例的应用程序。

    • snpe_分类
      该应用程序使用 DLC 格式(从 Qualcomm® 神经处理 SDK 生成)TFLite 模型作为输入来设置环境、编译和运行对象分类。

    • snpe_检测
      该应用程序使用 DLC 格式(从 Qualcomm 神经处理 SDK 生成)TFLite 模型作为输入来设置环境、编译和运行对象检测。

    • tflite_classification
      该应用程序使用 TFLite 模型作为输入并实现 GStreamer 管道来设置环境、编译和运行对象分类。

    • tflite_posenet
      该应用程序使用 TFLite 模型作为输入并实现 GStreamer 管道来设置环境、编译和运行姿态估计。

    • tflite_segmentation
      该应用程序使用 TFLite 模型作为输入并实现 GStreamer 管道来设置环境、编译和运行图像分割。

  • Codec2-视频
    此类别包含基于 GStreamer 的 H.264 视频编码和解码应用程序。您可以编译并测试不同文件格式的H.264视频编解码能力。

  • GStreamer 应用程序
    此类别包含一组 Python 和 C 示例应用程序,展示了 Qualcomm Robotics RB5 开发平台上 GStreamer 插件的使用。

    • GST-阿尔萨
      本应用在RB5开发平台上实现了GStreamer和ASLA的播放和录制功能。

    • gst_音频
      此应用程序演示了使用 PulseAudio 对 WAV、AAC 和 MP3 文件格式进行音频录制和播放。

    • gst_相机
      该应用程序演示了显示屏上的相机实时取景。有两个示例:一个是 ISP 摄像头(主板载摄像头)的显示,另一个是 USB 摄像头的显示。

    • gst_编码_解码
      该应用程序演示了如何将摄像机视频编码为 MP4 文件并从该文件进行播放。有两个示例:一个是 ISP 摄像头(主机载摄像头)的编码,另一个是 MP4 文件的播放。

    • gst_streaming
      该应用程序演示了两种在网络上流式传输视频的方法。第一个示例使用 GStreamer 创建 TCP 流服务器。第二个示例演示了如何在板上运行实时流协议 (RTSP) 服务器。

    • gst_tflite
      此应用程序展示了如何使用 TFLite 模型作为输入来设置环境、编译和运行对象分类以及实现 GStreamer 管道。

    • gst_变换
      此应用程序展示了如何将 ISP 摄像机视频转换为 Weston 显示。

  • ROS应用程序
    此类别包含展示使用 ROS 中间件构建机器人应用程序的应用程序。

    • ROS-咖啡
      该应用程序将Caffe框架集成到Qualcomm Robotics RB5开发平台上的ROS中。

    • ROS-TFLite
      该应用程序将 Tensorflow 框架集成到 ROS 中,并在 Qualcomm Robotics RB5 开发平台上使用对象检测 API。

  • OpenCL-应用程序
    此应用程序使用以下示例演示 OpenCL 示例代码:

    • FFT 展示了使用 OpenCL 进行快速傅立叶变换。
    • Benchmark分别显示内存单位为Byte、KB、MB时的读写速率。
    • Matrix_multiply 显示两个 20 × 20 矩阵的乘法,并在屏幕上打印输入矩阵的输出和两个矩阵的乘法。
  • 平台启动
    此类别包含用于获取设备信息、GPIO 示例、Weston-Client 和 Wi-Fi 热点的应用程序。

    • 设备信息
      该应用程序提供以下信息:设备连接的外设列表、通过内核节点的子系统状态、CPU 和 GPU 信息、显示信息和内存大小。

    • GPIO 样本
      该应用程序处理以下功能:LED 灯控制、GPIO 输入和输出、接收 GPIO 中断事件、按钮事件捕获、简单 PWM 输出以及读取 SoC 热温度。

    • WiFi 登录
      Wi-Fi上线包括在STA模式下扫描周围热点、创建新的Wi-Fi连接、获取当前连接的Wi-Fi的SSID和PSK。切换到SAP模式后,您可以创建新的热点并获取当前热点的SSID和PSK。

    • Weston 客户端应用程序
      Weston 示例代码展示了如何在 Weston 中编译和运行简单的客户端。

5.3 使用交叉编译器开发

笔记
Linux 嵌入式系统不支持。

先决条件:

在主机系统上使用交叉编译器进行开发:

  1. 要安装必要的软件包,请运行以下命令:

    sudo apt update 
    
    sudo apt install diffstat xmlstarlet texinfo chrpath gcc-aarch64-linux-gnu libarchive-dev ssh libselinux1-dev fakechroot g++-aarch64-linux-gnu libiberty-dev qemu-user-static g++ gawk gcc make libwayland-dev fakeroot libpam0g-dev openjdk-8-jdk-headless binutils-dev util-linux uuid-dev zstd
    
  2. 要创建软链接,请运行以下命令:

sudo rm -rf /lib/ld-linux-aarch64.so.1 
sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-2.31.so /lib/ld-linux-aarch64.so.1 
sudo ln -sf /bin/bash /bin/sh 
sudo dpkg -P qemu-user-static 
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb 
sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
  1. 要安装 Android 工具,请运行以下命令:
sudo apt install android-tools-fsutils

5.3.1 准备系统根目录

在主机系统上准备sysroot的方法如下:
使用 Yocto 的 sysroot
导航到以下位置以复制 Yocto 生成的 sysroot:

cp -avx  <src tree>/build-qti-distro-Ubuntu-debug/tmp-glibc/work/qrb5165_rb5-oe-linux/qti-Ubuntu-robotics-image/1.0-r0/rootfs  <your sysroot workspace>

使用 system.img

在开始之前,请检查是否system.img是 Android 稀疏图像。如果是稀疏图像,请在挂载前解稀疏图像。

  1. 要检查是否system.img是 Android 稀疏图像,请运行以下命令:
file qti-Ubuntu-robotics-image-qrb5165-rb5-sysfs.ext4
qti-Ubuntu-robotics-image-qrb5165-rb5-sysfs.ext4: Android sparse image, version: 1.0, Total of 8192000 4096‑byte output blocks in 11950 input chunks.
  1. 要将稀疏图像转换为原始图像,请运行以下命令:
simg2img qti-Ubuntu-robotics-image-qrb5165-rb5-sysfs.ext4  system_raw.img
  1. 要安装system_raw.img,请运行以下命令:
mkdir data
sudo mount system_raw.img data
  1. 要卸载system_raw.img,请运行以下命令:
sudo umount data

示例应用程序:libxml2

例如,您可以使用 libxml2,一个开源应用程序。在RB5开发套件上开发该应用程序的流程如下:

  1. 从这里下载源代码。
  2. 要解压,请运行以下命令:
tar -xvf libxml2-2.9.9.tar.gz

  1. 要配置应用程序,请运行以下命令:
./configure --host=arm-linux --build=i386-linux --target=arm --prefix=<sysroot>/usr  CC=/usr/bin/aarch64-linux-gnu-gcc --without-zlib  --without-python

命令参数取值如下:

  • –prefix=/usr:在 PREFIX 中安装与体系结构无关的文件
  • CC=/usr/bin/aarch64-linux-gnu-gcc: 设置交叉编译器

有关更多详细信息,请运行

configure-h
  1. 要构建应用程序,请运行以下命令:
make
  1. 要安装libxml2到从原始映像挂载的 sysroot 文件夹,请运行sudo。
[sudo] make install
  1. 要检查输出,请运行以下命令:
file libxml2.so.2.9.9

示例输出:

libxml2.so.2.9.9:ELF 64 位 LSB 共享对象,ARM aarch64,版本 1 (SYSV),动态链接,BuildID[sha1]=a0074ea1ac119ddb9fcc4c1d4baa1489ff27dd25,带有 debug_info,未剥离

5.3.2

笔记
Linux 嵌入式系统不支持。

要在主机系统上打包,请使用 Yocto 的 sysroot 和system.img.

使用 Yocto 的 sysroot
从 获取原始打包命令uimage.bbclass。的用法make_ext4fs如下代码所示:

make_ext4fs -s -l ${SYSTEM_SIZE_EXT4} -C ${WORKDIR}/rootfs-fsconfig.conf -B ${DEPLOY_DIR_IMAGE}/system.map ${IMAGE_EXT4_SELINUX_OPTIONS} -b 4096 ${DEPLO    Y_DIR_IMAGE}/${SYSTEMIMAGE_TARGET} ${IMAGE_ROOTFS}

要使用make_ext4fsYocto 生成的内容,请参阅以下示例:

<srctree>/build-qti-distro-Ubuntu-debug/tmp-glibc/work/qrb5165_rb5-oe-linux/qti-Ubuntu-robotics-image/1.0-r0/recipe-sysroot-native/usr/bin/make_ext4fs -s -l 33554432000 -C 
<srctree>/build-qti-distro-Ubuntu-debug/tmp-glibc/work/qrb5165_rb5-oe-linux/qti-Ubuntu-robotics-image/1.0-r0/rootfs-fsconfig.conf -B <srctree>/build-qti-distro-Ubuntu-debug/tmp-glibc/deploy/images/qrb5165-rb5/system.map ${IMAGE_EXT4_SELINUX_OPTIONS} -b 4096  qti-Ubuntu-robotics-image-qrb5165-rb5-sysfs-new.ext4  <your sysroot workspace>

使用系统.img

  1. 要重新打包 sysroot,请运行以下命令:

    sudo make_ext4fs -s -l 33554432000  -b 4096 sysfs.ext4 <sysroot mount point>
    

    例如:

    sudo make_ext4fs -s -l 33554432000 -b 4096 sysfs.ext4 data

  2. 要检查system.img输出是否是 Android 稀疏图像,请运行以下命令:

    file sysfs.ext4
    sysfs.ext4: Android sparse image, version: 1.0, Total of 8192000 4096-byte output blocks in 12234 input chunks
    

5.4 使用RB5平台开发

笔记
Linux 嵌入式系统不支持。

设置开发设备的先决条件是:

  1. 设置网络(Wi-Fi 和以太网)。

  2. 运行以下命令来设置构建环境:

    apt install gcc g++
    
  3. 连接到 USB 端口并确保在 Android 调试桥模式下检测到设备。

在 Qualcomm Robotics RB5 Platform shell 终端上编写一个简单的程序。打印一行字符:Hello World!使用以下命令:

adb shell
sh-4.4#vi hello.c
sh-4.4#gcc hello.c -o hello
sh-4.4# ./hello
Hello world!
sh-4.4#
  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值