Embedded Swiftを試す(ESP32-C6-DevKitC-1篇)
引き続いて、ESP32-C6-DevKitC-1 の esp32-led-strip-sdkサンプルを試してみる。
基本的なやり方は README.md にある通りだが、現状(2024年8月11日)のリポジトリそのままにはまだ少々不完全に見える挙動があったので記しておく。 回路
詳しく書かれていないが、WS2812の信号ピンをESP32-C6-DevKitC-1の0番ピンに接続する。
昨今で入手出来るものとしては秋月の同等機能のボードが良さそう(確認はしていませんので、読者の皆様の責任において試してください、また、ハンダづけが必要です)。 ビルド
STM32 同様にTOOLCHAINSをexportする
$ export TOOLCHAINS='org.swift.59202407011a'
ESP32のツール環境のパスを設定する
$ ~/esp/v5.3/esp-idf/export.sh
あとは(今までもだが)READMEの通り
$ idf.py set-target esp32c6
$ idf.py build
書き込み
$ idf.py flash
だけ…だが…LEDが点かない
エラーとの遭遇と根本解決をしていない回避策
シリアルモニタを立ち上げるとabort()してしまっている。要は正しく動いていない。(再現ログは末尾にerror_logとして記載。)
調べたところ、
code:swift
colors.insert(.lightRandom, at: 0)
を呼ぶときにErrorとなる。ランダムの中身が怪しそう。謎。そのうち調べたい。 code:swift
colors.insert(.white, at: 0)
などとすると、エラーなく、白く光る。
ということで、ESP32(中身はRISC-Vコア)でもSwiftが一応動きました。
以上!
環境
MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
macOS Monterey 12.7.5
Xcode13.2.1
おまけ:abort()の際に吐き出されたメモリダンプなど
これの読み方がよくわからん…。
code:error_log
abort() was called at PC 0x42007079 on core 0
Core 0 register dump:
MEPC : 0x40800876 RA : 0x408062fc SP : 0x40812660 GP : 0x4080d144
TP : 0x40812810 T0 : 0x37363534 T1 : 0x7271706f T2 : 0x33323130
S0/FP : 0x00000004 S1 : 0x408126c4 A0 : 0x4081268c A1 : 0x408126c2
A2 : 0x00000000 A3 : 0x408126b9 A4 : 0x00000001 A5 : 0x4080f000
A6 : 0x00000000 A7 : 0x76757473 S2 : 0x4202159e S3 : 0x40812768
S4 : 0x4080f000 S5 : 0x00000008 S6 : 0x4080ed6c S7 : 0x408131c0
S8 : 0x40813724 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x6e6d6c6b T4 : 0x6a696867 T5 : 0x66656463 T6 : 0x62613938
MSTATUS : 0x00001881 MTVEC : 0x40800001 MCAUSE : 0x00000007 MTVAL : 0x00000000
MHARTID : 0x00000000
Stack memory:
40812660: 0x40811668 0x4080f5a0 0x408126c0 0x4080b780 0x00000002 0x00000000 0x40810194 0x4080d850
40812680: 0x408126c4 0x4080d86c 0x408126c0 0x726f6261 0x20292874 0x20736177 0x6c6c6163 0x61206465
408126a0: 0x43502074 0x34783020 0x37303032 0x20393730 0x63206e6f 0x2065726f 0x00000030 0x40030000
408126c0: 0x00000030 0x30303234 0x39373037 0x42014f00 0x40812874 0x4080f000 0x00000008 0x4200707c
408126e0: 0x00001800 0x4080f000 0x00000008 0x42013c96 0x4202159e 0x00000000 0x00000000 0x00000000
40812700: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812720: 0x4202159e 0x00000000 0x00000008 0x42013dc8 0x4202159e 0x4080f628 0x4081275c 0x408131c0
40812740: 0x4080ed6c 0x00000008 0x00000000 0x00000000 0x4202159e 0x00000000 0x00000011 0x4200b188
40812760: 0xff0a0000 0xff0a0000 0x00000000 0x00000000 0x4202159e 0x00000000 0x00000000 0x4200aca2
40812780: 0x40813188 0x40813188 0x408127c4 0x408127ac 0x00000000 0x00000000 0x00000000 0x00000000
408127a0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x4201a000 0x4200abdc
408127c0: 0x00000000 0x00001388 0x00000001 0x00000000 0x00000000 0x00000000 0x00000000 0x40807274
408127e0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812800: 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0x00000150 0x40812600
40812820: 0x00000000 0x4080e49c 0x4080e49c 0x4081281c 0x4080e494 0x00000018 0x408136a8 0x408136a8
40812840: 0x4081281c 0x00000000 0x00000001 0x40811818 0x6e69616d 0x00000000 0x00000000 0x00000000
40812860: 0x40812810 0x00000001 0x00000001 0x00000000 0x00000000 0x00000058 0x4081012c 0x40810194
40812880: 0x408101fc 0x00000000 0x00000000 0x00000001 0x00000000 0x00000000 0x00000000 0x42006f0a
408128a0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
408128c0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
408128e0: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812900: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812920: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812940: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
40812960: 0x00000000 0x00000000 0x00000000 0x00000600 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
40812980: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
408129a0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
408129c0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
408129e0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
40812a00: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
40812a20: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
40812a40: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5