Arduino IDE と ESP32 DevKitC で ccache を使用してコンパイルを高速化する方法

未分類
Arduinoでccacheを使ってビルドを高速化!
Arduino IDE でビルドしたとき「コンパイル遅いなぁ」と思ったことはありませんか?今回は ccache というc/c++向けのコンパイル高速化ツールを使って、Arduino IDEでのビルドを高速化する方法をご紹介します。ccach

ほぼこちらの解説記事のままですが、初心者の私には少し難しい箇所がいくつかありましたので、追加の解説を加えた備忘録として投稿します。

詳細な設定方法や用語などについては参照元の記事をご確認ください。

 

動作環境

  • windows10 Pro 32bit
  • Arduino IDE 1.8.12
  • ESP32 DevKitC

 

参照元の記事では言及されていませんでしたが、スケッチ内容を1行など少しだけ変更した場合でも、ccahceを使用すれば以前のスケッチ内容を引き継いでコンパイルされるため、コンパイル速度を向上できました。

具体的には、私の場合は50行程度のスケッチを通常の方法でコンパイルした場合は約5分要していましたが、ccahceを使用した場合は約1分半でコンパイルが終了しました。

delayなどの数値を少し変更しただけで5分待たされるのはたまらないので、この方法は絶対に設定するべきだと思います。

1. ccahce のインストール

ccahceは参照元の記事の作者様がビルドしたバイナリをGitHubで配布していただいているため、そちらをそのまま利用させてもらいます。

https://github.com/nagayasu-shinya/ccache-win64/archive/master.zip

上記のURLを開くと自動で「ccache-win64-master.zip」というファイルがダウンロードされます。

 

ダウンロードしたzipを解凍すると上記のファイルが入っていますが、この中で利用するのは「ccache.exe」「zlib1.dll」のみになります。

「ccache.exe」と「zlib1.dll」を任意の名前のフォルダ(ここではccacheとします)に入れます。

 

ccacheフォルダを任意の場所に置きます。

場所はどこでも良いのですが、パスに日本語が入っている場所は避けたほうが無難です。

私は分かり易く「C:\Program Files」に置きました。

「ccache.exe」のパスはのちほど使用するので記録しておきます。

私と同じ場所に置いた場合は「C:\Program Files\ccache\ccache.exe」となります。

 

以上で、ccahceのインストールは完了です。

インストーラーでのインストールではなかったです。

2. Arduino IDE の事前準備

Arduino IDE を起動させて「ファイル」→「環境設定」を開きます。

 

赤枠の部分をクリックして「preferences.txt」があるフォルダを開きます。

 

Arduino IDE を終了させてから「preferences.txt」を任意のエディタで開きます。

このような内容が記載されているので、最後に

build.path=C:\Users\ユーザー名\AppData\Local\Temp\arduino_build

を追加します。

「ユーザー名」は適宜自分のユーザー名に変更してください。

このようになっていればOKです。

「preferences.txt」を上書きして閉じます。

 

以上で、Arduino IDE の事前準備は完了です。

3. Arduino IDE で ccache を使う設定

「platform.txt」という、Arduino IDE の設定ファイルを編集します。

参照元の記事では「Arduino UNO」や「Arduino Nano」を例に説明をされていますが、私が使用している「ESP32 DevKitC」でも同じ場所にありました。

 

C:\Program Files\Arduino\hardware\arduino\avr\platform.txt

上記のディレクトリにある「platform.txt」を任意のエディタで開きます。

中段ほどに以下の内容が記載されていると思います。

見つからない場合は「AVR compile patterns」などで検索してみてください。

# AVR compile patterns
# ——————–

## Compile c files
recipe.c.o.pattern=”{compiler.path}{compiler.c.cmd}” {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} “{source_file}” -o “{object_file}”

## Compile c++ files
recipe.cpp.o.pattern=”{compiler.path}{compiler.cpp.cmd}” {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} “{source_file}” -o “{object_file}”

これを以下の様に編集します。

具体的には「recipe.c.o.pattern=」と「”{compiler.path}」の間に先ほど記録した「ccache.exe」のパスを追加します。

パスの後にスペースを1つ付けるのを忘れないでください。

# AVR compile patterns
# ——————–

## Compile c files
recipe.c.o.pattern=C:\Program Files\ccache\ccache.exe “{compiler.path}{compiler.c.cmd}” {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} “{source_file}” -o “{object_file}”

## Compile c++ files
recipe.cpp.o.pattern=C:\Program Files\ccache\ccache.exe “{compiler.path}{compiler.cpp.cmd}” {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} “{source_file}” -o “{object_file}”

参照元の記事ではPCに「ccache.exe」のパスを追加しているため「ccache」のみの記載となっていますが、PCのパスを編集するのは少々手間な事と、編集を誤ると面倒なことになるので私の場合は上記の様に絶対パスを通しました。

 

以上で、Arduino IDE で ccache を使う設定は完了です。

ここまで設定して、参照元の記事の「Arduino IDE にてccacheが動いているか確認」を参考にして動作確認が出来ればすべての設定は完了です。

コメント

タイトルとURLをコピーしました