エビデイエビナイ電子工作

やったことの記録

LPCマイコンでARM開発 #1 ~開発環境構築編~

秋月でLPCマイコンを購入してみました。


f:id:Rappy:20190126215948j:plain
LPC1114FN28/102

LPCマイコンは、NXPセミコンダクターズ社(元PHILIPS半導体事業) が販売している32bitマイコンで、ARMアーキテクチャを採用しています。

今回購入した LPC1114FN28/102 は、ARMマイコンでは珍しいDIPパッケージなので、ブレッドボードに挿して容易に実験することが出来ます。


開発環境を構築する

さて、早速マイコンを動かしてみようと思うのですが、まずは開発環境を整える必要があります。

今回は NXPセミコンダクターズが推奨している統合開発環境 MCUXpresso IDE を使ってみます。


f:id:Rappy:20190126235243p:plain
MCUXpresso IDEをダウンロードする

まずはこちらから MCUXpresso IDE をダウンロードします。

製品をダウンロードするには事前にユーザ登録とログインをしておく必要があります。


f:id:Rappy:20190127000010p:plain
ウィザードに従ってインストールする

ダウンロードした実行ファイルを起動し、ウィザードに従ってインストールを進めていきます。 これでインストールは完了です。


新規プロジェクトを作る

MCUXpresso IDEを立ち上げ、画面左下のクイックスタートから New project... をクリックします。


f:id:Rappy:20190127000641p:plain
ターゲットデバイスにLPC1114FN/102を選択

ここでは開発に使用するマイコンボードを選択することができますが、今回はマイコン単体で開発していくので、左下の Preinstalled MCUs から LPC1114FN/102 を選択します。


f:id:Rappy:20190127001052p:plain
C Projectを選択

C言語で開発するので C Project を選択します。


f:id:Rappy:20190127001146p:plain
プロジェクト名を設定

プロジェクト名を決めます。適当に test としておき、次に進みます。


f:id:Rappy:20190127003242p:plain
CMSISライブラリをインポート

次に、CMSISライブラリをインポートします。CMSISライブラリでは、GPIOなどのペリフェラルのアドレスや割り込みの種類、割り込みハンドラ名などがマクロで定義されています。そのため、利用することで可読性が高く保守しやすいプログラムを書くことができます。

Import... をクリックし、Archiveの項目でCMSISライブラリの場所を指定します。LPC1114 のCMSISは、

nxp/MCUXpressoIDE_xxx/ide/plugins/com.nxp.mcuxpresso.tools.wizards_xxx/Examples/Legacy/NXP/LPC1000/LPC11xx/

にあります。


f:id:Rappy:20190127004037p:plain
CMSIS_CORE_LPC11xxを選択

インポートしたら CMSIS Core library の項目を CMSIS_CORE_LPC11xx に設定し、次に進みます。


f:id:Rappy:20190127004745p:plain
CMSIS_DSPLIB_CM0を選択

次の画面でも、同じくプルダウンメニューから CMSIS_DSPLIB_CM0 を選択します。

Finishを押してプロジェクト完成です!


CMSISライブラリの編集とプロジェクトの設定


f:id:Rappy:20190127005214p:plain
エクスプローラからsystem_LPC11xx.cを開く

インポートしたCMSISを編集します。

画面左のエクスプローラで CMSIS_CORE_LPC11xx の src フォルダから system_LPC11xx.c を開きます。

128行目くらいにある

#define SYSPLLCLKSEL_Val  0x00000001

となっている部分を、

#define SYSPLLCLKSEL_Val  0x00000000

に書き換えます。

デフォルトではクロック源として外部発振器の接続を想定しています。ですが今回はクロック源に内部RCオシレータを使用するため、設定値を変更する必要があります。

次は、ビルド時に書き込み用のhexファイルを生成するように設定します。


f:id:Rappy:20190127005645p:plain
プロジェクト名を右クリック、プロパティを開く

エクスプローラから先ほど設定したプロジェクト名を右クリック。プロパティを開きます。


f:id:Rappy:20190127010026p:plain
コマンドを編集する

ウィンドウ左のメニューから C/C++ Build → Settings → Build Stepsタブまで進み、Post-build stepsのコマンドを、下記のように編集します。

arm-none-eabi-size "${BuildArtifactFileName}"
arm-none-eabi-objcopy -O ihex "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.hex"
# checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"

これでビルド時にhexファイルが生成されるようになりました。確認してみましょう。


f:id:Rappy:20190127013519p:plain
Debugフォルダ内にtest.hexが生成されている

クイックスタートからプロジェクトをビルドすると、エクスプローラにDebugフォルダが表示されます。

フォルダ内に [プロジェクト名].hex というファイルが生成されいれば成功です。


おわりに

今回は、環境構築編ということで IDEのインストールからプロジェクトの設定までやってみました。 次回は書き込み編として、実際に簡単なプログラムをマイコンに書き込んでみようと思います。

また、はてブロ初の投稿でしたが、このブログでは電子工作を中心に自分がやったこと学んだことをマイペースに更新していこうと思います。未熟なスキルと拙い文章ですがぜひ今後もよろしくお願いします。


twitter.com