ラベル TOPPERS/ASP(Arduino UNO R4版) の投稿を表示しています。 すべての投稿を表示
ラベル TOPPERS/ASP(Arduino UNO R4版) の投稿を表示しています。 すべての投稿を表示

2024年2月18日日曜日

TOPPERS/ASP - Arduino UNO R4版 その7

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


プログラムの転送とデバッグ

ターゲットの「Arduino UNO R4」とデバッガの「E2 emulator Lite」を前々回作成したケーブルで接続します。

こんな感じ。

「Arduino UNO R4」と「E2 emulator Lite」の接続例


これからTOPPERS/ASPのサンプルプログラムを動かす際には、動作確認のためにどうしてもシリアルポートが必要です。

そこで、以下のような市販のUSB/シリアル通信変換ケーブルを用意します。

市販のUSB/シリアル通信変換ケーブル


作成したケーブルからシリアル通信用のTXD)、RXD)、GND)の線を出しておきましたよね?

それらを以下のように接続します。

作成したケーブルからのシリアル通信用の線


USB/シリアル通信変換ケーブル側の配線は、上からTXD、RXD、GND順番でこんな感じです。

USB/シリアル通信変換ケーブル側の配線


続いて、このUSB/シリアル通信変換ケーブルをパソコンに繋いでみましょう。

パソコン上でデバイスマネージャーを開きます。

ポート(COMとLPT)のサブカテゴリーとして「USB Serial Port」というポートが追加されているはずです。

(私のパソコンでは、「COM15」として認識されていますね。)

このポート番号、覚えておいて下さい。

デバイスマネージャー


ここで「E2 emulator Lite」とパソコン、「Arduino UNO R4」とパソコンをそれぞれUSBケーブルで接続しましょう。

厄介なのは「E2 emulator Lite」がUSB mini-B、「Arduino UNO R4」がUSB Type-Cと、異なるケーブルが必要なことです。

それぞれを接続すると、ご覧の通り通電します。

「E2 emulator Lite」とパソコン、「Arduino UNO R4」とパソコンをそれぞれ接続


次に「TeraTerm」をご用意ください。

インストールしていない方は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「TeraTermの導入」の項目を参考にしてください。

もちろん、シリアル通信のターミナルであれば、他のものもお使いいただけます。

今回のTOPPERS/ASPのサンプルプログラムは、シリアル通信のメッセージを出力しますので、先程「USB Serial Port」として認識されたシリアルポート番号でターミナルを立ち上げておきましょう。

設定は、こんな感じです。

ボーレートは「9600」です。

(私のパソコンは、USB/シリアル通信変換ケーブルをCOM15として認識していました。)

TeraTerm - シリアルポートの設定


さて、「e2 Studio」に戻りましょう。

まだサンプルプログラムをビルドしていない場合は、画面右側の「ビルド・ターゲット」タブの中、「OBJ」ディレクトリ直下の「all」をダブルクリックして、ビルドを完了させましょう。

<追記>

この記事を書いている過程で、雛形プロジェクトの作成時に「Arduino UNO R4」のクロック設定の作業を忘れていることに気が付きました。

大変お手数ですが「TOPPERS/ASP - Arduino UNO R4版 その3~クロックの設定」を追記しましたので、こちらに戻ってクロック設定を行ってから、再び生成された雛形プロジェクトのソースコードをTOPPERS/ASPのディレクトリにコピーしてください。

「e2 Studio」 - 1


次にデバッガの設定を行います。

画面上部にある緑色の「虫マーク」。

その脇に「▼」ボタンがありますので、それをクリック。

そこで現れた「デバッグの構成」という項目をクリックしましょう。

「e2 Studio」 - 2


すると以下のようなダイアログが現れます。

左側のリストから「Renesas GDB Hardware Debugging」という項目をダブルクリックしてください。

「デバッグ構成」ダイアログ - 1


ダイアログ右側がガラリと変わりましたね?

「デバッグ構成」ダイアログ - 2


この「デバッグ構成」ダイアログの各項目に対し、以下の設定を入力します。


名前:<任意の構成名(ここでは「OBJ」)>

プロジェクト:<プロジェクト名(ここでは「asp_1.9.2」)>

C/C++アプリケーション:C:\cygwin64\home\<ユーザ名>\asp_1.9.2\OBJ\asp.exe

Build Configuration:Use Active

「自動ビルドを無効にする」を選択

「デバッグ構成」ダイアログ - 3


お次は現在の「メイン」タブから「Debugger」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 4


新しく現れた各項目に対し、以下の設定を入力します。


Debug hardware:E2 Lite (ARM)

Target Device:R7FA4M1AB

「デバッグ構成」ダイアログ - 5


さて、お次は現在の「GDB  Settings」タブから「Connection Settings」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 6


たくさん設定項目があるんですが、ここでは「エミュレーターから電源供給」の項目だけは忘れずに「いいえ」にしておいて下さい。

「デバッグ構成」ダイアログ - 7


最後にもう一丁!

現在の「Debugger」タブから「共通」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 8


エンコードの設定で「その他」に選択し、文字コードを「UTF-8」に設定してあげて下さい。

これをしないと、デバッガーからの日本語メッセージが文字化けしてしまいます。

これでよ~やく、ダイアログ下部の「適用」ボタンと「デバッグ」ボタンを順にクリックすることで、デバッガーが起動しプログラムの転送が開始されます。

「デバッグ構成」ダイアログ - 9


プログラムの転送が終わると、以下のようにスタートアップ・アドレスでプログラムが止まった状態になります。

「e2 Studio」 - 3


ここからプログラムを続行してみましょう。

画面上部の「」ボタンをクリックすると、プログラムが続行されます。

「e2 Studio」 - 4


はい、ここで長らく放置していた「TeraTerm」を見てみましょう。

以下のように、サンプルプログラムが動作していることが確認できます。

TeraTermの表示


プログラムを停止する場合は、画面上部の「」ボタンをクリックします。

停止させてみましょう。

「e2 Studio」 - 5


ついでに「e2 studio」の表示を「デバッグモード」から「C/C++モード」に変更します。

「e2 studio」の画面右上のボタンで切り替えができます。「C/C++」ボタンをクリックします。

「e2 Studio」 - 6


ブレークポイントを仕掛けましょう。

画面右の「プロジェクト・エクスプローラー」のソースコードリストの中から「sample1.c」をダブルクリックし、ソースコードを表示します。

このソースコードの丁度中盤くらい、メインタスクの始めに仕掛けましょうか。

ブレークポイントは、ソースコードビューの左端をダブルクリックすることにより丸が表示され、セットすることができます。

(解除したい場合もダブルクリックします。丸が消えます。)

「e2 Studio」 - 7


これで本当にブレークポイントがかかるのか、試してみましょう。

画面上部にある緑色の「虫マーク」。

その脇に「▼」ボタンがありますので、それをクリック。

すると今後は、さっき色々と入力した「OBJ」のデバッグ設定が登録されていますので、これをクリックすると、デバッガが起動します。

「e2 Studio」 - 8


しばらくして、プログラムの転送と書き込みが完了すると、前と同じようにスタートアップ・アドレスでプログラムが停止しますので、画面上部の「」ボタンをクリックして、プログラムを続行させます。

「e2 Studio」 - 9


程なくして、以下のように正しくブレークポイントを仕掛けた位置でプログラムが停止するはずです。

ここからは、「F6」キーでステップオーバー、「F5」キーでステップインなど、おなじみの操作が使用できます。

因みに、ステップオーバーやステップインなどを行っている時に命令が飛んでしまったり前後したりする場合は、最適化のせいです。

デバッグ時は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「サンプルプログラムのデバッグ」の項目を参考に最適化を解除しましょう。

「e2 Studio」 - 10


さてさて、これでTOPPERS/ASPをビルドして動かすところまで、一通りの説明ができたと思います。

次回は、応用編。

このTOPPERS/ASPとRenesas社純正のライブラリパッケージ「Flexible Software Package (FSP)」を組み合わせて使う方法について書いていけたらなぁ…と思います。

豊富なライブラリが使えるようになれば、電子工作の幅が広がりますよ!


<続く>

2024年2月11日日曜日

TOPPERS/ASP - Arduino UNO R4版 その6

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


プロジェクトの作成

前々回までの作業で、開発環境をインストールし、Arduino UNO R4版TOPPERS/ASPのソースコードをダウンロードし、それに雛形プロジェクトから抜き出したソースコードを補填し、それをCygwinターミナルでビルドするまでを行いました。

そこで、今回は「e2 studio」上でTOPPERS/ASPのビルドが行えるようにプロジェクトを作成しましょう。

まずは「e2 studio」を立ち上げて下さい。

そして、画面左上のメニューから「ファイル」→「新規」→「プロジェクト」の順にクリックしていきましょう。

「e2 studio」 - 1


以下のダイアログが表示されたら、リストボックスの中の「c/c++」ディレクトリのアイコンをクリックしてください。

「新規プロジェクト」ダイアログ - 1


すると「c/c++」ディレクトリの以下の項目が展開されます。

今度は「Makefile Project with Existing Code」の項目をクリックして選択し、ダイアログ下部の「次へ」ボタンをクリックします。

「新規プロジェクト」ダイアログ - 2


ダイアログが以下の表示に切り替わったら必要事項を入力します。

ここでは、以下の通り。


プロジェクト名:<任意のプロジェクト名(ここでは「asp_1.9.2」)>

既存のコードの場所:C:\cygwin64\home\<ユーザ名>\asp_1.9.2

インデクサー設定に対するtoolchain:<なし>


入力が終わったら「終了」ボタンをクリックします。

「新規プロジェクト」ダイアログ - 3


その後は元の画面に戻ります。

もし「e2studio」が「FSP Configuration」モードになっている場合は「C/C++」モードに切り替えましょう。

この切り替えは、画面右上の「C/C++」ボタンで行います。

クリックしてみましょう。

「e2 studio」 - 2


左側の「プロジェクト・エクスプローラー」というタブの中には、元からあった「Hinagata」プロジェクトのディレクトリと、先程入力したプロジェクト名(つまりは「asp_1.9.2」)のディレクトリが追加され、表示されているはずです。

「e2 studio」 - 3


次に、画面上部のメニューから「ウィンドウ」→「ビューの表示」→「ビルドターゲット」の順にクリックしていきましょう。

「e2 studio」 - 4


これにより、画面下右側のウィンドウに「ビルドターゲット」タブが追加されたはずです。

「e2 studio」 - 5


以降の作業は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「プロジェクトのクリーンとビルド」の項目を参考に続行してください。

この「e2 studio」は、Eclipseベースなので、上記のページと同じ方法で作業を続行できます、

但し、文中の「Makeターゲット」タブは、先程表示させた「ビルドターゲット」タブに置き換えてお読みください。

名称は違いますが、これらのタブは同じ働きをするものです。

「e2 studio」の画面右側に以下のようなアイコンが表示されて、これらをダブルクリックすることによりビルドができるまでを確認してください。

「e2 studio」 - 6


「realclean」や「all」など、アイコンをダブルクリックすることにより、その操作に応じたメッセージが画面下部の「コンソール」タブ内に表示されるはずです。

「e2 studio」 - 7


次回はいよいよ実機へプログラムを転送して、実行/デバッグを行っていきます!


<続く>

2024年1月20日土曜日

TOPPERS/ASP - Arduino UNO R4版 その5

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


デバッガ⇔ターゲット・ケーブルの作成

今回は、デバッガとしてRenesas純正の「E2 emulator Lite」を使用しますが、これを「Arduino UNO R4」に接続するためのケーブルが必要になります。

「E2 emulator Lite」と「Arduino UNO R4」を接続した例は、以下のようになります。

「E2 emulator Lite」と「Arduino UNO R4」の接続例


「E2 emulator Lite」を購入するとフラットケーブルが同梱されています。

しかし、これは2.54mピッチの20ピン用で、1.27mmピッチの10ピンヘッダの「Arduino UNO R4」のデバッグ端子には、どう頑張っても接続できません。

ですので、面倒でもケーブルの作成が必要です。

早速、部材集めです!

電子部品の購入は、やっぱりボクらの強い見方、秋月電子通商さんをオススメします!

お持ちでない方は、デバッガの「E2 emulator Lite」も一緒に導入できちゃうので、大変便利です。

さて、ケーブルに必要な部品は以下の通りです。


2×10(20P)両端コネクタ付IDCリボンケーブル × 1本

2×5(10P)両端コネクタ付IDCリボンケーブル × 1本

ピッチ変換基板 2×5⇔1×10 × 2枚

ピンヘッダ 1.27mm 2×5(10P) × 2個

ブレッドボード・ジャンパーワイヤ(オス-オス) × 1セット


この他、ワイヤーが必要ですが、適当に余っている物をご使用ください。

余りがない場合は、こちらのような「AWG24」くらいの太さの頑丈なものを推奨します。

これらの部品を使用した完成イメージは、以下の通り。

ケーブル完成イメージ


さて、これから配線をしていくのですが、各信号線の詳細を確認しておきましょう。

今回「E2 emulator Lite」と「Arduino UNO R4」を接続するのは、SWD(Serial Wire Debug)という方式です。

ARM系のマイコンと、それに対応するデバッガであれば、各社ほぼ共通の接続方式であり、信号線が少ないのが特徴です。

殆どの場合、以下の信号線をマイコンとデバッガのそれぞれに接続するだけで動作します。

信号名 詳細
VCC 電源
SWDIO SWD通信用データ
GND グランド
SWCLK SWD通信用クロック
RESET リセット


本当にこれらの信号線のピンが存在するのか?一応コネクタのピン配置を確認しておきましょう。

まずは「E2 emulator Lite」から。

以下の図の(b)のコネクタを使用します。

「E2 emulator Lite」側のコネクタ


そして「E2 emulator Lite」のマニュアルによると、このコネクタのピン配置は以下の通りとなります。

上記の各種信号線が、ちゃんと存在していることが確認できます。

「E2 emulator Lite」側のコネクタのピン配置 - 1


上記の内「RES」は「RESET」と同義です。

また、上記の内「UCON」という信号は、ターゲット側(つまり「Arduino UNO R4」)でGNDにおちているか否かで、接続の有無を検出する信号であるため、配線が必要です。


次に「Arduino UNO R4」です。

「Arduino UNO R4」の回路図の「SWD CONNECTOR」において、こちらにも各種信号線が存在していますね。

「Arduino UNO R4」の回路図 - 1


基本的には、同じ名前の信号がそれぞれ接触するようなケーブルの配線をすれば良いのですが、今回はひと工夫加えました。

「Arduino UNO R4」の回路図をもう一度ご覧ください。

P502_SCI1_RXD」と「P501_SCI1_TXD」という信号も「SWD CONNECTOR」に配線されていますね?

「Arduino UNO R4」の回路図 - 2


これらの信号はシリアル通信の信号です。

TOPPERS/ASPを動作させる際に、デバッグのためにシリアル通信を使用しますが、そのための信号をここから取れそうです。

それを踏まえた上で、作成するケーブルの具体的な配線は以下の通りとしました。

ケーブル配線図


シリアル通信の信号線「RXD」、「TXD」、「GND」の引き出し線は「ブレッドボード・ジャンパーワイヤ(オス-オス)」の片方のハウジング部分を切って使用しています。

ちょっと勿体ないけど…。

作成したケーブル(表)


裏から見ると、こんな感じ。

作成したケーブル(裏)


注意しなければいけないのは「E2 emulator Lite」側のピッチ変換基板において、ピンヘッダ10ピンなのに対して、これに刺すリボンケーブル20ピンであることです。

再度「E2 emulator Lite」のマニュアルのピン配置の表をご覧ください。

これによると、11ピン以降は何も信号線が配線されていないことが分かります。

つまり、後半の10ピンは未使用です。

「E2 emulator Lite」側のコネクタのピン配置 - 2


ですので「E2 emulator Lite」側のピッチ変換基板の10ピンのピンヘッダに、20ピンのリボンケーブルを刺す場合、以下のように1から10ピンまでを通電させるようにします。

10ピンのピンヘッダに20ピンのリボンケーブルを刺す様子


この作業は慎重に行ってください。

もしズレて刺したまま通電してしまうと、最悪の場合は「E2 emulator Lite」が壊れてしまうことがあります。

ですので、この部分はテスターなどを使用して配線を確認後、正しかったらグルーガンなどで固定してしまうと良いかもしれませんね。

鋭い方はお気付きかもしれませんが、単純にデバッガとターゲットを接続するだけなら、2×10(20P)両端コネクタ付IDCリボンケーブルが一本あれば、電気的には事足りるんです。

しかし、その場合は「Arduino UNO R4」のJDIGITALピンヘッダと幅が広い20ピンのリボンケーブルのピンソケットが干渉し、ピンソケットを物理的に削ったりしない限り刺さりません。

また、せっかくSWDピンヘッダに配線されているシリアル通信の信号線を無駄にしたくなかったため、それらを引き出すためにも、あえて今回のケーブル作成という手間をかけました。

引き出したシリアル通信ポートはデバッグ用途専用に使用することにして、正規のArduinoインターフェースの方に配線されているシリアル通信ポートはアプリケーション目的に使用しましょう。


さて、苦手な半田付けも無事終了。

組み込みエンジニアは、ハードウェアに触れる機会も多いため半田付けが得意な人もいるかもしれませんが、そういう人を本当に尊敬します。

私は、いくら努力してもダメ…。

(写真でバレる。キタナイでしょ?)

次回は、作成したケーブルでデバッガとターゲットを接続し、実際にTOPPERS/ASPを動かしていきましょう!

…と、その前に「e2 studio」でTOPPERS/ASP用のプロジェクトを作らなきゃだわ。


<続く>

2023年12月15日金曜日

TOPPERS/ASP - Arduino UNO R4版 その4

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


Cygwinターミナルでのビルド

雛形プロジェクトができましたので、ここで生成されたソースコードの一部を「TOPPERS/ASP Arduino UNO R4版」のソースコードを補完しましょう。

その前に「Cygwin」のインストールをお願いします。

このページ(TOPPERS/ASPのビルドからデバッグまで~Cygwinの導入)を参考にしてください。


次に「TOPPERS/ASP Arduino UNO R4版」のソースコードをゲットしちゃいましょう。

今、インストールしたばかりの「Cygwin」を起動させてください。

起動したターミナルで、以下のコマンドを使ってソースコードのクローンを行います。


$ git clone https://github.com/RyutaroMorita/asp_arduino_uno_r4_gcc.git

Cygwinターミナル - 1


上記のコマンドの結果、以下のパスにasp_arduino_uno_r4_gcc」というディレクトリが生成されたはずです。

エクスプローラを開いて、確認してみてください。


C:\cygwin64\home\<ユーザ名>

エクスプローラ - 1


この「asp_arduino_uno_r4_gcc」というディレクトリの名前を「asp_1.9.2」と改名してください。

(深い意味はないです…説明がしやすいだけ。)

エクスプローラ - 2


改名した「asp_1.9.2」ディレクトリの中身は、こんな風になっていると思います。

エクスプローラ - 3


この「asp_1.9.2」ディレクトリの下層、以下のパスを表示してみてください。


C:\cygwin64\home\<ユーザ名>\asp_1.9.2\target\arduino_uno_r4_gcc

ターゲットディレクトリのエクスプローラ - 1


ここには、TOPPERS/ASPカーネルのターゲットボード、すなわち、今回の場合は「Arduino UNO R4」依存のソースコードが格納されています。

このターゲットディレクトリのエクスプローラ、開いておいてくださいね。


さて、前回作成した雛形プロジェクトのディレクトリを別のエクスプローラで開きます。

記事のとおりに作業していただいた場合は、以下のパスに生成されています。


C:\Users\<ユーザ名>\e2_studio\workspace\Hinagata

エクスプローラ - 4


この中の以下の4つのディレクトリを予め開いておいたターゲットディレクトリのエクスプローラにコピーしてください。


●ra

●ra_cfg

●ra_gen

●src

エクスプローラ - 5


コピーが終わった時点で、ターゲットディレクトリのエクスプローラは、こんな感じの表示になりましたか?

ターゲットディレクトリのエクスプローラ - 2


この作業でコピーした雛形プロジェクトのディレクトリの中に入っているソースコードを補完することによって、不完全だった「TOPPERS/ASP Arduino UNO R4版」のソースコードは、完璧なものになりました。


試しに「Cygwin」ターミナルを使ってTOPPERS/ASPのビルドを通してみましょう。

「Cygwin」ターミナルを開いて、以下のコマンドでTOPPERS/ASPソースツリーの場所まで移動しましょう。


$ cd asp_1.9.2/


次にその直下の「OBJ」ディレクトリに移動します。


$ cd OBJ/


コンフィギュレーターのパーミッションを実行可能に設定します。


$ chmod 755 ../cfg/cfg/cfg.exe


ここまで、大丈夫ですか?

Cygwinターミナル - 2


そうしたら「OBJ」ディレクトリの中にあるコンフィグファイル(sample1.cfg)の情報を元に、OSに必要な定義を記したソースコード(「kernel_cfg.c」と「kernel_cfg.h」)を生成します。

これは、以下のコマンドで実行します。


$ make depend


以下のような表示にならずエラーが出力される場合は、残念ながらこれまでの作業に誤りがあります。

お手数ですが、最初からご確認を!

Cygwinターミナル - 3


ここまで上手くいったら、ホンチャンのビルド。

以下のコマンドを実行します。


$ make all


以下のように無事にビルドが通ったでしょうか?

Cygwinターミナル - 4


さて、ターミナルでのビルドが通ったら、次はIDE(統合開発環境)の「e2studio」を使ってデバッグできるようにしたいと思います…が。

その前に、デバッガの「E2 emulator Lite」とターゲットの「Arduino UNO R4」とを接続するためのケーブルを作らなければなりません。

というわけで、次回は半田付け作業です。


<続く>

BSD 4-Clause License

  名称:「四条項BSDライセンス」(BSD-4-clause) タイプ: ・コピーレフト…× ・ライセンス文の掲示…〇 ・コピーライト(著作権)の掲示…〇 ・その他…〇 原文: Copyright (c) <year>, <copyright holde...