このドキュメントでは、RapidPLUSÔ 9.02 - 7.00 の新機能について説明します。機能については、『User Manual Supplement』,『 Generating Code for Embedded Systems』のマニュアルおよびヘルプトピックスで詳しく説明しています。いくつかの新機能の例がExamples
フォルダ内に格納されています。
RapidPLUS 9.02
|
|
|
|
外部アプリケーションからグラフィックディスプレイへの書き込み
|
外部アプリケーションの入力をグラフィックディスプレイに統合したい場合がよくあります。例えば、カメラのプレビューを表示したり、RapidPLUSアプリケーションの一部としてJavaアプレットを実行したりする場合などです。この機能によって、外部アプリケーションの画像をシミュレーション(プロトタイパ)に統合する際の問題を解決できます。
この機能は、グラフィックディスプレイに接続された外部DLLに一連のAPI関数を実装することによって実現されます。新しい関数の詳細については、『ユーザマニュアルサプリメント』の第
12章「グラフィックディスプレイ」またはヘルプトピック「
Connect to an external DLL」を参照してください。
|
|
コード生成
|
コード生成では、次のような機能が強化されました。
·
前のバージョンのRapidPLUSでは、コードジェネレータが出力ディレクトリにファイルを書き込んでいる際に問題が発生すると(例えばファイルがロックされているなど)、エラーが報告され、コード生成プロセスが停止していました。この状況は通常、他のプログラムによってファイルが一時的にロックされ、操作できないことが原因で発生します。
今回のバージョンでは、システム上の状況が修正されるまで、問題のあるファイルをコードジェネレータが複数回開こうとするようになりました。状況が修正されない場合、コードジェネレータは問題を説明するエラーメッセージを表示します。ユーザがその状況を修正できるようにコード生成プロセスは一時停止され、修正後にコード生成を再開します。
·
24-bppトゥルーカラーグラフィックディスプレイに描画される16-bpp RLE圧縮ビットマップを処理するDLLの例として、新しいビットマップフォーマットDLLであるtc_fmt_16_24.dllが提供されています。そのファイルはRapidPLUSフォルダ内にあります。
|
RapidPLUS 9.01
|
|
|
|
データアレイの(変数)アレイ
|
オブジェクトアレイにデータアレイを保持できるようになりました。
·
ナンバ、ストリング、およびインテジャーのデータアレイ (char、short、または long などの、プリミティブタイプとして定義されているインテジャーアレイは除く)。
·
ナンバー、ストリング、およびインテジャーのコンスタントデータアレイ (プリミティブデータタイプを含む)。
この機能を使用するために、[Array] ダイアログボックスでデフォルトのオブジェクトとしてデータアレイを選択します。
詳細については、ヘルプトピックの「Object array」を参照してください。
|
|
データアレイのコンスタントアレイ
|
コンスタントオブジェクトアレイで保持できるオブジェクトに、コンスタントデータアレイが追加されました。保持できるコンスタントデータアレイは、ナンバー、ストリング、およびインテジャー (プリミティブデータタイプを含む) です。コンスタントデータアレイ以外は保持できません。
この機能を使用するために、[Constant Array]
ダイアログボックスでデフォルトのオブジェクトとしてデータアレイを選択します。
詳細については、ヘルプトピックの「Constant array
object」を参照してください、
|
|
Commlink
オブジェクト
|
460800、512000、および921600の3つのボーレートが追加されました。
|
|
最適化
|
·
C コードの生成が速くなりました。
·
ランタイムアプリケーション (RVR) の生成が速くなりました。
|
RapidPLUS 9.00
Unicode
サポート
RapidPLUS のいたるところに、さまざまな方法で Unicode のサポートが実装されました。
Unicode の機能については、『User Manual Supplement』および
\Examples\Objects\Unicode_string の例で説明しています。
|
|
|
|
デフォルトのアプリケーション言語
|
[Application Properties] ダイアログボックスの新しい “Runtime
language” の設定を使用して、アプリケーション言語を Unicode に設定できます。この設定では、Unicode コードページを参照します。
|
|
Languageシステムオブジェクト
|
Unicode コードページがサポートされています。set:関数を使用して、ランタイム中にアプリケーション言語の設定を Unicode に変更できます。
|
|
ストリングアレイおよびデータストア
|
ストリングアレイおよびデータストアに、Unicode テキストファイル (UTF-8 エンコード) をインポートできます。アプリケーション言語が Unicode に設定されている場合、ランタイム中に Unicode 値を表示できます。
|
|
ディスプレイ
|
Unicode 文字列をグラフィックディスプレイ、テキストディスプレイ、テキストウィンドウに描画できます。
|
|
DLL オブジェクト
|
“Unicode string” のリターンタイプにより、DLL とアプリケーションとの間の Unicode 文字列の通信が可能です。
|
|
Inspector ウィンドウ
|
Unicode 文字列を表示できます。
|
|
ASCII オブジェクト
|
オブジェクトはUnicode 値を受け取ることができます。(機能が拡張されていますが、後方互換のためにASCII オブジェクトの名前は変更されていませんでした。)
|
|
ストリングオブジェクトの getCharCodeAt:関数
|
関数が、文字列から特定の文字の値を返します。Unicode、ダブルバイト、および ASCII 文字に対応します。これは、ストリングオブジェクト、ストリングプロパティ、およびストリングフィールドで使用されます。
|
|
ASCIIValue 関数
|
この関数では Unicode 値を使用できますが、getCharCodeAt: 関数に置き換えられました。これにより、コード生成がより高速になり、一時メモリが割り当てられません。ASCIIValue 関数は表示されませんが、後方互換のため、削除されていません。
|
複数の構成管理
1 つの RapidPLUS プロジェクト (メインアプリケーションおよびそのユーザオブジェクト) を使用して、複数の構成を実装できます。この機能は、既存の機能の拡張によって実装されました。\Examples\Architecture_&_Tools\Configuration_managment のデモを参照してください。
|
|
|
|
構成用に作成された、インタフェースユーザオブジェクト (IUO)
|
構成 IUO では、(i) 可能な構成をデザインするためのコンスタントセットプロパティ、および (ii) 構成を記述するためのコンスタントコンディションファンクションが使用されています。
構成 IUO は、基本的な IUO とは異なります。これは、他のユーザオブジェクトでは実装されておらず、そのコンスタントコンディションファンクションが以下の用途で使用されているためです。:
·
特定のユーザオブジェクトの包括および排除。これは、[Code Generation Preferences] ダイアログボックスで行われます。
·
排除されたオブジェクトを参照するロジック行の排除。これは、ロジックの前に if <Constant condition function> を記述することにより行われます。
『Generating Code
for Embedded System』マニュアルの第 11 章「Multiple
Configuration Support」を参照してください。
|
|
コンスタントセット
|
·
Automatic update Prototyper が起動したとき、およびコード生成中に、アプリケーションが読み込まれる際に、[Import Constants File] ダイアログボックスにあるこのオプションにより、インポートされた値が自動的にアップデートされます。
·
Define constant set values externally [Constant Set’s Advanced] ダイアログボックスにあるこのオプションにより、コンスタントセット値を C に生成しないことを選択できます。また、(コンパイルフラグまたは外部ヘッダファイルなどを使用して) コンパイル時にその値を定義できます。
『Generating Code
for Embedded System』マニュアルの第 11 章「Multiple
Configuration Support」を参照してください。
|
|
Code Generation Preferences
|
·
Support Multiple Configurations. このオプションは
[Optimize/Config] タブページにあります。選択されている場合、排除されるユーザオブジェクトおよび排除されるロジック行が、#if マクロと共にC に生成されます。これにより、アプリケーションのすべての構成に対して、生成された同じ C ソースファイルを共有できます。選択されていない場合、排除されるコンポーネントおよびロジックは生成されません。これにより、現在の構成によって使用されていない、生成コードのモードおよびオブジェクトがクリーンに保たれ、対象コードのサイズが減ります。
·
Condition for User Object inclusion. このオプションは [Components] タブページにあります。これは、ユーザオブジェクトの条件付きの包括/排除に使用されます。すべてのユーザオブジェクトに対して、構成IUO のコンスタントコンディションファンクションを選択できます。条件が FALSE と評価されると、そのコンポーネントが排除されます。
『Generating Code
for Embedded System』マニュアルの第 10 章「Using the Code
Generator」を参照してください。
|
|
ヴェリフィケーションテストツール
|
·
ヴェリフィケーションテストにより、現在のプロジェクト構成から排除されたコンポーネントを参照するロジックをチェックします。
·
[Options] ダイアログボックスに、構成管理フィルタが含まれました。このダイアログボックスは、使いやすいように再構成されています。
『User Manual
Supplement』の第 9 章の「Verification
Test」を参照してください。
|
|
ロジックエラービューウィンドウ
|
コンスタントセット値の自動アップデートが失敗した場合の警告が追加されました。
『User Manual
Supplement』の第 5 章の「Logic Error View」を参照してください。
|
データ付きイベント
ユーザオブジェクトイベントは、トリガ時に追加のデータを送信するように定義できます。イベントが処理されるときに、データ (すなわち整数値) が使用可能になります。この機能により、イベント処理中の同期の問題を解決できます。ヘルプトピック「Adding events to a user object」および
\Examples\Objects\Events の例を参照してください。
|
|
|
|
[Events] ダイアログボックス
|
データを含めるようにイベントを定義できます。これは、[User Object] ダイアログボックスの [Events] タブページを使用してアクセスできます。イベントがユーザオブジェクトインタフェースに追加された後、[Edit] ボタンが選択されると、新しいダイアログボックスが開きます。ダイアログボックスには、[Event can contain Data] オプションが含まれており、“データ付きイベント” のイベントを定義します。
|
|
新しい関数
|
このイベントタイプでは、triggerWithValue:、getData、および has data の新しい関数がサポートされています。これらの関数は、C コード生成もサポートされています。
|
|
C コードの生成
|
ユーザオブジェクトイベントがデータをトリガするとき、ユーザが生成したイベントキューにイベントが挿入されます。データでのイベントの最大数は、[Code Generation
Preferences] ダイアログボックスの [Buffers/Queues] タブページで設定できます。
|
|
メモリの問題の
早期検出
|
ユーザオブジェクトを割り当てるとき、そのホルダおよびオブジェクト配列に必要なメモリがすぐに割り当てられます。すぐにメモリが割り当てられることにより、ユーザオブジェクトをスムーズに操作できます。
詳細については、Readme.wriを参照してください。
|
グラフィックディスプレイ
これらの拡張は、パレットベースおよびトゥルーカラーグラフィックディスプレイオブジェクトの両方に適用されます。
|
|
|
|
ミラー化されたビットマップの描画
|
以下の3 つの新しい関数により、ミラー化されたビットマップを描画できます。
·
mirroredBitmapsOn
·
mirroredBitmapsOff
·
is mirroredBitmapsOn
これらの関数は C コード生成でもサポートされています。これらの関数については、ヘルプトピックを参照してください。
|
|
外部バッファ (C コード生成用)
|
生成コード内のグラフィックディスプレイのために、外部バッファを使用できます。特定のメモリアドレスでバッファを割り当てる必要がある場合、外部割り当ては便利です。たとえば、構造体のサイズが制限されているコンパイラを使用する場合、またはより高速な RAM を使用するためなどです。
『Generating Code for Embedded System』マニュアルの第 6 章「Integrating
Graphic Displays」を参照してください。
|
最適化
最適化の効果は、アプリケーションによって異なります。
|
|
|
|
パフォーマンスの最適化
|
以下が新しく最適化されました。
·
アプリケーションの読み込み時間が減少。
·
“インタフェースのアップデート” 時間が減少。
·
RapidPLUS が消費するシステムメモリが減少。
·
CG 時間が減少。
大きい規模のプロジェクトでは効果がより顕著になります。
備考:以前のバージョンの RapidPLUS で作成したアプリケーションを開くとき、アプリケーションロジックが再検証されます。大きなプロジェクトでは、このプロセスに少々時間がかかりますが、しかしそれは1 回だけの操作です。
|
|
生成コードの最適化
|
·
RAM メモリ。より小さいメモリフットプリントで、内部イベントが生成されます。これは、外部イベント (ユーザオブジェクトインタフェースのイベント) のように生成することにより実現されます。
·
パフォーマンス。生成コードでは、アレイアクセスがより高速です。
·
フォーマットドライバ。新しいフォーマットドライバであるfd_gen_f.c には、汎用の fd_gen のフォーマットドライバを超える、スピードの最適化が含まれています。これは、RLE 圧縮ビットマップでも機能します。これは、サイズ 8、16、または 32 bpp のビットマップを持つアプリケーションで使用する必要があります。RLE は 16 bppでのみサポートされています。
|
|
Prototyper の最適化
|
この最適化により、多くの重なり合うグラフィックオブジェクトがある場合のシミュレーションスピードが向上しました。
|
Rapid レビューワ
|
|
|
|
複数のバージョンのインストール
|
複数のバージョンの RapidPLUS plug-in/Rapid レビューワを、同じコンピュータ上にインストールできます。デフォルトでは、バージョン 9.0、8.1、8.0、および 7.2 がインストールされています。レビューワまたは RapidPLUS plug-inでアプリケーションが開かれるとき、アプリケーションに最も合うバージョンが使用されます (アプリケーションのデータベースのバージョンから判断します)。
詳細については、レビューワの Readme.wri を参照してください。このファイルは、レビューワがインストールされているルートフォルダにあります。
|
|
“Quiet” モード
|
レビューワは “Quiet” モードで実行できます。つまり、(OK、OK/キャンセル、および Yes/No メッセージなどの) ユーザの入力を必要とするメッセージが表示されません。このようなすべてのメッセージは、指定したファイルにリダイレクトされます。Quiet モードおよびファイルは、レビューワのコマンドラインオプション: /q:fileNameで指定します。ここでは “fileName” は、エラーメッセージおよび致命的なシミュレーションエラーを保持するファイルです。ファイル名には、絶対パスまたは相対パスを指定できます。レビューワがエラーのために終了した場合、エラーコード <0 を返します。
この機能は、自動テストのために自動ビルドスクリプトでレビューワを実行している場合に便利です。
レビューワのヘルプトピック「Command Line Options」を参照してください。
|
デバッガ API 拡張
デバッグ関数およびトレース関数については、『Generating Code of Embedded Systems』マニュアルの第 4 章の「Debug and Trace
Functions」セクションの「The Application
Programming Interface」で説明しています。
|
|
|
|
生成コードでのブレークポイント
|
新しく生成された関数である DebugStepFunc を使用すると、エントリアクティビティ、モードアクティビティ、イグジットアクティビティ、およびトランジションのために、生成コードにブレークポイントを設定できます。この関数により、ステートマシンサイクル間のアプリケーションの動作をより効率的に監視できます。[Code Generation Preferences] ダイアログボックスで [Enable runtime debugging] オプションが選択されている場合、DebugStep-Func が生成されます。
|
|
向上したトレース
|
cusrdef.h ファイルにマクロが追加され、アプリケーションの初期化コードを含む、より詳細なトレースが可能になりました。
|
|
条件付きで含まれるデバッグ情報
|
[Enable runtime debugging] オプションが選択されている場合に生成される (モード名などの) デバッグ情報が、生成コードに条件付きで含まれます。cusrdefs.h ファイル内の条件付き定義により、コンパイルにデバッグ情報を含めるかまたは排除するかどうかが決まります。コンパイル時に大部分のデバッグ情報を排除できます。また、コードを再生成する必要はありません。
|
コマンドラインからの RapidPLUS の実行
この機能は自動ビルドで便利です。多くのアプリケーションをより新しいバージョンの RapidPLUS にアップグレードする場合にも役立ちます。実行可能なコマンドライン RapidPlus.exe <アプリケーション名> により、RapidPLUS が実行され、指定したアプリケーションが読み込まれ、コマンドラインオプションが実行され、RapidPLUS が終了します。
『User Manual Supplement』の第 30 章の「Command Line Options」および
\Architecture_&_Tools\ Run_from_cmd_line のデモを参照してください。
|
|
|
|
コード生成オプション
|
読み込まれたアプリケーションから指定したディレクトリに対してコードが生成されます。
|
|
[Save as] オプション
|
異なるファイル名または異なるディレクトリに、読み込まれたアプリケーションが保存されます。アプリケーションにユーザオブジェクトがある場合、指定したディレクトリに保存されます。このオプションは、アプリケーションの拡張子の変更 (RPD から RXD、RXD から RPD、UDO から UXO、UXO から UDO) にも使用できます。
|
|
Save as runtime
application (RVR) オプション
|
読み込まれたアプリケーションから指定したディレクトリに対して、ランタイムアプリケーションが生成されます。アプリケーションにユーザオブジェクトがある場合、RDO ファイルとして生成されます。
|
|
CompactAll オプション
|
読み込まれたアプリケーションおよびそのすべてのユーザオブジェクトがコンパクト化されます。コンパクト化の操作が終了すると、アプリケーションファイルが保存されます。
|
|
ReverifyAll オプション
|
読み込まれたアプリケーションおよびそのすべてのユーザオブジェクトのロジックが再検証されます。再検証の操作が終了すると、アプリケーションファイルが保存されます。
|
コード生成
これらの機能については、『Generating Code for Embedded Systems