C

为INTEGRITY构建

在Qt安全渲染器2.0中,包含使用Qt 5.15.13构建的Qt安全渲染器二进制文件。但是,如果您想使用Green Hills Software INTEGRITY 实时操作系统(RTOS)自行构建Qt安全渲染器,请按照本主题中的说明操作。

Qt安全渲染器和其工具是通过以下项目构建的

项目描述.pro文件名.pro文件路径与Qt版本构建
Qt安全布局工具Qt安全布局工具生成Qt安全渲染器的安全布局数据。qtsafelayouttool.pro<Qt安装目录>/Src/QtSafeRenderer-<版本>/tools/qtsafelayouttool为您的目标平台编译的Qt。
Qt安全资源编译工具Qt安全资源编译工具为Qt安全渲染器生成安全资源文件。qtsafercctool.pro<Qt安装目录>/Src/QtSafeRenderer-<版本>/tools/qtsafercctool为您的目标平台编译的Qt。
Qt安全渲染器构建Qt安全渲染器时,Qt安全渲染器插件会在Qt Creator的当前环境中构建和安装(即用于构建项目的Qt版本)。qtsaferenderer.pro<Qt安装目录>/Src/QtSafeRenderer-<版本>为INTEGRITY编译的Qt。

为INTEGRITY,Qt安全渲染器提供以下示例

项目描述.pro文件名.pro文件路径与Qt版本构建
Qt集群示例Qt集群展示了在INTEGRITY上的渲染以及从主UI故障中恢复的能力。qtcluster.pro<Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/qtcluster为INTEGRITY编译的Qt
TeLLtales示例当构建TeLLtaLes时,必须使用为INTEGRITY编译的Qt。然后,项目的INTEGRITY特定部分将一起构建。进程监视器项目与INTEGRITY特定的TeLLtaLes一起构建。TeLLtaLes使用Qt集群示例中的布局文件。examples.pro<Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer为INTEGRITY编译的Qt
本地化示例本地化展示了如何在安全关键元素中本地化内容。localization.pro<Qt安装目录>/Examples/QtSafeRenderer-<版本>/saferenderer/localization/localization.pro

为INTEGRITY构建Qt描述了在目标设备为三菱R-Car H3或高通Snapdragon的情况下,构建Qt安全渲染器所需的高层次步骤。

但是,请注意,这些步骤假设您已经有了与INTEGRITY环境一起工作的经验。如果您需要更多有关如何为INTEGRITY构建Qt安全渲染器的详细信息,您可以联系 Qt咨询服务

构建Qt安全工具

注意:由于Qt安全渲染器1.1.2版本起,Qt安全布局和Qt安全资源编译工具可在<Qt安装目录>/Tools/QSR-<版本>/bin中以预构建包的形式使用。如果您不打算自行构建工具,可以跳过此步骤。

在 Qt Creator 中构建 Qt 安全工具,请执行以下主题中列出的步骤,针对 qtsaferenderer.pro。使用为您的宿主平台编译的 Qt 版本构建项目。成功构建后,将在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 下生成 qtsafelayouttoolqtsafercctool

将项目打开为编辑模式

将项目打开为 Qt Creator 的 编辑 模式

  1. 启动 Qt Creator。
  2. 选择 文件 > 打开文件或项目,然后浏览到 .pro 文件。
  3. 选择 打开
  4. 配置项目 页面,选择用于构建项目的套件,并选择 配置项目

项目现在已在 Qt Creator 的 编辑 模式中打开。

添加自定义构建步骤 <make install>

注意:如果您正在构建 Qt 安全渲染器的一些示例,可以跳过此步骤。

在构建 Qt 安全渲染器之前,请添加一个自定义构建步骤,将二进制文件安装在用于构建项目的 Qt 版本的 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 下

  1. 选择一个 项目 模式。
  2. 在套件中,选择 构建
  3. 选择 构建设置 > 构建步骤 > 添加构建步骤 > Make
  4. Make 参数 中,添加 install
  5. 选择 编辑 模式。您的自定义构建步骤将自动保存。

构建项目

通过选择 构建 > 构建项目 "<项目名称>"编辑 模式下构建项目。

设置交叉编译环境

将 Qt 安全布局工具的二进制文件 (qtsafelayouttool) 和 Qt 安全资源编译器工具的二进制文件 (qtsafercctool) 复制到交叉编译环境中包含 qmake 可执行文件的目录。

您可以在 <Qt 安装目录>/Tools/QSR-<版本>/bin 中找到预构建的 qtsafelayouttoolqtsafercctool,或者在自行构建时在 <Qt 安装目录>/<Qt 版本>/<编译器>/bin 中找到。

为 INTEGRITY 构建 Qt

Qt 5.9.4 或更高版本支持为 INTEGRITY 构建 Qt 安全渲染器。这是由于已修复到 Qt 5.9.4 中的 QTBUG-62568 INTEGRITY 在 Renesas H3 Salvator-X

在您可以为 INTEGRITY 构建 Qt 安全渲染器之前,您需要构建 Qt 本身。构建的 Qt 包含构建 Qt 安全渲染器所需的 qmake 工具。

要构建 Qt,您必须在宿主平台上正确安装 INTEGRITY 环境。此外,您需要一个环境设置脚本。INTEGRITY 环境必须根据 Renesas 或 Qualcomm 提供的 Green Hills 和板级支持包 (BSP) 指令安装

为 Renesas R-Car H3 设置环境

以下代码提供了为 Renesas R-Car H3 目标提供的环境设置脚本的示例

#!/bin/bash

export PATH=$PATH:</path/to>/comp_201714
export INTEGRITY_DIR=</path/to>/int1144
export INTEGRITY_BSP=devtree-arm64
export GL_INC_DIR=</path/to>/int1144/modules/renesas/libs/Gfx/INC:/path/to/int1144/modules/renesas/libs/wm_usr/inc/:</path/to>/int1144/modules/renesas/libs/mmgr_usr/inc/:</path/to>/int1144/modules/renesas/include/
export GL_LIB_DIR=</path/to>/int1144/modules/renesas/libs/Gfx/LIB/rcar-h3:</path/to>/int1144/bin/devtree-arm64

</path/to> 是指向示例脚本中提到的目录的路径。

在设置环境后,您可以通过以下方式为 INTEGRITY 构建 Qt

mkdir qt-shadow
cd qt-shadow
</path/to>/qt-source/configure -developer-build -xplatform \
integrity-armv8-rcar -confirm-license -nomake examples -nomake tests \
-no-dbus -silent -opengl es2 -static
make -j10

您可以在 qt-shadow/qtbase/bin/ 下找到 qmake 二进制文件。

设置高通骁龙的环境

以下代码提供了一个高通骁龙目标环境设置脚本的示例。

export PATH=$PATH:</path/to>/comp_201714
export INTEGRITY_DIR=</path/to>/int1172
export INTEGRITY_BSP=devtree-arm64
export GL_INC_DIR=</path/to>/qc_bsp/ghs_ap/AMSS/multimedia/graphics/opengl/esx/shared/include/public
export GL_LIB_DIR=</path/to>/int1170/bin/AMSS/graphics
export QCLIBS_DIR=</path/to>/int1170/libs/qclibs
export QC_MULTIMEDIA_INC_DIR=</path/to>/qc_bsp/ghs_ap/include/amss/multimedia
export GHS_DTC=</path/to>/dtc/dtc

在设置环境后,您可以通过以下方式为 INTEGRITY 构建 Qt

mkdir qt-shadow
cd qt-shadow
</path/to>/qt-source/configure -device integrity-armv8-msm8996au -nomake examples -nomake tests -no-dbus -silent -static
make -j10

您可以在 qt-shadow/qtbase/bin/ 下找到 qmake 二进制文件。

构建 Qt 安全渲染器和示例

在您为 INTEGRITY 构建Qt之后,可以启动Qt Creator并构建Qt安全渲染器及其INTEGRITY特定示例:Telltales和Qt Cluster。要在Qt Creator中启用INTEGRITY构建,您必须将Qt for INTEGRITY设置为您的套件。请参阅添加套件

您可以使用在构建 Qt 安全工具中描述的相同步骤为INTEGRITY构建Qt安全渲染器、Telltales和Qt Cluster。只需记住,在将项目打开为编辑模式时,您必须选择Qt for INTEGRITY套件。套件在选择从配置项目页面。

构建Telltales示例时,还将构建一个进程监视器项目。

添加新地址空间

在您构建了Telltales示例之后,您需要在您的working INTEGRITY项目中添加一个新地址空间。将以下代码块添加到您的项目下的集成文件(.int)

AddressSpace                    saferenderer
        Filename                        </path/to>/telltales
        MemoryPoolSize                  0x1000000
        Language                        C++
        Task                            Initial
                StackLength             0x20000
                StartIt                 true
        EndTask
        HeapExtensionReservedSize       0x20000
EndAddressSpace

</path/to> 是Telltales二进制文件所在目录。

根据Green Hills提供的INTEGRITY BSP指示和目标设备供应商(瑞萨或高通)的说明重建项目并在目标设备上运行。

在特定Qt许可证下可用。
了解更多。