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
启用编程
要启用编程和调试,请确保以下开关配置已设置
开关 | 状态 |
---|---|
SW3 | PU |
SW5 | OFF |
SW9 | OFF |
SW2 | PU |
SW7 | PD |
SW1 | OFF |
SW4 | OFF |
SW6 | PD |
SW8 | OFF |
SW10 | PD |
启用 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_WIDTH
和QUL_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_WIDTH
和QUL_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.resourceAlignment
和 ImageFiles.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
为Renesas RH850平台提供额外的配置功能 |
另请参阅 Qt Quick Ultralite作为AUTOSAR复杂设备驱动程序.
在特定Qt许可证下可用。
了解更多信息。