最近在基于 Zephyr 搞些小东西。以往都是刷到真机上调试(反正也就一个 west flash
的事情),但涉及到 GUI 的东西每次还得伸手去操作,就很不爽。于是花了一点时间看了下官方的 native_sim
。
简单来说,它把 Zephyr 编译成了一个 Linux 可执行文件直接跑起来。然而我的开发环境是 Mac,暂时是不支持的。好在官方也提供了 Docker image:
1 | docker run --rm -it -v $PWD:/work -w /work -p 5900:5900 \ |
找个 VNC 客户端打开本地 5900
端口,密码 zephyr
即可看到界面。
要让自己的项目支持 native_sim
也是很简单的一件事:
1 | # 针对 VNC 的调整 |
1 | &sdl_dc { |
官方只提供了一个 zephyr,input-sdl-touch
的驱动把触摸操作传递了过去。于是我顺手照着它也写了个传递按键的。但写得还不太通用,下次啥时候想水 PR 了再整理出来吧。