C
RH850 D1M1A
このトピックでは、Renesas' RH850 に関するボード固有の情報を提供します。
サポートされる色深度
このボードのリファレンス・ポートは 32bpp 色深度をサポートしています。このボードはItemLayer API で 16bpp と 24bpp もサポートしていますが、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スイッチをオンに設定します。
注意: この設定はCANと干渉する可能性があります。詳細はMangoメインボードのリファレンスドキュメントを参照してください。
開発環境のセットアップ
RH850のコマンドラインを使用するための開発環境のセットアップ方法については、RH850/D1M1Aの開発環境のセットアップを参照してください。
対応ディスプレイ
リファレンスポートは、HDMIとLVDSの両方のディスプレイ出力をサポートしています。
ビルド済みライブラリとバイナリは、標準的なVESA 800x600 @60Hz構成のHDMIディスプレイを使用します。
LVDSディスプレイ
LVDSディスプレイを使用するには、以下の手順に従ってください:
- Enable LVDS Outputの説明に従ってMango Adapter Boardを設定します。
-DQUL_RH850_USE_LVDS_DISPLAYCMakeオプションでPlatformライブラリを再構築します。これは、Renesas からBSPソースをビルドする際に必要なコンパイル定義USE_VDCE_OPENLDIを設定します。
リファレンス・ポートでは、HannStar 1280x800 HSD070PWW1-B00ディスプレイと一致するカスタム・タイミング・パラメータを使用して、LVDSディスプレイに1280x800 @60Hzの構成を使用しています。お使いのディスプレイに適した別の構成を使用するには、次のセクションを参照してください。
注: Qt Quick Ultraliteレイヤー例は、レイヤー幅要件のため1280x800では動作しません。これは、カスタムレイヤー要件に記載されている要件に従うことで修正できます。
ディスプレイ構成の変更
HDMIまたはLVDSとは別にディスプレイ構成を変更するには、Renesas Graphics Library (RGL)SDKで提供されている利用可能なディスプレイモードを使用するか、カスタムモードを定義します。
RGLから利用可能な表示モード
- RGL SDKの
r_ddb_timing.c(例:VESA 1024x768 @60Hz)に記載されている、すでに利用可能な表示モードの1つを選択します。 platform_config.hヘッダーの以下を修正する:QUL_RH850_DISPLAY_CONFIGURATION_NAMEを、選択したコンフィギュレーションの文字列識別子 ("VESA_1024x768_60Hz") に設定します。- 正しい
QUL_PLATFORM_DEFAULT_SCREEN_WIDTHとQUL_PLATFORM_DEFAULT_SCREEN_HEIGHT
- プラットフォーム・ライブラリを再構築
カスタム表示モード
カスタムディスプレイ構成を使用する場合は、代わりに以下の手順に従ってください。
r_ddb_Timing_t構造体を使用して、platform_display.cppで表示タイミング・パラメータを定義します。詳細については、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ソリューションやツールへのプラットフォーム適合の移植が可能になります。また、ランタイム環境(RTE)用のヘッダファイルなど、AUTOSARプロ ジェクトファイルへの依存性も低減されます。
注記: プラットフォーム適合にはリンカスクリプトがなく、Qt Quick Ultralite アプリケーションはスタティックライブラリとしてビルドされます。
プラットフォーム適合では、EventQueue のデフォルトバックエンドとしてDoubleQueue を使用し、オペレーティングシステムタスク間のデータ転送を保護するために AUTOSAR RTE インタフェースを想定しています。
注: DoubleQueue はスレッドセーフではない。スレッドセーフが必要な場合は、MessageQueueInterface を再実装する必要がある。
リファレンス AUTOSAR プロジェクト
Qt Company に問い合わせると、Renesas RH850-D1M1A 用の AUTOSAR インテグレーションガイドと Vector AUTOSAR Classic Platform リファレンスプロジェクトを入手できます。
セーフティクリティカルなアプリケーション
RH850-D1M1Aは、CRC-32/ISO-HDLC 、表示データ出力のチェックサムを計算します。CRCアルゴリズムはボードのデフォルトで以下のように設定されています:
MCU.Config {
safeRendererCrcAlgorithm: "CRC-32/ISO-HDLC"
}詳細については、Qt Quick 「セーフティクリティカルな項目を含むUltraliteアプリケーション」を参照してください。
プラットフォーム固有のCMakeオプション
以下のCMakeオプションは、RH850ベアメタル・プラットフォーム適応専用です:
| CMakeオプション | 説明 |
|---|---|
| qul_use_default_rh850_startup_file | デフォルトではQt Quick Ultralite はRGL ライブラリに付属のスタートアップファイルを使用します。この動作を無効にするには、このグローバル変数をOFFに設定してください。そうすれば、実行可能なターゲット・ソースにカスタム・スタートアップ・ファイルを追加することができます。 |
リソース・キャッシュ・ポリシー
デフォルトでは、アプリケーションのリソース・データは起動時にSDRAMにコピーされます。これらのリソースをフラッシュに保持し、起動時にRAMにロードしないようにするには、qmlprojectファイルに以下のQmlProjectオプションを追加します:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、このように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}ベアメタルプラットフォームで Octa Flash または Octa RAM を使う場合
デフォルトでは、リソースは内蔵フラッシュと SDRAM に置かれます。Octa Flash を使用するには、アプリケーションのビルドを設定する際に、CMake の設定オプションにQUL_RH850_FLASH_TYPE=Octa を追加します。また、eFlashLoad_PATH 設定オプションなどを使用して、eFlashLoad ツールへのパスを指定する必要があります:
-DQUL_RH850_FLASH_TYPE=Octa -DeFlashLoad_PATH=C:\eFLASHLOAD_V307
QUL_RH850_FLASH_TYPE のデフォルト値はInternal です。
onStartup キャッシュ・ポリシーを使用するイメージ・リソース、フォント・ファイル、またはグリフ・データに Octa RAM を使用するには、アプリケーションのビルドを構成する際に、CMake 構成オプションにQUL_RH850_RAM_TYPE=Octa を追加します:
-DQUL_RH850_RAM_TYPE=Octa
QUL_RH850_RAM_TYPE のデフォルト値はSDRAM です。
VRAM へのリソースのロード
リソースを VRAM にロードすると、パフォーマンスが向上する場合があります。QUL_RH850_RAM_TYPE のデフォルト値は「ImageLayer 」です。 を使用する場合、メモリ帯域幅の問題が発生することがありますが、VRAM にリソースを配置することで解決できます。回転や変形を行う画像は、特にVRAMに配置するのに適しています。
リソースをVRAMにロードするように指定するには、次のようにリソースのImageFiles.MCU.resourceRuntimeAllocationTypeプロパティを128に設定します:
ImageFiles {
files: ["image.png"]
MCU.resourceRuntimeAllocationType: 128
}カスタム・レイヤの要件
RH850 では、ImageLayer のソースとして使用されるリソースにいくつかの特別な要件があります。
SpriteLayer 内のImageLayer のソースとして内部フラッシュに配置されたリソースを使用すると、レンダリングエラーが発生する場合があります。これらのイメージにNoCaching リソースキャッシュポリシーを使用することは推奨されません。リソースが内部フラッシュに保存されている場合は、代わりにルートレベルImageLayer を使用してください。
SpriteLayer 内のImageLayer のソースとして使用されるリソースは、8 バイトのアライメント幅を持つ必要があります。つまり、1ピクセルあたり32ビットの画像は2の倍数の幅を持つ必要があり、1ピクセルあたり16ビットの画像は4の倍数の幅を持つ必要があります。
ルートレベルImageLayer のソースとして使用されるリソースは、128バイトのアライメント幅を持つ必要があります。つまり、1ピクセルあたり32ビットの画像は32の倍数の幅を持つ必要があり、1ピクセルあたり16ビットの画像は64の倍数の幅を持つ必要があります。
ルート・レベルImageLayer のソースとして使用されるリソースは、128バイトのアドレス・アライメントを持つ必要があり、内部リソース分割画像の最適化はオフにする必要があります。これはImageFiles.MCU.Experimental.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
}QMLImageLayer API はこのように使用できます:
ImageLayer {
source: "background.png"
}また、対応するハードウェアレイヤのRLEサポートを有効にするには Qt Quick Ultralite configuration API for Renesas RH850.
#include <rh850extras/rh850configuration.h>
次に、与えられたハードウェアレイヤーのレイヤータ イプをRh850::Configuration::Rle に設定します:
Rh850::Configuration::setLayerType(0, Rh850::Configuration::Rle);
この場合、一番下のルート・レイヤーはRGB888RLE イメージ・ソースを持つImageLayer であると仮定します。RH850は最大4つのルート・レイヤーをサポートします。複数の RLE 画像レイヤーが必要な場合、または RLE 画像レイヤーの下に他のレイヤーが必要な場合は、Rh850::Configuration::setLayerType を呼び出す際にレイヤーインデックスを調整する必要があります。
最後に、Qul::PlatformRh850Extrasに対してアプリケーションをリンクする必要があります:
target_link_libraries(<target> PRIVATE Qul::PlatformRh850Extras)
RLE画像ピクセルフォーマットのサポート
ImageLayers以外の通常の画像では、ImageFiles.MCU.resourceImagePixelFormatプロパティのRGB888RLE オプションはRH850ではサポートされていません。RH850 で不透明画像の RLE 圧縮を行う場合は、AutomaticCompressedLossless オプションを使用することをお勧めします。これは、不透明画像に対して自動的にXRGB8888RLE オプションが選択されるためです。
ImageFiles {
files: ["image.png"]
MCU.resourceImagePixelFormat: "AutomaticCompressedLossless"
}既知の問題や制限
- Qt Quick Ultralite 2.12.0は、
enterSleepModeがこのプラットフォームに実装されていないため、低CPUパワーモードになりません。フレームがレンダリングされず、他のタスクが実行されていない場合、Qt Quick Ultraliteは次のフレームがレンダリングされるか、他のタスクがCPU時間を必要とするまでループします。 - QtQuick.VirtualKeyboard モジュールはキーボードレイアウトのフルセットではメモリに収まりません。言語の追加と削除の説明に従って、このモジュールを使用するために必要なレイアウト/言語のセットのみをインクルードしてください。
Renesas RH850 Extrasモジュール
Qt Quick UltraliteにはRenesas RH850 Extrasモジュールが付属しており、Renesas RH850特有の追加APIが含まれています。これらのAPIを使用するには、Qul::PlatformRh850Extras をプロジェクトにリンクしてください。
以下のAPIがextrasモジュールで利用可能です:
Renesas RH850プラットフォーム用の追加設定関数を提供します。 |
AUTOSAR 複合デバイスドライバとしてのQt Quick Ultraliteも参照して ください。
特定の Qt ライセンスの下で利用可能です。
詳細をご覧ください。