GCC for Renesas RXを使う意味
まずSEGGER日本代理店のエンビテックにGUI開発のチュートリアルがあるのですが
このチュートリアルがRenesas CC-RX toolchainが使用されているため、試用期間の60日を
過ぎてしまうと作成コードサイズは128KBに制限され当然emWinが使えるようなサイズのコードを生成できなくなります
いろいろと情報を集めて試してみるとライセンスフリーで使えるGCC for Renesas RXでも使えるようなので、備忘録的に書き留めておきたいと思います
事前準備
Renesas RX72N EnvisionKItを開発ターゲットに使うのでこの評価ボードが必要です。Digi-Keyなどで販売されています
以下のWebリンクから「統合開発環境e²studio インストーラ」プログラムをダウンロードしてインストールします、なお Windows環境でないとAppWizardが使えません
プロジェクトの作成
メニューから新規->Renesas C/C++ Project->Renesas RX で Template for Renesas RXウィンドウを表示させます
GCC for Renesas RX C/C++ Executable Project を選択して次へを選択する
プロジェクト名を入力します。ここではエンビテックのチュートリアルに従ってQEDisp_RX72N_Envision_GCC としました。次へに進みます
Device Settings 項目の Target Board を EnvisionKitRX72N に設定してConfigurations の Hardware Debug構成を生成 を E2 Lite(RX) に設定して次へ
Use Smart Configuratorにチェックされていることを確認して終了
ソフトウェアコンポーネント設定でr_bspプロパティのHeap sizeを0x4000に設定します
コンポーネントの追加+ボタンをクリックしてポートを追加します
メニューからRenesas Views->Renesas QE->LCD/Cameraワークフロー(QE) を選択
プロジェクトの選択で先程作成したプロジェクトQEDisp_RX75N_Envision_GCCを選択
GUI描画ツールの選択でemWinを使用するを選択
QEDisp_RX72N_Envision_GCC.scfg タブに戻りコンポーネントの追加画面から、r_glcdc_rx を追加します
追加したらコードの生成をクリック
LCD/Cameraワークフロー(QE) タブに戻ってLCDコントローラの導入を参照すると導入済みになっているはずです
チュートリアル動画からタイミング調整(LCD)タブがこのような値になっていればよいようです
LCDの表示調整項目からファイル出力をクリックしますr_lcd_timing.hとr_image_config.hが出力されます
QEDisp_RX72N_Envision_GCCタブに戻りコンポーネントの追加からr_emwin_rxを追加します
追加するとすべての必要なコンポーネントが追加されます
次にr_sci_iic_rxコンポーネントのMCU supported channels for CH6をSupportedに設定する
そしてコード生成をしたら再び LCD/Cameraワークフロー(QE) タブに戻ります
GUI描画ツールの導入 が 導入済み になっているはずです
次にGUI描画ツールの設定に移り情報設定をデフォルトのままでファイル出力します
qe_emwin_config.h が出力されます
次にGUIの作成に移りGUI描画ツールのインストールでインストール確認し必要ならばインストールして
GUI描画ツール起動でAppWizardを起動します。
GUIの作成
なおAppWizardによるGUI作成は前述のチュートリアル動画を参照しながら作成してください(動画の14分付近)
AppWizardでGUIの作成ができたらExport & Saveで保存します
若干チュートリアル動画と実装されているビットマップライブラリが異なるため全く同じ画面は作れませんでしたが、だいたい同じものが作成できました
LCD/Cameraワークフロー(QE) に戻り最後の項目の実装からサンプルコードの表示をクリックします
サンプルコードをクリップボードにコピーして QEDisp_RX72N_Envision_GCC.c の main() 関数部分を書き換えます
次に プロパティ->C/C++ 一般->パスおよびシンボル->GNU C ページで
シンボル GUI_CONST_STORAGE に値 __attribute__ ((aligned(4))) const を設定します
GUI_CONST_STORAGE を定義すると
$workspace_loc:${ProjName}/src/smc_gen/r_emwin_rx/lib/GUI/AppWizard.h
ファイルの1891行目あたりの
void APPW__GetTextInit (GUI_CONST_STORAGE APPW_TEXT_INIT ** ppTextInit);
と
$workspace_loc:${ProjName}/aw/Source/Generated/Resource.c
の92行目あたりの
/*********************************************************************
*
* APPW__GetTextInit
*/
void APPW__GetTextInit(GUI_CONST_STORAGE APPW_TEXT_INIT ** ppTextInit) {
*ppTextInit = &_TextInit;
}
でエラーが出ます
void APPW__GetTextInit (const APPW_TEXT_INIT ** ppTextInit);
のように修正してください
ビルド
手順を正しく行うとビルドできます。電源供給用のUSBポートとデバッグ用USBポートをつないでターゲットボードにプログラムをアップロードしていきます
必ずSW1-2をOFFにして行います