LPCXpressoとLPC800-MAXでマイコンを学ぶ(その1:サンプルアプリを動かす)

ARMマイコンの勉強を始めました。とりあえず、LPC800-MAXというArduino互換(ぽい)のが出たようなので、スイッチサイエンスさんで購入。このボードはmbedにもなるボードなのですがそっちは置いておいて、ARMマイコンを理解するためにもLPCXpressoで動作するとこまで確認しました。

LPC800-MAXについてはこちら LPC800-MAX

LPCXpressoの導入

なにはともあれ、開発環境をインストールします。LPCXpressoの情報は「LPCマイコン情報」の公式にあります。ここを参考にしながら進めるといいでしょう。

NXPのユーザ登録とLPCXpressoダウンロード

ツールのダウンロードにはユーザ登録が必要になります。ここからユーザ登録を行い、ダウンロードページからLPCXpresso 6をダウンロードしてインストールします。

LPCXpressoのアクティベート

インストールが完了して起動すると、eclipseベースのIDEが起動します。最初の起動時にはメッセージが表示されるのでアクティベートを行う必要があります。なおアクティベートはアカウント単位ではなく、インストールベース単位なので、複数台使う場合もそれぞれでアクティベートが必要です。

f:id:tomo_watanabe:20131008231203p:plain

アクティベートはメッセージにあるように「Help」→「Activate LPCXpresso (Free Edition)」→「Create serial number and register...」でシリアルナンバーを取得します。

f:id:tomo_watanabe:20131008232331p:plain

シリアルナンバーをコピーしておき、OKを押すとIDE内もしくは外部ブラウザでサイトが開くので、登録したユーザでログインして、ペーストすることでアクティベートキーを取得できます。アクティベートキーを取得できたら、LCPXpressoのIDEでHelp」→「Activate LPCXpresso (Free Edition)」→「Enter Activation code...」に入力して完了です。アクティベートページがわからなくなってしまった場合はこちら

LPC800-MAXのサンプルプログラムを動かす

それでは、LPC800-MAXをUSB経由で接続して、サンプルプログラムを動作させてみましょう。このボードはmbedにもなるので、接続すると「MBED」というストレージがマウントされますが、今回は気にしません。

LPC800関連のライブラリのインポート

まずは関連するライブラリをワークスペースにインポートしておきます。左下のメニューから「import project(s)」を選択します。

f:id:tomo_watanabe:20131008233417p:plain

「Archive」で「Browse...」を選択し、「Exmaple」→「NXP」→「LPC800」で「LPC8xx_Libraries.zip」を選択してインポートします。すると下記のように3つのプロジェクトがインポートされます。これらはライブラリとして使うことになります。追記※CMSIS_DSPLIB_CM0は必ずしも必要ではないようです

f:id:tomo_watanabe:20131008233612p:plain

サンプルアプリのインポート

次にサンプルアプリをインポートします。同じように「import project(s)」から「NXP_LPC8xx_SampleCodeBundle.zip」を選択してインポートします。この時に「Blinky」のみを選択してインポートします。ワークスペースは以下のようになります。

f:id:tomo_watanabe:20131008234028p:plain

なにはともあれ動かす

とりあえず動かしてみましょう。左下のメニューから「Debug 'Blinky'」を選択するとビルドが行われ、ビルドが成功するとLPC800-MAXにビルドバイナリをダウンロード書込みにいきます。初回起動時には書き込み先の選択画面が出るので、選択してやるとボードへの書込みが行われます。

f:id:tomo_watanabe:20131008234727p:plain

無事書込みが完了するとデバッガが起動して、main()の入り口付近で止まります。

f:id:tomo_watanabe:20131008235014p:plain

この状態でコードデバッグできるのですが、とりあえず動かしてみたいので「Resume(F8)」でプログラムを走らせてしまいましょう。

f:id:tomo_watanabe:20131009000417p:plain

これで実機のLPC800-MAXではフルカラーのLEDが「R」 → 「B」 → 「G」と点滅を繰り返すサンプルプログラムが動作しているはずです。

f:id:tomo_watanabe:20131008224841j:plain

次回は、コードの中身を追いながらARM Cortext-M0+のアーキテクチャを理解してみたいと思います。