プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

ビュートローバーでARM CortexM3入門

ビュートローバーで組込みプログラミング入門

www.vstone.co.jp

ビュートローバーというキットがメルカリで安く出ていたので入手してARMに入門しました。
どうやらこのキットは学校で技術?の授業で使われているようで、授業が終わって興味のない人が出品しているようです。

ARMとはARM社によるマイコンでこれまで組込み機器(産業機器や家電)に多く使われてきたCPUですが、最近ではスマホやM1 Macにも使われています。
もちろんPCに使われているCPUとキットに使われているものでは性能は違うのですが。

組込みプログラミングは、今でも少ないメモリやさほど性能の高くないデバイスで使うことから独特の風習が残っていて、いわゆる富豪プログラミングと真逆の世界です。
しかしながら「トリリオンセンサー」などと呼ばれ世の中のあらゆるものがネットワークにつながるIOTの世界では需要があるとされています。

Hello ARM world

こちらのキットは教育用ということで、ビジュアルプログラミングが対応しています。
しかし、ここはあえて組込みプログラミング的にやっていこうと思います。
先のメーカーのサイトの情報を参考に、LPCXPressoという統合開発環境を導入し、C言語でプログラミングを目指します。
f:id:s51517765:20211016181009p:plain
f:id:s51517765:20211016181044p:plain

実は、このキットには「ビュートローバーH8」という兄弟キットがあります。
こちらについては付属のCD-Rに統合開発環境も含まれていますが、別物なので注意です。
H8はルネサスエレクトロニクスマイコンです。

www.nxp.com
こちらのサイトから統合開発環境をダウンロードしますが、アカウントの登録が必要になります。
キットのCD-Rにはサンプルコードは含まれていますが、LPCXPressoは含まれていませんのでこちらからダウンロードする必要があります。
f:id:s51517765:20211016182730p:plain
Downloadをクリックすると、アカウント作成を求められます。
アカウントを作成したのちLoginし再度このURLからDownloadに進みます。

各自のOSに合わせたインストーラを入手します。
f:id:s51517765:20211016182916p:plain

最新版のインストーラをダウンロードし、インストールします。
この中でデバイスドライバも同時にインストールが始まります。
f:id:s51517765:20211016183026p:plain

インストールが終わったら、統合開発環境を起動し左下のインポートプロジェクトからサンプルコードを開きます。
f:id:s51517765:20211016183242p:plain

サンプルコードはZipですが解凍しても、しなくても読み込めるようです。
ただし、解凍してから読み込んでもどうやら別の場所(後述)に展開されます。
f:id:s51517765:20211016183546p:plain

ちょっとだけ触ってみると、例えば関数を右クリック¥Open DeclarationまたはF3で関数定義にジャンプします。
f:id:s51517765:20211016183811p:plain

ビルド(コンパイル)を試すために、LEDの点灯時間を変更するという最小限の変更をしてみます。
変更点がないとビルドが動かないためです。

//ループ
while(1){
	LED(1);		//緑のLED点灯
	Wait(2000);	//1000msec待つ
	LED(2);		//オレンジのLED点灯
	Wait(1000);	//1000msec待つ
}

左下のメニューからBuild 'xxxxxxx' [debug]をクリックします。
f:id:s51517765:20211016184519p:plain

ドキュメントフォルダ以下にあるLPCXPress_x_x_x_xxx¥workspace¥xxxxに展開されたソースとともに、Debugフォルダの中にバイナリ(.bin)ファイルがあります。
f:id:s51517765:20211016184722p:plain

セットの電源を切った状態で、プッシュボタンを押しながらUSBを接続します。
Windowsエクスプローラでフォルダが見えるので、この中にあるfirmware.binを削除してbinファイルをコピーします。
f:id:s51517765:20211016185039p:plain

USBを外して再度電源を入れるとLチカが始まります。

まとめ

CortexM3というマイコンを搭載したキットで組込みプログラミングに入門しました。
まずはサンプルコードを読むところから、この独特の世界を体験してみようと思います。