技術者に新たな扉を開く超低消費電力のマイクロコントローラ・モジュール【Part 2】Eclipseの設定を変更する
シリーズの関連記事を読む
要約
本稿では、豊富な機能を備える超低消費電力のマイクロコントローラ・モジュール「MAX32625PICO」(以下、PICO)の話題を取り上げます。具体的には、無償の統合開発環境(IDE:Integrated Development Environment)である「Eclipse」を使用して、同モジュールを対象としたプログラミングとデバッグを実施する方法を紹介します。多くのハイエンドのマイクロコントローラ・モジュールとは異なり、PICOはDIPに相当するサイズのフットプリントを採用しています。そのため、PICOを利用すれば、技術者だけでなくホビイストであってもプロトタイピングを容易に実施できます。前回(Part 1)は、Eclipseでプロジェクトを作成する方法について説明しました。それに続く今回は、PICOを対象としたプログラミング/デバッグを実施するために、Eclipseの設定をどのように変更すればよいのかを明らかにします。
PICOに対応させるためにEclipseを再設定する
Part 1で作成したプロジェクトは、PICOではなく、マイクロコントローラ「MAX32625」の評価用キット「MAX32625-EVKIT」を対象としたものでした。そのため、PICOを対象としたプログラミング/デバッグを実施できるようにするためには、同評価用キットのハードウェアについて記述したファイル(boards.c)をPICOのハードウェアに適合するように変更する必要があります。元のboards.cは以下のディレクトリに保存されています。
C:\Maxim\Firmware\MAX32625\Libraries\Boards\EvKit_V1\Source
稿末に示したリンクからダウンロードできるzipファイルには、PICOに対応するように改変したboards.cが含まれています。このファイルは、zipファイル内の「Boards」というディレクトリに保存されています。このディレクトリは、PICOの基板に実装されているコンポーネントについて記述したファイルの保存場所です。このディレクトリ全体を、メインのプログラムが保存されているディレクトリに図1のような形でコピーしてください。
PICOには、プログラムの実行を可能にするためのブートローダが実装されています。このブートローダにより、ドラッグ&ドロップの操作によってバイナリ・ファイルをロードできるようになっています。デフォルトの設定でMAX32625にプログラムをロードすると、Eclipseがこのブートローダを上書きします。「max32625.ld」という名前のリンカ・ファイルは、すべてのプログラムをバイナリ・ファイルにまとめてマイクロコントローラにロードするためのものです。また、このリンカ・ファイルはプログラムをロードするためのメモリ領域を決定します。そのため、ブートローダを上書きしないように改変する必要があります。ダウンロードしたzipファイルには、改変済みのリンカ・ファイルが含まれています。
このリンカ・ファイルを、図1と同様の形でプロジェクトのディレクトリにコピーしてください。
プロジェクトのディレクトリに保存されている「Makefile」は、コンパイラに対してリンカ・ファイルとBoardsディレクトリの場所を通知します。そのため、改変後のリンカ・ファイルと、Boardsディレクトリの新たな場所を通知するようにMakefileを編集する必要があります。そこで、zipファイルに含まれている新たなMakefileをプロジェクトのディレクトリにコピーし、元のファイルを上書きしてください。
ここまでの作業により、新たなBoardsディレクトリには、改変後のboard.c(元々は前掲のEvKit_V1\Sourceディレクトリに存在)が保存されていることになります。このファイルには、PICO上のLEDとプッシュボタンに関する接続情報が記載されています。図2に示したコードと図3に示したPICOの回路図を照らし合わせてみてください。そうすれば、両者がどのような形で関連づけられているのかをご理解いただけるでしょう。
boards.cには大幅な改変が加えられています。それにより、PICOから「Tera Term」のようなターミナル・プログラムにデータを出力できる状態になっています。このことは、デバッグのプロセスで非常に役に立ちます。この出力機能を使用する場合、図4に示すように、115200のボー・レートで通信を実施するようターミナル・プログラムを設定します。
ブートローダは、一部のペリフェラルを部分的に構成済みの状態にしておくことができるように実装されています。新たなboard.cには、初期化の際にそれらをリセットするためのコードが追加されています(図5)。
また、PICOで使用しているパワー・マネージメントICは評価用キットで使用しているものとは異なります。ただ、PICOのパワー・マネージメントICはデフォルトの構成で動作します。そのため、特にプログラミングを行う必要はありません。このような理由から、新たなboard.cではパワー・マネージメントICを構成するためのコードが削除されています。
最終的なプロジェクトのビルド
zipファイルの「Template」フォルダには、サンプルのプログラムとして「main.c」が用意されています。このプログラムを実行すると、PICOのプッシュボタンが押されたことが検出され、RGB(赤、緑、青)のLEDが点滅し、SPI(Serial Peripheral Interface)ポートを介して2バイトのデータが送出されます。その後、UART(Universal Asynchronous Receiver/Transmitter)を介して1バイトのデータが送出され、ターミナル・プログラムに対して「Hello from the PICO」という文字列が出力されます。このプログラムをプロジェクトのディレクトリにコピーし、元のプログラムを上書きしてください。main.cは、MAX32625のプロジェクトのディレクトリに含まれる多くのサンプル・プログラムからコードをコピーする形で作成されています(詳細については各コードに付加されたコメントを参照してください)。このような方法を採用すれば、最終的なアプリケーション・コードを迅速に作成できます。
ここで、図6に示したハンマーのシンボルをクリックしてください。それにより、プロジェクトのビルドが実行されます。なお、Eclipseで複数のプロジェクトを開いているケースもあるでしょう。その場合、カーソルをハンマーのシンボルに合わせると、ビルドしようとしているプロジェクトの名前が表示されます。
ビルドが完了したら、プロジェクトの「build」ディレクトリにバイナリ・ファイルが保存されているはずです(図7)。
この時点で、buildディレクトリをWindowsエクスプローラのクイックアクセスに追加しておくことをお勧めします。そうすれば、PICOを対象としたプログラミングの作業効率を高められます。buildディレクトリを右クリックして「クイック アクセスにピン留めする」を選択すると、Windowsエクスプローラのクイックアクセス(メニューの左側)に同ディレクトリが表示されるようになります。
バイナリ・ファイルのロード
Part 1で、プログラミング用のケーブルについて触れました。このケーブルは、PICOをデバッグする場合またはブートローダが上書きされておりデバイスを再プログラムする場合にだけ使用します。バイナリ・ファイルをロードする際には、プログラミング用のケーブルを使用する必要はありません。単にドラッグ&ドロップの操作を実施するだけで済みます。
ここで、PICO上のボタンを押しながらUSBポートに接続します。すると、PICOは「MAINTENANCE」というラベルが付加された新たなドライブとして表示されるはずです(図8)。
続いて、MAINTENANCEドライブに対してバイナリ・ファイルをドラッグ&ドロップします。バイナリ・ファイルをPICOにロードすると、MAINTENANCEドライブの表示が消えるはずです。そしてPICOが再起動し、プログラムが実行されます。
コード開発の初期段階では、想定どおりの動作が得られることはほとんどありません。そもそもプログラムを実行できない可能性もあります。そうした場合、PICO上のプログラムのデバッグを実施しなければなりません(コードのステップ実行やブレークポイントでの停止などが伴います)。その場合、プログラマPICO(プログラミング/デバッグの対象になるのとは異なるもう1つのPICO。詳細についてはPart 1を参照)をインターフェース用のソフトウェアによってプログラムし、デバッグの対象となるPICO(以下、ターゲットPICO)とPCの間を接続できるようにする必要があります。プログラマPICOは、ターゲットPICOに命令を発行してその動作を開始したり停止させたりします。このようにすることで、Eclipseによってレジスタの値を確認できるようになります。
プログラマPICOを構成するには、zipファイルの「DAPLink Interface Binary」ディレクトリに含まれるバイナリ・ファイルを使用します。プログラマPICOをUSBポートから取り外し、同PICO上のボタンを押したままUSBポートに再度挿入してください。すると、MAINTENANCEという名前のドライブが表示されるはずです。ここで、DAPLink Interface Binaryディレクトリに含まれるバイナリ・ファイル「max32625_max32625pico_if_crc.bin」をMAINTENANCEドライブに対してドラッグ&ドロップします。それにより、インターフェース用のソフトウェアでプログラマPICOを構成し、Eclipseによって対象とするコードをシングルステップで実行することが可能になります。ここまでの操作を終えると、MAINTENANCEドライブの表示が消えます。そしてプログラマPICOが再起動し、「DAPLINK」という名前のドライブが表示されます。この段階で、ターゲットPICOと区別するために、プログラマPICOにはプログラミング用のケーブルを接続しておくとよいでしょう。
コードのデバッグ方法
続いて、コードのデバッグ方法について具体的に説明します。デバッグを行う際には、プログラマPICO上の10ピン・プラグにプログラミング用のケーブルを接続します。その状態で、片側のポゴ・コネクタをターゲットPICOの背面のパッドに押し込み、位置合わせピンがPICO上の穴に確実に差し込まれていることを確認します(図9)。
Eclipseのデバッグ・アイコンにマウスを合わせ、当該プロジェクトがデバッグの対象になっていることを確認してください。図10に示すように、現在対象としているプロジェクトの名前が表示されるはずです。
ポゴ・コネクタをPICOに装着したまま、デバッグ・アイコンをクリックします。すると、プログラムがコンパイル/実行されてコードの先頭で一時停止します。キーボードの「F8」キーを押すと、デバッグのプロセスが開始します。
例えば、Eclipse上でコードの行番号をダブルクリックすればブレークポイントを設定できます。ブレークポイントの個所でプログラムが停止したら、「Window」→「Show View」→「Other…」を順に選択してください。そうすればレジスタの値を確認できます。
また、Eclipseのメニューで「Debug」フォルダを展開すると、必要な表示を選択することが可能です。
コードが適切に動作することを確認したら、プロジェクトを保存しておきましょう。保存済みのプロジェクトは、将来のプロジェクトのテンプレートとして使用することができます。
PICOに問題が発生した場合の復旧方法
PICOには、ブートローダがプリインストールされています。それにより、ドラッグ&ドロップを中心としたGUI(Graphical User Interface)ベースの作業によってプログラミングを実施できるようになっています。ただ、PICOを接続した際にMAINTENANCEドライブもDAPLINKドライブも表示されない場合、ブートローダが上書きされている可能性があります。その場合、以下の手順に従うことでブートローダを復旧させられます。
- プログラマPICOを接続し、DAPLINKドライブが生成されることを確認します。
- 問題の生じたターゲットPICOを接続します。
- プログラミング用のケーブルのスプリング・コネクタを、ターゲットPICOの背面にあるパッドに押し込んで、位置合わせピンがPICO上の穴に確実に差し込まれていることを確認します。
- 「Bootloader Binary」ディレクトリに移動し、ブートローダのファイル「max32625pico_bl.bin」をDAPLINKドライブにドラッグ&ドロップします。このバイナリ・ファイルは、ターゲットPICOではなく、プログラマPICOによって生成されたドライブにコピーされることに注意してください。プログラマPICOは、プログラミング用のケーブルを介してターゲットPICOにバイナリ・ファイルを転送するための経路として使用しています。
- 復旧したターゲットPICO上のボタンを押しながら接続すると、MAINTENANCEドライブが表示されるようになります。
- プログラマPICOのプラグを抜きます。
PICO上のファイルを消去する方法
PICOに含まれるファイルを完全に消去する必要がある場合、以下に示す手順に従って作業を行ってください。
- プログラマPICOをUSBポートに接続します。DAPLINKという名前のドライブが生成されます。
- 消去の対象とするターゲットPICOを、別のUSBポートに接続します。
- プログラミング用のケーブルのスプリング・コネクタを、消去の対象となるターゲットPICOの背面のパッドに押し込みます。
- zipファイルの「Erase File」ディレクトリに移動します。
- 「Erase File」ディレクトリに含まれる「erase.act」をDAPLINKドライブにドラッグ&ドロップします。プログラマPICOは、プログラミング用のケーブルを介してターゲットPICOのファイルを消去するための経路として使用しています。
- ここまでの作業が完了したらターゲットPICOのファイルが消去されているはずです。
まとめ
本稿では、EclipseによってPICOのプログラミング/デバッグを実施する方法を説明しました。その内容は、PICOに慣れ親しむための最初の一歩として位置づけられるでしょう。PICOは、低コストの優れたプラットフォームとして機能します。実際、非常に強力でありながら消費電力が極めて少ないArm®ベースのマイクロコントローラを使用して開発を進められます。本稿では、PICOに対応する開発ツールとしてEclipseを取り上げました。Eclipseを使用したプロジェクトでプログラミング/デバッグに成功したら、そのプロジェクトを保存しておきましょう。それをテンプレートとして使用すれば、最小限の労力で次の開発を実施することができます。PICOを採用すれば、扱いやすいDIP相当のサイズのピンを使用してプロトタイピングを実施することが可能になります。それに加えてEclipseを採用すれば、8ビットのマイクロコントローラの世界から脱却し、32ビットのマイクロコントローラの世界へと歩みを進められます。
ソフトウェアのファイルをダウンロードするには、https://www.analog.com/media/en/software/software-configuration/eclipse-configuration.zipをクリックしてください。
謝辞
本稿を執筆するに当たり、コンフィギュレーション・ファイルの大幅な改変作業を担ってくれたマイクロコントローラ・サポート・チームに感謝します。






