ESP-IDFでhello worldした
esp-wroom-32はarduino studioでしか使ったことがなかったので、esp-idfでやって見ようかなと思ったので、やった。
基本的に
ここを進めた。
その際に起こったことを記録する。
FLAGSのエラー
まず、環境変数に、FLAGS関連の環境変数が設定されていると、
make flash
で、
/Users/b1u3/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find crt1-sim.o: No such file or directory /Users/b1u3/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find _vectors.o: No such file or directory /Users/b1u3/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lsim /Users/b1u3/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lhandlers-sim /Users/b1u3/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lhal collect2: error: ld returned 1 exit status make[1]: *** [/Users/b1u3/esp/hello_world/build/bootloader/bootloader.elf] Error 1 make: *** [/Users/b1u3/esp/hello_world/build/bootloader/bootloader.bin] Error 2
これは、環境変数にFLAGS関係の変数(LDFLAGS, CPPFLAGS)が設定されていることに起因しているので、消すなり、実行時だけ追加されるようにするのがいい。project.mkに?=が使われてるからだと思う。
monitorのエラー
make monitor
すると、
MONITOR --- idf_monitor on /dev/cu.SLAB_USBtoUART 115200 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Traceback (most recent call last): File "/Users/b1u3/Develop/esp/esp-idf/tools/idf_monitor.py", line 743, in <module> main() File "/Users/b1u3/Develop/esp/esp-idf/tools/idf_monitor.py", line 668, in main monitor.main_loop() File "/Users/b1u3/Develop/esp/esp-idf/tools/idf_monitor.py", line 337, in main_loop self.handle_serial_input(data) File "/Users/b1u3/Develop/esp/esp-idf/tools/idf_monitor.py", line 391, in handle_serial_input if self._output_enabled and (self._force_line_print or self._line_matcher.match(line)): File "/Users/b1u3/Develop/esp/esp-idf/tools/idf_monitor.py", line 256, in match m = self._re.search(line) TypeError: cannot use a string pattern on a bytes-like object make: *** [monitor] Error 1
というエラーが出る。 v3.1.3だと、idf_monitor.pyにエラーが出る。これはgithubからupstreamの物をそのままコピペして、内容を入れ替えると回避できる。
回避すると動く