RenesasSynergy(10)-サービスコール関数

前回は、Renesas Synergy S7G2マイコンをRS232通信機能とMessagingの機能を追加したファームウェアを作成しました。今回は、このMessaging機能の変わりに、ThreadXに用意されているサービスコール関数を使用して、thread間の処理の受け渡しを行おうと思います。使用する評価ボードは、RenesasSynergyマイコン「S7G2」が搭載されている「SK-S7G2」です。

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

RenesasSynergy(1)-LED点滅

threadを2つ追加します。threadの作成方法は、下記のページを参照してください。

RenesasSynergy(3)-タイマを使用したLEDの点滅

new_thread0、new_thread1を作成しました。今回、TIme Slicing intervalを0で設定していますので、注意してください。

続いて、UARTをnew_thread1に追加します。UARTの追加方法は下記のページを参照してください。

RenesasSynergy(8)-RS232通信

下記のようにthreadの追加、UARTの追加をしました。

それでは、[Generate Project Content]を選択して、ソースコードを生成します。

RenesasSynergy(9)-Messaging機能

前回は、Renesas Synergy S7G2マイコンをRS232通信機能を追加したファームウェアを作成しました。今回は、このファームウェにMessaging機能を追加して、thread間の処理の受け渡しを行おうと思います。使用する評価ボードは、RenesasSynergyマイコン「S7G2」が搭載されている「SK-S7G2」です。前回作成したプロジェクトファイルを改良していこうと思います。

RenesasSynergy(8)-RS232通信

今回は、RS232通信機能を追加したファームウェアを作成します。使用する評価ボードは、RenesasSynergyマイコン「S7G2」が搭載されている「SK-S7G2」です。評価ボードにはLEDが3つ用意されているので、L1,ONでLED1が点灯、L1,OFFでLED1が消灯、L2,ONでLED2が点灯、L2,OFFでLED2が消灯するコマンドを用意して、RS232通信を行える機能を作成しようと思います。デリミタは’\r’です。

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

RenesasSynergy(1)-LED点滅

今回は、プロジェクト名を「RS232」としました。テンプレートは、BSPを選択しました。プロジェクトファイルが作成できたので、まずは、スレッドを2つ作成します。1つ目のスレッド(new thread0)は、特になにも処理をしないスレッドです。2つ目のスレッド(new thread1)は、RS232通信の受信と送信を行います。

RX(1)-スイッチによるLED点灯

RXファミリの マイコンは、高い演算性能と優れた低消費電力性能をもつルネサスオリジナルのRXv1/RXv2/RXv3コアを搭載した32ビットマイコンです。今回、使用するマイコンは、「RX65N」になります。「Renesas Starter Kit+ for RX65N-2MB」評価ボードを使用します。

使用する統合開発環境は「CS+」を使用します。インストール方法はRL78シリーズと同じです。下記のページを参考にしてください。

RL78G13(1)-スイッチによるLED点灯

コンパイラの無償版は、RL78の場合、リンクサイズを64Kバイト以内に制限されていました。RXファミリの場合、リンクサイズを128Kバイト以内に制限しています。

今回は、LEDが点灯できるようなファームウェアを作成してみます。まずは、新規プロジェクトを作成します。[ファイル]→[新規作成]→[新しいプロジェクトを作成]を選択します。

すると、プロジェクト作成ダイアログが表示されるので、初期情報を入力します。今回使用するマイコンは、RXシリーズのR5F565NEHDFC(ROMサイズ:2MB、ピン数:176ピン)なので、マイクロコントローラは「RX」を選択、使用するマイクロコントローラは「R5F565NEHxFC」を選択します。プロジェクトファイルの種類は、「アプリケーション(CC-RL)」を選択、プロジェクト名、作業場所を入力して、「作成」ボタンを押します。

RL78G13(5)-RS232通信

今回は、RS232通信機能を追加したファームウェアを作成します。使用するマイコンは「RL78G13」、評価ボードは、「Renesas Starter kit for RL78/G13」です。評価ボードにはLEDが4つ用意されているので、L1,ONでLED1が点灯、L1,OFFでLED1が消灯、L2,ONでLED2が点灯、L2,OFFでLED2が消灯するコマンドを用意して、RS232通信を行える機能を作成しようと思います。デリミタは’\r’です。

それでは、新規プロジェクトを作成します。今回は、プロジェクト名を「RL78G13_RS232」としました。新規プロジェクトの作成方法は、下記のページを参考にしてください。

RL78G13(1)-SWによるLED点灯

それでは、コード生成ツールを使用して、設定を行っていきます。[クロック発生回路]、[ウォッチドック・タイマ]は「RL78G13(1)-SWによるLED点灯消灯」で行った設定と同じです。

次にRS232通信を行うために、UARTを設定します。プロジェクトツリーから[コード生成ツール]→[シリアル]を選択します。チャンネル0を「UART0」にして、送信/受信機能を選択します。

RenesasSynergy(7)-TraceX(Blinky with Threadの動き)

今回は、TraceX取得した、ThreadXの動きについて見ていきたいと思います。TraceXの設置方法は、下記のサイトを参照してください。

RenesasSynergy(6)-TraceX

TraceXの設置方法の時に使用しましたBlinkyTraceXプロジェクトファイルの動きを見ていきたいと思います。

BlinkyTraceXプロジェクトファイルの動きは下記のようになります。

RenesasSynergy(6)-TraceX

今回は、ThreadX(RTOS)の動きを検証していくために、TraceXを使用してみたいと思います。TraceXはシステムイベントを視覚化することができます。Threadのプライオリティを考えるうえで、ThreadXのシステムイベントの動きを理解することが重要となってきます。使用する評価ボードは、「SK-S7G2」です。TraceXは、別途インストールが必要です。下記のサイトからダウンロードできます。

https://www.renesas.com/jp/ja/products/synergy/software/tools/tracex.html

それでは、テンプレートで用意されている「Blinky with ThreadX」を使用して、ThreadXの動きを見ていくためにTraceXを設置したいと思います。新規プロジェクトの作成方法は、下記のページを参考にしてください。

RenesasSynergy(1)-LED点滅

今回は、プロジェクト名を「BlinkyTraceX」としました。

プロジェクトファイルが作成できたので、まずは、Configuration.xmlファイルを開き、ThreadX Sourceを追加します。[Thread]タブを選択した後に、[New Thread Stacks]→[New Stack]→[X-Ware]→[ThreadX]→[ThreadX Source]を選択します。

「HAL/Common」の枠の中にThreadX Sourceが追加されました。

RenesasSynergy(4)-データフラッシュ

今回は、DataFlashを使用して、データを保存するファームウェアを作成します。使用する評価ボードは、「SK-S7G2」です。評価ボードにはLEDが3つ用意されているので、SWを押すたびに光るLEDが順番に変わるファームウェアを作成します。電源を落とした場合は、最後に光ったLEDがどれであるかDataFlashに保存して、電源をONした際に、DataFlashからどのLEDから光らせるか読み出します。

RL78G13(4)-データフラッシュ

今回は、DataFlashを使用して、データを保存するファームウェアを作成します。使用するマイコンは「RL78G13」、評価ボードは、「Renesas Starter kit for RL78/G13」です。評価ボードにはLEDが4つ用意されているので、SWを押すたびに光るLEDが順番に変わるファームウェアを作成します。電源を落とした場合は、最後に光ったLEDがどれであるかDataFlashに保存して、電源をONした際に、DataFlashからどのLEDから光らせるか読み出します。


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

RL78G13(1)-SWによるLED点灯

今回は、プロジェクト名を「RL78G13_DataFlashLED」としました。