Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

posted at

updated at

arduino で ccache (ESP32, M5StickC等 編)

概要

arduinoでbuildしているとなんで?というぐらい遅い、、、というわけで、ccacheを有効にします。

https://nagayasu-shinya.com/arduino-ccacche/
などを参考にしましたが、ESP32で有効になりませんでしたので、有効の仕方です。

準備

$ brew update
$ brew install ccache

$ ls /usr/local/bin/ccache
$ mkdir /var/tmp/arduino

$ ccache -M 10G
$ ccache -s
cache directory                     /Users/xxxx/.ccache
primary config                      /Users/xxxx/.ccache/ccache.conf
secondary config      (readonly)    /usr/local/Cellar/ccache/3.7.7/etc/ccache.conf
cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             0
cache hit rate                      0.00 %
cleanups performed                     0
files in cache                         0
cache size                           0.0 kB
max cache size                      10.0 GB

設定編

  1. arduino を 立ち上げる
  2. file - preference で preference.txtをクリックして、ファイルを開く
  3. arduino を 閉じる
  4. 2のファイルにbuild.path=/var/tmp/arduinoを追加する
  5. /Users/xxxx/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/platform.txtなどを開く
## Compile c files
recipe.c.o.pattern=/usr/local/bin/ccache "{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" -DARDUINO_VARIANT="{build.variant}" {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Compile c++ files
recipe.cpp.o.pattern=/usr/local/bin/ccache "{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" -DARDUINO_VARIANT="{build.variant}" {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

のように、recipe.co.o.patternとrecipe.cpp.o.patternにccacheを追加する
$PATHに見つからないとか言われますので、とりあえず、絶対パスにしたら動きました。

$ /usr/local/bin/ccache -s
cache directory                     /Users/xxxx/.ccache
primary config                      /Users/xxx/.ccache/ccache.conf
secondary config      (readonly)    /usr/local/Cellar/ccache/3.7.7/etc/ccache.conf
stats updated                       Wed Jan 22 00:15:13 2020
cache hit (direct)                    11
cache hit (preprocessed)               0
cache miss                           140
cache hit rate                      7.28 %
called for preprocessing             250
cleanups performed                     0
files in cache                       420
cache size                         118.6 MB
max cache size                      10.0 GB

みたいに一応hitしているみたいです。

まだ遅いけど、改善はされました。

というか、preference.txtには、build.cache=onみたいにも書かれているのになぜフルビルドするんでしょうね・・・・

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?