Qualcomm 远程信息处理 SDK - 用户指南(1)
1 介绍
目的
远程信息处理软件开发套件 (TelSDK) 是一组应用程序编程接口 (API),可提供对 QTI 特定硬件和软件功能的访问。
本文档的主要目的是概述 TelSDK 的各种功能,并演示如何使用各种 TelSDK API 来开发应用程序。它提供了示例应用程序的源代码,以帮助开发人员熟悉 API 的使用。
范围
本文档重点介绍如何使用 TelSDK API 来实现给定的用例。它假设开发人员熟悉 Linux 和 C++11 编程。
2 构建基于 TelSDK 的应用程序
2.1 您可以访问 ChipCode 门户
TelSDK 可交付成果(标头、库、预构建工件、selinux 策略等)作为软件产品发布的一部分通过 ChipCode™ 门户交付给 Qualcomm Technologies, Inc 客户。此交付包含公共和非公共 TelSDK 可交付成果。根据这些信息,开发和构建应用程序的步骤将是:
- 从 ChipCode 门户同步整个软件产品发布包。
- 编写一个基于 TelSDK 的应用程序。
- 编写 Yocto 配方来构建此应用程序。
- 将此应用程序和配方集成到 Yocto 构建系统中。
- 最后,构建应用程序并在目标硬件上进行测试。
设置构建环境
可以通过运行 poky 目录中的 set_bb_env.sh 脚本来设置构建环境。
$ cd poky
$ source build/conf/set_bb_env.sh
$ build-<target>-image
目标可以是 sa515m、sa415m、sa2150p 或 9650 等。
构建示例应用程序
运行 set_bb_env.sh 脚本后,构建环境就准备好了。TelSDK 提供的示例应用程序可以使用 telux-samples 配方构建,如下所示。
$ bitbake telux-samples
2.2 您无权访问 ChipCode 门户
仅使用 TelSDK 公开的部分源代码,就可以在一定程度上开发基于 TelSDK 的应用程序。下面讨论最低要求以及如何满足这些要求:
- 整体构建环境,包含用于为给定 QTI 目标处理器架构编译应用程序的交叉工具链。标准Linux头文件、库、根文件系统目录结构和各种环境变量,以方便构建和链接过程。该构建环境是借助标准 Yocto 平台 SDK 应用程序开发和环境创建支持功能获得的。
- 用于编译和链接应用程序的 TelSDK 头文件和库。这是通过启用 TelSDK 特定配方来完成的,该配方在我们的构建环境中使用的根文件系统中构建和安装这些头文件和库。
创建构建环境
创建这样的构建环境的步骤如下:
- 在主机上安装必要的软件包以同步和构建 Yocto 平台 SDK。
$ sudo apt-get install repo gawk wget git-core diffstat unzip texinfo xterm
$ sudo apt-get install gcc-multilib build-essential chrpath socat libsdl1.2-dev
-
从 Codeaurora 论坛识别 Qualcomm Technologies, Inc 为所需目标处理器发布的最新软件映像 (SI) 的标签。LE.UM.4.1.1.C9 是 SA515M 目标的 SI,LE.UM.3.2.1.C1 是 SA415M 目标的 SI,LE.UM.1.3.r5 是 MDM9650 目标的 SI。此处列出了标签:https://source.codeaurora.org/quic/le/le/manifest/refs/tags
-
为源代码存储库创建完全限定的清单文件名。将“caf_”作为前缀,“.xml”作为后缀添加到步骤 2 中获得的标记。示例清单文件名:
caf_AU_LINUX_EMBEDDED_LE.UM.4.1.1.C9_TARGET_ALL.01.311.164.xml
-
使用步骤 3 中获取的清单文件同步软件映像版本的开源代码部分。
$ repo init -u git://codeaurora.org/quic/le/le/manifest.git -b release -m <caf_TAG.xml>
$ repo sync -j 16
- 通过在 poky/build/conf/local.conf 文件中附加以下行,可以在目标映像上构建和安装 TelSDK 库。
(a) 对于除 LE.UM.1.3.r5 之外的所有软件映像:
CORE_IMAGE_EXTRA_INSTALL +=“telux”
CORE_IMAGE_EXTRA_INSTALL +=“telux-lib”
(b) 对于 LE.UM.1.3.r5 软件映像:
CORE_IMAGE_EXTRA_INSTALL += "telux"
CORE_IMAGE_EXTRA_INSTALL += "telephony-lib"
- 运行 SDK 环境设置脚本(Yocto 构建系统所需)。
$ cd poky
$ source build/conf/set_bb_env.sh
- 设置机器和操作系统分发环境。
# For sa515m
$ export MACHINE=sa515m
$ export DISTRO=auto
# For sa415m
$ export MACHINE=sa415m
$ export DISTRO=auto
# For sa2150p
$ export MACHINE=sa2150p
$ export DISTRO=msm
- 构建 Yocto 平台 SDK 并生成 SDK 安装程序。
$ bitbake core-image-minimal -c do_populate_sdk
构建完成后,将在 poky/build/tmp-glibc/deploy/sdk 目录中找到 SDK 安装程序。例如,oecore-x86_64-armv7at2hf-neon-toolchain-nodistro.0.sh 是 SA515M LE.2.1 的安装程序。
- 最后,使用步骤 8 中生成的安装程序在主机上安装构建环境。出现提示时指定安装目录。
$ poky/build/tmp-glibc/deploy/sdk/oecore-x86_64-<arch>-toolchain-nodistro.0.sh
- 现在可以按照 Yocto SDK 项目手册中提到的构建过程针对 TelSDK 库编写和编译应用程序:https 😕/docs.yoctoproject.org/sdk-manual/index.html
构建示例应用程序
我们的构建环境现已设置完毕。例如,可以通过执行以下指令来构建 TelSDK 为 SA515M LE.2.1 提供的位置示例应用程序。
$ cd <platform_sdk_installation_directory>
$ source environment-setup-armv7at2hf-neon-oe-linux-gnueabi
$ cd telux/public/apps/samples/loc/loc_app/
$ ${CC} SampleLocationApp.cpp -ltelux_loc -std=c++11 -lstdc++ -o testapp
3 使用 TelSDK 进行模拟
有时,您可能希望在没有目标硬件的情况下尽早开始开发应用程序。为了支持这一点,TelSDK 具有模拟某些功能的功能,例如生成位置报告。
3.1 模拟位置报告生成
预定义的位置数据被馈送到 TelSDK 位置库,然后以与真实硬件相同的方式传递到应用程序。模拟定位功能的步骤如下:
-
按照第 2 章 - 基于 TelSDK 构建应用程序中所述获取源代码。
-
安装 CMake 工具以在主机上构建代码。
$ sudo apt-get install cmake
- 安装所需的 TelSDK 标头。
$ cd telux/public/include
$ cmake .
$ cmake --build .
$ sudo make install
- 构建并安装所需的 TelSDK 库。
$ cd telux/public/simulation
$ cmake .
$ cmake --build .
$ sudo make install
- 仅启用构建 location_test_app。在 telux/public/apps/CMakeLists.txt 文件中,注释掉除 location_test_app 之外的所有“add_subdirectory”语句。
$ cd telux/public/apps
$ cmake .
$ cmake --build .
$ sudo make install
- 运行测试应用程序。
$ location_test_app
3.2 配置位置模拟参数
可以配置各种位置参数以增加模拟覆盖范围。总体而言,可以配置数据可用性、位置数据源、报告的各种延迟和频率。