C

RH850 D1M1A

本主题提供 Renesas 的 RH850 的特定信息。

支持的色彩深度

此板的参考端口支持 32bpp 色彩深度。该板还支持 16bpp 和 24bpp,但不是通过 ItemLayer API,而是通过 QUL_COLOR_DEPTH。更多详细信息,请参阅 色彩深度

板级配置

将 Mango 适配器连接到主板,并确保所有跳线和开关设置均符合描述。

启用 HDMI 输出

要启用 HDMI 视频输出,请遵循跳线和拨动开关的配置。

在 Mango 主板上

  • 连接 JP96 引脚
  • 打开 JP98 引脚 2 和 3,并将引脚 PJ99 连接到 JP98-2。
  • DSW31.7 开关设置为 OFF

在 Mango 适配器板上

  • DSW1.1 开关设置为 OFF

启用 LVDS 输出

要启用 LVDS 视频输出,请按照 Mango 适配器板上的拨动开关配置。

  • DSW1.6 开关设置为 OFF

启用编程

要启用编程和调试,请确保以下开关配置已设置

开关状态
SW3PU
SW5OFF
SW9OFF
SW2PU
SW7PD
SW1OFF
SW4OFF
SW6PD
SW8OFF
SW10PD

启用 HMI 部分

要能在板上的 HMI 部分使用(HMI 开关和 4 个方向的开关),请打开 JP30 并将 DWS29.1-1 开关设置为 ON。

注意: 这种设置可能会与 CAN 产生干扰。有关详细信息,请参阅 Mango 主板参考文档。

设置您的开发环境

有关如何设置开发环境以使用 RH850 的命令行操作的说明,请参阅 为 RH850/D1M1A 设置开发环境

支持的显示器

参考端口支持 HDMI 和 LVDS 显示输出。

预构建库和二进制文件使用带标准VESA 800x600 @60Hz配置的HDMI显示器。

LVDS显示器

要使用LVDS显示器,请按照以下步骤操作

  • 按照启用LVDS输出中的说明配置Mango适配器板
  • 使用带有-DQUL_RH850_USE_LVDS_DISPLAY CMake选项重新构建平台库。这设置了在从Renesas构建BSP源代码时所需的编译定义USE_VDCE_OPENLDI

参考端口使用1280x800 @60Hz配置的LVDS显示器,带自定义时序参数,以匹配HannStar 1280x800 HSD070PWW1-B00显示器。若要使用适合您显示器的其他配置,参见下一节。

注意: 由于图层宽度要求,Qt Quick Ultralite图层示例在1280x800时无法工作。这可以通过遵循自定义图层要求中列出的要求进行修复。

更改显示配置

要更改显示配置(独立于HDMI或LVDS),您可以使用已在Renesas图形库(RGL)SDK中提供的显示模式之一,或者定义一个自定义模式。

来自RGL的可用显示模式

  • 从RGL SDK中r_ddb_timing.c中列出的已存在的显示模式中选择一个(例如:VESA 1024x768 @60Hz)
  • 修改以下内容在platform_config.h头文件中
    • QUL_RH850_DISPLAY_CONFIGURATION_NAME设置为所选配置的字符串标识符(例如:"VESA_1024x768_60Hz"
    • 设置正确的QUL_PLATFORM_DEFAULT_SCREEN_WIDTHQUL_PLATFORM_DEFAULT_SCREEN_HEIGHT
  • 重新构建平台库

自定义显示模式

按照以下步骤使用自定义显示配置。

  • platform_display.cpp中用您的r_ddb_Timing_t结构定义显示时序参数。有关更多信息,请参阅RGL SDK中的r_ddb_api.h
  • 当调用R_WM_ScreenTimingSet()时使用该结构
  • platform_config.h头文件中设置正确的QUL_PLATFORM_DEFAULT_SCREEN_WIDTHQUL_PLATFORM_DEFAULT_SCREEN_HEIGHT
  • 重新构建平台库

AUTOSAR

平台适配

RH850-D1M1A-AUTOSAR平台适配调用在AUTOSAR项目中必须实现的功能,例如日志和内存处理。这个额外的抽象级别使得平台适配可移植到来自不同供应商的AUTOSAR解决方案和工具。它还减少了对于AUTOSAR项目文件的依赖度,如运行环境(RTE)的头文件。

注意: 平台适配没有链接脚本,Qt Quick Ultralite应用程序被构建为一个静态库。

平台适配使用DoubleQueue作为默认的后端用于事件队列,并期望AUTOSAR RTE接口保护操作系统任务之间的数据传输。

注意: DoubleQueue不是线程安全的。如果需要线程安全,必须重新实现消息队列接口

参考AUTOSAR项目

您可以通过联系Qt公司获取Renesas RH850-D1M1A的AUTOSAR集成指南和Vector AUTOSAR Classic平台参考项目。

特定平台的CMake选项

以下CMake选项仅适用于RH850裸机平台适配

CMake选项描述
QUL_USE_DEFAULT_RH850_STARTUP_FILE默认情况下,Qt Quick Ultralite使用与RGL库一起提供的启动文件。将此全局变量设置为关闭以禁用此行为。然后您可以向可执行目标源添加自定义启动文件。

资源缓存策略

默认情况下,应用程序的资源数据在启动时将复制到SDRAM。为了保留这些资源在闪存中而不在启动时加载到RAM中,请在.qmlproject文件中添加以下QmlProject选项

MCU.Config {
    resourceCachePolicy: "NoCaching"
}

或者,也可以仅针对单个图像启用,如下所示

ImageFiles {
    files: "big/button.png"
    MCU.resourceCachePolicy: true
}

注意:在设置ImageFiles.files条目之前设置这些CMake选项。

在裸机平台适配中使用八核闪存或八核RAM

默认情况下,资源将放置在内部闪存和SDRAM中。要使用八核闪存,请在使用应用程序构建配置CMake配置选项时添加QUL_RH850_FLASH_TYPE=Octa。还必须使用eFlashLoad_PATH配置选项指定eFlashLoad工具的路径,例如

-DQUL_RH850_FLASH_TYPE=Octa -DeFlashLoad_PATH=C:\eFLASHLOAD_V307

QUL_RH850_FLASH_TYPE的默认值是Internal

要为图像资源、字体文件或字形数据使用八核RAM,分别使用ImageFiles.MCU.resourceCachePolicy、MCU.Config.fontFilesCachePolicy或MCU.Config.glyphsCachePolicy设置,请在配置应用程序构建时将CMake配置选项中的QUL_RH850_RAM_TYPE=Octa添加

-DQUL_RH850_RAM_TYPE=Octa

QUL_RH850_RAM_TYPE的默认值是SDRAM

将资源加载到VRAM中

在某些情况下,将资源加载到VRAM中可能会提高性能。在使用ImageLayer时,也可能会出现内存带宽问题,这些问题可以通过将一些资源放置在VRAM中来解决。旋转或变换的图像特别适合放置在VRAM中。

要指定资源应加载到VRAM,请将资源的ImageFiles.MCU.resourceRuntimeAllocationType属性设置为128,如下所示

ImageFiles {
    files: ["image.png"]
    MCU.resourceRuntimeAllocationType: 128
}

自定义层要求

在RH850上,用于ImageLayer源的资源有一些特殊要求。

如果您使用放置在内部闪存中的资源作为ImageLayer(在SpriteLayer内部)的源,则可能会出现渲染错误。不建议对这些图像使用NoCaching 资源缓存策略。如果资源必须保留在内部闪存中,请使用根级别的ImageLayer

用作SpriteLayer内部ImageLayer源的资源需要具有八字节对齐的宽度。这意味着每像素32位图像的宽度必须是2的倍数,每像素16位图像的宽度必须是4的倍数。

用作根级别ImageLayer源的资源需要具有128字节对齐的宽度。这意味着每像素32位图像的宽度必须是32的倍数,每像素16位图像的宽度必须是64的倍数。

作为图像层(ImageLayer)根级别的资源必须具有128字节的地址对齐,内部资源分割图像优化需要关闭。这可以通过 ImageFiles.MCU.Expentmental.resourceAlignmentImageFiles.MCU.resourceSplitImageOptimization 属性进行配置

ImageFiles {
  files: ["background.png"]
  MCU.Experimental.resourceAlignment: 128
  MCU.resourceSplitImageOptimization false
}

RLE图像层

要使用RLE压缩图像作为图像层(ImageLayer)的源,需要使用 RGB888RLE 像素格式。

ImageFiles {
  files: ["background.png"]
  MCU.resourceImagePixelFormat: "RGB888RLE"
  MCU.Experimental.resourceSplitImageOptimization: false
  MCU.Experimental.resourceAlignment: 128
}

现在可以像这样使用QML图像层(ImageLayer)API

ImageLayer {
    source: "background.png"
}

还需要启用对应硬件层的RLE支持,使用 Renesas RH850的Qt Quick Ultralite配置API

#include <rh850extras/rh850configuration.h>

然后像这样设置给定硬件层的层类型为 Rh850::Configuration::Rle

Rh850::Configuration::setLayerType(0, Rh850::Configuration::Rle);

在这种情况下,假设最低层的根层将是一个图像层(ImageLayer),其图像源为 RGB888RLE。RH850最多支持四个根层。如果需要多个RLE图像层,或者RLE图像层下方需要其他层,则在调用 Rh850::Configuration::setLayerType 时必须相应地调整层索引。

最后,您必须将应用程序与应用程序的Qul::PlatformRh850Extras链接

target_link_libraries(<target> PRIVATE Qul::PlatformRh850Extras)

RLE图像像素格式支持

对于除了图像层外的普通图像,RH850不支持 ImageFiles.MCU.resourceImagePixelFormat 属性的 RGB888RLE 选项。对于RH850上不透明图像的RLE压缩,建议使用 AutomaticCompressedLossless 选项,因为这将自动选择不透明图像的 XRGB8888RLE 选项。

ImageFiles {
   files: ["image.png"]
   MCU.resourceImagePixelFormat: "AutomaticCompressedLossless"
}

已知问题或限制

  • Qt Quick Ultralite 2.8.0因未实现 enterSleepMode 而不进入低CPU功耗模式。如果没有渲染帧或其他任务运行,Qt Quick Ultralite将循环直到需要渲染下一个帧或另一个任务需要CPU时间。

Renesas RH850插件模块

Qt Quick Ultralite附带Renesas RH850插件模块,它包含针对Renesas RH850特定的附加API。要使用这些API,将 Qul::PlatformRh850Extras 链接到您的项目中。

通过插件模块可获取以下API

<rh850extras/rh850configuration.h>

为Renesas RH850平台提供额外的配置功能

另请参阅 Qt Quick Ultralite作为AUTOSAR复杂设备驱动程序.

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