TB-RX23WでFreeRTOS+BLEを試していこうかと思います(でも本格的にやるのは夏ぐらいから?)

こんにちは。NoMaYです。

別スレッド『EK-RA4W1でArduinoスケッチ』にもレスしましたがTB-RX23WとRL78/G1D BLE Module Expansion Boardを買い込んであるものの開封もしてなかったりして、もったいないので、まずTB-RX23Wから試してみようと思いました。

それで、資料を探し始めて気付いたのですが、RX23WのページからBLEのページへ飛ぶリンクが無いですよね、、、以前、一度調べた時は簡単に辿り着けた様な気がするのですが、、、ちょっとずつ探していこうと思います、、、

RX23W製品ページ
www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx23w-32-bit-microcontrollers-bluetooth-5-iot-endpoint-devices-system-control-and-wireless-communication

[以下へは辿り着いたもののその先が?]

Bluetooth® Low Energy for RXファミリ
www.renesas.com/jp/ja/application/technologies/bluetooth-low-energy-rx

[顛末!]

と思っていたら、それなりのリンクがありましたね、製品ページの下の方に以下のタイトルが表示されていました。(そういえば、ウェブサイトリニューアル後は、PDFやZIPなどの個々のアイテムへのリンクだけが簡素なリスト形式で表示されるだけでなく、こういったページなどへのリンクも同じ形式で(すごくあっさりと)表示されるようになったのでした、、、リニューアル前のウェブサイトの使い勝手の感覚が邪魔をして、つい探し漏らしてしまいます、、、)

ソフトウェア/ツールページ

RXファミリ用 Bluetooth® Low Energyプロトコルスタック
www.renesas.com/jp/ja/software-tool/bluetooth-low-energy-protocol-stack-rx-family

[余談]

たぶん、私の他にもそう感じている人が少なくないと思うのですが、リニューアル後のウェブサイトって受動部品(ディスクリート)の為のサイトという感じですよね?例えば、製品ページの右上にDataSheetへのリンクがありますけど、ハードウェアマニュアルへのリンクでは無い(その場所にハードウェアマニュアルへのリンクが無い)のですよね、、、
 

  • こんにちは。NoMaYです。

    以前に気付いたアプリケーションノート(下記引用)のWindows 10 Bluetooth LEアプリケーションのビルドには Microsoft Visual Studio Express 2017 for Windows Desktop が必要らしいのでダウンロードしようと思ったのですけど、もう今では以下の画面コピーのMicrosoftのサイトのリストに無いのでダウンロード出来ないのかなぁ?、、、さて、どうしたものかなぁ、、、



    秋になってしまいました、、、ちなみに、夏の終わりに、こんなアプリケーションノートが出ていたのでした、、、

    Bluetooth LE マイコン/モジュール Windows 10 Bluetooth LEアプリケーション
    R01AN6004JJ0100 Rev.1.00 Page 1 of 78 Aug.31.21

    要旨

    本アプリケーションノートは、ルネサスエレクトロニクス製BluetoothRegistered Low Energy 技術対応マイコンやモジュールを搭載した評価ボードと無線通信することができるWindowsRegistered 10 Bluetooth LEアプリケーションを通して、Windows 10 のBluetooth LE API の動作や処理の流れを解説します。

    Windows 10 で動作するBluetooth LE アプリケーションは、Microsoft Visual Studio Express 2017 for Windows Desktop で.NET Framework のWindows Presentation Foundation (WPF)アプリケーションとして作成され、ペアリング、コネクション、サービスやキャラクタリスティックの検索、データ通信を行います。

    動作確認デバイス

    Target Board for RX23W
    Target Board for RX23W module
    EK-RA4W1
    EB-RE01B
    RL78/G1D 評価ボード(RTK0EN0001D01001BZ)


    PDFファイル
    www.renesas.com/jp/ja/document/apn/bluetooth-le-microcomputer-module-windows-10-bluetooth-le-application-rev100

    ZIPファイル
    www.renesas.com/jp/ja/document/scd/bluetooth-le-microcomputer-module-windows-10-bluetooth-le-application-rev100-sample-code

     

  • NoMaY様、こんにちは Sugachanceです。

    https://visualstudio.microsoft.com/ja/vs/express/

    ここからExpress 2017 for Windows Desktop を落とせませんでしょうか?

    2017でExpressは終わりで、 Community 対象外の
    企業ユーザーはちゃんと買ってねの方針のようなので
    いつまであるか分かりませんが…

  • Sugachanceさん、こんにちは。NoMaYです。

    情報ありがとうございました。こんなところ(下記画面コピー2枚目)からダウンロード出来るようになっていたのですね。助かりました。ありがとうございました。



     

  • こんにちは。NoMaYです。

    失礼しました。アプリケーションノートには Microsoft Visual Studio Express 2017 for Windows Desktop のダウンロード手順から記載されていました。(気付かなかったのはちょっと恥ずかしい、、、) それで、他にも Windows 10 SDK というものが必要だと記載されていてダウンロード手順も記載されているのですが、世の中は既にWindows 11になっていたのでした。(既にWindows 11 SDKになっていたのでした。) ということで、以下の画面コピーのように、ちょっとだけダウンロード場所が変わりましたね。




     

  • こんにちは。NoMaYです。

    Microsoft Visual Studio Express 2017 for Windows Desktop と Windows 10 SDK もインストールして、いざアプリケーションノートのWindows 10 BLEサンプルプログラムをビルドしようとしたらエラーが発生してビルド出来ませんでした。このエラーは私のWindows 10が何かおかしいのかな、、、(Windows 10 20H2へのバージョンアップに何度も何度も失敗し続けているし、、、) まあ仕方が無いですので、ボチボチやっていきます、、、

    以下、ビルドエラーの画面コピーです。



    以下、インストール中のインストーラの画面コピーです。とにかくインストールサイズがでかいですね、、、






     

  • こんにちは。NoMaYです。

    アプリケーションノートのWindows 10 BLEサンプルプログラムのプロジェクトファイル*.csprojの以下の部分を手作業でエディタで書き換えたらビルド出来るようになりました、、、(Visual Studioのプロジェクト設定GUIのどこかで変更出来るかも知れませんが、、、)

    r01an6004xx0100-ble-mcu-win/LED_Switch_Service_Client/LED_Switch_Service_Client.csproj
    r01an6004xx0100-ble-mcu-win/Virtual_UART_Client/Virtual_UART_Client.csproj

    変更前:

        <Reference Include="System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll</HintPath>
        </Reference>

     

        <Reference Include="Windows">
          <HintPath>..\..\..\..\..\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.19041.0\Windows.winmd</HintPath>
        </Reference>

     
    変更後:

        <Reference Include="System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll</HintPath>
        </Reference>

     

        <Reference Include="Windows">
          <HintPath>C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.19041.0\Windows.winmd</HintPath>
        </Reference>

     
    以下、ビルド正常終了の画面コピーです。




     

  • こんにちは。NoMaYです。

    アプリケーションノートのWindows 10 BLEサンプルプログラムがビルド出来ましたので実行してみました。その為に、アプリケーションノートとTB-RX23W-moduleのクイックスタートガイドの記載に従ってTB-RX23W-moduleに出荷時ソフトウェアを書き込んで(出荷時ソフトウェアへ復元して)、TB-RX23W-moduleのUARTコンソール出力用のUSBコネクタについてもPCと接続してTeraTermを起動しておきました。以下、画面コピーの通り、ペアリング、コネクト、SW押下回数表示、LED点滅間隔変更、といったことが無事に出来ました。

    以下、画面コピーです。

    TB-RX23W-moduleのリセット


    ペアリング




    コネクト



    SW押下回数表示


    LED点滅間隔変更

     

  • こんにちは。NoMaYです。

    アプリケーションノートのWindows 10 BLEサンプルプログラムのソースをビルド/実行することが出来ましたので、今度はTB-RX23W-moduleの出荷時ソフトウェアのソースを探そうとしたのですが、そのものズバリのソースは公開されていないようですね。ですが、同等だと思われるものが以下のFITモジュールの画面コピーのデモフォルダにble_demo_tbrx23wmodule_profile_serverとして含まれていましたので、試しに一緒に含まれていたビルド済みのmotファイルをTB-RX23W-moduleに書き込んでみたところ、思った通りに前回投稿時と同様に動作してくれました。

    ただし、最初から分かっていたことですけれど、CC-RXの無償評価版では以下の画面コピーの通りにリンクサイズ制限によりビルドに失敗します。さて、ここからどうしたものか、、、

    ルネサス検索: r01an4860xx
    www.renesas.com/jp/ja/search?keywords=r01an4860xx

    RX23Wグループ BLE Module Firmware Integration Technology アプリケーションノート Rev.2.30
    R01AN4860JJ0230 Rev.2.30 2021.10.15

    PDFファイル
    www.renesas.com/jp/ja/document/apn/rx23w-group-ble-module-firmware-integration-technology-application-note

    ZIPファイル
    www.renesas.com/jp/ja/document/scd/rx23w-group-ble-module-firmware-integration-technology-application-note-rev230-sample-code

    以下、画面コピーです。





    [関連リンク]

    Google検索: r01an4860
    www.google.com/search?q=r01an4860

    ルネサス検索: r01an4860
    www.renesas.com/jp/ja/search?keywords=r01an4860
     

  • こんにちは。NoMaYです。

    > CC-RXの無償評価版では以下の画面コピーの通りにリンクサイズ制限によりビルドに失敗します。

    プログラムサイズが小さくなるかも知れない設定を試行錯誤していたところ、幸運にも、ぎりぎり何とかビルドに成功する設定を得ることが出来ました。ビルドしたMOTファイルを書き込むと、今回サイズ削減の為に無効にしたログ出力機能は除いて、SW押下回数表示やLED点滅間隔変更は前々回投稿時と同様に動作してくれました。差し替えファイル等を以下のzipファイルに固めました。(なお、リビルドで強引にRXスマートコンフィグレータがソース/プロジェクトを再生成してしまうことでビルドに失敗してしまう挙動を回避する為のファイルも入っています。)

    ble_demo_tbrx23wmodule_profile_server_very_compact_20211026.zip
    .project
    .cproject
    .externalToolBuilders/com.renesas.smc.ui.pgsupport.SCContentBuilder.launch
    src/smc_gen/r_config/r_bsp_config.h
    src/smc_gen/r_config/r_ble_rx23w_config.h
    ble_demo_tbrx23wmodule_profile_server.rcpc
    HardwareDebug/ble_demo_tbrx23wmodule_profile_server.build.log
    HardwareDebug/ble_demo_tbrx23wmodule_profile_server.map
    HardwareDebug/ble_demo_tbrx23wmodule_profile_server.mot

    今回の設定は主に以下の4項目に分類出来ます。(なお、(1)~(3)は最近投稿した別スレッドの内容と同様です。)

    (1) 未使用の変数/関数を削除する最適化を行う
    (2) 上記の最適化の効き目を強くする
    (3) BSPモジュールのサイズを小さくする
    (4) BLEモジュールのサイズを小さくする(BLEモジュール内の基本機能および便利機能の両方に対してです)

    ちなみに、確信は持てていないですが、もしもlibファイルが作成された時のコンパイルオプションで上記の(1)の為のお膳立てオプション -goptimize が指定されていたら更に効き目が強くなったりしないかな、と思いました。

    以下、ビルド出来た時のe2 studioの画面コピーと上記の(4)の変更箇所のファイル比較ツールの画面コピーです。

    プログラムサイズは 0001dba0 バイト(16進数) なので 121,760 バイト(10進数) でした


    左ペインがデモプログラムそのもの、右ペインが変更したもの




     

  • こんにちは。NoMaYです。

    先日ビルドしたTB-RX23W-moduleプログラムの動作を理解するには以下のドキュメントを読むのが良さそうです。

    RX23Wグループ Bluetooth Low Energy アプリケーション開発者ガイド

    PDFファイル
    www.renesas.com/jp/ja/document/apn/rx23w-group-bluetooth-low-energy-application-developers-guide-rev110

    ZIPファイル
    www.renesas.com/jp/ja/document/scd/rx23w-group-bluetooth-low-energy-application-developers-guide-rev110-sample-code

    以下、ドキュメントの画面コピーです。