はじめに
この記事は Slint Advent Calendar 2025 8日目の記事です。
昨日は「Helpfeel Tech Lounge に参加して、Slint の紹介をして、メモリのリークを報告しました」という記事を書きました。
本日は、Zephyr OS についてです。
NXP i.MX RT1170 で Zephyr で Slint のアプリを動かしてみました
Slint の Zephyr 対応
2024年の夏に、Slint の Zephyr 対応 が行われました。
Slint Advent Calendar 2024 に @hermit4 さんが「M5Stack Core2+ Zephyr OSでSlintを動かしたい」という記事を書いてくれました。
それ以降の変更としては、KDAB のエンジニアが以下の細かい変更をしたくらいで、状況は変わっていません。
試してみた
公式で確認済みの以下のデバイスを用意しました。
上記の手順に沿って作業を進めました。
動かなかった。。。
本来ちゃんと動作すべきなのですが、試してみてもうまく動きませんでした。
シミュレーターでも、起動直後にクラッシュしてしまう状況でした。
1年前に自分で試した時はちゃんと動いていたので、その時の状況さえ再現できれば、bisect でなんとかなるだろ、と思ったのですが、そもそも1年前の組み合わせが難しく、3日くらいかけて以下のバグレポを作成しました。
詳細は上記を参照してほしいのですが、Rust で書かれた Slint を C++ から利用する際に、freestanding (≒ no_std) なケースで Rust と C++ で ABI の不一致が発生していました。
これは以下のコミットが原因で、これにより半年ほどクラッシュする状況になっていました。
そして、開発者の人がすぐ直してくれました。
動いた
おわりに
NXP のマイコンで Zephyr 上で Slint のアプリが無事動きました。
EdgeTech+ 2025 の直前で、とっても焦りましたがなんとかなりました。
おまけ
同様の環境で Slint の Home Automation も動きました。
その他の Slint のアプリも簡単に Zephyr で動かせるように、以下の PR を送っていま対応中です。