RenesasさんからRXマイコンの低価格Target Boardが出たのでサンプルプログラムをCSplus projectへ変換してみようと思います

こんにちは。NoMaYです。

ウェブで調べ物をしていたら、ルネサスさんからRXマイコンの低価格ボードが出たことを知りました。でも、サンプルプログラムがe2 studioプロジェクト版しか無いようなのでCS+プロジェクトに変換して後で投稿してみようと思います。(もっとも、ボードが無くて動作確認は出来ないので、MOTファイルが同一になるようにしてみるところまでですが、、、) 30米ドル程らしいので3千円ちょっとぐらいかな。

拡充を続ける32ビットマイコン「RXファミリ」を容易に導入できるターゲットボードを発売
~家電製品、ビル用および産業用オートメーション機器向けなどに、「RX65N」「RX130」「RX231」用を用意。組み込み開発のスタートを支援~
www.renesas.com/ja-jp/.../news20180219.html

Target Board for RX family 製品ページ
www.renesas.com/ja-jp/.../rx-family-target-board.html
 

Parents
  • こんにちは。NoMaYです。

    RFPを触っていて、オンボードエミュレータとの通信切断時に、オンボードエミュレータのリセット出力をHi-zにし、切断後も、そのままHi-zを継続する、ということが出来ることに気付きました。TBボードのマニュアルによると、USBから給電する場合、プログラムをフリーランさせるにはボードのジャンパピン(要半田付け)をショートさせてオンボードエミュレータをリセット状態にしなければならないのですが、この機能を使えば、ジャンパピンをオープンにしたまま、RFPで書き込んだ後にすぐにプログラムをフリーランさせることが出来ます。

    また、RFPには、サイレントモードというものがあり、GUIを表示することなしに、コマンドラインオプションでRFPの操作を制御することが出来るのですが、RFPの操作としてチェックサムコマンドを指定しておくと、DOSプロンプトから気軽にオンボードエミュレータのリセット出力をHi-z or Lowにすることが出来るようになります。(ただし、短時間だけLow⇔Hi-zのトグルがあります。とはいえ、マイコンはフラッシュプログラミングモードに入っていますので、ユーザプログラムは走りません。) DOSプロンプトから以外にも、Windowsショートカットを作成して、コマンドライン文字列を設定してやれば、WindowsデスクトップやWindowsツールバーに配置して、1クリック(or 1 ダブルクリック)で行えるようになります。

    他方、以前からTeraTermにTeraTerm Menuというランチャーソフトが同梱されていることに気付いていて何か機会があれば試してみようと思っていたのですが、ふと、これで試してみようという考えが思い浮かびました。そこで、以下の画面コピーのように、やってみました。そして、やって分かったのですが、RX231やRX130ではプログラムにIDコードが設定されていないとチェックサムコマンドでもフラッシュメモリが自動的/強制的に消去されます。ルネサスさんが公開しているTBボードのサンプルプログラムではIDコードが設定されていませんでしたので、サンプルプログラムを変更しましたが、その箇所も以下に書いておきました。(なお、RX65Nは少しフラッシュメモリの仕様が異なっており、IDコードを設定する必要は無さそうでしたが、どうせなので、IDコードを設定してみました。)

    ちなみに、そんなことをするよりジャンパを挿したり抜いたりした方が素早く出来るというのも確かなのですが、私のパソコンだとWindowsエクスプローラが暫く固まってしまったりとかして、あまり心地良いものでは無かったりしますので、こういったやり方を試してみました。

    RFPのエミュレータリセット出力の設定画面(本目的では速い通信速度は不要なので確実性重視で250Kbpsにしています)


    TeraTerm Menuの設定画面やメニュー画面
      

    TeraTerm Menuのドキュメントからの抜粋


    RFPのドキュメントのサイレントモードの記載
    www.renesas.com/jp/ja/doc/products/tool/doc/014/r20ut4307jj0200-rfp.pdf


    RFPの操作設定とIDコード設定の画面



    今回のRFPプロジェクトファイル一式(参考)
    rxtb_rfpproj_20190205.zip

    TerTerm Menuの設定(フォルダのパスは私の環境のものになってます)

    リスト項目: TB RX130 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx100.rpj /silent

    リスト項目: TB RX130 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx100.rpj /silent

    リスト項目: TB RX231 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx200.rpj /silent

    リスト項目: TB RX231 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx200.rpj /silent

    リスト項目: TB RX65N RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx65x.rpj /silent

    リスト項目: TB RX65N RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx65x.rpj /silent

    サンプルプログラムの変更箇所(赤文字)

    RX231の場合: an-r20an0466jj0100-rxtb-rx231\Workspace\tb_rx231\src\cg_src\r_cg_vecttbl.c

    /*;0xffffffa0  ID */
        (void (*)(void))0x45ffffff,

    /*;0xffffffa4  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffa8  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffac  ID */
        (void (*)(void))0xffffffff,

    RX130の場合: an-r20an0468jj0100-rxtb-rx130\Workspace\tb_rx130\src\smc_gen\r_config\r_bsp_config.h

    /* Set your desired ID code. NOTE, leave at the default (all 0xFF's) if you do not wish to use an ID code. If you set 
       this value and program it into the MCU then you will need to remember the ID code because the debugger will ask for
       it when trying to connect. Note that the E1/E20 will ignore the ID code when programming the MCU during debugging.
       If you set this value and then forget it then you can clear the ID code by connecting up in serial boot mode using
       FDT. The ID Code is 16 bytes long. The macro below define the ID Code in 4-byte sections. */
    /* Lowest 4-byte section, address 0xFFFFFFA0. From MSB to LSB: Control Code, ID code 1, ID code 2, ID code 3. */
    #define BSP_CFG_ID_CODE_LONG_1          (0x45FFFFFF)
    /* 2nd ID Code section, address 0xFFFFFFA4. From MSB to LSB: ID code 4, ID code 5, ID code 6, ID code 7. */
    #define BSP_CFG_ID_CODE_LONG_2          (0xFFFFFFFF)
    /* 3rd ID Code section, address 0xFFFFFFA8. From MSB to LSB: ID code 8, ID code 9, ID code 10, ID code 11. */
    #define BSP_CFG_ID_CODE_LONG_3          (0xFFFFFFFF)
    /* 4th ID Code section, address 0xFFFFFFAC. From MSB to LSB: ID code 12, ID code 13, ID code 14, ID code 15. */
    #define BSP_CFG_ID_CODE_LONG_4          (0xFFFFFFFF)

    RX65Nの場合: an-r20an0464jj0100-rxtb-rx65n\Workspace\tb_rx65n\src\smc_gen\r_bsp\board\generic_rx65n\vecttbl.c

    #pragma address __OSISreg=0xFE7F5D50           /* OSIS register (ID codes) */
    const unsigned long __OSISreg[4] = {
            0xffffff45, ← 変更する場所が違うので注意
            0xffffffff,
            0xffffffff,
            0xffffffff,
    };

    [参考]

    以下、TBボードのユーザーズマニュアルの画面コピーとTBボードのジャンパピン位置の写真です。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf




    [参考]

    以下、RX231とRX130とRX65Nのハードウェアマニュアルの画面コピーです。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf





    RX130
    www.renesas.com/jp/ja/doc/products/mpumcu/rx100/r01uh0560jj0300-rx130.pdf

    ...以後、RX231と同様なので、省略します...

    RX65N
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0590jj0210-rx651.pdf





    [参考]

    TeraTermプロジェクトのサイト
    ja.osdn.net/projects/ttssh2/
     

Reply
  • こんにちは。NoMaYです。

    RFPを触っていて、オンボードエミュレータとの通信切断時に、オンボードエミュレータのリセット出力をHi-zにし、切断後も、そのままHi-zを継続する、ということが出来ることに気付きました。TBボードのマニュアルによると、USBから給電する場合、プログラムをフリーランさせるにはボードのジャンパピン(要半田付け)をショートさせてオンボードエミュレータをリセット状態にしなければならないのですが、この機能を使えば、ジャンパピンをオープンにしたまま、RFPで書き込んだ後にすぐにプログラムをフリーランさせることが出来ます。

    また、RFPには、サイレントモードというものがあり、GUIを表示することなしに、コマンドラインオプションでRFPの操作を制御することが出来るのですが、RFPの操作としてチェックサムコマンドを指定しておくと、DOSプロンプトから気軽にオンボードエミュレータのリセット出力をHi-z or Lowにすることが出来るようになります。(ただし、短時間だけLow⇔Hi-zのトグルがあります。とはいえ、マイコンはフラッシュプログラミングモードに入っていますので、ユーザプログラムは走りません。) DOSプロンプトから以外にも、Windowsショートカットを作成して、コマンドライン文字列を設定してやれば、WindowsデスクトップやWindowsツールバーに配置して、1クリック(or 1 ダブルクリック)で行えるようになります。

    他方、以前からTeraTermにTeraTerm Menuというランチャーソフトが同梱されていることに気付いていて何か機会があれば試してみようと思っていたのですが、ふと、これで試してみようという考えが思い浮かびました。そこで、以下の画面コピーのように、やってみました。そして、やって分かったのですが、RX231やRX130ではプログラムにIDコードが設定されていないとチェックサムコマンドでもフラッシュメモリが自動的/強制的に消去されます。ルネサスさんが公開しているTBボードのサンプルプログラムではIDコードが設定されていませんでしたので、サンプルプログラムを変更しましたが、その箇所も以下に書いておきました。(なお、RX65Nは少しフラッシュメモリの仕様が異なっており、IDコードを設定する必要は無さそうでしたが、どうせなので、IDコードを設定してみました。)

    ちなみに、そんなことをするよりジャンパを挿したり抜いたりした方が素早く出来るというのも確かなのですが、私のパソコンだとWindowsエクスプローラが暫く固まってしまったりとかして、あまり心地良いものでは無かったりしますので、こういったやり方を試してみました。

    RFPのエミュレータリセット出力の設定画面(本目的では速い通信速度は不要なので確実性重視で250Kbpsにしています)


    TeraTerm Menuの設定画面やメニュー画面
      

    TeraTerm Menuのドキュメントからの抜粋


    RFPのドキュメントのサイレントモードの記載
    www.renesas.com/jp/ja/doc/products/tool/doc/014/r20ut4307jj0200-rfp.pdf


    RFPの操作設定とIDコード設定の画面



    今回のRFPプロジェクトファイル一式(参考)
    rxtb_rfpproj_20190205.zip

    TerTerm Menuの設定(フォルダのパスは私の環境のものになってます)

    リスト項目: TB RX130 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx100.rpj /silent

    リスト項目: TB RX130 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx100.rpj /silent

    リスト項目: TB RX231 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx200.rpj /silent

    リスト項目: TB RX231 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx200.rpj /silent

    リスト項目: TB RX65N RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx65x.rpj /silent

    リスト項目: TB RX65N RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx65x.rpj /silent

    サンプルプログラムの変更箇所(赤文字)

    RX231の場合: an-r20an0466jj0100-rxtb-rx231\Workspace\tb_rx231\src\cg_src\r_cg_vecttbl.c

    /*;0xffffffa0  ID */
        (void (*)(void))0x45ffffff,

    /*;0xffffffa4  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffa8  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffac  ID */
        (void (*)(void))0xffffffff,

    RX130の場合: an-r20an0468jj0100-rxtb-rx130\Workspace\tb_rx130\src\smc_gen\r_config\r_bsp_config.h

    /* Set your desired ID code. NOTE, leave at the default (all 0xFF's) if you do not wish to use an ID code. If you set 
       this value and program it into the MCU then you will need to remember the ID code because the debugger will ask for
       it when trying to connect. Note that the E1/E20 will ignore the ID code when programming the MCU during debugging.
       If you set this value and then forget it then you can clear the ID code by connecting up in serial boot mode using
       FDT. The ID Code is 16 bytes long. The macro below define the ID Code in 4-byte sections. */
    /* Lowest 4-byte section, address 0xFFFFFFA0. From MSB to LSB: Control Code, ID code 1, ID code 2, ID code 3. */
    #define BSP_CFG_ID_CODE_LONG_1          (0x45FFFFFF)
    /* 2nd ID Code section, address 0xFFFFFFA4. From MSB to LSB: ID code 4, ID code 5, ID code 6, ID code 7. */
    #define BSP_CFG_ID_CODE_LONG_2          (0xFFFFFFFF)
    /* 3rd ID Code section, address 0xFFFFFFA8. From MSB to LSB: ID code 8, ID code 9, ID code 10, ID code 11. */
    #define BSP_CFG_ID_CODE_LONG_3          (0xFFFFFFFF)
    /* 4th ID Code section, address 0xFFFFFFAC. From MSB to LSB: ID code 12, ID code 13, ID code 14, ID code 15. */
    #define BSP_CFG_ID_CODE_LONG_4          (0xFFFFFFFF)

    RX65Nの場合: an-r20an0464jj0100-rxtb-rx65n\Workspace\tb_rx65n\src\smc_gen\r_bsp\board\generic_rx65n\vecttbl.c

    #pragma address __OSISreg=0xFE7F5D50           /* OSIS register (ID codes) */
    const unsigned long __OSISreg[4] = {
            0xffffff45, ← 変更する場所が違うので注意
            0xffffffff,
            0xffffffff,
            0xffffffff,
    };

    [参考]

    以下、TBボードのユーザーズマニュアルの画面コピーとTBボードのジャンパピン位置の写真です。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf




    [参考]

    以下、RX231とRX130とRX65Nのハードウェアマニュアルの画面コピーです。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf





    RX130
    www.renesas.com/jp/ja/doc/products/mpumcu/rx100/r01uh0560jj0300-rx130.pdf

    ...以後、RX231と同様なので、省略します...

    RX65N
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0590jj0210-rx651.pdf





    [参考]

    TeraTermプロジェクトのサイト
    ja.osdn.net/projects/ttssh2/
     

Children
No Data