RX(15)-ブートローダ(アプリケーション領域削除)

現在、RXマイコンを使用して、ブートローダ機能を構築に取り組んでいます。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用しています。開発環境は「e2studio」です。

前回は、下記の機能をコーディングしました。

  • 各種初期化関数
  • 電源投入時に、SW1が押されてなかったら、指定した番地に移動(アプリケーションコードへ移動)
  • 割り込みベクターテーブルをRAMへ保存

前回の内容は下記のサイトになります。

RX(14)-ブートローダ(アドレス移動)

アプリケーションコードを書き込むためには、まずは、書き込み領域を削除しなければなりません。今回は、Erase処理をブートローダの機能に追加しようと思います。それでは、コーディングしたいと思います。

RX(14)-ブートローダ(アドレス移動)

現在、RXマイコンを使用して、ブートローダ機能を構築に取り組んでいます。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用しています。開発環境は「e2studio」です。

前回は、下記のエラーが発生したので、その対応方法を検証しました。

  • W0561120:Section address is not assigned to “RPFRAM”
  • F0563100:Section address overflow out of range : “RPFRAM”

前回の内容は下記のサイトになります。

RX(13)-ブートローダ(RPFRAM)

今回は、ブートローダの処理をコーディングしたいと思います。今回コーディングする内容は下記の通りです。

  • 各種初期化関数
  • 電源投入時に、SW1が押されてなかったら、指定したアドレスに移動(アプリケーションコードへ移動)
  • 割り込みベクターテーブルをRAMへ保存

今回、指定したアドレスに移動する機能も構築するので、LEDを点滅する関数を作成してその関数へ移動するかどうか試してみたいと思います。

それでは、コーディングしたいと思います。

RX(13)-ブートローダ(RPFRAM)

現在、RXマイコンを使用して、ブートローダ機能を構築に取り組んでいます。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用しています。

前回は、ブートローダの機能を構築するために、まず、スマートコンフィグレータを使用して、下記のコンポーネントを追加しました。
・入出力ポートコンポーネント(Config_PORT)
・フラッシュのコンポーネント(r_flash_rx)
・通信のコンポーネント(Config_SCI11)
・タイマのコンポーネント(Config_TMR0_TMR1)

  • 入出力ポートコンポーネント(Config_PORT)
  • フラッシュのコンポーネント(r_flash_rx)
  • 通信のコンポーネント(Config_SCI11)
  • タイマのコンポーネント(Config_TMR0_TMR1)

コンポーネントを追加したら、各コンポーネントの設定を行い、コードを生成しました。そして、生成したコードにコーディングを行いました。前回の内容は、下記のページから参照できます。

RX(12)-ブートローダ(周辺機能準備)

ここで、ビルドを実行してみたのですが、残念ながら下記のエラーが発生しました。

  • W0561120:Section address is not assigned to “RPFRAM”
  • F0563100:Section address overflow out of range : “RPFRAM”

今回は、このエラーに対応していこうと思います。

RX(12)-ブートローダ(周辺機能準備)

今回はRXマイコンを使用して、ブートローダ機能を構築したいと思います。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用します。

F/Wをアップデートしたいが、エミュレータを使用したくないケースやRenesas Flash Programmerは使用したくないケースがあります。このような時には、ブートローダを作成します。ブートローダによって、書き込みモードと動作モード制御することで、エミュレータやRenesas Flash Programmerを使用せずともシリアル通信などで、F/Wを書き込みます。初回の書き込み時は、エミュレータやRenesas Flash Programmerが必要ですが、ブートローダを一度書き込んでしまえば、あとは、シリアル通信などで、F/Wを書き込むことができます。Ethernetなどを使用すれば、インターネット回線で、F/Wの更新などもできるようになると思います。今回はシリアル通信を使用して、F/W書き込みまたは更新できるブートローダを作成しようと思います。

まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は、下記のページを参考にしてください。

RX(3)-RS232通信

プロジェクト・エクスプローラーに新規プロジェクトが追加されました。中央には、スマート・コンフィグレータが開かれると思いますので、コンポーネントの追加をしていきます。

追加したコンポーネントは、下記の4つです。

  • 入出力ポートコンポーネント(Config_PORT)
  • フラッシュのコンポーネント(r_flash_rx)
  • 通信のコンポーネント(Config_SCI11)
  • タイマのコンポーネント(Config_TMR0_TMR1)

RX(11)-Delay関数

以前、インプットキャプチャに関して、動作確認した際に、約1秒間のDelay時間をつくりました。インプットキャプチャに関しての動作確認は下記のサイトを参考にしてください。

RX(9)-インプットキャプチャ

この時は、for文を使って、Delay時間を構築しましたが、いろいろ調べていくと、スマートコンフィグレータを使用すると、Delay時間を構築できる関数があることがわかりました。やっぱりあるんですね!

今回は、このDelay関数を使用して、LEDを点滅させる機能を作ろうと思います。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用します。Delay関数を使用するためには、スマートコンフィグレータのr_bspが必要です。r_bspはスマートコンフィグレータにデフォルトで追加されているコンポーネントです。新規プロジェクトを作成する時に、スマートコンフィグレータを使用するにチェックすれば、r_bspコンポーネントは追加されている状態になると思います。

r_bspコンポーネントの初期のパラメータで問題ありません。LEDを点滅させたいので、ポートコンポーネントを追加して、P95を出力に設定しておきます。Lowで点灯なので、1を出力するにチェックを入れて、LEDが消灯状態が初期値状態になるようにします。ポートコンポーネントの追加の仕方は、下記のサイトを参考にしてください。

RX(3)-RS232通信

続きを読む

RX(10)-CAN通信(送信・受信)

今回は、CAN通信のファームウェアを作成してみたいと思います。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用します。開発環境は「e2studio」です。

そもそもCANとは、Controller Area Networkの略称で、ISOにて国際的に標準化されたシリアル通信プロトコルです。1986年ドイツの伝送メーカBOSCH社で自動車向けの通信プロトコルとしてCANを開発しました。今日では、CANの高い性能と信頼性が認められ、用途は多方面にわたっています。

今回は、CAN通信による送信と受信に着目して、ファームウェアを作成します。実際は、エラー状態などの遷移など構築する必要があるのですが、今回はとうりあえず送信と受信のみの機能となります。

それでは、CAN通信のファームウェアを作成したいと思います。今回作成するファームウェアは下記のような仕様にしたいと思います。

  • ファームウェアはデータを受信すると、受信したデータによって、「Renesas Starter Kit+ for RX66T」のLEDを点灯したり、消灯したりします。
  • ファームウェアは「Renesas Starter Kit+ for RX66T」のスイッチを
    押すと、データを送信します。

まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は、下記のページを参考にしてください。

RX(3)-RS232通信

プロジェクト・エクスプローラーに新規プロジェクトが追加されました。中央には、スマート・コンフィグレータが開かれると思いますので、コンポーネントの追加をしていきます。

AmazonWebService(7)-ポート 443を使った証明書によるクライアント認証でMQTT接続(GR-ROSE)

ポート8883、ポート8443を使用しましたが、企業のファイアウォールや一部のホームルータは、デフォルトでは、HTTPS の標準ポート 443 以外のすべてのポートで、制限することが多いので、そのような環境では、正しく動作しません。その時に、ポート443を使用します。「RX65N Cloud Kit」を使用して、ポート443を使った証明書によるクライアント認証でMQTT接続を行いました。同様に「GR-ROSE」でもポート443を使った証明書によるクライアント認証でMQTT接続を実施したいと思います。

RX65N Cloud Kitの時は、下記のページのように、ソースコードの追加、修正がありましたが、GR-ROSEに関しては、一行修正すれば、ポート443を使った証明書によるクライアント認証でMQTT接続ができます。

AmazonWebService(5)-ポート 443を使った証明書によるクライアント認証でMQTT接続

それでは、ポート443を使った証明書によるクライアント認証でMQTT接続ができるようにソースコードを修正していきたいと思います。

AmazonWebService(6)-Amazon FreeRTOS動作確認(GR-ROSE)

前回まで、RX65N Cloud Kitに、Amazon FreeRTOSを使用して、AWS(
Amazon Web Service)とデータの送受信をしました。今回は、GR-ROSEに、Amazon FreeRTOSを組み込んで、AWSとデータの送受信をしたいと思います。最初のプロジェクトファイルの読み出し以外は、RX65N Cloud Kitの手順とほぼ同じだと思いますので、下記のページが参考になると思います。

AmazonWebService(4)-Amazon FreeRTOS動作確認

RX65N Cloud KItの時は無線を使用しましたが、GR-ROSEでは、Ethernetを使用してみようと思います。GR-ROSEは無線でもできますが、今回は、Ethernetを使用しようと思います。それでは、まずはプロジェクトを統合開発環境(IDE)にインポートします。IDEは、e2studioを使用します。

e2studioを起動後、[ファイル]→[インポート]を選択して、インポート画面を開きます。既存プロジェクトをワークスペースへを選択して、「次へ」ボタンを押します。

AmazonWebService(5)-ポート 443を使った証明書によるクライアント認証でMQTT接続

前回、Amazon FreeRTOSを使用して、AWSとデータの送受信しました。Amazon FreeRTOSは、RX65N Cloud Kitに書き込んで使用しました。前回は、ポート8883、ポート8443を使用しましたが、企業のファイアウォールや一部のホームルータは、デフォルトでは、HTTPS の標準ポート 443 以外のすべてのポートで、制限することが多いので、そのような環境では、正しく動作しません。その時に、ポート443を使用します。AWS IoT Core は、ポート443を使った証明書によるクライアント認証でMQTT接続をサポートしています。

それでは、試してみます。ルーターの8883ポートを制限して、RX65N Cloud Kitを動作させてみました。下記のようにエラーが発生しました。

このようにポートを制限されてしまったため、通信エラーになってしまいました。企業では、セキュリティのため、ポート制限をすることはよくあることです。そこで、HTTPS の標準ポート 443を使用します。それでは、ポート443に対応できるようにソースコードを修正していきたいと思います。

AmazonWebService(4)-Amazon FreeRTOS動作確認

前回まで、Amazon Web Service側の設定が完了したので、今回は、Amazon FreeRTOSを使用して、AWSとデータの送受信をしようと思います。Amazon FreeRTOSは、RX65N Cloud Kitに書き込んで使用します。それでは、まずは、Amazon FreeRTOSを用意します。下記のサイトからダウンロード可能です。

Amazon Web Services からダウンロードしたAmazon FreeRTOSは、Amazon FreeRTOS Qualification Program による検証されたものになります。また、
Amazon FreeRTOSは最新版ではありません。検証に使用したマイコンボードは、Renesas Starter Kit+ for RX65N-2MBになります。

GitHub(aws) からダウンロードしたAmazon FreeRTOSは、最新版のAmazon FreeRTOSになります。検証に使用したRXマイコン ボード以外のパッケージはありません。

GitHub(renesas-rx) からダウンロードしたAmazon FreeRTOSは、最新版のAmazon FreeRTOSではありません。検証に使用したRXマイコン ボード以外のパッケージもあります。RX65N Cloud Kitのパッケージもあります。

今回は、RX65N Cloud Kitを使用しようと思いますので、GitHub(renesas-rx) からダウンロードします。

それでは、まずはダウンロードしたファイルを統合開発環境(IDE)にインポートします。IDEは、e2studioを使用します。