MacのCUIでARMプログラミング

福田です。

最近はARMマイコンをいじっております。
Macで開発するために、まずこんな環境を作りました。

  • IDEとして LPCXpresso をインストール
  • ARM マイコンへの書き込みのため FlashMagic をインストール

これで当面は満足していたのですが、マウスであっちへ行ったり、こっちへ行ったりと面倒で仕方ない。
CUIが大好きなワシとしてはコマンドラインでどうにかしたかったので、調べてみました。
目標とする環境はこんな構成です。

  • ソースファイルは vim で編集
  • ビルドは make で一発
  • 書き込みもコマンドラインで

ソースファイルは vim で編集

vim で編集というのは、なんちゅうこたあ無いです。どこでも誰でもやっていることなので、特筆すべきことは無し。

ビルドは make で一発

Makefile を書くとき、最初は LPCXpresso が指定しているパラメータ (-Dxxx や -mcpu=xxx) を Makefile に入れたりしていました。ただリンクするために cr_startup_lpc8xx.c, crp.c, mtb.c なども一緒に含める必要があったり、xxx.ld というマイコンのメモリマップを指定する必要があります。LPCXpresso で新規プロジェクトを作るとこれらも一緒にリンクするために、勝手に作ってくれますが、プロジェクトごとにそれができてしまいます。同じマイコンなら共通の場所にあるだけでいいはずなのですが。

そこで mbed の IDE からプロジェクトをエクスポートしたものを使うことにしました。
hideakitaiさんのこの記事を参考に。
Homebrewでmbedローカルビルド環境作成 – Qiita

  • まず mbed compiler で、自分が使うマイコン用にサンプルプログラムの mbed_blinky を作る。(今回は LPC1114)
  • サイドバーのマイプログラムにある mbed_blinkyを右クリックして「プログラムのエクスポート」を選択
  • “Export Toolchain” では “GCC (ARM Embedded) を選択

これでコンパイラ(gcc)を除くすべての必要ファイルたちがダウンロードされます。
hideakitaiさんの記事では brew で gcc を入れるように書いてありましたが、brew の Formula が古いのかエラーが出てしまったので、すでにインストールしてあった LPCXpresso のものを使うことにしました。

export PATH=/Applications/lpcxpresso_7.9.2_493/lpcxpresso/tools/bin:$PATH

これで、mbedからダウンロードしたファイルたちで make 一発でビルドできるようになりました。
ソースファイルを追加したいときは Makefile に追加すべし。

mbed の SDK では、GPIO や Serial などマイコンの違いをラップした色んなクラスが用意されていて便利ですな。
ただパフォーマンスをギリギリまでチューニングしたいときは、関数呼び出しなどが邪魔してしまうので、このあたりは適宜マクロやinline関数に変えていくとかすればいいんでは無いかと想います。

書き込みもコマンドラインで

これは簡単ですな。

  • brew install lpc21isp で書き込み用プログラムをインストール
  • lpc21isp -bin ~/Downloads/mbed_blinky_LPC1114.bin /dev/tty.usbserial-DJ004NX9 115200 12000 といった感じで、LPC1114に書き込むことができます。
fukuda
About fukuda (13 Articles)
ワシがシャチョーです。プログラミングでもMakeでも作るなあ楽しいでしょーが。ああ作りたい。いつでも作りたい。最近のお気に入りはこれ。https://youtu.be/mv38hq1UtTM

Leave a comment

Your email address will not be published.

*



Top