Maix Amigo を今さら発注したのでKendryte K210について調べる会
Raspberry Pi Pico や WioTerminalを買うついでにMaix Amigoを発注した(何故か入金判定がまだ来てない)ので、届く前にプロセッサであるK210について調べておく。
K210は組込み向けのAIプロセサとして営業していて、AI部分はともかくとして8MiBもの広大な内蔵SRAMと64Bit RISC-V IMAFDC
を搭載したリッチなプロセサであることが特徴となっている。
ハードウェア
正直ヤバいもんを買ってしまった感がもう出ている。。
K210 (SoC)
... 何も無いに等しい。Gitbook形式のデータシートと、C SDKがあるだけで、MaixduinoとかMaixPyのようなSDKはこれらを見たうえで更に手実装していると見られる。
素直にMaixPyとかで使えということだな。
Maix Amigo
ユーザが集めたリポジトリが一番充実している気がする。
一応、Sipeedのサイトにページがある。このサイトに回路図というか接続図がある。
何故かページではI2Cデバイスについてしか書いていないが、他のペリフェラルとしては、
- カメラはK210標準のDVPに接続(2台とも -- つまり、前後のカメラは同時には使えない)
- LCDは8bit parallelなSPIOに接続
Flash自体はUSB UARTから直接行える。この辺はESP32とかと一緒。
SDK / OS
これもなかなか微妙な情勢で、今のところはBaremetalなSDKに自前のスケジューラをくっつけるのが良いかなと思っている。。
公式(MaixDuino、MaixPy)
ハードウェアのリファレンスが事実上これしか無くてきつい。
C (newlib)
一応Core1側を起動するためのコードや割り込みコントローラのためのAPIもあるので、一番これが素直なSDKなんではないかという気がする。newlib用のsyscall stubも備える。
いわゆるmutexやスレッドは存在しないので、それらは自前でなんとかする必要がある。
FreeRTOS (deprecated)
そもそもK210のサイトには FreeRTOS とか書いてあるのに、FreeRTOS SDKはサポートが終了している。どうしろと。。
もっとも、FreeRTOSにSMPが入ったのが割と最近なので、独自拡張のSMPをあんまりメンテしたくない気持ちはわからなくもない。
NuttX
NuttXにもK210のサポートが入っているが、 FPU未サポート で、SPIのようなペリフェラルも入ってないので厳しいもんがある。
NuttXは内蔵シェルやpthreadsもあって便利そうではあるが。。