C
RH850 D1M1A
このトピックでは、Renesas のRH850に関するボード固有の情報を提供します。
サポートされる色深度
このボードのリファレンスポートは、32bppの色深度をサポートしています。また、このボードはItemLayer APIを使用する場合、16bppおよび24bppもサポートしていますが、QUL_COLOR_DEPTHではサポートされていません。詳細については、「色深度」を参照してください。
ボードの設定
Mangoアダプタをメインボードに接続し、すべてのジャンパーおよびスイッチが説明通りに正確に設定されていることを確認してください。
HDMI出力の有効化
HDMIビデオ出力を有効にするには、ジャンパーおよびDIPスイッチの設定に従ってください。
Mangoメインボード上:
- JP96のピンを接続します
- JP98のピン2と3をオープンにし、ピンPJ99をJP98-2に接続します。
- DSW31.7スイッチをOFFに設定
Mangoアダプタボード上:
- DSW1.1スイッチをOFFに設定
LVDS 出力を有効にする
LVDS ビデオ出力を有効にするには、Mango アダプタボードの DIP スイッチ設定に従ってください:
- 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 アダプタボードを設定します。
- CMakeオプション「
-DQUL_RH850_USE_LVDS_DISPLAY」を指定して、Platformライブラリを再ビルドします。これにより、Renesas からBSPソースをビルドする際に必要なコンパイル定義USE_VDCE_OPENLDIが設定されます。
リファレンスポートでは、LVDSディスプレイに対して1280x800 @60Hzの構成を使用しており、HannStar 1280x800 HSD070PWW1-B00ディスプレイに合わせたカスタムタイミングパラメータが設定されています。お使いのディスプレイに適した別の構成を使用する場合は、次のセクションを参照してください。
注: Qt Quick のUltraliteレイヤー例は、レイヤーの幅に関する要件のため、1280x800では動作しません。これは、「カスタムレイヤーの要件」に記載されている要件に従うことで修正できます。
ディスプレイ設定の変更
HDMIまたはLVDSのいずれかに関係なく、ディスプレイ設定を変更するには、Renesas Graphics Library (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ライブラリを再構築してください
カスタム表示モード
カスタム表示設定を使用する場合は、代わりに以下の手順に従ってください。
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を設定してください- Platformライブラリを再ビルドします
AUTOSAR
プラットフォームの適応
RH850-D1M1A-AUTOSAR プラットフォーム適応は、ロギングやメモリ処理など、AUTOSAR プロジェクトで実装する必要がある関数を呼び出します。 この追加の抽象化レベルにより、プラットフォーム適応をさまざまなベンダーの AUTOSAR ソリューションやツールに移植することが可能になります。また、ランタイム環境 (RTE) のヘッダーファイルなど、AUTOSAR プロジェクトファイルへの依存も軽減されます。
注: プラットフォーム適応には リンカースクリプトがなく、Qt Quick Ultralite アプリケーションは静的ライブラリとしてビルドされます。
このプラットフォーム適応機能は、EventQueue のデフォルトのバックエンドとしてDoubleQueue を使用し、オペレーティングシステムのタスク間のデータ転送を保護するためにAUTOSAR RTEインターフェースを前提としています。
注: DoubleQueue は スレッドセーフではありません。スレッドセーフ性が要求される場合は、MessageQueueInterface を再実装する必要があります。
AUTOSAR プロジェクトのリファレンス
Renesas RH850-D1M1A 向けの AUTOSAR 統合ガイドおよび Vector AUTOSAR Classic Platform リファレンスプロジェクトについては、The Qt Company にお問い合わせください。
安全クリティカルなアプリケーション
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_V307QUL_RH850_FLASH_TYPE のデフォルト値はInternal です。
onStartup キャッシュポリシーを使用するイメージリソース、フォントファイル、またはグリフデータに Octa RAM を使用するには、アプリケーションのビルドを設定する際に、CMake 設定オプションにQUL_RH850_RAM_TYPE=Octa を追加します。
-DQUL_RH850_RAM_TYPE=OctaQUL_RH850_RAM_TYPE のデフォルト値はSDRAM です。
リソースをVRAMに読み込む
場合によっては、リソースをVRAMに読み込むことでパフォーマンスが向上することがあります。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
}これで、QMLのImageLayer APIを次のように使用できます:
ImageLayer {
source: "background.png"
}また、 Qt Quick Ultralite configuration API for Renesas RH850を使用して、対応するハードウェアレイヤーでRLEのサポートを有効にする必要があります。
#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 以外の通常の画像については、RH850 ではImageFiles.MCU.resourceImagePixelFormatプロパティのRGB888RLE オプションはサポートされていません。RH850 での不透明画像の RLE 圧縮については、AutomaticCompressedLossless オプションの使用を推奨します。これにより、不透明画像に対して自動的にXRGB8888RLE オプションが選択されるためです。
ImageFiles {
files: ["image.png"]
MCU.resourceImagePixelFormat: "AutomaticCompressedLossless"
}既知の問題または制限事項
- Qt Quick Ultralite 2.12.2 では、このプラットフォームで `
enterSleepMode` が実装されていないため、低 CPU 電力モードに移行しません。フレームのレンダリングが行われておらず、他のタスクも実行されていない場合、Qt Quick Ultralite は、次のフレームのレンダリングが必要になるか、別のタスクが CPU 時間を必要とするまでループし続けます。 - QtQuick.VirtualKeyboard モジュールは、キーボードレイアウトのフルセットを含めるとメモリに収まりません。「言語の追加と削除」の手順に従い、このモジュールを使用するために必要なレイアウト/言語セットのみを含めるようにしてください。
Renesas RH850 Extrasモジュール
Qt Quick Ultralite には、Renesas のRH850 Extrasモジュールが付属しており、Renesas RH850固有の追加APIが含まれています。これらのAPIを使用するには、Qul::PlatformRh850Extras をプロジェクトにリンクしてください。
この Extras モジュールを通じて、以下の API を利用できます:
Renesas RH850プラットフォーム向けの追加の設定関数を提供します |
AUTOSAR複合デバイスドライバとしてのQt Quick Ultraliteについても参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。