本講座は、ルネサスエレクトロニクス社(以降、ルネサス)のArm® Cortex®-Mプロセッサ内蔵マイコン RAファミリを使った初心者向けのマイコン入門講座であり、超基本的なマイコンに関する知識を既に習得されている方を対象としています。
超基本的なマイコンに関する知識を学ぶ場合は、APSのWebinar「 マイコンとは何?|マイコン超入門【第1部】」から始めて、「 テキスト応用実習|マイコン超入門【第5部】」までを学習してください。
本講座のゴール
- マイコンの基本的な使い方を理解する。
- マイコンの基本的な仕組みを、周辺機能ごとに理解する。
- マイコンの基本的な動作を、周辺機能ごとに理解する。
本講座の構成
第1回:開発ツール
第2回:CPU(Cortex-M)
第3回:汎用I/O
第4回:割り込み
第5回:汎用タイマ
第1回:開発ツールの内容
- 開発ツールの必要性を理解する。
- ツールチェインとは何かを理解する。
- 実際の開発環境についての知識を習得する。
使用機材のご案内
本ハンズオンワークショップを実機にて体験いただくためには、EK-RA6M5 評価キットとPCが必要となります。
開発ツールの必要性
マイコンを使うためには、大きく分けて3ステップが必要です。各ステップには、それぞれに合った道具(ツール:Tools)が必要です。
最初に、プログラムを作るためには、プログラムを入力するテキストエディタなどが必要になります。次に、プログラムを機械語に変換するためには、コンパイラなどのツールが必要です。プログラムがユーザーの意図した通りに実行されるかを確認するには、実行制御や変数確認のできるデバッガが必要になります。

図2:マイコンを使うには道具が必要
マイコンのプログラム開発は、PCを使います。PCは市販のWindowsマシンなら大抵のものが使えます。プログラムを作るためのアプリケーションソフトウェアは、インターネットから各マイコンに合ったものがダウンロードできます。
作成可能なプログラムのサイズに上限があったり、使用期間に制限が付いていたりするものなら、無料で利用できるアプリケーションもあります。
プログラムを記述したら、それをマイコンが理解できる言語に変換した上で、マイコンの中に書き込まなければ、マイコンは動作しません。この時に必要なのが「デバッガ&プログラマ」と呼ばれる装置です。これは、マイコンごとに専用の機種が提供されています。
ルネサスRAファミリでは、「デバッガ&プログラマ」にSEGGER社の J-Linkを推奨しています。SEGGER社のJ-Linkには、ローコスト版の J-Link BASE Compactもあります。
日本では 株式会社エンビテックが、SEGGER社のハードウェア(デバッガ・書込みツール)及びソフトウェア製品のライセンス販売・サポートサービスの代理店になっています。
J-Linkはエンビテック社の Webから購入可能です。また、必要なソフトウェアのダウンロード・インストール方法は こちらを参照ください。
PCと「デバッガ&プログラマ」はUSBケーブルで接続され、「デバッガ&プログラマ」とプリント基板のマイコンは専用のケーブルでつながります。「デバッガ&プログラマ」からプリント基板につながる制御線は、マイコンによっても様々ですが、Cortex-Mの場合は、一番少ないもので3本だけの場合があります。電源モニター用に2本、制御用の信号線が1本です。
このように、プログラムの作成からマイコンへの書き込みまでの一連の作業に使うハードウェアとソフトウェアをまとめて開発環境と呼びます。

図3:具体的なツールは何が必要?
最初にプログラムを記述するプログラム言語を選びます。
最近ではAIで使われるPythonなどもありますが、組み込み系では、いまだにC言語系のプログラム言語が使われていますので、ここではC言語を使います。プログラム言語が決まったら、エディタを使ってプログラムを作ります。出来上がったプログラムを一旦中間言語に変換し、その後オブジェクトコードに変換します。
または、C言語から直接オブジェクトコードに変換します。この時使われるツールは、コンパイラとアセンブラです。
オブジェクトコードは、リンカによって実行ファイルに変換されます。最後に、その実行ファイルを動作させてみて、ユーザーの意図した通りに動作するかどうかを、デバッガを使って確かめます。
これらの機能をひとつのソフトウェアに統合したものを「開発ツール」「統合開発環境」「統合開発ツール」などと呼びます。

図4:マイコンのプログラムの開発フロー
ツールチェイン
開発ツールは鎖状につながっているように見えるため、ツールチェインと呼ばれることがあります。この章では、ツールチェインについて解説します。
マイコンのプログラム開発では、高級言語から実機検証までの、こまごました一連のツールのつながりをツールチェインと呼びます。これは各ツールが鎖(Chain)のようにつながっているからです。
最初に、ユーザーは高級言語を使ってプログラムを作ります。そのプログラムをコンパイルして中間言語に変換します。中間言語とは、アセンブリ言語です。ニーモニックで機械語のプログラムが記載されています。
中間言語をアセンブルすると、オブジェクトコードに変換されます。オブジェクトコードとは、0と1のバターンで構成される機械語です。オブジェクトコードは、高級言語1ファイルにつき1つ生成されます。この時点では、アドレスに割り振られていません。
そして、マイコンのプログラムを、実際に動作させるためにはライブラリと連結させなければなりません。ライブラリとは、ある特定の機能を持ったプログラムを部品化し、それを集めて一つのファイルに収納したものです。ライブラリのプログラム単体では実行できませんが、他の実行プラグラムから、呼び出して連結して実行されます。
オブジェクトコードとライブラリを連結させるのがリンカです。連結させた結果、リロケータブルプログラムが生成されます。リロケータブルプログラムとプログラムの設定条件が記述されている設定ファイルを連携して、実行可能な実行ファイルが生成されます。この時同時にメモリマップファイルも生成されます。ここまでがソフトウェアと呼ばれる領域です。
この後、実際のマイコンが登場します。実行ファイルをマイコン内部のフラッシュ・メモリ(*)に書き込みます。これをロードと言います。
ユーザーは、書き込まれたプログラムをPCとデバッガを使って、動作させてみて、自分の意図した通りに動くかどうかを確認します。
※最近のマイコンではフラッシュ・メモリの代わりにMRAMなどを搭載した製品(例、ルネサスのRA8P1など)がありますが、ここではフラッシュ・メモリを搭載のマイコンを題材にします。

図5:ツールチェイン(Tool chain)
リンカは、オブジェクトコードをリロケータブル形式のプログラムに変換します。ロケータは、リロケータブル形式のプログラムの各要素にアドレスを割付け、実行形式を作ります。
通常オブジェクトコードはC言語ソースやアセンブルソースの各ファイルに1つにつき、1つのファイルを作ります。しかし、各ファイル間で参照している変数などがあると、オブジェクトコードのファイルの時点では反映されません。そこで、リンカとロケータが、各ファイル間で参照している変数などを探し出して、結合します。
下図では、アセンブルは、Example1.cとExample2.cを単独で解釈するだけなので、変数のアドレスや配置を確定できません。そこで、オブジェクトの時点で、仮の情報を入れておきます。その後、リンカやロケータが各変数の絶対アドレスを決定し、仮の情報だった箇所を正式な情報に変換します。

図6:リンカとロケータ
マイコンのメモリ(データを格納しておく場所)にはアドレスが割り振られています。プログラム実行に必要なプログラムやデータやスタックは、このアドレスに従って配置されます。
マイコンに内蔵されているメモリはフラッシュ・メモリとRAMとEEPROM(無い製品もある)などです。これらのメモリにプログラムやデータやスタックをどの様に割り当てるかは、マイコンによってルールがあるので、そのルールに従ってユーザーが決めます。

図7:メモリマップファイル
実際の開発環境
本講座では、ルネサスのRAファミリ用に提供されている統合開発環境を題材にして、解説します。
PC用統合開発環境ソフトウェアはe2 studioです。これは、エディタ、コンパイラ、アセンブラ、リンカ、デバッガなどの機能を搭載した統合開発環境です。 ルネサスから無償で提供されていて、ルネサスのWebページから無償でダウンロードできます。
評価キットには2種類あって、1つは、EK-RAxMy評価キットです。マイコンのほぼ全ての機能と性能の評価や初期開発に適しています。下図の写真はEK-RA6M5評価キットです。もう1つはFPB(Fast Prototyping Board)です。最も手軽にマイコン評価を始めることを目指した廉価な評価ボードです。

図8:実際の開発環境の例
ルネサスのRAファミリの場合、e2 studio以外でも、パートナ製の開発環境を使用することができます。IAR社のEmbedded WorkbenchやArm社のKeil MDKを使用することもできます。
e2 studioのRA Smart Configuratorを用いて初期設定部分を作り、それをEmbedded WorkbenchやKeil MDKで連携させて、Embedded WorkbenchやKeil MDKでプログラム開発を行うこともできます。

図9:e2 studioとパートナ製開発環境との連携
ルネサスでは、ユーザーの目的用途に応じた開発・評価キットを提供しています。スターターキット相当から、開発・評価キット、さらにはマイコンの専門機能に特化したキットが提供されています。

図10:RAファミリ開発・評価キット
ツールのまとめ
マイコンのプログラム開発者は、PC上のプログラムを作るためのツールのアプリケーションソフトウェアを使って、C言語でプログラムを作成します。PCは、市販のWindowsマシンなら大抵のものが使えますが、念のためアプリケーションソフトウェアの使用条件を確認してください。
アプリケーションソフトウェアは、インターネットから各マイコンに合ったものがダウンロードできます。作成可能なプログラムのサイズに上限があったり、使用期間に制限が付いたりするものなら、無料で利用できるアプリケーションソフトウェアもあります。
C言語で作成したプログラムはアプリケーションソフトウェアが、マイコンが理解できる言語に変換した上で、マイコンの中に書き込みます。この時に必要なのが「デバッガ&プログラマ」と呼ばれる装置です。これは、マイコンごとに専用の機種が提供されています。
PCとデバッガ&プログラマはUSBケーブルで接続され、デバッガ&プログラマとプリント基板のマイコンは専用のケーブルでつながります。
マイコンの中に書き込まれたプログラムの動作確認も、ツールのアプリケーションソフトウェアで行います。プログラムを実行すると、プログラムの実行経路やレジスタの内容の変化、メモリの内容が簡単に観ることができます。また、プログラムの実行を一旦停止させたり、1つずつ実行したりすることができます。この他にも、ツールには便利な機能が備わっているので、ユーザーはそれらの機能を使って、自分が作ったプログラムが正常に動作しているかどうかを確認します。
自分で作ったプログラムが、正常に動作していることを確認出来たら、実際にマイコンを動かしてみます。

図11:ツールのまとめ
実習
1. e2 studioを使った実習
実習です。ルネサスのe2 studioとEK-RA6M5評価キットを実際に使ってみましょう。
実習の内容は下図のようになります。e2 studioをダウンロードし、PCにインストールします。その後e2 studioを起動して、サンプルプログラムのコードを生成します。そのコードをEK-RA6M5評価キット上のマイコン(RA6M5)に書き込み、動作させるというものです。

図12:実習内容
インターネットの検索エンジンで「ルネサス RA」を検索して、ルネサス RAファミリのHPからFSP一式をダウンロードします。FSP一式の中にe2 studioが含まれています。ダウンロードにはユーザー登録が必要です。
本講座の執筆時には、図の様な画面ですが、都度更新されています。更新された新しい画面が出てきても、画面の指示に従えば、操作は難しくありません。
FSPのインストーラの実行ファイルの名前はバージョンによって異なります(FSPは都度更新されていますので、最新バージョンをインストールしてください)。
例えば、今回は、ファイルsetup_fsp_v6_1_0_e2s_v2025-07.exeがダウンロードされます。インターネット環境とPCの性能にもよりますが、1時間近く、またはそれ以上かかる場合もあります。

図13:e2 studioのダウンロード(ルネサスのHPから)
ダウンロードが完了したら、インストールしてみましょう。ファイルをダブルクリックします。(インストールファイルの展開には少し時間がかかります。)
最初に、最適なインストールタイプを選択します。後々FreeRTOSTMを使うことを見込んで、今回はCustom Installを選択します。
インストール・ディレクトリの準備ができていること、および必要なすべてのコンポーネントが使用可能であることがチェックされます。インストールに追加する機能を選択します。
デフォルトを確認し、必要な場合はそのままにしておき、必要ない場合はチェックボックスをオフします。
「Renesas RA タブ」で、GNU Arm Embedded が選択されていることを確認します。
インストールするコンポーネントの各種ソフトウェア契約が表示されますので、それぞれをよく読み、「ソフトウェア契約の条件に同意します。」の横にあるチェックボックスをオンにします。
表示されるショートカット画面で、提案されたスタート・メニュー・グループに同意するか、変更するかで、チェックボックスをそのままかオフにします。
インストールするソフトウェアの概要が表示されますので確認します。
「インストール」をクリックすると、インストールが始まります。
インストールが完了すると、「結果」ウィンドウが表示されます。
すべてのチェックボックスをオフにし、FSP およびGCC Arm Embedded の詳細と、FSP ユーザーズマニュアルへのリンクを確認します。
最後に、OK をクリックしてインストーラを閉じます。これでインストールが完了です。

図14:e2 studioのインストール
「使用機材のご案内」でも述べましたが、機材はEK-RA6M5を使います。EK-RA6M5は、RA6M5シリーズ用の評価キットです。176ピン、LQFPパッケージでTrustZone、200MHz Arm Cortex-M33コアを搭載したR7FA6M5BH3CFCが実装されています。この評価キットを使うとRA6M5に搭載されているほとんどの周辺機能を動作させることができます。

図15:評価キットの準備(EK-RA6M5評価キット)
Windowsのスタートメニューからe2 studioを開きます。
ワークスペースのフォルダを指定する画面が出るので、デフォルトか任意のフォルダを入力します。
Welcome to e2 studioの画面が表示されたら、画面の右上隅にある[隠す]アイコンを選択して画面を隠します。

図16:e2 studioの起動
ここからRenesas RAプロジェクト(RAファミリ用プロジェクト)を作っていきます。
メニューバーの「ファイル」→「新規」→「C/C++ Project」→「Renesas RA」のように移行します。
Templates for Renesas RA Projectという新しいウィンドウが表示されます。
Renesas RA C/C++ Projectを選択し、[次へ(N)>]をクリックします
プロジェクトコンフィギュレータが起動します。
プロジェクトの名前を入力します。(今回は「test」と入力します。)
Device and Tools Selectionの画面で、ボードを選択します。EK-RA6M5を選択すると、デバイスがR7FA6M5BH3CFCに自動で切り変わります。
ツールチェインは、「GNU Arm Embedded」を選択します。
Project Type selectionの画面で、TrustZoneのプロジェクトか、セキュアでないTrustZone (Flat(Non-TrustZone))プロジェクトかを選択できます。
今回は、開発環境をテストしたいだけなので、Flat(Non-TrustZone)プロジェクトを選択します。
Build Artifact and RTOS Selectionの画面では、設定はそのままにして、Build Artifact Selectionで[Executable]を選択し、[RTOS Selection]で[No RTOS]を選択します。FreeRTOS™は、必要に応じてRAコンフィギュレータで後からアクティブにできます。
Project Template Selectionの画面で、[Bare Metal – Blinky]を選択します。[Bare Metal – Blinky]はEK-RA6M5ボード上の3つのLEDを点滅させるサンプルプログラムです。今回はLEDを点滅させるだけが目的ですので、サンプルパッケージを使用すれば十分です。
[終了( E )]をクリックします。
これで、コンフィギュレータに、正しいデバイスとEK-RA6M5ボードのBoard Support Library、およびサンプルプロジェクトを含むテンプレートの情報が登録されます
コンフィギュレータは、必要なファイルをすべて抽出し(少し時間がかかります)、FSP Configurationパースペクティブを開くかどうかを尋ねますので、[パースペクティブを開く]をクリックします。

図17:プロジェクトの作成
e2 studioのスタンダードパースペクティブで、プログラムの開発やソースコードの編集ができます。デフォルトでは、サマリーが中央に開き、Project Explorerビューが左側に開き、プロジェクトを管理できます。

図18:e2 studioのスタンダードパースペクティブ(デフォルト)
実際に作業する際は、エディタやスマートマニュアルやFSP設定のウィンドウを開けて設定します。

図19:e2 studioのスタンダードパースペクティブ(作業用)
コンフィギュレータで、FSPとプロセッサのほとんどのオンチップハードウェアの設定ができますが、今回使用するテンプレートのサンプルプログラム場合、すべてがすでに設定されているので、ウィンドウの右上隅にあるGenerate Project Contentという緑の矢印をクリックすれば、コンフィギュレータは必要な設定ファイルをすべて作成し、プロジェクトに追加します。
上部のツールバーの左隅にある小さな「ハンマー」記号をクリックすると、プロジェクトがビルドされます。
完了すると、「0 errors , 0 warning(エラー0、警告0)」がステータスとして表示されます。
これで、すべてが設定され、プロジェクトを実行する準備が整いました。

図20:コードを生成してビルド
PCとEK-RA6M5評価ボードをUSBケーブルで接続すると、USBから給電されて、ボードが起動します。新品の場合、動作するとすぐに、あらかじめプログラムされたデモプログラムが実行され、1秒間隔で青色のLED1が10%の光度で点滅します。緑色のLED2は、フル強度で常時オンになり、赤色のLED3はオフになります。
オレンジ色のデバッグLED(LED5)が点滅し続けると、評価キットはJ-Linkドライバを検出できていません。その場合は、まず、USBケーブルをボード右側のデバッグポートJ10に接続されていることを確認してください。左辺のUSB Full SpeedポートJ11に接続されていても、電源が供給されてLEDは同じ動作をしますが、J-Linkがつながりません。
PC側のチェックとしては、デバイスマネージャを開き、Universal Serial Busコントローラツリーを展開して、J-Linkドライバがそこにリストされていることを確認してください。もし、インストールされていない場合は、カスタムインストール機能を使用してプラットフォームインストーラを再実行してください。

図21:EK-RA6M5評価ボードとPCの接続
いよいよプログラムをマイコンに書き込みます。
デバッグ記号の横にある小さな矢印をクリックし、ドロップダウンリストボックスから[デバッグの構成]を選択します。構成の作成、管理、および実行の画面で、左側のツリービューのRenesas GDB Hardware Debuggingの下のTest Debug Flatを強調表示します。このプロジェクトの名前(test)を選択します。
プロジェクトを選択すると、デバッグ構成の新しい画面が表示され、その個々のオプションがすべて表示されます。今回は、何も変更する必要はありません。
下部の[デバッグ]をクリックすると、デバッガが起動します。

図22:デバッガの起動(デバッグモードに入る)
デバッグパースペクティブが開くと、デバッガはプログラムカウンタをプログラムのエントリポイントであるリセットハンドラに設定します。
再開ボタンをクリックすると、プログラムはmain()関数内のhal_entry()の呼び出し行で次の停止まで実行されます。
再開ボタンをもう一度クリックすると、プログラムは実行を継続し、評価キットの青色、緑色、赤色のLED(LED 1~3)が1秒間隔で同時に点滅します。

図23:プログラムの実行
LEDの点滅が確認できましたでしょうか?

図24:LEDの点滅
プログラムの実行を停止するには、切り離しボタンをクリックしてプログラムの実行を停止し、デバイスをデバッガから切り離します。
メニューの「ファイル」→「終了」でe2 studioを終了します。
ここまで来れば、FSPライブラリなどで準備されているサンプルプログラムを実行することや、自分でプログラムコードを作成して実行することなどの環境が整ったことになります。

図25:終了画面
「第1回:開発ツール」は、以上です。マイコンの開発ツールについて、かなり詳しくお分かりいただけたと思います。
次回は「第2回:CPU(Cortex-M)」です。CPUの構成や仕組み、動作について学び、実際に演算のプログラムを作って実行させます。






