ESP8266 Arduinoでmake

Arduinoのスケッチをmakeコマンドでコンパイルしたいという欲求は昔からあり、sudar/Arduino-Makefileなどというものがあるのも知っているのだが、ちょっと調べて

  • Linux前提っぽい
  • Makefileにincludeさせて使うものらしい
  • Arduino非純正CPU (ESP8266とか)に対応しているか不明

というような感じなので、手を出さずにいた。

HSES-LCD24で日本語の表示をさせようと検討すると、やっぱり fontxファイルをバイナリーのままコードに埋め込みたくなった。Arduino-IDEでコンパイルさせていると、埋め込み先のsectionがわからない。ということでgcc等のコマンドが見えるmakeコマンドでのコンパイルに挑戦してみることにした。

まずは esp8266 arduino makefileで検索し、thunderace/Esp8266-Arduino-Makefile: Makefile to build arduino code for ESP8266 under linux (tested on debian X64)を発見。この中の esp8266Arduino.mkをコピーし、サンプルのMakefileを書いてみる。コンパイルするスケッチは、HelloWorld.ino. cygwin上でmakeコマンドを実行するとエラーがいっぱい。まず、パスの指定をMakefile側に追加、今度はライブラリーのインクルードパスの自動生成に失敗しているようなので、これもMakefile側で追加、 esp8266Arduino.mkは1か所だけコメントアウトして、コンパイルとプログラムが書き込めるようになった。めでたしめでたし。

出来上がったMakefileは、こんな感じ

使用しているコンパイラ等のツールが非cygwinなので、cygwinのパスと非cygwinのパスが混じっているのが気持ち悪い、が我慢する。LinuxやMacでやれば楽なんだろうな。 Windowsでbashが使えるようになれば楽になるかしら?って、メーカー提供のSDKがbash対応しなければいけないわけだから望みは薄い。

修正した esp8266Arduino.mkはこちら. コンパイルしたスケッチ HelloWorld.inoはこれ。Arduino-IDEでもコンパイルできるままなのも良い。

makeコマンドだから、当然更新があったファイルしかコンパイルしないので、2回目以降のコンパイルはArduino-IDEよりはるかに速い。コンパイルエラーもわかりやすい。Arduinoである程度規模以上のプログラムを開発する必要がある人にはお勧めします。

さぁ、次は日本語表示。できるかな?

Leave a Reply

メールアドレスが公開されることはありません。