前回の記事では、S32 Design Studio(以下S32DS)とReal-Time Driver(以下RTD)のインストールを行い、S32 MCUの評価、開発に必要な下準備を行いました。
今回はその次のステップとして、実際にRTDのサンプルプロジェクトを開き、コード生成、ビルド、デバッグを行うことで、S32K3開発の「最初の一歩」を体験してみます。
この記事のゴール:S32K3 FRDMボード上でRTD内のサンプルをデバッグし、LEDを点滅させる
(所要時間:15分)
ハードウェア:
今回の記事では、S32K3の新しいFRDM Automotiveボード、FRDM-A-S32K344を使います。S32K344は、1xLockStep Arm Cortex-M7 マイクロコントローラで、モーター制御、ボディ制御等、幅広いアプリケーションで採用されています。
ソフトウェア:
事前に、前回の記事、で紹介したS32DSとRTDがインストールされていることを確認してください。
S32DSを起動し、新しいプロジェクトを作成しましょう。その後、以下の手順に沿って、RTDサンプルを開きます。
左下の「S32DS Project from Example」を開き、「S32K3XX Real-Time Drivers…」をクリックすると、ADC、CAN、GPT、I2C、PWM…etc.等のサンプルが確認できます。
今回は、例として「Dio Example」を使ってみましょう。「Dio Example」をクリックし、その中からさらに「Dio_Example_S32K344」を選択。右側に、Exampleの詳細が記載されているため、中身を確認し、「Finish」をクリック。
左の「Project Explorer」でmain.cへと移動し、クリックすると、ソースコードを開くことができる。
右下およびコード上にいくつかの「Warning」が表示されますが、この警告は、ソースコードそのもののミスではなく、S32DSがRTD関連のヘッダファイルを探す場所を正しく見つけられていない場合に表示されます。
Warningを解消するために、まずは画面左のProject Explorerから、「example_Dio.mex」をクリックします。「example_Dio.mex」は、MCUの設定(例:DIO = Digital I/O)、Pins / Clock / Peripheral設定、コード生成設定情報を保存しているファイルです。
Configuration Toolの画面が表示されるので、中央上の「Update Code」をクリックし、エラーを解消するためにコードを更新します。アップデートが完了すると、右下の「Problem」セクションからWarningメッセージが消えます。
以下のボタンをクリックし、元の画面に戻ります。
Project Explorerの「generate」のセクションで、各ソフトウェアとそれぞれのヘッダーを確認することができます。
最後に、画面左上のビルドボタンをクリックします。画面右下に「Build Finished」のコメントともにエラーが無いことも確認できるので、先ほどのWarningも解消されたことが確認できます。
ここまでで、RTDサンプルプロジェクトを開き、.mexファイルからコードを生成し、ビルドが正常に完了するところまで確認できました。
FRDM-A-S32K344を付属のUSB Type-Cケーブルを使って、お使いのPCにつないでください。正常につながると、ボード上のLEDが光った状態になります。
S32DSの画面に戻り、画面中央上のデバッグアイコン(虫のロゴ)をクリックし、デバッグを開始しましょう。クリックすると、デバッガのPE Microを起動させるメッセージが出てくるので、起動を許可し、画面の指示に沿ってデバッグを進めてください。
PE Micro は、デバッグ用の接続ドライバ(ツール)で、S32DSがPCとボードをつなぐために、PE Microというデバッガを使っています。
現在の環境では、
S32DS(IDE)➡ PE Micro(デバッグツール) ➡ FRDM-A-S32K344
という経路で通信しています。
そして、デバッグ実行後、Consoleに「Target has been RESET」「DAP successfully powered up」などのログが表示され、さらにDebugビューにスレッド情報(Thread #1)が表示されていれば、ターゲットボードへの接続およびプログラム転送は正常に完了しています。
では、実際にFRDM-A-S32K344ボード上で確認しましょう。
画面中央のツールバーにある再生マーク ▶ “Resume/Run”をクリックすると、プログラム実行がスタートします。
尚、各サンプルプログラムはデバッグを行いやすいように、main()の先頭にブレイクポイントを貼っています。
「数秒だけLEDが光る」(下図の黄色で囲ったLED)動作が確認できれば、今回のデバッグは成功です。
今回のDim Exampleのコードでは、“while (count++ < 10)”と指示されており、
つまり、最大10回LEDが光って動作が完了する、という中身になっているため、LEDが数秒だけ動作して止まるのが正常な挙動です。
ここまでで、RTDサンプルプロジェクトのビルドからデバッグ、そして実機ボード上での動作確認(LEDの点灯・消灯)までを一通り体験することができました。
今回の一連の流れは、S32K3を用いた開発の基本ステップとなります。
コード生成 → ビルド → デバッグ → 動作確認
実際にボード上で動作を確認することで、ソフトウェアがハードウェアを制御していることをより直感的に理解できたのではないでしょうか。
この基本ステップをベースに、ご自身のアプリケーション開発へと発展させてみてください。
=========================
本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。
お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。
(既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)
今回の記事では、S32K3 Real-Time Driver内のLED点滅のサンプルプロジェクトを用いて、コード生成、ビルド、デバッグを行うことで、S32K3開発の「最初の一歩」を体験します。
(所要時間:15分)