RL78/G23 Fast Prototyping Boardを買いました

こんにちは。NoMaYです。

別スレッドでRL78 nextに関して長期に書いていたわけですし、買ったなら黙っているのもアレかな、と思いましたので投稿します。

RenesasさんからStrategy Updateが発表されましたね
japan.renesasrulz.com/cafe_rene/f/forum13/6192/renesas-strategy-update/37890#37890

ボードの形状は、まるっきりArduino、ですね。また、ボードのUMに書かれていたのですが、将来、Arduino IDEでもボードをサポートする予定らしいです。また、RL78/G13,14,11,10,12のようにCS+でシミュレータGUIが起動しましたね。まだ、空のコードしか作ってないのと、あと、CS+をインストールしてもRL78/G23シミュレータのリリースノートが含まれていなかったので、ちょっと五分五分の可能性?、というところですが、内蔵周辺機能のシミュレーションが出来るかも知れません。また、上のスレッドでもFujitaさんが書かれていましたが、従来のRX231によるオンボードエミュレータではなくて、USB−シリアル変換チップ(FT232RQ)によるオンボードエミュレータに変更されてました。これで、RFPでのプログラミングと、CS+/e2 studioでのデバッグと、ターミナルソフト(TeraTermなど)によるUART通信と、これら3つのことが出来るみたいです。(きっと、これらは排他使用かな、と思います。)

  • こんにちは。NoMaYです。

    ICCRL78(IARコンパイラ)に関してですが、無償評価版として公開されているEWRL78 V4.20.1では、まだRL78/G23には対応していないですね。ルネサスさんがウェブ公開しているRL78/G23のアプリケーションノートにEWRL78 V4.20.1で動作確認したというサンプルプログラムが含まれていますが、おそらくIARさんからデバイス依存情報定義ファイルを提供してもらってのことではないかと私は思うのです。

    なので(デバイス依存情報定義ファイルが無いので)、ちょっとだけ通常と違うプロジェクトの作り方をして、EWRL78 V4.20.1(およびe2 studio 2021-04)でビルド出来るようにしています。(まだ投稿していませんが。)

    あと、EWRL78 V4.20.1ですが、まだRL78/G23 FPBのUSB−シリアル変換チップ(FT232RQ)によるオンボードエミュレータ回路には対応していないですね。なので、ルネサスさんがウェブ公開しているRL78/G23のアプリケーションノートのサンプルプログラムでも、動作確認したボードはRL78/G23 FPBということになっていますが、EWRL78のプロジェクトファイルの設定を覗くとE2Liteエミュレータになっていますね。(外付けしたE2Liteエミュレータということですね。)

    また、その場合でも(E2Liteエミュレータでも)、デバイス依存情報定義ファイルが無いとデバッガが起動しません。ですので、EWRL78 V4.20.1に関しては、ビルド出来るようにするところまでしか出来ませんでした。他方、e2 studio 2021-04ではデバッグ出来るようにしています。(まだ投稿していませんが。)

  • こんにちは。NoMaYです。

    > もうRL78/G23はE1ではサポートされていなかったのですね、、、

    そういえばフル機能ICEのIECUBEも無くなってしまってますね、、、今後は全製品にトレース機能が付くのかな、、、(USB−シリアル変換チップ(FT232RQ)によるオンボードエミュレータ回路の場合でもトレース機能は使えますね、、、)

    以下、CS+の画面コピー(再掲載)

     

  • こんにちは。NoMaYです。

    コンパイル時のワーニング設定は、今回は以下で投稿するつもりです。コード生成されたソース中でのワーニングをどう取るかは後で考えることにします。(なお、プロジェクトの赤バッテンマークは気にしないで下さい。エラーが出てないのに表示されるようになってしまっていて、きっとワークスペースを作り直せば消える、と思っているので放置しています。気にしない、気にしない、気にしない、e2 studioを使う場合の極意ですね、、、)

    ●LLVM-RL78の場合

    画面コピー






    ●ICCRL78の場合

    ワーニング設定で抑止しているワーニングは以下のようなものです。

    Remark[Pa091]: operator operates on value promoted to int (with possibly unexpected result)
    Remark[Pe177]: function XXXX was declared but never referenced


    前者は以下のようなコードで発生します。

    LED2 = ~LED2;


    なお、LED2は以下のように定義しています。

    #define LED2 (P5_bit.no2)


    画面コピー



    ●CC-RLの場合

    画面コピー



    なお、リンク時のワーニング設定は、かふぇルネにも以前に投稿されていた、CC-RL V1.10で変なワーニングが出るケースがある、ということへの予防措置として以下を設定してあります。(そのワーニングを抑止しようとしたら、副作用で別のワーニングが出るようになり、一緒に抑止しようとして抑止対象が増えてしまってこうなりました。)

    画面コピー

     

  • こんにちは。NoMaYです。

    LLVM-RL78が生成したコードを見ていて、効率が悪そうだなぁ、と感じたのでGNURL78でもビルドしてみました。RL78スマートコンフィグレータはGNURL78をサポートしていないのですが、生成されたコード(BSPモジュールのソース)を書き換えて、ビルド出来るようにしました。(そのソースも投稿するつもりです。) 案の定、GNURL78の方がサイズが小さかったです。(なお、余談ですが、USB−シリアル変換チップ(FT232RQ)によるオンボードエミュレータ回路によるデバッグは、わりとレスポンスが悪いです。)

    ●LLVM-RL78の場合

    画面コピー


    ●GNURL78の場合

    画面コピー


    ●CC-RLの場合(集計対象がLLVM-RL78やGNURL78と若干異なりますので厳密な比較にはなりませんが、、、)

    画面コピー

     

  • NoMaYさん

    シェルティです、こんにちは。

    RXに続いてRL78のソフト周り(BSP含め)全般見てます。シェルティはRAへはセキュリティ実装やネットワーク実装にフォーカスしたゲスト参加な体です。

    RL78/G23やLLVM、ツール類に関するフィードバックありがとうございます。頂いた内容を精査し製品仕様に反映していきます。また色々相談させていただけますと幸いです。気付いた点は引き続きここに書いていただければこれもまた幸いです。

    以上です

  • シェルティさん、こんにちは。NoMaYです。

    > 頂いた内容を精査し製品仕様に反映していきます。
    > また色々相談させていただけますと幸いです。
    > 気付いた点は引き続きここに書いていただければこれもまた幸いです。

    はい。では、随時。

    [追記]

    すみません、私、先日も別スレッドで同じリプライをしてますね。ちょっと手抜きっぽいリプライだったかもです。

  • こんにちは。NoMaYです。

    例のe2 studioのLLVM-RL78(と実はやむを得ずICCRL78(と追加のGNURL78))のプロジェクトの変な挙動(普通にランチバーからビルドしようとしたり、普通にランチバーからデバッガを起動しようとしたりすると、警告ダイアログが毎回ポップアップ表示されてしまう)の件は、.cprojectファイル内のデバイス名データを少し弄ってポップアップ表示されないようにすることにしました。(さすがに毎回ポップアップ表示されるのは邪魔なので。) ただ、副作用として、RL78スマートコンフィグレータプラグインの場合(つまりe2 studioでの場合)に、以下の警告が表示されるようになります。*.scfgファイル内にはちゃんとしたデバイス名データが格納されていて、それと整合していないことをユーザに伝えるためだけのようですので、弊害を引き起こすことは無さそうです。

    毎回ポップアップ表示される警告ダイアログ(再掲載)

    画面コピー


    その警告ダイアログを抑止しようとした副作用として表示される警告(ポップアップ表示されるのでは無い)

    画面コピー


     

  • こんにちは。NoMaYです。

    ひょっとして、今CS+を新規インストールすると、ソースファイルの依存関係チェックの設定が以下のようになっていて、昔からの懸案事項の、条件コンパイルで除外されていても再コンパイル/再アセンブルされてしまう、という事態に遭遇する人は殆どいなくなっているのかな、、、(そういえば、いつからかCS+に機能追加されていた、ことをすっかり忘れていました、、、)

    CS+の画面コピー

     

  • こんにちは。NoMaYです。

    RFPでRL78/G23をブランクにしてe2 studioでデバッガを起動しようとしたらエラーになってしまいました。理由は明日朝にでも。(なお、CS+では何のトラブルも無くデバッガが起動することは言うまでも無いでしょう。ハハハ。)

    画面コピー (RFPに関しては切り貼りしています)



     

  • こんにちは。NoMaYです。

    ブランクのRL78/G23でe2 studioのデバッガが起動しなかったのは、e2 studioで表示されたエラーメッセージの内容が実情とあっていなくて、以下の設定がe2 studioの想定通りでは無かったことによるものですね。これは、CS+では何のトラブルも無くデバッガが起動するかもしれないが、ウチは(e2 studioでは)こうするものですよ、という文化/慣習の違いだと言われれば引き下がるしかないかなぁ、とも思うのですが、エラーメッセージの内容は見直しの余地ありかと思うのです。

    以下、画面コピーです。

    実は、こっちの設定がe2 studioの想定通りでは無かった、ことによるものですね


    ただ、この設定は常用するもので無いことはe2 studioの人達も認識しているようで設定を後で変えるようアドバイスされますね

     

  • こんにちは。NoMaYです。

    Blinky sample programを投稿しました。

    RL78/G23-64p Fast Prototyping Board Blinky sample program
    japan.renesasrulz.com/cafe_rene/m/sample_program/463

    CS+でのRenesas RL78 Simulator GUIでの動かし方は以下の通りです。

    (1) リビルドする
    (2) プロジェクトツリーでデバッグツールの選択をRL78 COM Port→RL78 Simulatorへと変更する
    (3) RL78 SimulatorへDownloadする
    (4) main()で停止するのでそのままGoする
    (4') Simulator GUIのLED2とLED1が交互に点滅する
    (4'') シミュレーション時間上は500msごとですが実時間では数秒ぐらいです(もちろんPCのスペックに依存します)
    (5) Simulator GUIの[SW1 - Toggle]ボタンを押す(押し込まれた状態のままになります)
    (6) Simulator GUIの[RESET]ボタンを押す
    (7) 数秒待った後に再度Simulator GUIの[SW1 - Toggle]ボタンを押す(押し込まれた状態から元の状態に戻ります)
    (8) Simulator GUIの[SW1 - Push]ボタンを押すごとにLED2とLED1が交互に点灯します
    (9) 再度Simulator GUIの[RESET]ボタンを押す
    (9') 数秒待つとSimulator GUIのLED2とLED1が交互に点滅するようになる(4'と4''と同じ状態になる)

    以下、画面コピーです。

    プロジェクトツリーでデバッグツールの選択をRL78 COM Port→RL78 Simulatorへと変更する


    Downloadするとmain()で停止するのでそのままGoする


    そのままGoするとSimulator GUIのLED2とLED1が交互に点滅する



    次に、[SW1 - Toggle]ボタンを押し、[RESET]ボタンを押し、暫く待ち、再度[SW1 - Toggle]ボタンを押す




    以後、[SW1 - Push]ボタンを押すごとにLED2とLED1が交互に点灯する


     

  • こんにちは。NoMaYです。

    すみません、Blinky sample programですが、LLVM-RL78(とGNURL78)のリンカスクリプトを明日差し替えます。両者で内容を合わせ込んでいたのですが、GNURL78で問題無く使えていた記述が、LLVM-RL78ではリンクエラーを引き起こすことに気付いたからです。具体的には、初期値あり変数を使おうとすると、LLVM-RL78のリンカで、セクションが重複しているというリンクエラーになってしまいます。

  • こんにちは。NoMaYです。

    FT232を内蔵フラッシュメモリ書き換え制御とかデバッグ制御とかで使用する場合に処理時間/レスポンスを改善するWindows(というかFT232のWindowsデバイスドライバ)の設定(知っている人は知っている的な?設定)があるのですが、試してみたところ、USB−シリアル変換チップ(FT232RQ)によるオンボードエミュレータ回路によるデバッグでも劇的に改善されましたね。とりあえずは、Go/Breakのレスポンスを試しただけですが、ダウンロード時間など含めて、後で定量的なデータを取ってみたいと思います。(なお、CS+でもe2 studioでも改善されますが、CS+の方がe2 studioより3倍くらい速いような気がします。CS+派の私の贔屓目かも知れませんけど、、、)

    以下、画面コピーです。

    改善策: FT232のWindowsデバイスドライバの設定のBMオプションの待ち時間を1msecへ変更する


    改善前: FT232のWindowsデバイスドライバの設定のBMオプションの待ち時間の初期値は16msecでした


    上記設定画面へは以下のように移動します



    CS+とe2 studioのデバッグ画面


     

  • こんにちは。NoMaYです。

    RL78/G23についてブログを書かれている人がいらっしゃいました。(個人事業主さんかな?) STM32についても詳しいようです。

    IoT新汎用RL78/G23調査 - IoT MCUのHappyTech
    happytech.jp/wordpress/2021/05/07/iot-general-purpose-rl78-g23-survey/
     

  • こんにちは。NoMaYです。

    IoT and RL78に関する話題で、ルネサスさんのブログに記事が2つ投稿されていました。

    最新のIoT Edge デバイスのトレンドにマッチする新マイコン- RL78/G23
    Sho Hataki
    Staff Engineer
    www.renesas.com/jp/ja/blogs/new-mcu-rl78g23-satisfies-latest-iot-edge-device-trends

    RL78でアマゾン ウェブ サービス(AWS)に接続しませんか?
    Yasuto Mochizuki
    Principal Specialist
    www.renesas.com/jp/ja/blogs/rl78-aws