Upgrade to Pro — share decks privately, control downloads, hide ads and more …

zephyrにパッチ送ったら半年店晒しされた話

soburi
November 13, 2021

 zephyrにパッチ送ったら半年店晒しされた話

soburi

November 13, 2021
Tweet

More Decks by soburi

Other Decks in Technology

Transcript

  1. Zephyrにパッチ出したら 半年店晒しにされた話 TOKITA Hiroshi

  2. ZephyrRTOS  https://zephyrproject.org/  Linux Foundationが推してるRTOS  マイコン向けコンパクトなLinuxと いう雰囲気。 

    KconfigもDeviceTreeもあるよ!  TCPもPOSIX互換もあるよ!  そこらに転がってるマイコンも結 構対応している。  ucLinuxとか知ってる人には 「あんな感じ」
  3. パッチ出してきた  https://github.com/zephyrpr oject-rtos/zephyr/pull/34970  少し前に一部界隈で流行った Longan Nano を動かすパッチ。 

    内容としてはRISC-Vの新 CPU(GigaDevice GD32V対応)  Bootの初期化コードとか 割り込みの初期化とか。  サンプル実装から適当にパ クッてOSのスタック初期化や 割り込みハンドラと辻褄合わ せるだけの簡単なお仕事?!
  4. GigaDevice GD32V  GigaDeviceはGD32というARMのCPUを販売してる。  GD32はS•M32の丸パクリのプロセッサ。  世界で一番売れてるSTM32F103の代替にできる。  当然ピンコンパチ

     レジスタも互換なのでST•32のコードがほぼそのまま動く。  ただしデッドコピーではない。自前の互換実装。  GD32VはARMをRISCVに差し替えただけ。  ライセンス費を払わないので、さらにお安く!  こんなんだから誰も怖くてパッチを出さない??????
  5. 経緯  昨年4月の技術書典に出したネタをGitHubに置いておく。 https://soburi.github.io/zephyr_porting_gd32v/ 内容は途中で途切れていて完結していないw 実質怪文書。  今年5月、何故かフランス語に翻訳される。  記事に書いた内容のパッチを出してないのも勿体ないので、

    PR提出。  それから半年、すったもんだしながら停滞中…
  6. パッチを出すと何故かみんな 似たようなパッチを出し始める。  同じメーカーの別のCPUに対応するパッチが続々と出てく る。  https://github.com/zephyrproject-rtos/zephyr/pull/39909  https://github.com/zephyrproject-rtos/zephyr/pull/40283 

    https://github.com/zephyrproject-rtos/zephyr/pull/36833  https://github.com/zephyrproject-rtos/zephyr/pull/38661  当然微妙に内容が被る→大乱闘
  7. 校舎裏^H^H^H Discordに呼び出される  ちまちまPRの更新してたのだけど、埒が明かないので、 チャットで決着つけようぜ、となる。  ここに至るまで半年店晒し。  またパッチ書き直してるので、 もうしばらくでAcceptされるはず…

     最新のIRC代替はDiscord。  GitterもSlackももう古い?
  8. One More thing.  https://www.switch-science.com/catalog/5703/  似たようなCPUだったので、ついでに対応した。  VerilogがOSSになってる中国製RISCV実装の HummingBirdコアが乗っている。

    https://github.com/Lichee-Pi/Tang_E203_Mini  このLichee Tang ボードには 出荷時にHummingBirdコアのbitstreamが 書いてあるので、RISCV実装の教材みたいな感じ。  これも対応中。一緒にmainstreamに入れる予定。
  9. まとめ  マイコンいじるならZephyr良いよ!  まだパッチも出しやすい状況だから みんなドライバ書こう! (ArduinoのI2C使えればPR出せる!)